
Gibt es einen Befehl, um eine gepunktete Linie wie im Inhaltsverzeichnis zu zeichnen? Ich habe ihn verwendet, \dotfill
aber dadurch wird eine Zeile mit einem anderen Abstand zwischen den Punkten erstellt.
Die gepunkteten Linien oben wurden erstellt mit
\begin{itemize}
\item[3.1] Verfügbarkeit\enspace\dotfill\enspace 7
\item[3.1] Verfügbarkeiit\enspace\dotfill\enspace 7
\end{itemize}
Hier sieht man, dass die Punkte von "Verfügbarkeit" nicht genau unter denen von "Verfügbarkeit" liegen.
Die folgenden sind die Zeilen des Inhaltsverzeichnisses.
Wie kann ich die gleiche Linie erreichen? Insbesondere die Tatsache, dass alle Punkte untereinander liegen (in einer geraden Spalte)
Danke!
Antwort1
Die einfache Antwort wäre, einfach zu verwenden \contentsline
, da Sie wahrscheinlich das Aussehen der anderen "Liste vonX"es:
\contentsline{figure}{\numberline{3.2.1}Verfügbarkeit}{x}
Der erste Parameter wäre der Eintragstyp, der wie dieser aussehen soll, zum Beispiel section
oder chapter
.
Sie könnten jedoch auchAutomatisieren Sie die Erstellung Ihrer benutzerdefinierten Liste von ..., was auf lange Sicht möglicherweise wartungsfreundlicher ist.
Man kann sich auch tiefer mit den Definitionen der Makros befassen, um die Magie zu entdecken, die sich darin abspielt:
\show\contentsline
% results in #1->\csname l@#1\endcsname
Wir sehen also, dass der erste Parameter zum Vervollständigen eines Makronamens verwendet wird. Sehen wir uns also an, wie dieser erweitert wird:
\makeatletter
\show\l@figure
% results in ->\@dottedtocline {1}{1.5em}{2.3em}
Rückt näher...
\show\@dottedtocline
% results in #1#2#3#4#5->\ifnum #1>\c@tocdepth \else \vskip \z@ \@plus .2\p@ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax \@afterindenttrue \interlinepenalty \@M \leavevmode \@tempdima #3\relax \advance \leftskip \@tempdima \null \nobreak \hskip -\leftskip {#4}\nobreak \leaders \hbox {$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill \nobreak \hb@xt@ \@pnumwidth {\hfil \normalfont \normalcolor #5}\par }\fi
Ok, das wird langsam kompliziert. Aber da wir wissen, wer dafür \leaders
verantwortlich ist, können wir den interessanten Teil dieses Befehls isolieren:
\leaders\hbox{$\m@th\mkern\@dotsepmu\hbox{.}\mkern\@dotsepmu$}\hfill
Wenn Sie also nur die Zeilen möchten, diese aber genau wie die im Inhaltsverzeichnis aussehen sollen, können Sie dies in ein Makro einbinden.
Antwort2
Sie können einen neuen Befehl festlegen, der denselben Wert des ToC verwendet.
Ausgabe
Code
\documentclass{article}
\usepackage{tocloft}
\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}
\newcommand\mydotfill{\cftdotfill{\cftdotsep}}
\begin{document}
\tableofcontents
\vspace{1cm}
\begin{itemize}
\item[3.1] label\enspace\mydotfill\enspace 7
\item[3.1] long label\enspace\mydotfill\enspace 7
\item[3.1] very long label\enspace\mydotfill\enspace 7
\end{itemize}
\vspace{3cm}
\section{Verfügbarkeit}
\end{document}