てふてふ君の症例検討会(その 1)
【はじめに】 今回から、各論に入るにあたり、記事の体裁を少し変えました。毎回、症例検討(ケーススタディ)として、さるギョーカイではおなじみの形とします。また、皆さんに解決策をお考えいただくために「処方箋」は「続き」以下にあり、最初から表示しないようにしました。症例検討会ですので、ここでの解決策がベストとは限りません。お気きの点がありましたら、コメントの形でご参加ください。また、取り上げてほしいケース(青空文庫作品)がありましたら、リクエストをお寄せください。最初のケースを始める前に、当検討会の処方の概略を少々…
各テキストが持っている「癖」をよく見極める事が大事な要点です。それを修正して、いかに「見てくれ」を良くするためには、おおざっぱに言うと以下の三つの分野に分けられます。
- JIS 0208 にない文字の表現方法
- 圏点など文字の各種装飾の処理
- 「下付き」などの文章のレイアウトの再現
どれを取ってみても、ケースが多々あり、課題山積ですが、今回はまずは、1. に関連したケースをとりあげます。
【症例】辻潤「え゛りと・え゛りたす」
【主訴】 題名の「え゛」が、横並びに表現されない
【現病歴】 青空文庫での、JIS 0208 という範囲内で原型をすべて再現できないのは自明の事で、第三水準、第四水準、はたまたユニコードという解決策はあるようですが、今回は、題名からいきなりユニコードにもない「え゛」が使われています。筆者辻潤の作った文字のようですが、横書きでは、なんとか読めますが、縦書き PDF となると、「え」と「゛」が上下行き別れになります。さて困った、解決策はあるのでしょうか?(下図)
解決策(処方箋)は、続きにあります。
【その処方】 今回の「え゛」はユニコードにもないのですから、該当する「文字コード」そのものを操作するわけにはいきません。TeX のテクニックだけでそうした文字を表現できるか試してみました。下記の処方を施し、解決した PDFです。
まず「え」と「゛」を並べてみます。
¥kintou{1.05zw}{え゛}
そのままだと、「え゛」と間延びしてしまうので、二字を均等割(¥kintou)にしてみました。また、1 文字の均等割に詰め込んでしまうと、間隔が窮屈になるので、1.05 文字という微妙な大きさにしました。この程度だと、上下の文字との釣り合いもとれます。ここで使った ¥kintou というマクロの定義は、
¥hbox to #1{%
¥kanjiskip=0pt plus 1fill minus 1fill
¥xkanjiskip=¥kanjiskip
#2}}
です。奥村先生作成のマクロ(okumacro.sty)の一部です。okumacro.sty は、「てふてふ君」にも仕込んでいます。(ただし、\ruby の定義の部分は、furikana.sty と衝突しますので、コメントアウトしています。)縦書きだと、これだけでは、上下行き別れの症状は解消されないので、
\rensuji{\kintou{1.05zw}{え゛}}\newcommand{\dakuten}[1]% {\leavevmode\rensuji{\hbox to 1zw{#1\hspace*{-0.25zw}゛}}} \dakuten{え}
としました。¥rensuji コマンドは、青空文庫テキストでも「縦中横」とある、縦書き文章の中での例外的な横並びを表現できますので、覚えておいて損はないと思います。「え゛」は、入力者注を含めて、三ヶ所ありますので、それを上記のように置換すれば、完了です。(マクロは、psitau さんのアドバイスによります。)(下図)
ここまでは、「てふてふ君」でも作成できるようにしましたが、前回の Tex ソースは、もうひとひねり、「後注」のマークや「|」が連続した長い縦棒(の一部)が、行先頭に来ないように、「均等割」を使って、前の行に「追い込ん」でいます。そこまでは、「てふてふ君」では自動処理はしていませんので、悪しからず。
次回のケースは、ガルシン 二葉亭四迷訳「四日間」です。今回触れなかった少し文字コードの話にも踏み込んでみたいと思います。お楽しみに!(^_^)/



UTFパッケージで上手くいき,OTFパッケージでは上手くいかない理由ですが,本質的な問題はmin10とjisとの差だと思われます.
\documentclass{jsarticle}
\newcommand{\kintou}[2]{%
\leavevmode
\hbox to #1{%
\kanjiskip=0pt plus 1fill minus 1fill
\xkanjiskip=\kanjiskip
#2}}
\begin{document}
\kintou{1.05zw}{え゛}
\end{document}
を試すと上手くいかないことが分かります.ちょっと考えてみましたが,
\newcommand{\dakuten}[1]{\leavevmode\rensuji{\hbox to 1zw{#1\hspace*{-0.25zw}゛}}}
のようなマクロを用意しておき,\dakuten{え}とすると,OTFパッケージでも上手くいきます.
(-0.25zwは適当に決めた数字です,あとoverfullがでますが,対処はしていません)
>psitau さんへ
アドバイスありがとうございます。otf パッケージを使って、マクロを仕込むとうまくいくようです。ただ、utf パッケージに比べて、3割方、ファイルがでかくなりますので、引き続き utf を使うようにします。(どうしても表示できない文字が出てきたらその時に考えます。)マクロそのものは、利用させていただきました。