这几天研究了如何在latex中显示代码颇有收获,现简单的记录一下,在LaTeX中对C语言进行代码高亮显示,可以用两种方式一个是用listings宏包对代码进行显示,另一种方式是用Highlight软件生成相应的LaTeX/TeX代码,再嵌入到你的文档当中。
1.使用Listings宏包对代码进行高亮显示
用Listings宏包对代码进行高亮显示的效果如下图所示
而上面的效果的代码也相当容易理解,listings对代码进行高亮要使用xcolor宏包
1 \documentclass[a4paper]{article} 2 \usepackage{listings} 3 \usepackage{xcolor} 4 \lstset{ 5 %行号 6 numbers=left, 7 %背景框 8 framexleftmargin=10mm, 9 frame=none, 10 %背景色 11 %backgroundcolor=\color[rgb]{1,1,0.76}, 12 backgroundcolor=\color[RGB]{245,245,244}, 13 %样式 14 keywordstyle=\bf\color{blue}, 15 identifierstyle=\bf, 16 numberstyle=\color[RGB]{0,192,192}, 17 commentstyle=\it\color[RGB]{0,96,96}, 18 stringstyle=\rmfamily\slshape\color[RGB]{128,0,0}, 19 %显示空格 20 showstringspaces=false 21 } 22 23 \begin{document} 24 \begin{lstlisting}[language={C}] 25 int main(int argc, char ** argv) 26 { 27 //Print Hello world 28 printf("Hello world!\n"); 29 int i; 30 for(int j=0;j<10;j++) 31 { 32 printf("hello"); 33 } 34 return 0; 35 } 36 \end{lstlisting} 37 \end{document}
2. 使用Highlight对代码进行高亮处理
Highlight是一个相当强大的代码高亮软件,它支持多种计算机语言,并且可以输出为多种格式,比如LaTeX/TeX,HTML,XHTML,RTF等,使用它对上述的LaTeX代码高亮的效果如下图:
再看一个C语言的效果,
而Highlight的使用也相当简单,其软件界面如图:
3.两种方式的对比
使用listings相当简便,要配置的东西并不多,而且效果并不差,只是效果没有Highlight那么丰富,而使用Highlight的话,可以得到很好的效果,并且支持中文注释,只是要真正使用Highlight生成的代码与latex很好地配合起来还是很复杂的。