我正在为中学生编写 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
。如果这不是您的问题的答案,那么像往常一样:提供一个小型的最小示例...