如何從目錄重新建立虛線?

如何從目錄重新建立虛線?

有沒有指令可以像目錄中那樣繪製虛線?我使用過\dotfill,但這會建立一行,點之間的間距不同。

在此輸入影像描述

頂部的虛線是使用創建的

\begin{itemize}
    \item[3.1] Verfügbarkeit\enspace\dotfill\enspace 7
    \item[3.1] Verfügbarkeiit\enspace\dotfill\enspace 7
\end{itemize}

在這裡您可以看到“Verfügbarkeiit”的點並不完全低於“Verfügbarkeit”的點

下面是目錄行。

我怎樣才能達到同樣的效果?特別是所有點都位於彼此下方(在直列中)

謝謝!

答案1

簡單的答案是只使用\contentsline,因為您可能想複製其他“列表”的外觀X「是:

\contentsline{figure}{\numberline{3.2.1}Verfügbarkeit}{x}

第一個參數是您希望它看起來像的條目類型,例如sectionchapter

不過,您也可以自動建立您的自訂清單...,從長遠來看可能更易於維護。

人們也可以深入研究巨集的定義來發現內在發生的魔力:

\show\contentsline
% results in #1->\csname l@#1\endcsname

所以我們看到第一個參數是用來完成巨集名稱的,所以讓我們看看這個是如何擴展的:

\makeatletter
\show\l@figure
% results in ->\@dottedtocline {1}{1.5em}{2.3em}

越來越近...

\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

好吧,這越來越混亂了。但知道這\leaders是負責任的,我們可以隔離這個命令中有趣的部分:

\leaders\hbox{$\m@th\mkern\@dotsepmu\hbox{.}\mkern\@dotsepmu$}\hfill

因此,如果您只想要這些行,但希望它們看起來與目錄中的完全相同,您可以將其包裝到巨集中。

答案2

您可以設定使用相同目錄值的新指令。

輸出

在此輸入影像描述

程式碼

\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}

相關內容