为什么 Listings 包在草稿模式下不显示任何内容?

为什么 Listings 包在草稿模式下不显示任何内容?

我正在为中学生编写 C++ 课程,并希望以一种好的方式显示一些源代码(缩进,最终着色),并尝试了 Listings 包。但我遇到了一个问题,文件编译没有问题,然后,当我查看我的代码应该出现的位置时,它是空的。既没有代码也没有空格。为什么?我并不是真正的 LaTex 专家,我只是用它写了我的论文(其中没有源代码),所以也许是我错过了一些非常简单的东西……在 Mac 上使用 texmaker 以 utf8 格式工作。

最小(非)工作示例是:

\documentclass[draft]{article}

\usepackage{listings}
\lstset{language=C++}

\begin{document}
    \section{Inline listings are shown}
        \lstinline!void main() {return 0}!

    \section{Environment listings are blank}
        \begin{lstlisting}
void main() { return 0; }
        \end{lstlisting}

    \section{Included file listings are blank}
    \lstinputlisting{ex_comments.cpp}
\end{document}

这会隐藏lstlisting环境和文件中的列表,\lstinputlisting如以下输出所示:

在此处输入图片描述

答案1

似乎 listings 包与文档类中的 draft 选项配合得不太好。listings手动的建议将final选项传递给第 2.2 章中的包程序包加载。这个解决方案对我有用:

\documentclass[11pt,a4paper,draft]{article}
...
\usepackage[final]{listings}
...

这样,我就可以在超额行和列表中同时获得黑色标记。同样的技巧也适用于 graphicx 包。

答案2

listings.sty无法处理 utf8 字符。如果这是您的问题,请使用listingsutf8或替代包minted。如果这不是您的问题的答案,那么像往常一样:提供一个小型的最小示例...

相关内容