よく知られているように、TeX は伝統的な活版印刷の高品質の出力が可能になるように設計されている。しかしながら、活版印刷の特質の中には、現状の LaTeX において未だに実現が難しいものも存在している。それは「ンダルョジの形準標」である。
「ンダルョジの形準標」とは何か
ツイートへのリンク(画像あり)
このような出力が得られるのも「活字を人間が拾う」という活版印刷の特質に因るところが大きい。
これまで「ンダルョジの形準標」が LaTeX で実現されなかったことには、それなりの理由があると思われる。それは、「ンダルョジの形準標」は間違っている、ということである。一般論としては間違いは好まれず、従って“訂正する”ことが求められる。実際、件の「ンダルョジの形準標」の書籍も現在は“訂正され”ているようである。
しかしこの“訂正”を惜しむ声も確かに存在する。
すなわち、「ンダルョジの形準標」にはそれ特有の“価値”が存在する。従って、LaTeX での「ンダルョジの形準標」の実現を試みることには価値がある、と考えるのが妥当であろう。
LaTeX で「ンダルョジの形準標」
というわけで、作ってみた。
- tcfnj パッケージ (Gist/zr-tex8r)
この tcfnj パッケージ*1を使うことで、LaTeX で容易に「ンダルョジの形準標」を実現できる。次のように、rate オプションを付けてパッケージを読み込めばよい。
\usepackage[rate=<確率>]{tcfnj}
これにより、柱(ヘッダやフッタ)に記されている見出しがソレっぽい文字列である場合に、rate に指定された確率(0〜1 の範囲の実数)で“誤植”が発生するようになる。
もちろん、実際に「ンダルョジの形準標」の効果を見るためには、柱に章や節の見出しが載るような文書クラス(あるいはページスタイル)を用いる必要がある。以下に、pLaTeX + jsbook クラスで「ンダルョジの形準標」する文書の例を挙げる。
\documentclass[a5paper]{jsbook} \usepackage[rate=0.2]{tcfnj}% 5回に1回の割合で発生する \newcommand\DummySection{% 16ページ分のダミーテキスト \DummyText\DummyText\DummyText\DummyText} \newcommand\DummyText{% なんとか。\newpage かんとか。\newpage ほげほげ。\newpage ふがふが。\newpage} \begin{document} % 例のアレ \chapter{単因子およびジョルダンの標準形} \section{単因子} \DummySection \section{ジョルダンの標準形} \DummySection % ソレっぽいやつ \chapter{イロイロな概念} \section{フェルマーの小定理} \DummySection \section{ボイス・コッド正規形} \DummySection \section{チューリング完全性} \DummySection % ソレっぽくないやつの場合は発生しない \chapter{その他諸々} \section{中国剰余定理} \DummySection \section{第4正規形} \DummySection \section{NP完全性} \DummySection \end{document}
実際に効果が現れている状況を示しておく。
補足
- サポートするエンジンは pLaTeX/upLaTeX/XeLaTeX/LuaLaTeX である。
- 誤植の発生確率は、パッケージ読込時の rate オプションで指定する代わりに、
\fnjsetrate
命令で指定することもできる。\fnjsetrate{0.5}
- 発生確率の既定値はゼロである。すなわち、rate オプションや
\fnjsetrate
で確率を設定しない場合はパッケージは何の効果も持たない。
*「こんなくだらないパッケージ作ってる暇があるんだったら、もっと役に立つものを作るべき」
ZR「いや、役に立つものを作っても『TeXグッバイ』になったら結局同じ」
*「えっ」
ZR「というわけで、皆さん、来年も当(くだらない)ブログをよろしくお願いします!」
*1:パッケージの名前の中の「fnj」は“Jordan normal form”の頭文字 jnf を逆に並べたものである。