如何在 maxima 的 tex 输出中将每个 `log` 输出为 `ln`?

How to output every `log` as `ln` in tex output in maxima?

所以我尝试了

texput(%e, "\e"); texput(log, "\ln");

但是如果我调用 tex 函数:

tex(%e*log(3));

这给出:

$$\e\,\log 3$$

但我实际上预计:

$$\e\,\ln 3$$

所以我的问题是如何在 tex 输出中将每个 log 输出为 ln?用 texput 可以吗?

这里有两件事,完全不明显;对于那个很抱歉。 (1) 在调用 texput 时需要说 nounify(log) 而不仅仅是 log。这是因为 log(3) 是所谓的名词表达(与动词表达相反)。 (2) 需要在调用 texput 时说 prefix 因为 log 在 TeX 中被排版为前缀运算符。

(%i1) texput (nounify(log), "\ln", prefix);
(%o1)                                 \ln
(%i2) tex(log(3));
$$\ln3$$
(%o2)                                false

哦,看起来我们需要一个尾随 space 来将 \ln 与 3.

分开
(%i3) texput (nounify(log), "\ln ", prefix);
(%o3)                                \ln 
(%i4) tex(log(3));
$$\ln 3$$
(%o4)                                false

这似乎符合预期。