在PostScript中更改字母间距

时间:2012-04-04 14:42:36

标签: fonts postscript eps

在编写postscript文件时,可以选择这样的字体:

/Courier-Bold findfont 16 scalefont setfont
(bar baz) show

我想更改字体的字母间距 - 有没有办法做到这一点?要么直接作为字体操作符,要么只是能够在字形呈现之间插入任意postscript命令?

1 个答案:

答案 0 :(得分:5)

是的,show运算符有几种变体可用于这样的事情:

  • x a y string ashow -
    在显示 string

    的时候,将( a x y )添加到每个字符的宽度
  • c x c y char string widthshow -
    在显示字符串时,将 c x ,c y 添加到 char 的宽度

  • c x c y char a x a y string awidthshow - 结合ashow和widthshow的效果

  • proc string kshow -
    string

  • 中显示的字符之间执行 proc

一些提示。由于postscript没有字符文字,因此常见的习惯用法是从1字节的字符串文字中提取整数值,以便为widthshowawidthshow提供 char 参数。例如

( ) 0 get %the space char, aka 32 or 16#20

除非你想要某种阶梯效应,否则所有 y 值都应为0.

每个字符之间由kshow执行的proc作为参数接收char-just-shown和char-about-to-be-shown,按顺序。这可能是为了让你在某种“kerning table”中查找这对。但我从来没有真正看到这件事。但如果不需要(通常),请记得弹出它们。


至于制作派生字体,我建议您使用codegolf.SE上的this answer of mine,它通过在Times-Roman周围绘制框来创建填字游戏字体。使用/ BuildChar过程中的setcachedevice运算符声明字符的宽度。对我来说,我只需要一个恒定的宽度,所以我用1将它直接绑定到字体大小。