首页 > 解决方案 > 打印带索引的变量(例如 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()。

有解决方法吗?

标签: stringprintfmaxima

解决方案


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

为了生成包含排版指令的输出,您可以调用texortex1函数来生成 TeX 输出。如果需要在网页中显示,我相信您可以使用 MathJax Javascript 库。抱歉,我不知道更多关于 MathJax 的信息。

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

编辑:还有一个附加包来输出 MathML;可能有两个这样的包,我将不得不检查。如果 MathML 可以帮助解决您的问题,我会研究它。


推荐阅读