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

wxMaxima: how to use texput to tell tex1 how to handle strings?

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

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

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

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

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

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

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

对于字符串,

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

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