(前回の続き)
ここからは場外乱闘コーナー。
dvips で PostScript
(参照:アレ)
DVI ウェアとして dvips を使用する場合、PostScript special 命令を使って比較的自由に PostScript 言語のコードを書くことができる。そして周知の通り、PostScript でナベアツを実装するのは比較的容易である。ということは、次のようなことができることになる。
[nabeazz-ps.tex]
\documentclass{article} \newcommand*\NabeAzz[1]{% {\setlength{\unitlength}{1pt}% \makebox(216,68)[bl]{\special{" #1 NabeAzz}}}} % Outputs literal header to the PS file \special{! %!!!!!!!!!!!!!!!!!!!!!!!!!!!! BEGIN PostScript code /NA-norm-font /Palatino-Roman findfont 10 scalefont def /NA-funny-font /ZapfChancery-MediumItalic findfont 20 scalefont def /NA-leading 18 def /NA-space-width 5 def /NA-line-item-count 10 def /NA-put-space { NA-space-width 0 rmoveto } def /NA-form-line { gsave exec grestore 0 NA-leading neg rmoveto } def /NA-requires-funny { dup 3 mod 0 eq exch mark exch 10 string cvs (3) search { cleartomark pop true } { cleartomark } ifelse } def /NabeAzz { 4 dict begin /limit exch def /c 0 def /line-count limit NA-line-item-count div ceiling cvi def /one-line { { NA-line-item-count { /c c 1 add def c NA-requires-funny { NA-funny-font } { NA-norm-font } ifelse setfont c 10 string cvs show NA-put-space } repeat } NA-form-line } def gsave 0 NA-leading line-count 1 sub mul moveto line-count { one-line } repeat grestore end } def } %!!!!!!!!!!!!!!!!!!!!!!!!!!!! END PostScript code \begin{document} \NabeAzz{40} \end{document}
コンパイル手順は以下の通りで、出力は PostScript 文書である。PDF への変換はいつも通り。
latex nabeazz-ps dvips nabeazz-ps
結果として以下の出力が得られる。
ただし、これはナベアツ問題の条件を厳密には満たしていない。何故なら、「Zapf Chancery」は「素敵なフォント」ではあるが残念ながら「アホなフォント」では決してないからである。
(まだ続いたりして)