【问题标题】:Change letter spacing in PostScript在 PostScript 中更改字母间距
【发布时间】:2017-11-23 00:39:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: fonts postscript eps


    【解决方案1】:

    是的,show 运算符有多种变体可用于以下用途:

    • ax ay 字符串 ashow -
      添加 (ax, ay) 到每个字符的宽度,同时显示 string

      李>
    • cx cy 字符字符串 widthshow -
      添加 (cx, cy) 到 char 的宽度,同时显示 string

    • cx cy char ax ay 字符串   awidthshow强> -
      结合ashow和widthshow的效果

    • proc 字符串 kshow -
      string

    • 显示的字符之间执行 proc

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

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

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

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


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 2023-03-21
      • 2014-12-06
      • 1970-01-01
      • 2011-07-05
      • 2016-10-07
      相关资源
      最近更新 更多