如何使用 listings-package 将非块 C 注释分成两行

如何使用 listings-package 将非块 C 注释分成两行

我正在寻找一种将一段 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}]{\@}

这招确实奏效了。

相关内容