我想在description
这样的环境中显示一些列表:
\usepackage{listings} % fancy code listings
\usepackage{caption} % fancy chapters for fancy code listings
\captionsetup[lstlisting]{singlelinecheck=false, margin=0pt, font={sf,sl,footnotesize}}
\lstset{%
language=[ISO]C++,
basicstyle=\ttfamily\footnotesize,
frame=lines,
keywordstyle=\color{blue}\textbf,
commentstyle=\color[rgb]{0.0,0.4,0.0}\scriptsize,
extendedchars=true,
breaklines=true
}
\begin{description}
\item[Example:]
\begin{lstlisting}[caption=Do not do this]
/* increment a by one */
a = a + 1
\end{lstlisting}
\end{description}
但不知为何,标题'不要这样做'\item
始终在条目上方可见'例子:'\item
。但是,如果我在和环境之间写一些内容,则此问题会消失,lstlisting
如下所示:
\begin{description}
\item[Example:] Bad code example
\begin{lstlisting}[caption=Do not do this]
/* increment a by one */
a = a + 1
\end{lstlisting}
\end{description}
我希望这个功能在没有额外文本的情况下也能正常工作,“糟糕的代码示例”在这种情况下。
我尝试使用\vspace{}
和\phantom{text}
来代替额外的文本,但两者似乎都被忽略了。
有人可以帮帮我吗?
答案1
在此添加\leavevmode
帮助:
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings} % fancy code listings
\usepackage{caption} % fancy chapters for fancy code listings
\captionsetup[lstlisting]{singlelinecheck=false, margin=0pt, font={sf,sl,footnotesize}}
\lstset{%
language=[ISO]C++,
basicstyle=\ttfamily\footnotesize,
frame=lines,
keywordstyle=\color{blue}\textbf,
commentstyle=\color[rgb]{0.0,0.4,0.0}\scriptsize,
extendedchars=true,
breaklines=true
}
\begin{document}
\begin{description}
\item[Example:]\leavevmode
\begin{lstlisting}[caption=Do not do this]
/* increment a by one */
a = a + 1
\end{lstlisting}
\end{description}
\end{document}