考虑一下这个MWE:
\documentclass{article}
\usepackage{multicol}
\usepackage{listings}
\begin{document}
\def\extra{extra}
\begin{lstlisting}[
multicols=2,
caption={
[short] aaaa \extra, \lstinline{asf_sdf}
},
]
LDPT_NULL = 0,
LDPT_API_VERSION,
LDPT_GOLD_VERSION,
LDPT_LINKER_OUTPUT,
\end{lstlisting}
它崩溃了:
! LaTeX Error: Something's wrong--perhaps a missing \item.
multicols
如果有注释,或者如果multicols
留下,并且有注释,它就不会崩溃\lstinline
。编辑 - 而且,\protect\lstinline{asf_sdf}
没有帮助。
我怎样才能一起使用所有这些命令?
答案1
文档listings
(参见 5.8 小节)指出
已知多列选项对于某些键不起作用。
如果没有的话\lstinline
,可以使用自定义宏:
\documentclass{article}
\usepackage{multicol}
\usepackage{listings}
\makeatletter
\newcommand\inlinecode[1]
{\lst@basicstyle #1}
\makeatother
\begin{document}
\def\extra{extra}
\begin{lstlisting}[
multicols=2,
caption={
[short] aaaa \extra, \inlinecode{asf\_sdf}
},
]
LDPT_NULL = 0,
LDPT_API_VERSION,
LDPT_GOLD_VERSION,
LDPT_LINKER_OUTPUT,
\end{lstlisting}
\end{document}