大写字母的局部高度是多少?

大写字母的局部高度是多少?

如何获得反映(平面)大写字母高度的长度?

虽然\em给了我宽度\ex指的是小写字母,\f@size指的是包括上升和下降在内的整体字体大小。

答案1

1em 的值不一定是任何大写字母的宽度(它的名字指的是大写字母 M 的宽度,但不一定如此,并且该值基本上由字体设计师决定)。

类似地,1ex 传统上是指小写字母 x 的高度,但如果字体设计师另有决定,则可能并非如此。

LaTeX 提供了一种标准方法来获取一个字符(或一组字符)的宽度和高度:

\settoheight{\mylen}{A}
\settowidth{\mylen}{A}
\settodepth{\mylen}{g}

将分配\mylen(应该用 声明\newlength{\mylen})相应的尺寸在呼叫点

如果要记录默认字体大小下典型大写字母的高度以供日后使用,请执行以下操作

\newlength{\ucht}
\AtBeginDocument{\settoheight{\ucht}{A}}

因为有些字体包在开始文档时就进行了设置,并且\settoheight在序言中所做的设置可能无法反映主文档字体。

如果要根据当前字体使用大写字母的高度,则构造\fontcharht\font`A可以在需要长度的任何地方使用该构造。

一位受人尊敬的社区成员在评论中反对使用AX可能会导致不同的结果。事实上,对于某些字体来说,情况确实如此。在 Computer Modern 中,所有大写字母都分配了相同的高度,即使其中一些字母“超出”了高度:通常是 A、C、G、O、Q。其他字体可能会受到设计师的不同决定,因此需要对实际文档字体进行一些实验。

答案2

其他答案很好地解释了如何测量字母的高度。正如 egreg 所补充的,“em”和“ex”这两个术语取决于字体设计师的解释,不能用作字母尺寸的严格测量单位。

我只是想补充一点,字母的高度和深度的概念也同样主观。弯曲的字母通常会延伸到其指定的高度和深度。显然,这与大脑感知小“超调”的方式有关,即平衡或匹配大/平坦的非突出部分。有关此概念的讨论可以在http://ilovetypography.com/2009/01/14/inconspicuous-vertical-metrics/

我在 MWE 中展示了一些例子,只是为了提醒 OP,如果目标是使用字母的官方高度和深度来截断或封装字母,那么通常是不够的。

\documentclass{article}
\begin{document}
\fboxrule=.1pt
\fboxsep=-\fboxrule
\fbox{e}\fbox{Q}\fbox{A}
\end{document}

在此处输入图片描述

答案3

\documentclass{article}
\newlength{\mylen}
\AtBeginDocument{\setlength{\mylen}{\fontcharht\font`X}}   %% height of X
\begin{document}
  X\rule{5cm}{\mylen}
\end{document}

在此处输入图片描述

感谢 egreg 和 Barbara。

答案4

\newsavebox{\mybox}
\savebox{\mybox}{A} % Put your letter here instead of A
\newlength{\uppercaseHeight}
\setlength{\uppercaseHeight}{\ht\mybox}
\newlength{\uppercaseWidth}
\setlength{\uppercaseWidth}{\wd\mybox}

相关内容