使用listings
和color
包,我可以很容易地在 C 代码列表中获得语法高亮显示:
\documentclass{article}
\usepackage[usenames,dvipsnames]{color} %% Allow color names
\usepackage{listings}
\lstdefinestyle{customasm}{
language=C,
basicstyle=\footnotesize\ttfamily,
commentstyle=\itshape\color{Gray},
stringstyle=\color{Black},
keywordstyle=\bfseries\color{OliveGreen},
identifierstyle=\color{blue},
showstringspaces=false
}
\begin{document}
\lstinputlisting[style=customasm]{sample.c}
\end{document}
但是,在像我这里得到的多行预处理器指令之后,语法突出显示会中断:
/* comment with
* multiple lines */
#define MACRO1 "single line here"
#define MACRO2 "multiple \
lines"
#define MACRO3 "syntax highlighting broken from here on :("
int main(void) {
return 0;
}
以下是 的输出pdflatex
。请注意,第三个define
(以及它之后的所有内容)未突出显示:
请注意,对于跨越宏外部的多行字符串文字,不会发生相同的情况:
有没有办法在不修改 C 代码文件的情况下修复这个问题?