Как воссоздать пунктирную линию из оглавления?

Как воссоздать пунктирную линию из оглавления?

Есть ли команда, чтобы нарисовать пунктирную линию, как в таблице содержания? Я использовал, \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"

Ниже представлена ​​строка ToC.

Как мне добиться такой же линии? Особенно то, что все точки находятся друг под другом (в прямом столбце)

Спасибо!

решение1

Простым ответом было бы просто использовать \contentsline, поскольку вы, вероятно, захотите скопировать внешний вид другого «спискаИкс"эс:

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

Первым параметром будет тип записи, который вы хотите, чтобы она выглядела, например sectionили chapter.

Однако вы также можетеавтоматизировать создание вашего собственного списка ..., что может оказаться более удобным в обслуживании в долгосрочной перспективе.

Можно также углубиться в определения макросов, чтобы увидеть магию, которая происходит внутри:

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

Связанный контент