Name der Einträge immer "Inhalt" im Inhaltsverzeichnis

Name der Einträge immer "Inhalt" im Inhaltsverzeichnis

Verwenden Sie \lstlistoflistingsim Inhaltsverzeichnis immer die Bezeichnung „Inhalt“.

Ich habe nachgesehen Der Eintrag lstlistoflistings im Inhaltsverzeichnis hat immer den Namen „Inhalt“Und Namen von Einträgen ändern aber die Lösungen dort haben nicht funktioniert.

Beispiel: (meine vollständige Präambel)

\documentclass[11pt, oneside]{Thesis} 
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplots,filecontents}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{booktabs,colortbl}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{listings}
\usepackage{color}
\usepackage{comment}
\usepackage[official]{eurosym}
\usepackage{colortbl}
\usepackage{algorithm} 
\usepackage{algpseudocode}
\usepackage{indentfirst}
\usepackage{latexsym}
\usepackage{titlesec}
\usepackage[square, numbers, comma, sort&compress]{natbib}  
\hypersetup{urlcolor=blue, colorlinks=true} 
\renewcommand{\lstlistlistingname}{List of Code} 

\begin{document}

\tableofcontents
\lstlistoflistings
\lstinputlisting[language=python,firstline=1,lastline=68,caption=some caption here., label=code:getbb]{Code/getBoundingBox.py}
\end{document}

Der Befehl „Erneuern“ ändert die Kopfzeile auf der Seite, aber nicht im Inhaltsverzeichnis. Irgendwelche Ideen?

BEARBEITEN x2:

Ich habe es geschafft, die Benennung zu korrigieren, indem ich dies imThesis.cls

 }
 \renewcommand\lstlistoflistings{
 \btypeout{List of Listings}
 \addtotoc{List of Listings}
 \begin{spacing}{1}{
\setlength{\parskip}{1pt}
\if@twocolumn
  \@restonecoltrue\onecolumn
\else
  \@restonecolfalse
\fi
\chapter*{\lstlistlistingname
  \@mkboth{
      \MakeUppercase\lstlistlistingname}{\MakeUppercase\lstlistlistingname}}
\@starttoc{lot}
\if@restonecol\twocolumn\fi
\cleardoublepage
 }\end{spacing}

Jetzt wird der Name korrekt im Inhaltsverzeichnis angezeigt, aber die Einträge werden nicht auf der Eintragsseite angezeigt, sie ist einfach leer.

Ein MWE finden Sie hier:https://www.dropbox.com/sh/xehv0crr7rqyptp/AAB-eNpJVLVpfQikO3IO3yCza?dl=0

Antwort1

Es wird Version 1.43 (17.05.14) der Vorlage verwendet.

\documentclass[12pt, oneside]{Thesis} % The default font size and one-sided printing (no margin offsets)

\usepackage{etoolbox}

\begin{document}

\tableofcontents
\patchcmd{\tableofcontents}{\addtotoc{Contents}}{\addtotoc{Wombat}}{}{}
\lstlistoflistings

\end{document}

Sie können ersetzenWombatdurch eine beliebige Zeichenfolge, möglicherweise sogar \lstlistlistingname. Es gibt keine Neudefinition der Auflistungen in der ursprünglichen Vorlage.

Bei einer aktuellen Version der Vorlage tritt das Problem nicht auf. Der Grund ist einfach: Die Klasse wurde aktualisiert, um solchen Müll loszuwerden.

Antwort2

Der fest codierte List of ListingsInhaltsverzeichniseintrag \lstlistoflistingsist natürlich der Übeltäter.

xpatchDies kann durch einen Patch mit und Ersetzen List of Listingsdurch den Inhalt von \lstlistlistingname(was übrigens ein schrecklicher Makroname ist ;-)) geändert werden.

\documentclass[11pt, oneside]{Thesis} 


\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplots,filecontents}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{booktabs,colortbl}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{listings}
\usepackage{color}
\usepackage{comment}
\usepackage[official]{eurosym}
\usepackage{colortbl}
\usepackage{algorithm} 
\usepackage{algpseudocode}
\usepackage{indentfirst}
\usepackage{latexsym}
\usepackage{titlesec}
\usepackage{xpatch}
\usepackage[square, numbers, comma, sort&compress]{natbib}  

\renewcommand{\lstlistlistingname}{List of codes}

\xpatchcmd{\lstlistoflistings}{
  \addtotoc{List of Listings}%
}{%
  \addtotoc{\lstlistlistingname}%
}{\typeout{patch success}}{\typeout{patching failed}}



\begin{document}


\tableofcontents

\clearpage
\lstlistoflistings


\lstinputlisting[language=python,caption=some caption here., label=code:getbb]{getBoundingBox.py}

\end{document}

Antwort3

Die Vorschläge in den Kommentaren von Christian und Johannes scheinen nicht zu funktionieren, also hier ein grober Hack, um die Dinge zu reparieren, ohne wirklich zu verstehen, was vor sich geht. Zur Klarstellung: Dies basiert auf Ihrem Thesis-Kursohnedie Bearbeitung, die den Inhaltsverzeichniseintrag umbenannt hat, aber die Liste der Einträge selbst verschwinden ließ.

\documentclass[11pt, oneside]{Thesis} 

% long list of irrelevant packages omitted ...
\usepackage{listings}

\immediate\write18{sed -i '0,/{Contents}/! s/{Contents}/{List of Code}/' \jobname.toc}

\begin{document}

\tableofcontents
\clearpage
\lstlistoflistings

\lstinputlisting[language=python,caption=some caption here., label=code:getbb]{getBoundingBox.py}

\end{document}

Erklärung: Wir benutzen den Zeileneditor, sedum die Hilfsdatei zu ändern, die die TOC-Einträge enthält. Wir ersetzen das zweite Vorkommen von {Contents}-- sowie alle weiteren, die folgen, aber ich hoffe, das spielt keine Rolle -- durch {List of Code}.

Damit dies funktioniert, müssen Sie TeX mit der --shell-escapeOption ausführen.

Versuchen Sie das nächste Mal nicht, benutzerdefinierte Klassenvorlagen auf gut Glück zu übernehmen - bleiben Sie, wenn möglich, bei den Standardklassen und nehmen Sie Anpassungen mit Standardpaketen vor, wann immer dies möglich ist. Dadurch vermeiden Sie seltsame Fehler; die Fehler, die auftauchen, wurden normalerweise schon einmal in freier Wildbahn beobachtet, und es ist einfacher, Hilfe zu erhalten.

verwandte Informationen