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