troff でズンドコキヨシ


どうやら最近、troffに注目が(チョットだけ)集まっているようである。

というわけで、必然的に「troffでズンドコキヨシ」することになった。

ソースコード

zundoko.troff
.ps 14
.vs 17p
.nr RS ((\n(yr*12+\n(mo)*30+\n(dy)*7+(\n($$*27)
.nr RB 0
.de RB
.nr RB (\\n(RS/134217728)+(\\n(RS/4)%2
.nr RS \\n(RS%134217728*2+\\n(RB
..
.nr TC 28
.de RW
.RB
.nr TC -1
.if \\n(TC>0 .RW
..
.RW
.nr ZR 0
.de ZZ
Zun
.nr ZR +1
..
.de ZD
Doko
.if \\n(ZR>=4 .nr ZR (-1)
.if \\n(ZR>0 .nr ZR 0
..
.de ZL
.RB
.if \\n(RB=1 .ZZ
.if \\n(RB=0 .ZD
.if \\n(ZR>=0 .ZL
..
.ZL
KI-YO-SHI!

えっ、マクロパッケージ……? それナンテTeX?

実行してみる

動作確認: GNU troff (groff) 1.22.3

me@here$ groff zundoko.troff > zundoko.ps

これで次のように綺麗に組版されたPostScriptファイル zundoko.ps が出力される1
(ズンドコキヨシなので、もちろん実行する度に結果は異なる。)

groffの場合、プレーンテキストで出力させることもできる。(ただし紙面に出力した状態の模倣なので、大量の“余白”が出力される。)

me@here$ groff -Tascii zundoko.troff
Zun  Doko  Doko Doko Zun Doko Zun Zun Doko Doko Zun Doko Zun Doko
Doko Zun Doko Zun Doko Zun Zun Zun Doko Zun Zun Doko Doko Zun Zun
Doko Zun Zun Zun Zun Doko KI-YO-SHI!

(大量の空白行が続く)

まとめ

というわけで、とうとうtroffに手を出してしまった……(うわぁ)


  1. GhostScriptがインストールされていれば、ps2pdfコマンドでPostScript文書をPDF文書に変換できる。