2

在编写 postscript 文件时,可以选择如下字体:

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

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

4

1 回答 1

5

是的,有几种show操作符的变体可以用于这样的事情:

  • a x a y string   ashow   -在显示字符串
    时 将 ( a x , a 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   -在字符串显示的字符之间
    执行proc

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

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

除非你想要某种阶梯效应,否则所有的y值都应该是 0。

kshow 在每个字符之间执行的 proc 按顺序接收 char-just-shown 和 char-about-to-be-shown 作为参数。这大概是为了让您在某种“字距调整表”中查找这对。但我从来没有真正看到过这样做。但是如果不需要它们(通常),请记住弹出它们。


As for making a derived font, I refer you to this answer of mine on codegolf.SE which creates a Crossword Font by drawing boxes around Times-Roman. The width of the character is declared with the setcachedevice operator in the /BuildChar procedure. For mine, I just needed a constant width so I used 1 to tie it directly to the font size.

于 2012-04-05T04:48:14.043 回答