如果 baselineskip 低于某个值, \fontsize 的行为会怎样?

如果 baselineskip 低于某个值, \fontsize 的行为会怎样?

在我的优化过程中,我发现了一些我无法解释的虚假的东西,我想了解一下。因此,\fontsize请设置字体大小和基线跳过。但是,第二个参数的行为对我来说有点不清楚,因为如果你将其减少太多,在某个时候,基线跳过会再次变大。让我给你看我的例子:

\documentclass[landscape]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{lipsum,multicol}

\begin{document}
\begin{multicols}{4}
    \fontsize{10}{11}\selectfont
    \lipsum[1]
    \columnbreak
    
    \fontsize{10}{10}\selectfont
    \lipsum[1]
    \columnbreak
    
    \fontsize{10}{9}\selectfont
    \lipsum[1]
    \columnbreak
    
    \fontsize{10}{8}\selectfont
    \lipsum[1]
    \columnbreak
\end{multicols}
\end{document}

如果你编译它,你的结果将如下所示:

在此处输入图片描述

现在从第一列到第三列,似乎合乎逻辑的是,基线跳跃减少了,因此排版所需的垂直空间也减少了。但是对于第三列,即使基线跳跃进一步减少,它总体上仍然需要更多的垂直空间。然而奇怪的是,例如从第 11 行到第 12 行(以 tus 和 lum 开头),间距似乎比第 3 列窄,而在许多行中间距更大。将基线跳跃更改为较低的值(低至 0)不会进一步修改垂直对齐。

这种行为的目的是什么?是故意的吗?我看不出这样做有什么好处,而且我有点困惑。

答案1

在此处输入图片描述

如果你添加

 \lineskiplimit = -\maxdimen

你就得到了上述内容。

TeX 尝试保持均匀的基线间距,如所设置的那样\baselineskip(由的第二个参数\fontsize和其他地方设置)。但是,通常如果行中的文本太大(例如内联数学分数),您不想保持均匀的间距并过度打印周围的行,因此如果需要添加的空间低于TeX,则放弃均匀间距并仅在行之间\lineskiplimit插入固定空间。默认情况下为 1pt,并且为 0pt。\lineskip\lineskip\lineskiplimit

通过设置合适的大负值,\lineskiplimit您可以强制均匀间距,即使以过度打印为代价。

在最后一栏你可以看到:

在此处输入图片描述

相关内容