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   -文字を表示しながら、 charの幅に
    ( c x , c y ) を追加します。

  • 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 は、引数として、表示されたばかりの文字と表示されようとしている文字をこの順序で受け取ります。これはおそらく、ある種の「カーニング テーブル」でペアを検索できるようにするためです。しかし、私は実際にこれが行われているのを見たことがありません。ただし、(通常は) 必要ない場合は忘れずにポップしてください。


派生フォントの作成については、Codegolf.SEのこの回答を参照してください。これは、Times-Roman の周りにボックスを描画してクロスワード フォントを作成します。文字の幅は、/BuildChar プロシージャの setcachedevice 演算子で宣言されます。私の場合、一定の幅が必要だったので、1を使用してフォントサイズに直接結び付けました。

于 2012-04-05T04:48:14.043 に答える