我正在寻找一种将一段 C 代码正确包含在 Latex 文档中的方法。但是,它包含一些不寻常但有效的结构,包括两行注释。Minted 处理得当,但它的输出存在一些其他问题。主要问题是“跨越两行”没有显示为注释行。这是 MWE
\documentclass{article}
\usepackage{listings}
\usepackage[dvipsnames]{xcolor}
\begin{document}
\lstset{language=C,
commentstyle=\color{NavyBlue}}
\begin{lstlisting}
int main(void) {
//one line comment\
spanned into two lines
return 0;
}
\end{lstlisting}
\end{document}
答案1
如果您可以切换到minted
,则两行注释已被正确解析(David 在他的注释中认为您正在使用它)。
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{c}
int main(void) {
//one line comment\
spanned into two lines
return 0;
}
\end{minted}
\end{document}
listings
要了解和之间的区别minted
请参见此处:minted 与 listings:优点与缺点。
答案2
因为没有简单的解决方案,所以我稍微作弊了。我在有问题的注释行前面加上了“@”,并添加到\lstset
moredelim=[il][\color{NavyBlue}]{\@}
这招确实奏效了。