如何从目录中重新创建虚线?

如何从目录中重新创建虚线?

是否有命令可以绘制像目录中的虚线?我用过,\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“es:

\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

您可以设置使用与 ToC 相同的值的新命令。

输出

在此处输入图片描述

代码

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

相关内容