对 \framebox 的理解有问题

对 \framebox 的理解有问题

我正在阅读LaTeX 中的更多数学知识,并在第 3.9.2 节第 91-92 页介绍了 的命令\framebox。以下两个代码示例显示了不同的输出:

\framebox{\makebox[\totalheight]{1}}
\framebox[\totalheight]{1}

书中解释如下:

确实,\totalheight是 1 的高度,它成为框的宽度。但是,框的总高度是字符 1 的高度,您必须在此基础上加上两倍的\fboxsep,即框内容与框架之间的间隔,定义为 3 点,以及两倍的\fboxrule,即线或规则的宽度,定义为 0.4 点。这些长度通常也会添加到框的宽度中,但在这种情况下不会,因为我们强制宽度等于字符的高度

那么我该如何理解最后几句话和完全不同的输出?希望有人能帮我一下。

答案1

\documentclass{article}
\newsavebox\CBox
\begin{document}

\sbox\CBox{g}
\the\wd\CBox | \the\ht\CBox+\the\dp\CBox

\framebox{\makebox[\totalheight]{g}}
\framebox[\totalheight]{g}
\framebox[\width]{g}
\framebox[\the\dimexpr\ht\CBox+\dp\CBox]{g}

\sbox\CBox{\framebox[\totalheight]{g}}
\the\wd\CBox | \the\ht\CBox+\the\dp\CBox

\end{document}

在此处输入图片描述

g 的宽度为 5pt,高度为 4.53pt,深度为 2.05pt,总高度为 6.5899pt。\framebox[\totalheight]{g}我们得到的框的宽度为 6.5899pt-0.8pt=5.711pt(从框中减去框架的线宽!5.711pt 与框的自然宽度几乎相同, \totalheight减去两倍的线宽没有实际区别。

将所有值保存在一个框中,我们得到的宽度为 6.5899(线宽现在是框的一部分),高度为 7.93pt,这是 g 的旧高度加上 \fboxsep(3pt)和\fboxrule(0.4pt)。深度是旧值,加上\fboxsep\fboxrule

相关内容