我需要在 LaTeX 中突出显示源代码。该软件包listings
似乎是大多数用例的最佳选择,对我来说,直到现在。
但是,现在我需要更多的灵活性。一般来说,我正在寻找的是一个真正的词法分析器。特别是,我需要(对于自己的语言定义)定义(并突出显示!)自己的数字样式。listings
不允许在代码中突出显示数字。但是,我需要制作这样的东西:
listings
也无法处理字符串的任意分隔符。考虑以下有效的 Ruby 代码:
s = %q!this is a string.!
在这里,!
几乎可以用任何分隔符代替。
(listings
不能处理 Unicode 也很麻烦,但这是另一个问题。)
理想情况下,我正在寻找listings
允许我提供更复杂的词法规则的扩展。但除此之外,我也在寻找可行的替代方案。
其他线程建议使用可以产生 LaTeX 输出的Pygments 。甚至还有一个包 – texments
– 来简化过渡。
但是,这非常缺乏功能。特别是,我对listings
-style 行编号、源代码行引用以及在源代码中嵌入 LaTeX 的可能性(选项texcl
和mathescape
in listings
)感兴趣。
例如,这是一个源代码排版,listings
其中显示了替换还应提供的一些内容:
[从Bit Twiddling Hacks修改的“横向加法”]