Benutzerdefinierte Liste mit Seitenzahlen funktioniert nicht

Benutzerdefinierte Liste mit Seitenzahlen funktioniert nicht

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, \cftdotaber für LOL schien dies nicht zu funktionieren.

Ich habe den \titlecontentsBefehl aus dem titletocPaket verwendet, um die Einstellungen des LOL zu ändern, aber dadurch stimmten die Seitenzahlen nicht mehr mit den übrigen Listen überein. Ich habe versucht, \hfilldas \titlerule*[0.0em]{.}Problem \contentspagezu 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.
Beispiel der LaTeX-Ausgabe

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

toclofthakt sich nur in den Standard ein ToC, LoFsowie LoTin 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.styfinden 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 \@dottedtoclineein LaTeX-Kernelmakro, das \@dotsepals 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 \@dotsepglobalen Änderungen vornehmen, also habe ich den \l@lstlistingBefehl gepatcht (mithilfe einer Gruppe, um die Einstellungen nach \l@lstlistingder 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 ( titletoczugehö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}

Bildbeschreibung hier eingeben

verwandte Informationen