我不明白为什么以下文档无法编译:
\documentclass[letterpaper, 11pt, onecolumn]{article}
\usepackage{lipsum}
\usepackage{listings}
\lstloadlanguages{[11]C++,[ISO]C++}
\begin{document}
\lipsum[1]
\begin{lstlisting}[language=[11]C++]
struct test
{
int x = 0;
};
\end{lstlisting}
\lipsum[1]
\end{document}
哪里有问题?
答案1
[language=[11]C++]
是可选参数,[11]
是另一个可选参数。在 listings 包中,当在另一个可选参数中使用可选参数时,需要用括号括住整个值。
\begin{lstlisting}[language={[11]C++}]
应该修复它。
如果你查看第 2.3 节中的列表文档,其中的第三点\itemize
解释了这一点
→ 'language=[77]Fortran' 在可选参数中不起作用。如果在可选参数中使用了带有可选参数的值,则必须在值周围加上括号。在这种情况下,写入 'language={[77]Fortran}' 以选择 Fortran 77。