您可以使用当前字体获取字符串的宽度,stringwidth
虽然这实际上会推动堆栈上的偏移坐标,但y值似乎总是无用的.有没有办法确定字符串的确切高度,可能包括也可能不包括下行链接?
stringwidth
正如它所说,不会返回字符串的高度.(在我查看的所有情况下,执行后堆栈上的第二个整数stringwidth
是0
- 对于在水平方向上运行的字符串.)stringwidth
给出了执行a后的当前点的相对坐标(string) show
.
PLRM有这样的说法stringwidth
:
请注意,stringwidth返回的宽度定义为当前点的移动.它与字形轮廓的尺寸无关.
那么考虑弦的高度会有什么效果呢?在PRLM中阅读的神奇词汇是charpath
和pathbbox
.试试这个:
%! /Helvetica findfont 60 scalefont setfont 200 700 4 0 360 arc fill 200 700 moveto (test test) dup true charpath pathbbox 3 -1 roll sub 2 div neg 3 1 roll sub 2 div exch 1 0 0 setrgbcolor 200 700 moveto rmoveto show showpage
它计算字符串(以红色打印)的高度,并使用该信息尝试将一个小的实心圆(以黑色打印)居中到其边界框的中心: