删除列表列表的标题

删除列表列表的标题

我正在使用classichtesis并且想删除列表列表的标题。

在此发表之前,我尝试了以下策略:

  • 命令\renewcommand\lstlistlistingname{},建议这里,使列表的标题也消失。
  • 该命令\markboth{}{}不起作用。
  • \thispagestyle{empty}之前的命令不起作用。\begingroup\lstlistoflistings

以下是我使用的代码:

编辑:添加了一些更多信息。

\documentclass{scrbook}
\usepackage{classicthesis}
\usepackage{listings}
\usepackage{caption}

\makeatletter
\begingroup
\let\newcounter\@gobble\let\setcounter\@gobbletwo
\globaldefs\@ne \let\c@loldepth\@ne
\newlistof{listings}{lol}{\lstlistlistingname}
\endgroup
\let\l@lstlisting\l@listings
\let\lstlistoflistings\listoflistings
\makeatother
\renewcommand{\cftlistingspresnum}{\scshape\MakeTextLowercase}
\renewcommand{\cftlistingsfont}{\normalfont}
\renewcommand{\cftlistingsleader}{\hspace{1.5em}}
\renewcommand{\cftlistingspresnum}{Algorithm~}
\renewcommand{\cftlistingsafterpnum}{\cftparfillskip}
\setlength{\cftbeforelistingsskip}{\cftbeforesecskip}
\newlength{\listingslabelwidth}
\settowidth{\listingslabelwidth}{\cftlistingspresnum~99}
\addtolength{\listingslabelwidth}{2.5em}
\cftsetindents{listings}{0em}{\listingslabelwidth}

\renewcommand\lstlistingname{Algorithm}
\renewcommand\lstlistlistingname{List of Algorithms}
\def\lstlistingautorefname{Algorithm}

\begin{document}

\begingroup
\let\clearpage\relax
\let\cleardoublepage\relax
\let\cleardoublepage\relax

\phantomsection
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures

\vspace*{5ex}

\phantomsection
\addcontentsline{toc}{chapter}{List of Tables}
\listoftables

\vspace*{5ex}

\phantomsection
\addcontentsline{toc}{chapter}{List of Listings}
\lstlistoflistings

\endgroup

\clearpage

\begin{lstlisting}[caption={First listing}]
for i = 1,...,n:
    print 'Hello'
\end{lstlisting}

\begin{lstlisting}[caption={Second listing}]
for i = 1,...,n:
    print 'Goodbye'
\end{lstlisting}

\end{document}

编译后,你可以在第二页找到 List of Listings 的标题。在我的论文中,它实际上与 List of Listings 在同一页。

答案1

将以下内容添加到文档序言中,

\makeatletter
\renewcommand{\cftmarklol}{%
  \@mkboth{}{}%
}
\makeatother

这覆盖了通常的定义:

\@mkboth{\lstlistoflistingname}{\lstlistoflistingname}

请注意,您可能还必须对其他“...列表”执行此操作。在您的 MWE 中,列表列表(或算法)实际上会覆盖并清空标题,并且由于所有内容都适合放在一页上,因此它可以正常工作。但是,如果您的其他“...列表”合在一起跨越多页,则可能需要进行一些工作。

相关内容