LaTeX:Maple、Mathematica、Sage 的语法高亮

LaTeX:Maple、Mathematica、Sage 的语法高亮

我正在用 LaTeX 编写一份 Maple、Mathematica 和 Sage 的简短比较。我的问题是:我想将突出显示的源代码放在一列(左)中,将输出放在另一列(右)中。

我知道如何用 分割视图minipage,并了解listingsminted包。我已经通过使用 的python语言设置获得了 Sage 的良好突出显示minted,并希望继续使用该包。但是,我无法minted 正确突出显示 Maple 或 Mathematica 代码。由于这两个程序在 TeX 用户中很知名,所以我想有人可能有解决方案。如果我可以下载 Maple 和 Mathematica 样式就太好了。

否则,是否存在某种“最适合”的风格可以用来实现可接受的突出显示?

答案1

简短的回答:我不知道有哪个解决方案可以同时支持这三种语言,至少在您不做任何工作的情况下是不行的。 listings这可能是最简单的。

minted使用皮格门特斯语法高亮器。Pygments 目前不支持 Maple 或 Mathematica(至少,除非你能找到某人的自定义词法分析器)。所以继续下去的唯一方法minted可能是编写自己的词法分析器(可能不是那么困难,但我从未尝试过)。

listings支持 Mathematica 和 Python,但不支持 Maple(但你可以看看)。因此,如果您选择这条路线,您将需要定义一种语言(这应该不会太难;您可以从上面的链接开始,并根据您的需要进行定制)。

关于其他选择:该计划强调可以突出显示 Maple 并导出 LaTeX 版本。它也可以支持 Python,但不支持 Sage 或 Mathematica。 GNU 源代码突出显示没有 Mathematica 或 Maple。我从未使用过其中任何一个。我认为这涵盖了所有标准和后备语法高亮器(还有t-vim,但那是针对 ConTeXt 的)。还有一些特定于语言的选项,例如,显然有一个maple2e包(参见)。

您应该记住,Sage 和 Python 并不完全相同(例如,对于指数^而言**)。如果您想要一个更特定于 Sage 的解决方案,您可能会看到该sagetex包使用 Sage 的方法listings。基本上,它为 Sage 控制台定义了一种基于 Python 的新 Sage 语言(只需在文档中搜索sagetex\lstdefinelanguage{Sage}然后查看以下内容)。

相关内容