隐形列表标题

隐形列表标题

简短版本:如何使列表的标题显示在列表列表中,但不显示在列表所在的文档正文中?

我正在写一份大学报告,我的许多小节只包含一个列表。因此,小节和列表的逻辑名称相同。我目前正在使用该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

相关内容