藤田眞作先生の LaTeX マクロに関する著書は私のリファレンスになっている。著書で解説されているマクロはすべて先生のサイトで公開され,私も漢文訓読点用マクロをはじめ愛用させていただいている。
今日久しぶりに縦組で組む必要があり,先生の段落パッケージ sfdanrak.sty を使って段落開始時カギ括弧の字下げ調整を行おうとしたところ,全く機能しない。「え〜なんで?」『pLaTeX2e 入門・縦横文書術』を引っ張り出してきて該当の解説を読み直し,マクロの指定を確認したが間違っていない。
しばらく考えてようやく原因が判った。upTeX (ttk 氏による内部 Unicode 化された pTeX) にシステムを変更したため,sfdanrak.sty で処理判断に使われている漢字内部コードが従来と変ってしまったためだった。
\makeatletter \@tempcnta=`「 \the\@tempcnta \makeatother
とやるとオリジナル pTeX 従来なら 33141 が返されたのに対し,内部 Unicode 化が加えられた upTeX では 41430 が返却される。そこで sfdanrak.sty 中の内部コードで判定している定数を書き換え,さらに偶奇も変るため \ifodd の処理も修正しなければならなかった。
\ifnum\kakkocnt>33124 \ifnum\kakkocnt<33146 \ifodd\kakkocnt\setbox0=\lastbox\mbox{}\fi\fi\fi\fi#1}
を以下のように修正。
\ifnum\kakkocnt>41413 \ifnum\kakkocnt<41435 \ifodd\kakkocnt\else\setbox0=\lastbox\mbox{}\fi\fi\fi\fi#1}
これでとりあえず私の必要には適ったけれども,それ以外にも内部コード値を判定しているマクロがありそうだ。もう少しうまい対応策がないものか。
藤田先生はなにより化学構造式組版マクロ・パッケージ XyMTeX で有名である。一方で,伝統的和文組版についてもきめ細やかな知識をお持ちである。本書を読めば,日本の印刷文化に特有の組み方 (中・肩ツキルビ,俳句の倍どり組み,割書・割注,漢文訓点文,約物字下げ・ぶら下げ, etc., etc.) を実現するマクロを,我がものにできる。TeX 命令のみに基づいて組み方の工夫を解説しているため,LaTeX 周辺システムがどんなに進化しようとも,まったく古びるところがない。