我知道如何使用 calc 包获取 LaTeX 中字母 x 的宽度(以 pt 或 sp 为单位):
\newlength{\xwidth}%
\setlength{\xwidth}{\widthof{x}}%
\the\xwidth{}, \number\xwidth sp.%
作为一名 C 黑客,我的方法是:
%\number\widthof{x}
因为在我看来,\number
需要一个长度类型的参数,\widthof
提供一个,所以我不需要像\xwidth
LaTeX 那样的中间变量。我想知道为什么这不起作用。
答案1
不,\widthof{x}
不返回长度。如果你尝试从终端
latexdef -s -p calc \widthof
你会得到意想不到的答案
% calc.sty, line 118:
\let\widthof\ignorespaces
该calc
包重新定义\setlength
,以便它可以解析表达式,其中\widthof
和类似的命令充当涉及框创建和测量的后续计算的标记。
如果你想测量单个字符,x
你可以使用可扩展的
\fontcharwd\font`x
例如,当前字体中“x”的宽度,以表示缩放点的整数表示,您可以这样做
\number\fontcharwd\font`x
对于点的长度,只需执行
\the\fontcharwd\font`x