ToC에서 점선을 다시 만드는 방법은 무엇입니까?

ToC에서 점선을 다시 만드는 방법은 무엇입니까?

목차와 같이 점선을 그리는 명령어가 있나요? 나는 사용했지만 \dotfill점 사이의 간격이 다른 행을 만듭니다.

여기에 이미지 설명을 입력하세요

상단의 점선은 다음을 사용하여 만들어졌습니다.

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

여기에서 "Verfügbarkeit"의 점이 "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}

관련 정보