我选择该包pygmentex
来在 LaTeX 中突出显示我的源代码。我test.tex
使用以下命令进行编译:
xelatex -shell-escape test.tex
但它不起作用,PDF 上没有代码。
\documentclass{article}
\usepackage{pygmentex}
\begin{document}
Hello World
\begin{pygmented}[lang=c++]
#include<cstdio>
int main(){
printf("Hello World");
return 0;
}
\end{pygmented}
\end{document}
答案1
正如包装手册,包会生成一个文件,您必须在此文件上.snippets
运行外部程序。对于 LaTeX 运行,该标志不是必需的。pygmentex
-shell-escape
手册相关部分(第 1 页底部):
编译文档时(
pdflatex
例如,使用 ),文档中的所有源代码列表将被收集并保存在一个临时文件中,.snippets
其名称的扩展名为 。然后,应运行辅助程序pygmentex
(与 PygmenTEX 包一起分发的 Python 应用程序),将此文件作为输入。它将生成另一个扩展名为 的临时文件.pygmented
,其中包含先前收集的代码列表的 LATEX 代码。下次编译文档时,它们将被包含在内以生成最终的排版文档。
因此,对于示例,您可以使用以下编译序列:
xelatex test.tex
pygmentex test.snippets
xelatex test.tex
结果: