为了明确起见,我们假设用来pdfLaTeX
编译这个:
\documentclass[10pt]{article}
\usepackage{lmodern}
\begin{document}
\thispagestyle{empty}
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{0.0001pt}
\fbox{a}
\end{document}
输出为
我确实理解显示的框不是真正的边界框是有充分理由的(特别是字形的顶部和底部突出,而字形和框的左右两侧之间存在间隙)。
另一方面,这是一个字形lmr10.pfb
(我知道这是因为pdffonts
告诉我字体是LMRoman10-Regular
,而lm.map
包含行
cs-lmr10 LMRoman10-Regular "enclmcs ReEncodeFont" <lm-cs.enc <lmr10.pfb
当我检查时lmr10.afm
,我看到了
C 97 ; WX 500 ; N a ; B 32 -11 483 448 ;
当我检查cs-lmr10.vpl
(由 生成cs-lmr10.tfm
)时tftopl
,出现了以下内容:
(CHARACTER C a
(CHARWD R 0.5)
(CHARHT R 0.445274)
(CHARIC R 0.010777)
最后,我可以lmr10.pfb
在 中进行检查FontForge
,结果发现 中列出的值lmr10.afm
是字形“a”的真实边界框的尺寸:在 中FontForge
,字形的最左边的点具有X-坐标 32,最低点有是-坐标-11,最右边的点有X坐标 483,最高点有是-坐标 448。
据我所知,列出的值cs-lmr10.vpl
给出了由 生成的框的宽度\fbox{a}
,而不是高度。这可以通过目视检查;但同时,使用 \heightof
fromcalc
包,我们得到高度为 4.3056 pt。
如果有人质疑这一切是否都是 的产物\fbox
,我们也可以进行以下测量:\heightof{\mbox{a}}
,\heightof{\hbox{a}}
,\heightof{a}
, 和\widthof{\mbox{a}}
,\widthof{\hbox{a}}
,\widthof{a}
。所有高度均为 4.3055 pt,所有宽度均为 5.0 pt。
我的问题:
LaTeX 如何确定 生成的框的几何形状
\fbox
?例如,这个 4.3056 pt 的高度来自哪里?如果(看起来是这样)它既不是来自 .afm 文件也不是来自 .tfm 文件,那么它来自哪里?在 LaTeX 中,是否可以将“a”放在与字形的真实边界框重合的框中(不一定是带框的框)?我们可以使用它来执行以下操作:当我们使用命令将该
\put(10,10)
框(包含可见字形“a”)放置在页面上时,最终在坐标 (10,10) 处出现的是字形的真实边界框的左下角?应该发生的另一件事是,当我们将\heghtof
和\widthof
应用于该框时,我们会得到字形的真实边界框的高度和宽度。
(当然,我的意思是,无论我们使用什么字体,我们能否仅使用 LaTeX 的内部资源来完成上述操作?我们不应该每次都弄清楚每个我们感兴趣的字形来自哪种字体,然后自己去查看相应的 .afm 文件并手动设置 LaTeX 文档中的坐标。)
答案1
您想查看 rm-lmr10 而不是 cs-lmr10,
测试文件的修改版本
\documentclass[10pt]{article}
\usepackage{lmodern}
\begin{document}
\thispagestyle{empty}
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{0.0001pt}
\fbox{a}
\sbox0{a}
\typeout{box:
\the\ht0,
\the\dp0,
\the\wd0}
\typeout{tfm:
\the\fontcharht\font`a,
\the\fontchardp\font`a,
\the\fontcharwd\font`a}
\typeout{font:\the\font}
\typeout{meaning:\expandafter\meaning\the\font}
产生终端输出
box: 4.3055pt, 0.0pt, 5.0pt
tfm: 4.3055pt, 0.0pt, 5.0pt
font:\OT1/lmr/m/n/10
meaning:select font rm-lmr10
注意最后的rm-lmr10
。
然后tfopl rm-lmr10.tfm
产生
(CHARACTER C a
(CHARWD R 0.5)
(CHARHT R 0.43055)
(CHARIC R 0.010777)
宽度和高度与您从 TeX 看到的尺寸完全匹配。