wxMaxima:如何使用 texput 告诉 tex1 如何处理字符串?

问题描述

tex1() 似乎返回所有字符串如下:

tex1(hello);
    {\it hello}
tex1("hello");
    \mBox{ hello }

必须使用什么变量才能通过 texput 更改这种处理方式?例如如果我只想按字面意思打印字符串?我正在使用其他 Maxima 命令(例如 printfconcat生成然后传递给 tex1 的字符串,并且有时认处理会导致问题。

我尝试了 texput(""",...)texput("''",...);第一个没有被接受,第二个被接受,但没有改变输出。我真的不知道非引号字符串。

解决方法

让我们小心区分符号和字符串。当您输入 tex1(hello) 时,hello 是一个符号,而当您输入 tex1("hello") 时,"hello" 是一个字符串。符号本质上是查找表中项目的名称,它可以为每个项目存储附加信息(符号属性)。另一方面,字符串只是(从 Maxima 的角度来看)只是一个字符序列。

无论如何,遗憾的是无法通过 texput 更改所有符号或所有字符串的输出。但是用一个单行的 Lisp 函数,就可以完成它。试试这个:对于符号,

:lisp (defun tex-stripdollar (sym) (maybe-invert-string-case (symbol-name (stripdollar sym))))

对于字符串,

:lisp (defun tex-string (str) str)

这些将改变一些现有的输出,所以你需要尝试一下,看看它是否适合你。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...