打印带有索引的变量(例如 x_1)

Print a variable with index (eg. x_1)

我正在尝试打印带有索引的变量。 目标是编写如下内容:

x_1 + x_2 = 3 + 1 = 4

问题是,像 x_1 这样的变量不显示索引。它显示下划线本身。

/* works fine */    
print(x_1)$ 
x_1;

/* Does not work */
ostream: make_string_output_stream()$
printf(ostream, string(x_1))$
get_output_stream_string(ostream);

Output of the code above

将"x_1"转换为字符串会破坏下划线,但您需要一个字符串用于方法printf()。

是否有解决方法?

这里要做什么可能在某种程度上取决于您需要用它实现什么目标。您能详细谈谈您正在努力实现的更大目标吗?

为了生成包含排版指令的输出,您可以调用textex1函数来生成TeX输出。如果需要在网页中显示,我相信你可以使用 MathJax Javascript 库。抱歉,我不太了解 MathJax。

您可能应该写 x[1] 而不是 x_1。显示带有下标 1x_1 是一种方便——Maxima 的其余部分对此知之甚少。

编辑:还有一个用于输出 MathML 的附加包;可能有两个这样的包,我必须检查一下。如果 MathML 可以帮助您解决问题,我会研究一下。