在编写 postscript 文件时,可以选择如下字体:
/Courier-Bold findfont 16 scalefont setfont
(bar baz) show
我想更改字体的字母间距 - 有办法做到这一点吗?要么直接作为字体操作符,要么只是能够在字形渲染之间插入任意后记命令?
最佳答案
是的,show
有多种变体运算符可用于类似这样的事情:
ax ay 字符串 ashow -
<
添加 (ax, ay) 到每个字符的宽度,同时显示字符串cx cy 字符串 widthshow -
添加 (cx, cy) 到 char 的宽度,同时显示字符串cx cy 字符 ax ay 字符串 awidthshow强> -
结合ashow和widthshow的效果proc 字符串 kshow -
在字符串中显示的字符之间执行proc
一些提示。由于 postscript 没有字 rune 字,因此常见的习惯用法是从 1 字节字符串文字中提取整数值,以提供 widthshow
的 char 参数。和awidthshow
。例如。
( ) 0 get %the space char, aka 32 or 16#20
除非您想要某种阶梯效果,否则所有 y 值都应该为 0。
kshow 在每个字符之间执行的过程按顺序接收刚刚显示的字符和即将显示的字符作为参数。这大概是为了让您可以在某种“字距调整表”中查找该对。但我从未真正见过这样做。但如果不需要(通常),请记住将其弹出。
关于制作衍生字体,我推荐你引用this answer of mine在 codegolf.SE 上,它通过在 Times-Roman 周围画框来创建填字游戏字体。字符的宽度是使用/BuildChar 过程中的 setcachedevice 运算符声明的。对于我的,我只需要一个恒定的宽度,因此我使用 1 将其直接与字体大小联系起来。
关于fonts - 更改 PostScript 中的字母间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10013481/