我正在用 LaTeX 编写一份 Maple、Mathematica 和 Sage 的简短比较。我的问题是:我想将突出显示的源代码放在一列(左)中,将输出放在另一列(右)中。
我知道如何用 分割视图minipage
,并了解listings
和minted
包。我已经通过使用 的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}
然后查看以下内容)。