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

时间:2017-07-19 11:03:16

标签: maxima

所以我试过

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

但是如果我调用tex函数:

tex(%e*log(3));

这给出了:

$$\e\,\log 3$$

但我实在期待:

$$\e\,\ln 3$$

所以我的问题是如何在maxima的tex输出中将每个log输出为ln?这可能与texput有关吗?

1 个答案:

答案 0 :(得分:3)

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

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

哦,看起来我们需要一个尾随空格来将\ln与3分开。

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

这似乎按预期工作。