Wie kann ich den Stil des \lstlistoflistings-Titels neu definieren?

Wie kann ich den Stil des \lstlistoflistings-Titels neu definieren?

Ich verwende ein CLS, das auf memoirdem Paket basiert listings. Ich möchte ein Anhangskapitel mit allen Listen (Tabellenverzeichnis, Abbildungsverzeichnis, Auflistungsverzeichnis). Der Titelstil dieser Listen sollte einem sectionTitel 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 listingslautet

\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 \@starttocverwendet werden soll. \tableofcontentsWird normalerweise ausgeführt \@starttoc, also werden sie einfach ausgeführt \tableofcontents.

verwandte Informationen