(前回の続き)
ここからは場外乱闘コーナー。
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」は「素敵なフォント」ではあるが残念ながら「アホなフォント」では決してないからである。
(まだ続いたりして)