Verwenden Sie \lstlistoflistings
im 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 Listings
Inhaltsverzeichniseintrag \lstlistoflistings
ist natürlich der Übeltäter.
xpatch
Dies kann durch einen Patch mit und Ersetzen List of Listings
durch 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, sed
um 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-escape
Option 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.