2008/12/26

a2ps で作ったpsファイルを AcrobatDistiller でPDF化する(英語のみ)


1. english 環境で a2ps を実行する。
csh なら
$ eng a2ps ....
とやればOK


2. できた ps ファイルを編集。

/reentrant の定義後半 (153〜171行目)
163行目に dup を、167行目に pop を追加。(赤字部分)


...
currentdict /FontInfo known {
FontInfo

dup /UnderlinePosition known {
dup /UnderlinePosition get
0 exch FontMatrix transform exch pop
/UnderlinePosition exch def
} if

dup /UnderlineThickness known {
dup /UnderlineThickness get
0 exch FontMatrix transform exch pop
/UnderlineThickness exch def
} if
pop
} if
currentdict
end
} bind def
...

意味:
前のままだと、dup \UnderlineThickness known { ... } if で
{...}内を実行したときと、しなかったときで、スタックに積まれている要素が違ってきてしまっていた。{...}内を実行している分には何の支障もないが、実行しないと余分な要素がスタックに残ってしまう。ということで、{...}内を通るときも1つ残しておいて、出たらpopするようにしました。


意味的には以下のようにしてもOKかな。
ま、一つ上のifと同じようにしておいた方がきれいな気がするけど。

dup /UnderlineThickness known {
/UnderlineThickness get
0 exch FontMatrix transform exch pop
/UnderlineThickness exch def
} { pop } ifelse
参考ページ:
PostScript command summary
How to edit postscript
(日本語)
Postscript実習マニュアル (PDF・日本語)

0 件のコメント: