Como recriar a linha pontilhada do ToC?

Como recriar a linha pontilhada do ToC?

Existe um comando para desenhar uma linha pontilhada como a do índice? Eu usei \dotfill, mas isso cria uma linha com um espaçamento diferente entre os pontos.

insira a descrição da imagem aqui

As linhas pontilhadas no topo foram criadas usando

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

Aqui você pode ver que os pontos de "Verfügbarkeiit" não estão exatamente abaixo dos de "Verfügbarkeit"

Os abaixo são a linha do ToC.

Como posso alcançar a mesma linha? Principalmente o fato de todos os pontos estarem um abaixo do outro (em uma coluna reta)

Obrigado!

Responder1

A resposta fácil seria apenas usar \contentsline, já que você provavelmente deseja copiar a aparência da outra "lista dex"é:

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

O primeiro parâmetro seria o tipo de entrada que você deseja, por exemplo sectionou chapter.

No entanto, você também poderiaautomatize a criação de sua lista personalizada de ..., que pode ser mais sustentável no longo prazo.

Também é possível se aprofundar nas definições das macros para encontrar a mágica que acontece dentro delas:

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

Vemos então que o primeiro parâmetro é usado para completar o nome de uma macro, então vamos ver como este se expande:

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

Chegando perto...

\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, isso está ficando confuso. Mas sabendo que isso \leadersé responsável, podemos isolar a parte interessante deste comando:

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

Então, se você quiser apenas as linhas, mas quiser que elas se pareçam exatamente com as do índice, você pode agrupar isso em uma macro.

Responder2

Você pode definir um novo comando que use o mesmo valor do ToC.

Saída

insira a descrição da imagem aqui

Código

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

informação relacionada