为什么目录中的前导点是在数学模式下排版的?

为什么目录中的前导点是在数学模式下排版的?

这是一个常见的核心问题。我想知道为什么引导点是在数学模式下排版的。

在尝试我自己的切片命令时,我遇到了点对齐问题。这与对齐有关吗?

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

无论如何,我尝试过

\leaders\hbox{
            \kern .8em\hbox{.}\kern .8em}\hfill

而且看起来还相当不错。

从内核 latex.ltx:

\def\@dottedtocline#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}

请注意tocloft保持此

\providecommand{\cftdotfill}[1]{%
  \def\@tempa{#1}%
  \def\@tempb{\cftnodots}%
  \ifx\@tempa\@tempb
    \hfill
  \else
    \leaders\hbox{$\m@th\mkern #1 mu\hbox{\cftdot}\mkern #1 mu$}\hfill
  \fi
}

答案1

这又回到了普通的 TeX,\dotfill其定义为

\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}

LaTeX2.09 使用相同的定义,2e 的前几个版本也是如此。然后:

% \changes{v1.1u}{1996/10/28}{Removed math mode}

当前的 2e 定义是

\def\dotfill{%
  \leavevmode
  \cleaders \hb@xt@ .44em{\hss.\hss}\hfill
  \kern\z@}

在 LaTeX 中,2.09 定义中使用的数学模式与原始版本\@dottedtocline类似。在 2e 中,我们删除了实际的数学设置,但保留了 muskip 间距,可能是为了使现有参数仍然有效。\dotfill\dotfill.\@dotsep

%  \item[|\@dotsep|] Separation between dots, in mu units.
%                  Should be |\def|'d to a number like 2 or 1.7

数学模式的删除.甚至比以下更早\dotfill

% \changes{v1.0k}{1995/04/25}{Added \cs{hbox} around dots.}

相关内容