为什么不将 \fbox 定义为根据内容的最左、最右、最下、最上部分来封闭其内容?

为什么不将 \fbox 定义为根据内容的最左、最右、最下、最上部分来封闭其内容?

情况 1:\fbox无法紧密包围字符

\fbox为什么PSTricks不能\psframebox准确地包围其内容?在我看来,每个边缘都应该准确接触其内容的外部。更改字体可以解决这个问题吗?

\documentclass{article}
\usepackage[english]{babel}
\usepackage{pstricks}

\fboxsep=0pt
\fboxrule=0.001pt

\begin{document}
\color{red}\fbox{\color{black}3}
\end{document}

在此处输入图片描述

这个有趣的功能可能是问题的根源pdfcrop 意外修剪网格标签

案例 2:\fbox无法包含 PSTricks 网格标签

\fbox这是无法\psframebox准确概括其内容的另一个例子。

\documentclass{article}
\usepackage[english]{babel}
\usepackage{pstricks}

\fboxsep=0pt
\fboxrule=0.001pt

\begin{document}

\color{red}
\fbox{\color{black}%
\pspicture[showgrid](3,3)
\endpspicture
}

\vspace{1cm}

\psframebox[framesep=0pt,linewidth=0.001pt,linecolor=red]{%
\pspicture[showgrid](3,3)
\endpspicture
}
\end{document}

框架是否应该包围网格标签?在我的思维模型中,它们应该包围。

在此处输入图片描述

问题

在我的思维模型中,当不允许其内容的任何部分超出其框架\fbox时,应将其内容紧密地包围起来。如果允许其内容的任何部分超出其框架,那么它到底是为了什么?\fboxsep=0pt\fbox\fbox

为什么不\fbox定义根据最左、最右、最下、最上部分来封闭其内容?我认为这样更有用,对吧?

答案1

角色的边界框与其内容无关:

\documentclass{article}
\usepackage[T1]{fontenc} 
\usepackage{mathpazo}
\begin{document}
\fontsize{3cm}{3.1cm}\selectfont\frame{\itshape ff}
\end{document}

在此处输入图片描述

答案2

TeX 不知道如何使用墨水绘制字符。它只知道字符的边界框,但通常字形并不完全包含在为其保留的边界框中。顶部或底部呈圆形的字母(数字 3 就是一个突出的例子)通常绘制在边界框的上方或下方,以便彼此在视觉上对齐。通常,“f”,尤其是斜体形状,会从其边界框中突出。它是不可能的以便 TeX 知道这是否发生。

但是,可以使用 XeTeX 访问字符的“真实”边界框,如下图所示XeTeX 参考指南,第 8 页。使用 TeX Live 可以通过 访问该文档texdoc xetex

相关内容