(wx)Maxima:表达式幂的文本输入

(wx)Maxima: texput for powers of expressions

我已经使用 texputlog(x)tex1 输出设置为 \ln(x)

texput('log, lambda([e],[a]:args(e), printf(false, "\ln(~a)", tex1(a))));

我想知道是否也可以为 (log(x))^n 之类的内容设置输出?特别是我想使用 \ln^n(x) 约定。

log 的 TeX 输出的奇怪之处是一个错误,我正在处理它。但我认为这里有一个解决方法可以得到你想要的行为。

这里我同时调用 texput(log, "\ln ")texput(log, "\ln ", prefix),在不同的上下文中设置 log 的 TeX 输出,并且 :lisp (push log *tex-mexpt-trig-like-fns*)log 与三角函数的处理方式类似。

(%i1) stringdisp: true $
(%i2) map (tex1, [log(x), log(x+1), log(x)^n]);                              
(%o2)   ["\log x", "\log \left(x+1\right)", "\left(\log x\right)^{n}"]
(%i3) texput (log, "\ln ");
(%o3)                               "\ln "
(%i4) texput (log, "\ln ", prefix);
(%o4)                               "\ln "
(%i5) map (tex1, [log(x), log(x+1), log(x)^n]); 
(%o5)           ["\ln x", "\ln \left(x+1\right)", "\ln x^{n}"]

嗯,这还不够。哦,对了,我忘记了三角函数。

(%i6) :lisp (push '%log *tex-mexpt-trig-like-fns*)
(%LOG %SIN %COS %TAN %SINH %COSH %TANH %ASIN %ACOS %ATAN %ASINH %ACOSH %ATANH)
(%i6) map (tex1, [log(x), log(x+1), log(x)^n]); 
(%o6)           ["\ln x", "\ln \left(x+1\right)", "\ln ^{n}x"]

这样对吗?