是\baselineskip
由 LaTeX 自动定义的吗?它依赖于什么?
我正在经历Wikibook
关于长度的部分,我刚刚还意识到 和\bigskip
其他的都不依赖于字体大小。 也是一样吗baselineskip
?
答案1
\baselineskip
是 tex 原语,因此它总是被定义为某种东西(除非有人去\let\baselineskip\@undefined
,但即使如此,底层寄存器仍然具有值,即使它不可访问。
它在 LaTeX 的各个地方都有设置,最值得注意的是,所有字体大小命令最终都会执行
\fontsize{aaa}{bbb}\selectfont
在这种情况下,\baselineskip
设置为 的当前值的 bbb 倍\baselinestretch
。
答案2
article
让我们用标准类或来举例report
。选项如(这10pt
是默认值),11pt
或12pt
指示 LaTeX 读取size10.clo
或(它们将用于类,具有类似的方法)。size11.clo
size12.clo
bkXY.clo
book
memoir
我们size10.clo
发现
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt\@xiipt
\abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
\normalsize
的第一条指令\normalsize
告诉 LaTeX 主字体大小为 10pt ( \@xpt
),基线跳跃为 12pt ( \@xiipt
)。但是,赋予 的值\baselineskip
将乘以 的当前值\baselinestretch
。
在size11.clo
和size12.clo
对应的行是
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xipt{13.6}%
...}
和
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xiipt{14.5}%
...}
分别。
随后,文件还定义了\large
和\small
类似的命令,同样使用\@setfontsize
确定字体大小和基线跳过的命令。
这会产生以下后果:如果你尝试使用以下命令更改默认基线,则跳过
\setlength{\baselineskip}{13pt}
在序言中,它将有不因为\begin{document}
问题而产生效果\normalsize
。将命令放在后面\begin{document}
会产生效果,但外层的字体大小更改命令将恢复为文件中建立的值.clo
。
为了改变基线跳过,最好\linespread
在序言中采取行动,它会为设置一个值\baselinestretch
,由字体大小更改命令使用,如图所示。
因此,如果您想要 10/13 排版而不是 10/12,请发出
\linespread{1.08333}
因为 12*1.08333=12.99996 足够接近 13。
或者,根据文件中的提示重新定义所有这些命令.clo
。