原稿用紙、その後

原稿用紙マクロが使えるようになった、ということで、一例として、原民喜の『夏の花』の一節を版組みしてみることにした……のだが、冒頭に出てくる:

         わが愛する者よ請う急ぎはしれ
         香わしき山々の上にありて、獐の
         ごとく小鹿のごとくあれ
で、「獐」(ノロ)という漢字が出てこない。うーむ。これは OTF パッケージを使う必要がありそうだ。

原稿用紙マクロは、桝目に文字を合わせるために独自のフォントメトリックを使っている。OTF パッケージも独自のフォントメトリックを使っているので、そのまま OTF パッケージを使用しようとすると、文字の配列が無茶苦茶になってしまうのだが、otf.sty を読み込むときのオプションに noreplace というのがあって、これを指定しておくと、フォントメトリックはそのままにして、文字を \UTF{} や \CID{} で読み込むことができる。

ということで、やってみると……あれれ?
(/usr/local/texlive/2011/texmf-dist/tex/platex/japanese-otf-uptex/otf.sty
! Too many }'s.
l.139 ^^I}
とエラーが出て処理が中断する。うーむ、これは原稿用紙マクロのせいなのかもしれないけれど、気になるのはふたつ。ひとつは、明らかに otf.sty を読み込んだところでこのエラーが出ている、ということ。そして、中括弧に起因するエラー、というのは、いわゆるネストを出入りするようなルーチンを書くときに、しばしば発生するものだ、ということ。ひょっとして、これは otf.sty の問題なのではないだろうか、と考えた。

otf.sty で、フォントメトリックの置換を行っているルーチンを見たが、ちょっと見ただけではよく分からない。では、原稿用紙マクロ以外でこのような現象が発生することがないのか、ちょっと試してみたところ……

\documentclass{article}

\usepackage[noreplace]{otf}

\begin{document}

これは OTF パッケージのテストです。

\end{document}
これを platex で処理すると……同じエラーが出るではないか。しかも、article では出るのに、jarticle や jsarticle では出ない。うーん……

ということで、思い切って TeX wiki で聞いてみたのがこれだ。原因はやはり、replace に関わるネストにあるようで、皆さんコーディングを検討して下さった。まずは感謝の意をここに表したい。

いくつかの改善案のひとつを基に otf.sty を書き換えると、article の場合も原稿用紙マクロの場合もうまくいくことが分かった。勿論、jarticle や jsarticle でもうまくいく。やはり、三人寄れば文殊の智恵とはよくも言ったもので、 TeX マクロに慣れている人の助けを借りるべきときは、こうやってお願いしてみるのが早道なのかもしれない。

(後記)ここで書かれている問題に関して改善された OTF パッケージ ver. 1.7b5 がリリースされた。齋藤修三郎氏の迅速な対応に対し、ここに深く感謝の意を表するものである。TeX Live 収録のパッケージも修正されたとのこと(CTAN の announcement)だが、現時点では CTAN や TUG のサーバでも反映されていない模様。少し気長に待つべきなのか? 余談だけれど、英語で Mr. Ueda と書かれたのは久しぶりのような気がする……知ってれば当然 Dr. Ueda とか Prof. Ueda とか書くだろうけれど、まあご存知なくて当然か。

2012/04/10(Tue) 16:31:29 | コンピュータ&インターネット
Tittle: Name:

Profile

T.T.Ueda
Tamotsu Thomas UEDA

茨城県水戸市生まれ。

横山大観がかつて学んだ小学校から、旧水戸城址にある中学、高校と進学。この頃から音楽を趣味とするようになる。大学は、学部→修士→博士の各課程に在籍し、某省傘下の研究所に就職、その2ヵ月後に学位を授与される(こういう経緯ですが最終学歴は博士課程「修了」です)。職場の隣の小学校で起こった惨劇は未だに心に深く傷を残している。

その後某自動車関連会社の研究法人で国の研究プロジェクトに参画、プロジェクト終了後は数年の彷徨を経て、某所で教育関連業務に従事。

New Entries

Comment

Categories

Archives(902)

Link

Search

Free

e-mail address:
e-mail address