【发布时间】:2010-12-30 07:12:55
【问题描述】:
我需要在 LaTeX 中突出显示源代码。 listings 包似乎是大多数用例的最佳选择,对我来说,直到现在。
但是,现在我需要更大的灵活性。一般来说,我正在寻找的是一个真正的词法分析器。特别是,我需要(对于自己的语言定义)定义(并突出显示!)自己的数字样式。 listings 不允许在代码中突出显示数字。但是,我需要制作这样的东西:
listings 也无法处理字符串的任意分隔符。考虑以下有效的 Ruby 代码:
s = %q!this is a string.!
这里,! 几乎可以替换为任何分隔符。
(listings 无法处理 Unicode 也很麻烦,但这是另一个问题。)
理想情况下,我正在寻找listings 的扩展,它允许我提供更复杂的词法规则。但除此之外,我还在寻找可行的替代方案。
Other threads 建议使用可以产生 LaTeX 输出的Pygments。甚至还有一个包 - texments - 来简化过渡。
但是,这非常缺乏功能。特别是,我对listings 样式的行编号、源代码行引用以及在源代码中嵌入 LaTeX 的可能性感兴趣(listings 中的选项texcl 和mathescape)。
例如,这里有一个带有listings 的源代码排版,它显示了替换还应该提供的一些东西:
[从Bit Twiddling Hacks修改的“横向加法”]
【问题讨论】:
-
如果你不想引入外部工具,比如 pygments,那么为什么不为你的文档编写一个 makefile 呢?
-
这个不应该迁移到tex.stackexchange.com吗?^^
-
@Matthias 不确定。当我发布它时,没有 tex.se,但现在它在这里似乎很有用——这个问题引起了巨大的反响,而在 TeX.SE 上到目前为止没有人发布类似的问题。此外,它实际上与编程和编程工具有关,所以我猜 程序员 是从中受益的人。
-
对于那些可能忘记 LaTeX 的人来说他们当前正在编写的文档:请注意,使用 Office Word 或 LibreOffice Writer,您只需将代码从 Eclipse 复制/粘贴到那里并获取您的颜色保存!!
-
@MemoryLeaks 我不确定这个建议对谁非常有用:办公软件不是 LaTeX 的有效替代品(它不是办公软件,它是桌面出版系统,简而言之,这意味着除了与办公软件相比的所有其他优势之外,它还提供了更出色的排版)。
标签: latex syntax-highlighting pygments