我目前正在使用LaTeX列表包来显示代码块,以及该文件与先前版本的差异。
两个块都被列表着色,好像它们是代码(它们是)但是我想将diff的颜色与emacs diff-mode相似 - 红色表示匹配^-
的行,绿色表示{{1}等等。
有没有人知道是否有一个软件包可以实现这一点,列表是否可以执行此操作,或者是否可以编写LaTeX命令来执行此操作? (或者更确切地说 - 可以找到关于后者的良好信息来源?)
谢谢,
铁汉
答案 0 :(得分:2)
如果你只想要简单的差异,Pygments会支持它们,所以texments(一个用于pygments的乳胶前端)可以做你想要的。
但我想你想要的是让diff的颜色变为彩色,同时让底层代码的语法适当地突出显示。一般来说,这通常不能正常地执行,因为语法突出显示可能取决于前一行的状态,而使用udiffs可能会丢失前一行,或者插入的行可能会跟随删除的行,& c
要做正确的事情,您需要语法突出显示旧版本和新版本,然后将突出显示的版本加密以获得正确的输出。相当多的工作,我没有听说过有人这样做过。
您还可以尝试简单地修改语言的常用语法高亮显示,删除涉及多线状态的突出显示规则,以及使用udiff标记将规则插入颜色线。参看Pygments'Write your own lexer;你想从diff那里得到的东西比较棘手,因为你想要突出显示的颜色,所以你不能只是将这些行放到GenericTokens中;我不知道这样做的正确方法是什么。
答案 1 :(得分:0)
使用脚本工具(如sed,awk,Python [lang of choice])生成Latex源代码。