藤田先生の縦組パッケージ on upTeX

藤田眞作先生の 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}

これでとりあえず私の必要には適ったけれども,それ以外にも内部コード値を判定しているマクロがありそうだ。もう少しうまい対応策がないものか。
 

pLaTeX2ε入門・縦横文書術
藤田眞作
ピアソンエデュケーション

藤田先生はなにより化学構造式組版マクロ・パッケージ XyMTeX で有名である。一方で,伝統的和文組版についてもきめ細やかな知識をお持ちである。本書を読めば,日本の印刷文化に特有の組み方 (中・肩ツキルビ,俳句の倍どり組み,割書・割注,漢文訓点文,約物字下げ・ぶら下げ, etc., etc.) を実現するマクロを,我がものにできる。TeX 命令のみに基づいて組み方の工夫を解説しているため,LaTeX 周辺システムがどんなに進化しようとも,まったく古びるところがない。