tex1()
, кажется, возвращает все строки следующим образом:
tex1(hello);
{\it hello}
tex1("hello");
\mbox{ hello }
Какую переменную нужно использовать, чтобы изменить эту обработку через texput
? например если бы я просто хотел, чтобы он печатал строки буквально? Я использую другие команды Maxima (такие как printf
и concat
для создания строк, которые затем передаются в tex1
, и иногда обработка по умолчанию вызывает проблемы.
Я пробовал texput(""", ...)
и texput("''", ...)
; первое не приняли, 2-е приняли, но вывод не изменили. Я действительно понятия не имею о строках без кавычек.
Давайте будем осторожны, чтобы отличать символы от строк. Когда вы вводите tex1(hello)
, то hello
является символом, а когда вы вводите tex1("hello")
, то "hello"
является строкой. Символы — это, по сути, имена элементов в таблице поиска, в которой может храниться дополнительная информация (свойства символов) для каждого из них. С другой стороны, строки — это (с точки зрения Maxima) просто последовательность символов.
В любом случае изменить вывод для всех символов или всех строк, к сожалению, невозможно с помощью texput
. Но с помощью однострочной функции Лиспа это можно сделать. Попробуйте это: для символов,
:lisp (defun tex-stripdollar (sym) (maybe-invert-string-case (symbol-name (stripdollar sym))))
и для строк,
:lisp (defun tex-string (str) str)
Они изменят некоторые существующие результаты, так что вы захотите попробовать и посмотреть, работает ли это для вас.