简短版本:如何使列表的标题显示在列表列表中,但不显示在列表所在的文档正文中?
我正在写一份大学报告,我的许多小节只包含一个列表。因此,小节和列表的逻辑名称相同。我目前正在使用该listings
包。
我希望目录(针对子部分)和列表(针对列表)中都有合理的描述性名称,但我不希望在文档正文中同时使用这两个名称,因为重复看起来很愚蠢。最好在主文档中为子部分添加标题,但不为列表添加标题,尽管反之亦然仍然有帮助。
答案1
该包listings
还提供了标题的可选参数。使用方法很简单:
\begin{lstlisting}[caption={[entry]}]
这种方式也描述了文档见第32页。
完整的例子。
\documentclass{article}
\usepackage{listings}
\begin{document}
\lstlistoflistings
\section{This is my section}
\begin{lstlisting}[caption={[foo]}]
for i:=maxint to 0 do
begin
{ do nothing }
end;
\end{lstlisting}
\end{document}
答案2
听起来你需要命令
\addcontentsline{lol}{lstlisting}{<enter description here>}
其中lol
代表文件的扩展名ListOfListings
。可能用于类似下面的内容。
\documentclass{article}
\usepackage{listings}
\begin{document}
\lstlistoflistings
\addcontentsline{lol}{lstlisting}{I entered this myself!}
\addcontentsline{lol}{lstlisting}{and this too!}
\section{This is my section}
\begin{lstlisting}
for i:=maxint to 0 do
begin
{ do nothing }
end;
\end{lstlisting}
\end{document}
答案3
你可以修补listings
的标题宏\lst@MakeCaption
宏绝不使用打印标题etoolbox
:
\documentclass{article}
\usepackage{listings}% http://ctan.org/pkg/listings
\usepackage{hyperref}% http://ctan.org/pkg/hyperref
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\pretocmd{\lst@MakeCaption}{\let\lst@caption\@empty}{}{}
\makeatother
\begin{document}
\tableofcontents
\lstlistoflistings
\section{My first listing}
\begin{lstlisting}[caption={My first listing}]
\typeout{Hello world!}
\end{lstlisting}
\end{document}
如图所示,上述补丁适用于hyperref
。