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

String 打印带有索引的变量(如x_1),string,printf,maxima,String,Printf,Maxima,我正在尝试打印带有索引的变量。 目标是写一些类似于: 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); 将“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);

将“x_1”转换为字符串会破坏下划线,但方法printf()需要一个字符串


有解决办法吗?

在这里做什么可能在某种程度上取决于您需要实现的目标。你能说说你正在努力实现的更大目标吗

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

您可能应该编写
x[1]
而不是
x\u 1
。用下标
1
显示
x_1
是一种方便——Maxima的其他人对此不太了解


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

谢谢您的索引注释建议。MathML解决了我的问题!谢谢