unix版otfの穴?
この日は丸々一日殆ど誰とも喋らずにコード書き。
前日の不具合、「\LAGE や \small でサイズが変わらないの」をやっつけるべくtexと格闘。
朝の早い時点でotfパッケージを使用した時にだけ、この不具合が出ることを確認。
otfパッケージを使わず実装しようかと思うけど、ユニコードで簡体字、繁体字、ハングル、JISに無い漢字を扱えるのがおまけ機能にして最大のセールスポイントなのでここは譲れない。
otfパッケージのインストール具合が中途半端なのかと推測されたので、最初からotfパッケージを再構築。teTex、ptex、otfパッケージをすべてソースからコンパイルする羽目になった。
で、結局午前中かけて作業したものの不具合解消せず orz
相変わらずwindowsでは動くのでサーバーをwindows機にしようかという思いを何度も打ち消しながら、午後からもひたすら試行錯誤に励む。
「Unix版Ptexでotfパッケージを使用すると文字サイズを変更するコマンドは使用できない」
そういう仕様ということで諦めようかとかと思いかけていた頃に解決の糸口が見える。
texのソース内の簡体字、繁体字、ハングル、JIS外の漢字をOTFシーケンスに変換するために、Utf82TeXをオプションなしの起動の場合は\UTFKでなく\UTFMに変換されるように改造して使っているのだが、この\UTFM{xxxx}の文字はサイズ変更が利いている。
と言うことで2バイト文字の全てをUnicodeのコード番号で表現すべく、
utf-8で記述された、「utf-8.tex.tmp」内の、漢字、ハングルは\UTFM{xxxx}で、片仮名と平仮名を\UTF{xxxx}として「utf-8.tex」に出力するために、
かな用の拡張変換テーブルとして、utf82texrcで指定された場所、
たとえば/usr/local/etc/utf82tex/contrib/にkana.tblをダウンロードして追加しておいたうえで、
と実行してやると、
\usepackage[deluxe, expert, multi]{otf}
\begin{document}
片仮名 カタカナ\\
平仮名 ひらがな\\
簡体字 体发 \\
繁体字 體發 \\
ハングル 한글 \\
\end{document}
が
\usepackage[deluxe, expert, multi]{otf}
\begin{document}
\UTFM{7247}\UTFM{4eee}\UTFM{540d} \UTF{30AB}\UTF{30BF}\UTF{30AB}\UTF{30CA}\\
\UTFM{5e73}\UTFM{4eee}\UTFM{540d} \UTF{3072}\UTF{3089}\UTF{304C}\UTF{306A}\\
\UTFM{7c21}\UTFM{4f53}\UTFM{5b57} \UTFM{4f53}\UTFM{53d1} \\
\UTFM{7e41}\UTFM{4f53}\UTFM{5b57} \UTFM{9ad4}\UTFM{767c} \\
\UTF{30CF}\UTF{30F3}\UTF{30B0}\UTF{30EB} \UTFM{d55c}\UTFM{ae00} \\
\end{document}
と変換され,
その後,
dvipdfmx utf-8.div
で作成されたpdfは
右のような感じになる。
otfパッケージをまともに動かさないまま無理やり動作させた感じやけど、とりあえず解決としておこう。
何が一番辛かったってかな用の変換テーブル作るのが面倒くさかった。
いやー疲れた。