Вывод maxima tex, чтобы показать скобки для sin и cos
Я использую вывод maxima и хотел бы изменить способ вывода sin(x). В настоящее время это делает:
tex(sin(x));
$$\sin x$$
Но я хотел бы иметь скобки вокруг x, но не всегда; например, если я использую это:
sin(x/2) already has \left( and \right)
tex(sin(x/2));
\begin{equation} \sin \left({{x}\over{2}}\right) \end{equation}
это возможно, может быть с функцией texput?
2 ответа
Хорошо, если вы не против того, чтобы добавить немного кода на Лиспе:
(%i1) :lisp (setf (get '%sin 'tex) nil)
(%i1) :lisp (setf (get '%cos 'tex) nil)
Это убирает предопределенную функцию-обработчик (которая обрабатывает sin и cos как префиксные операторы). Тогда вы получите:
(%i1) tex (sin(x) + cos(y));
$$\cos \left(y\right)+\sin \left(x\right)$$
Если ваш контекст не позволяет использовать
: lisp
альтернативой может быть определение такой функции, как:
psin(x):=sin(x);
psintex:lambda([e],printf(false,"\\sin\\left(~a\\right)", tex1(e)));
texput('psin, psintex);
Я не уверен, что этот вид псевдонимов проблематичен по программным причинам; однако, с точки зрения гибкости вывода текста, я нахожу его очень полезным, так как можно получить доступ к предпочтительной форме, просто переключаясь между
sin(x)
а также
psin(x)
.