2

我曾经texputtex1输出设置log(x)\ln(x)

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

并且想知道是否可以将输出设置为类似的东西(log(x))^n?特别是我想使用\ln^n(x)约定。

4

1 回答 1

2

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

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

(%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"]

这看起来对吗?

于 2021-02-06T20:48:36.060 回答