\normallineskiplimit 起什么作用?

\normallineskiplimit 起什么作用?

这个优秀的答案,使用的工具之一是重新定义\normallineskiplimit。我在任何参考资料中都找不到这个宏,尽管它确实出现在这个答案。这个长度最初是在哪里定义的,这个宏到底控制什么?

一个好的答案可能需要解决相关的宏(如果存在),例如\normallineskip

答案1

\normallineskiplimit(和朋友)在 Latex 中有两个地方使用,

它们用于\@arrayparboxrestore

\lineskip\normallineskip
\baselineskip\normalbaselineskip

因此,即使在\parboxminipage表格p列内部具有非标准值的上下文中使用,基线跳过也会恢复到正常状态。

\displaylines补偿非标准值\lineskiplimit

\def\displ@y{\global\dt@ptrue\openup\jot\m@th
  \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@
      \vskip-\lineskiplimit \vskip\normallineskiplimit \fi
      \else \penalty\interdisplaylinepenalty \fi}}}

但这实际上是纯 TeX 的遗留问题,在 LaTeX 中并不常用。

然而,AMS 对齐都以类似的方式重置amsmath了这一点

\def\@display@init#1{%
    \global\dt@ptrue \spread@equation
    \everycr{%
        \noalign{%
            #1%
            \ifdt@p
                \global\dt@pfalse
                \vskip-\lineskiplimit
                \vskip\normallineskiplimit
            \else
                \penalty\@eqpen \global\dspbrk@lvl\m@ne
            \fi
        }%
    }%
}

调整当前值\lineskiplimit和保存的值之间的差异\normallineskiplimit

您还可以使用\normalbaselines明确将值重置为默认值

\def\normalbaselines{\lineskip\normallineskip
  \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}

但我很确定我从来不需要这么做:-)

相关内容