
Ich verwende ein CLS, das auf memoir
dem Paket basiert listings
. Ich möchte ein Anhangskapitel mit allen Listen (Tabellenverzeichnis, Abbildungsverzeichnis, Auflistungsverzeichnis). Der Titelstil dieser Listen sollte einem section
Titel entsprechen.
Für die Tabellen und Abbildungen kann ich das folgendermaßen machen:
\makeatletter
\renewcommand\@lofmaketitle{%
\section*{\listfigurename}%
\tocmark%
\@afterheading}
\makeatother
\makeatletter
\renewcommand\@lotmaketitle{%
\section*{\listtablename}%
\tocmark%
\@afterheading}
\makeatother
Ich dachte also, dass es auch für die Listings funktionieren müsste, aber Folgendes hat keine Wirkung:
\makeatletter
\renewcommand\@lolmaketitle{%
\section*{\lstlistlistingname}%
\tocmark%
\@afterheading}
\makeatother
Ich verwende es \lstlistoflistings*
, daher möchte ich nicht, dass es im Inhaltsverzeichnis angezeigt wird.
Wie kann ich das machen?
Antwort1
Das sollte es tun
\documentclass[a4paper]{memoir}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[caption=Hest]
a
\end{lstlisting}
\begingroup
\makeatletter
\renewcommand\@tocmaketitle{%
\section*{\contentsname}%
\markboth{\contentsname}{\contentsname}
\@afterheading}
\makeatother
% adding a star to \lstlistoflistings does not work, the inner
% \tableofcontents never sees it. Locally use \KeepFromToc
% to emulate the *
\KeepFromToc
\lstlistoflistings
\endgroup
\end{document}
Beachten Sie, dass die Änderung nicht wirklich in der Präambel erfolgen kann, da sie auch Auswirkungen hat \tableofcontents
.
Der entsprechende Code listings
lautet
\lst@UserCommand\lstlistoflistings{\bgroup
\let\contentsname\lstlistlistingname
\let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
\tableofcontents \egroup}
hier können wir sehen \contentsname
, dass es zurückgesetzt wird und welche Datei \@starttoc
verwendet werden soll. \tableofcontents
Wird normalerweise ausgeführt \@starttoc
, also werden sie einfach ausgeführt \tableofcontents
.