当我们将字体大小设置为 20 点时,我想知道包围字母的 fbox 粘合框的大小是 20 点。为了理解,我编写了如下代码,我有两个主要问题:
- 虽然我将字体大小设置为 20,但字母绑定框的宽度和高度都不是 20 点(它们较小),无论是小写还是大写。那么 fbox 中的哪个大小是 20 点?
- 我还将行距改为 20,但我们看到基线之间的间距约为 40 点,为什么?
\documentclass{book}
\fboxrule=0.1pt
\fboxsep=-\fboxrule
\usepackage{xcolor}
\renewcommand\fbox{\fcolorbox{red}{white}}
\usepackage[grid,
gridcolor=blue!60!white,
subgridcolor=green!40!white,
gridunit=pt]{eso-pic}
%\usefont{<encoding>}{<family>}{<series>}{<shape>}
%\fontsize{size}{skip}
\newcommand{\myfont}{\usefont{T1}{cmr}{m}{n}\fontsize{20}{20} \selectfont}
\begin{document}
\myfont
\fbox{a}\fbox{b}\fbox{c}\fbox{d}\fbox{e}\fbox{f}\fbox{g}\fbox{h}
\fbox{i}\fbox{j}\fbox{k}\fbox{l}\fbox{m}\
fbox{n}\fbox{o}
\fbox{p}\fbox{q}\fbox{r}\fbox{s}\fbox{t}\fbox{u}\fbox{v}\fbox{w}\fbox{x}\fbox{y}\fbox{z}\\
\fbox{A}\fbox{B}\fbox{C}\fbox{D}\fbox{E}\fbox{F}\fbox{G}
\fbox{H}\fbox{I}\fbox{J}\fbox{K}\fbox{L}\fbox{M}
\fbox{N}\fbox{O}
\fbox{P}\fbox{Q}\fbox{R}\fbox{S}\fbox{T}
\fbox{U}\fbox{V}\fbox{W}\fbox{X}\fbox{Y}\fbox{Z}\\
\end{document}
答案1
这个答案扩展了@DavidCarlisle 的答案,但直接解决了 OP 的两个问题。
- 对于 Computer Modern Roman 字体,括号(以及方括号、大括号、斜线)的总高度,没有超调,等于字体大小。所以在 OP 示例中,
\fbox{(}
或者\fbox{)}
的总高度(高度加深度)为 20 点。我应该提到“字体大小”是一个“名义值”(参见 David 的回答)。有趣的事实:对于大多数拉丁/希腊/西里尔字体,任何字符的总高度等于字体大小的情况非常少见(Computer Modern 是个例外。Knuth 以这种方式设计了 CM)。但是,对于大多数中文/日文字体,由于汉字/汉字字符是以“方块”形式书写的,因此字体大小几乎总是完全等于字符宽度(更准确地说,是汉字/汉字字符的水平前进)。 - 当您输入 时
\\
,您将强制手动换行,从而产生一个空行。因此,\baselineskip
文本的两个基线之间有两个 s;也就是说,两个基线之间最终有 40 点。
答案2
“字体大小”纯粹是字符大小的名义指示,它是由字体设计者设置的值,但不一定对应于字体中字符的任何可测量长度。
行距是预期值的两倍,因为您有四行文本,其中两行是空的,并给出警告
Underfull \hbox (badness 10000) in paragraph at lines 24--28
Underfull \hbox (badness 10000) in paragraph at lines 29--34
你有\\
在段落末尾强制换行,所以第一个段落的小写字母有二文本行,但第二行是空的。切勿\\
在段落末尾使用。