![Benutzerdefinierte Liste mit Seitenzahlen funktioniert nicht](https://rvso.com/image/309863/Benutzerdefinierte%20Liste%20mit%20Seitenzahlen%20funktioniert%20nicht.png)
Ich verwende diese spezielle Latex-Vorlage jetzt schon seit einiger Zeit und füge sie ständig hinzu und ändere sie, um sie meinen Wünschen anzupassen. Vor kurzem habe ich versucht, die führenden Punkte in TOC, LOF, LOT und LOL durch Neuformatierung zu entfernen. Durch Erneuern des Befehls gelang es mir, sie alle zu entfernen, \cftdot
aber für LOL schien dies nicht zu funktionieren.
Ich habe den \titlecontents
Befehl aus dem titletoc
Paket verwendet, um die Einstellungen des LOL zu ändern, aber dadurch stimmten die Seitenzahlen nicht mehr mit den übrigen Listen überein. Ich habe versucht, \hfill
das \titlerule*[0.0em]{.}
Problem \contentspage
zu beheben, aber nichts davon hat funktioniert.
Das aktuelle Arbeitsbeispiel wird mit demonstriert \hfill
.
\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{letterpaper}
\geometry{margin = 1.0in}
\usepackage[parfill]{parskip}
\usepackage{setspace}
\singlespacing
\usepackage[utf8x]{inputenc}
\usepackage{microtype}
\usepackage{listings}
\usepackage{graphicx}
\usepackage[justification = centering]{caption}
\usepackage[section]{placeins}
\usepackage{float}
\usepackage[nottoc,notlof,notlot]{tocbibind}
\usepackage[titles]{tocloft}
\usepackage{titletoc}
\renewcommand{\cftsecfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecpagefont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftdot}{}
\renewcommand\lstlistlistingname{List of Scripts}
\renewcommand\lstlistingname{Script}
\contentsuse{lstlisting}{lol}
\titlecontents{lstlisting}[1.5em]
{\hspace{2.3em}}
{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{\hfill\contentspage}
\usepackage{hyperref}
\pdfoutput=1
\hypersetup{
unicode=false,
pdftoolbar=true,
pdfmenubar=true,
pdffitwindow=true,
pdfstartview={FitH},
pdftitle={Title},
pdfauthor={Author},
pdfsubject={Subject},
pdfcreator={Producer},
pdfproducer={Producer},
pdfdisplaydoctitle=true,
pdfnewwindow=true,
colorlinks=true,
linkcolor=black,
citecolor=black,
filecolor=black,
urlcolor=black
}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\section{Here is A Section}
\begin{figure}[H]
\centering
\includegraphics[width = 2cm]{boats}
\caption{A boat}
\end{figure}
\begin{table} [H]
\begin{center}
\begin{tabular}{ c | c }
Title 1 & Title 2 \\ \hline
Stuff & More stuff
\end{tabular}
\caption{A Table}
\end{center}
\end{table}
\begin{lstlisting}[language = Matlab, basicstyle = \scriptsize, numberstyle = \scriptsize, caption = A Listing]
%%
clear;clc;close all;format compact;
%%
x = 5;
y = 6;
x + y = z;
disp(z);
\end{lstlisting}
\end{document}
Wie im Beispiel unten zu sehen ist, ist die Seitenzahl für die Auflistung aus einem Grund eingerückt, den ich nicht herausfinden konnte. Ich bin sicher, es ist einfach, aber ich habe es einfach nicht gefunden.
Beachten Sie, dass ich erheblich mehr Pakete und Modifikationen als diese verwende, dies sind jedoch die grundlegendsten, für die eine ordnungsgemäße Kompilierung erfolgt.
Antwort1
tocloft
hakt sich nur in den Standard ein ToC
, LoF
sowie LoT
in Befehle und Dateien und jene, die mit definiert sind \newlistof
.
All dies wird für nicht abgedeckt LoL
, da hier das herkömmliche Setup von \l@...
Like-Makros verwendet wird.
In listings.sty
finden wir
\def\l@lstlisting#1#2{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}
Dies ist das relevante Makro für die Zeileneinstellung in Inhaltslisten. Die nächste Ebene tiefer finden wir \@dottedtocline
ein LaTeX-Kernelmakro, das \@dotsep
als Trennzeichen zwischen zwei der Inhaltszeilenpunkte verwendet. Der Standardwert ist 4.5
. Wenn wir diese Zahl auf 5000 erhöhen (was wirklich groß ist), sind die Punkte hier höchstwahrscheinlich nicht mehr zu sehen.
Ich wollte keine \@dotsep
globalen Änderungen vornehmen, also habe ich den \l@lstlisting
Befehl gepatcht (mithilfe einer Gruppe, um die Einstellungen nach \l@lstlisting
der Verwendung zu löschen).
\makeatletter % Patching to prevent interference
\xpatchcmd{\l@lstlisting}{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}{%
\begingroup\renewcommand{\@dotsep}{5000}\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}\endgroup}{%
}{}
\makeatother
Hier ist der Code ( titletoc
zugehörige Teile auskommentiert)
\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{letterpaper}
\geometry{margin = 1.0in}
\usepackage[parfill]{parskip}
\usepackage{setspace}
\singlespacing
\usepackage[utf8x]{inputenc}
\usepackage{microtype}
\usepackage[demo]{graphicx}
\usepackage[justification = centering]{caption}
\usepackage[section]{placeins}
\usepackage{float}
\usepackage[nottoc,notlof,notlot]{tocbibind}
\usepackage{listings}
\usepackage[titles]{tocloft}
\usepackage{xpatch}
%\usepackage{titletoc}
\renewcommand{\cftsecfont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftsecpagefont}{\rmfamily\mdseries\upshape}
\renewcommand{\cftdotsep}{\cftnodots}
\renewcommand\lstlistlistingname{List of Scripts}
\renewcommand\lstlistingname{Script}
\makeatletter % Patching to prevent interference
\xpatchcmd{\l@lstlisting}{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}{%
\begingroup\renewcommand{\@dotsep}{5000}\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}\endgroup}{%
}{}
\makeatother
%\contentsuse{lstlisting}{lol}
%\titlecontents{lstlisting}[1.5em]
% {\hspace{2.3em}}
% {\contentslabel{2.3em}}
% {\hspace*{-2.3em}}
% {\hfill\contentspage}
\usepackage{hyperref}
\pdfoutput=1
\hypersetup{
unicode=false,
pdftoolbar=true,
pdfmenubar=true,
pdffitwindow=true,
pdfstartview={FitH},
pdftitle={Title},
pdfauthor={Author},
pdfsubject={Subject},
pdfcreator={Producer},
pdfproducer={Producer},
pdfdisplaydoctitle=true,
pdfnewwindow=true,
colorlinks=true,
linkcolor=black,
citecolor=black,
filecolor=black,
urlcolor=black
}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\lstlistoflistings
\section{Here is A Section}
\begin{figure}[H]
\centering
\includegraphics[width = 2cm]{boats}
\caption{A boat}
\end{figure}
\begin{table} [H]
\begin{center}
\begin{tabular}{ c | c }
Title 1 & Title 2 \\ \hline
Stuff & More stuff
\end{tabular}
\caption{A Table}
\end{center}
\end{table}
\begin{lstlisting}[language = Matlab, basicstyle = \scriptsize, numberstyle = \scriptsize, caption = A Listing]
%%
clear;clc;close all;format compact;
%%
x = 5;
y = 6;
x + y = z;
disp(z);
\end{lstlisting}
\end{document}