UTF-8 による TeX 文書の作成 — Utf82TeX
since Dec. 5 2003

carpe diem. 今日という日を摘め
  Hor. ホラーティウス Carm. I, 11, 8.
   

-   概要
-   開発の背景
-   機能仕様
-   動作条件
-   インストール (UNIX)
-   インストール (Windows)
-   利用の手引
-   秀丸エディタ
-   Jedit X, TeXShop
-   適用例
-   利用条件・謝辞
-   misima について
-   更新履歴
 

概要

 

本文書は UTF-8 多言語 LaTeX 文字変換プリプロセッサ Utf82TeX とその関連ツールの機能仕様,インストール,利用方法について示す. Utf82TeX は,UTF-8 文字テキストを pTeX で利用可能な形式に変換するプログラムである. pTeX で利用することを想定しつつ, TeX 文書を主要ヨーロッパ言語の本来の姿で記述することを目的としている.

パッケージは Perl 言語で記述された本体プログラムと,これを GNU Emacs 上で操作するための Elisp プログラム,その他ユーティリティからなる.Windows 秀丸エディタ, Mac OS X Jedit X, TeXShop から操作するためのマクロも同梱している.パッケージ最新版は http://yasuda.homeip.net/dl/dl.html からダウンロードできる.

Utf82TeX の仕様詳細については,『Utf82TeX 利用の手引き』を参照のこと.

開発の背景

 

日本語混在の多言語 TeX 文書を作成する場合,いちばん困るのはロシア語,フランス語などの非 ASCII コードの言語をすべて ASCII コードで表現せざるをえないことである. "Я люблю вас." というロシア語は,ローマントランスクリプションによって, "YA lyublyu vas." などと記述する.同様にフランス語 "Ça, déjeunons!" は "\c Ca, d\'ejeunons!" と.これでは面倒だし,直感的でないがゆえに,スペルミスなど誤りも多くなると考えるのは筆者だけではないはずだ.

多言語 TeX 文書を多言語コード Unicode で記述する試みに Omega (Lambda), XeTeX がある.しかしながらこれらは, Babel その他の言語パッケージのフォント/ハイフネーション環境との互換性,和文組版品質において,筆者の知る範囲では,まだ完成の域には達していないようである. LaTeX2e の枠組においては, unicode パッケージ, CJK パッケージ, Babel パッケージを併用する和文混在多言語組版方法もあり,これ自体たいへん高機能ではあるけれども,設定が面倒でもあり,縦組の品質がいまひとつであるなど和文の扱いに制限があるようだ.ある程度広範囲の外国語が混在した TeX 文書を欧文正書法に準拠しつつ作成したいけれども,なにより和文がきちんと組めないと困る.

一方 Mule2TeX という Mule 用の多言語 TeX ツールの労作 — なんとギリシア語や韓国語,中国語まで扱える — が存在するが, Nifty での配布であり,現時点で入手が容易とはいい難い.

Unicode 対応版 pTeX について最近,個人による拡張に着目すべき試みがある.土村展之氏は 2006/8/27 以降の ptetex3 で pTeX UTF-8 対応パッチを公開している. UTF-8 文書をコンパイルするには -kanji=utf8 オプション付きで platex コマンドを起動する. \usepackage[utf8]{inputenc} をプリアンブルで指定しておけば,ドイツ語,フランス語などのメジャーなラテン文字言語なら UTF-8 直接入力で処理できるようになった.内部的に UTF-8 -> EUC 変換を行う関係で,ロシア語などはいわゆる全角文字として扱われるため,フォント切替,分綴などの欧文処理が機能しない.とはいえ,ptetex3 は 今後の展開が大いに期待できる試みである.

2007/3/8 ttk 氏によって upTeX/upLaTeX が公開された.これは土村氏 ptetex3 の Unicode 対応をさらに推し進めて,pTeX 内部の Unicode 化を果たしたディストリビューションである.\kcatcode プリミティブの拡張, \disablecjktoken プリミティブの追加によって,欧文と和文 (漢字) の制御を試みている.ptetex3 では問題になるロシア語やギリシア語についても,きちんと欧文として処理し分けられるようにしただけでなく,CJK Extension にある文字種をサポートしており日中韓の文字空間を大幅に拡張している.多言語 TeX 使いにとってはこれから楽しみである.

このような状況において Utf82TeX プリプロセッサの意義は薄らぎつつある.けれどもタイ語など非 Unicode エンコーディングで組版しなければならない言語パッケージもまだ存在しているし,上記 Unicode 対応の試みが UNIX 以外のプラットフォームにも広がり,定着するにはもう少し時間がかかりそうである.アスキー pTeX をベースとした過去の資産をこれまで通りに利用できる,という意味において Utf82TeX はまだ余命を保っているといえるかも知れない.

※2010.8.16付記
北川さんが土村さんの ptexlive に対し e-TeX 拡張をしてくださった. ptexlive も 8 ビットコードとの親和性がさらに増し,いまやタイ語も UTF-8 入力で処理可能となった.ヴェトナム語 VnTeX もダブルアクセント記法ではなく UTF-8 直接入力をもっぱら考慮するようになった.その意味で,本プログラムはもはやほとんど存在意義がなくなってしまった.過去の pTeX を使い続ける頑なユーザのためのツールとして,ほそぼそとメンテナンスしていくこととする.

機能仕様

 

Utf82TeX は UTF-8 でコーディングされたファイルを標準入力から読み込み, pLaTeX で処理可能な文字,コントロールシーケンス(命令)に変換して標準出力に書き出す,言わばプリプロセッサである.西欧語,ロシア・東欧語,北欧語,教会スラヴ語を含むほとんどのキリル諸言語,複式アクセント文字からなる古典ギリシア語,日本語,中国語,韓国語をカバーできるものと考える.

以下,本プログラムの機能について説明する. [標準] としるした機能はオプションなしに実行されるものである. [​-x オプション] としたものは -x 実行オプション指定で働くものである.

- Latin-1, Latin-2 のラテン文字及び Unicode Cyrillic U+0400-04FF, Greek and Coptic U+0370-03FF, Greek Extended U+1F00-1FFF で定義されているキリル文字,ギリシア文字を,ローマントランスクリプション,もしくは TeX シンボル(文字命令)に変換する.コプト文字,一部のアクセント単体・記号類はサポートしていないものもある.システム標準変換テーブル (euro-tbl) に依って変換する. [標準]
 
- JIS X 0208 (JIS 第一・第二水準) に含まれない Unicode CJK 漢字を \UTFx{UCS2​十六進数形式} もしくは \CIDx{CID​番号} 形式に変換して出力する(以下「OTF 変換」). 標準では日本語として扱い \UTFM | \CID に変換されるが,\CIDC, \CIDT に変換される場合がある. \UTFx の x は日本語,中国語簡体字,中国語繁体字,韓国語に応じて,それぞれ M, C, T, K となる. \CIDx の場合は同様にそれぞれ \CID, \CIDC, \CIDT, \CIDK となる. Unicode CJK Unified Ideographs Extension B: CJK 統合漢字拡張 B 領域(U+20000 超のサロゲートペア)の文字もサポートしている.変換は CJK 変換テーブルに依存する. \UTFx, \CIDx は,齋藤修三郎氏による OTF パッケージ(開発版)の提供するコントロールシーケンスである. [標準]
 
- ハングルと判断できる文字を \UTFK{UCS2​十六進数形式} 命令に変換する. [標準]
 
- "▼" を前置することによって,特殊異体字を出力できる場合がある.たとえば「▼吉」とすると, \CID{13706} (吉野家の土吉) に変換する(以下「異体字特殊変換」).変換対象文字の場合,置換テキストのみを出力し, "▼" は出力しない.変換はテーブルに依存する.システム標準変換テーブル登録文字は以下のとおり.
c 吉 \CID{13706}        # tsuchi-yoshi
c 高 \CID{8705}         # hashigo-taka
c 崎 \CID{14290}        # tatsu-saki
c 碕 \CID{17009}        # tatsu-saki
c 浜 \CID{8531}         # mayu-hama
c 濱 \CID{8531}         # mayu-hama
c 角 \CID{13682}        # sagari-tuno
c 第 \CID{13910}        # dai-zokuji
c 間 \CID{13693}        # tsuki-ken
c 葛 \CID{7652}         # かつ飾区のくず
c 芦 \CID{7961}         # 芦
c 淫 \CID{4580}         # 婬
c 群 羣                 #
c 窓 \CID{5932}         # 窗
c 翻 飜                 #
c 餅 餠                 #
c 略 畧                 #
c 隣 鄰                 #
c 連 \CID{13517}        # 聯
c 欲 慾                 #
c 糾 糺                 #
c 萌 萠                 #
	   
c に続く文字が変換対象となる文字であり,そのすぐ右が変換後の文字シーケンスである.登録基準はとくにない.筆者が適当に選んだものである.追加修正はシステム標準変換テーブル,もしくは拡張変換テーブルに対して,上に示した定義を真似て行えばよい. [標準]
 
- タイ語単語境界分割プログラム swath 及び,コード変換プログラム iconv を使って, UTF-8 タイ語テキストを TIS-620 タイ語文字コードに変換した上,単語境界 (​\wbr​) を挿入し,「​^^十六進数形式」に変換する. -T と同時に指定された場合,-T が優先される.「​^^十六進数形式」とすることによって,本来 TIS-620 でテキストを記述しなければならないタイ語 Thai​LaTeX がアスキー・メディアワークス配布のオリジナル pTeX でも処理できるようになる. swath, Thai​LaTeX の活用については「CJK, Unicode パッケージ,ロシア語多書体の利用」を参照. [​-t オプション]
[ 変換前(UTF-8 タイ語)]
เป็นมนุษย์

[ 変換後(TIS-620 十六進数)]
^^e0^^bb^^e7^^b9{\wbr}^^c1^^b9^^d8^^c9^^c2^^ec{\wbr}
	   
- タイ語単語境界分割プログラム swath を使って, 単語境界 (​\wbr​) を挿入する.エンコードは UTF-8 のままである. -t と同時に指定された場合,-T が優先される. ptexlive の場合は -t よりも -T で UTF-8 のまま処理することをお勧めする. [​-T オプション]
[ 変換前(UTF-8 タイ語)]
เป็นมนุษย์

[ 変換後(UTF-8 タイ語)]
เป็น{\wbr}มนุษย์{\wbr}
	   
- 拡張変換テーブルの定義に従って変換する. Utf82TeX では,独自の文字変換を定義した拡張変換テーブルを追加できる.パッケージには大友康寛氏より提供されたグルジア語,ヴェトナム語及び機種依存文字の変換テーブルを同梱している. [​-x オプション]
 
- CJK 統合漢字を -c オプションのオペランド指定 C, T, K に応じてそれぞれ, \UTFC | \CIDC (中国語簡体字), \UTFT | \CIDT (中国語繁体字), または \UTFK | \CIDK (韓国語) の OTF 命令に変換する.同じ文書に日中韓テキストが混在すると, Unicode CJK 統合漢字仕様で同一コードポイントに割り当てられた文字で,かつ各国語表記で微妙に字体の異なるものが,同一文字に包摂されて組版されてしまう.また日中韓で位置の異なる句読点も一律になってしまう. Emacs 上でリージョンを指定しつつ本変換を行うと, OTF パッケージの機能の恩恵に与って,それぞれの文字,句読点を出力し分けることができる. [​-c オプション]
 
- -c オプションでは CJK 漢字全般に対し指定変換がひとしなみに適用されてしまう.これに対し,対象テキストをタグで明示することによって適用範囲/変換種別を制御することができる. <utf8​2tex_x> タグ以降の漢字を \UTFx | \CIDx に変換する.すなわち, x の値が c, t, k によってそれぞれ \UTFC | \CIDC (中国語簡体字), \UTFT \CIDT (中国語繁体字), \UTFK | \CIDK (韓国語) の OTF 命令に変換する. </utf8​2tex_x> タグもしくは </utf8​2tex> タグによって元の変換規則に戻る. <utf8​2tex_x> </utf8​2tex> タグは出力されない.仮に -c オプションで K (韓国語) が指定されていても <utf8​2tex_c> タグ以降 </utf8​2tex> タグもしくは別の <utf8​2tex_x> タグまでは中国語簡体字として扱う.和文の間に中国語,韓国語が混在する場合,本タグでマーキングしておくと,オプション如何によらず \UTFx | \CIDx 命令で出力し分けることができる.句読点 (。、.,) の場合,直前に \penalty10000 を挿入し,そこで改行がなされないようになっている. [標準]
[ 変換前 ]
<utf82tex_k>平骨練。      % 韓国語
<utf82tex_c>平骨练。      % 中国語簡体字
<utf82tex_t>平骨練。      % 中国語繁体字
</utf82tex>平骨練。森鷗外  % 和文に復帰

[ 変換後 ]
\UTFK{5e73}\UTFK{9aa8}\UTFK{7df4}\penalty10000\UTFK{3002}
\UTFC{5e73}\UTFC{9aa8}\UTFC{7ec3}\penalty10000\UTFC{3002}
\UTFT{5e73}\UTFT{9aa8}\UTFT{7df4}\penalty10000\UTFT{3002}
平骨練。森\UTFM{9dd7}外
	   
- オプション指定により,ドイツ語ウムラウト付き文字,エスツェットを \ なしで出力する. [​-g オプション]
 
- オプション指定により,ラテン文字アクセント付きシーケンスをブレース付きで出力する.例えばアクセント付き文字 é{\'e} に変換する.この形式だと BibTeX でも処理できる.逆に,このオプションを指定した変換結果は,ispell フランス語,ドイツ語 TeX 7 ビット表記用辞書において語の要素として認識されない.またカーニングが無効となる影響がある. -g オプションが同時に指定されていると機能しない(-g 優先). [​-b オプション]
 
- U+0080 超エリア UTF-8 コードを「^^十六進数形式」に変換する(以下「エスケープ形式変換」).変換テーブル対象欧文文字, CJK 統合漢字,仮名,ハングル及び JIS 句読点は,本変換の対象には含まれない. ただし,キリル文字 (U+0400​--​U+04FF) とギリシア文字 (U+0370​--​U+03FF 及び U+1F00​--​U+1FFF) は変換対象とする. pTeX では, 8 ビットキャラクタの入力ではエラーとなっても,この形式だと受け付けて正常に処理できる場合がある. [​-h オプション]
 
- <utf82tex_h> 開始タグと </utf82tex_h> 終了タグで囲んだテキスト範囲をエスケープ形式変換する.タグは変換結果に出力されない. [標準]
 
- T2A キリル・フォントエンコーディングで定義されたキリル文字を, T2A のシンボル命令で出力する(以下「T2A 変換」). pTeX ではもっぱら OT2 フォントエンコーディングを用いるが, PSCyr の書体を利用したいというような, T2A で処理しなければならない場合に利用する.変換の定義は T2A 変換テーブル (t2a-tbl) に記述されている. [​-r オプション]
 
- <utf82tex_r> 開始タグと </utf82tex_r> 終了タグで囲んだテキスト範囲を選択的に T2A 変換する.タグは変換結果に出力されない. -h が指定されていても有効である. [標準]
 
- SlavTeX 古代教会スラヴ語パッケージの記法で記述した教会スラヴ語テキストを OldSlav 文字シンボルに変換する(以下「OldSlav 変換」).変換の定義は教会スラヴ語変換テーブル (ocs-tbl) に記述されている. SlavTeX, OldSlav 教会スラヴ語パッケージについては「古代教会スラヴ語 SlavTeX 利用の手引き」及び「​TeX での古代教会スラヴ語の利用について」を参照. -r オプションが同時に指定されていると機能しない(-r 優先). [​-s オプション]
 
- <utf82tex_s> 開始タグと </utf82tex_s> 終了タグで囲んだテキスト範囲を選択的に OldSlav 変換する.タグは変換結果に出力されない. -h が指定されていても有効である. [標準]
 
- <utf82tex_n> 開始タグと </utf82tex_n> 終了タグで囲んだテキスト範囲を変換対象としない.タグは変換結果に出力されない. [標準]
 
- ptexenc PTEX_IN_FILTER 用のモードを用意している.-p オプションを指定すると,キリル文字及びギリシア文字のエスケープ形式変換,JIS X 0208 範囲外漢字/ハングルの OTF 変換,タイ語単語境界挿入 (-T オプションと等価) のみを行う.ラテン文字や上記以外の文字については入力のまま出力する. エスケープ形式変換は -h オプションの場合とは異なり,キリル文字及びギリシア文字のみに限定される. -x オプションが同時指定されている場合,拡張変換テーブルに従って変換を行う.異体字特殊変換は原則行わない.ただし,異体字変換規則が拡張テーブルに記述されている場合はその規則に応じて異体字特殊変換を行う. -r, -s, -h, -g, -b が同時指定されていても無視する.また, <utf82tex_r|s|h> タグがマークアップされていても無視する. [​-p オプション]
 
- Windows Cygwin から使用すると,Windows 環境を検知してしまう関係で,標準ではうまく動作しない.Cygwin 環境でインストールして使う場合は, -w オプションを指定して実行できる.インストールは UNIX に準拠して行うこと. [​-w オプション]
 

変換対象外の文字についてはそのまま出力する.おもに日本語仮名は UTF-8 で出力される. ptetex3, upTeX, ptexlive, eplatex の場合は, -kanji=utf8 を指定すれば,UTF-8 のままコンパイルが可能である.従来の UTF-8 未対応 pTeX の場合は,Utf82TeX 実行後, platex 処理の前に,さらに iconv 等のコード変換ツールを利用して日本語 EUC, SJIS, JIS 文字コードに変換しておく.

変換テーブルにおける文字変換仕様は以下の原則に従っている.

(1)ラテン文字 T1 エンコーディング
(2)キリル文字
ロシア語(旧正書法含む),ウクライナ語:
  可能な限り OT2 エンコーディング(ローマントランスクリプション)に則った. -r T2A 変換オプション指定時は T2A エンコーディングの文字命令に準拠した.
教会スラヴ語:
  OldSlav 形式変換指定では OldSlav 独自 (LST) エンコーディング.それ以外では原則 T2D エンコーディング.
その他キリル諸語:
  T2A, T2B, T2C, T2D エンコーディング.
(3)ギリシア文字    原則 Babel LGR エンコーディング.一部 Teubner パッケージの記法に基づく場合がある.

Utf82TeX で処理するのはあくまで文字に限定されるので,各種言語を TeX で処理するために必要な指定 (たとえば Babel の言語オプション指定など) は利用者でコーディングしておくことに注意されたい.また, Thai​LaTeX, OTF などの前提となる TeX パッケージをあらかじめ導入しておき, TeX 文書にもしかるべく指定しなければならない.

LaTeX OT2 キリル・エンコーディングにおけるローマントランスクリプション変換の問題は,キリル文字と1対1対応でないがゆえの曖昧さである.たとえば, "тс" に対し "ts" に変換すると,通常は LH フォントのリガチャの定義に従って "ц" で組版されてしまう. Utf82TeX ではこの問題への対応として,ロシア語正書法に鑑み,以下2点の変換仕様を試みに採用している.

  • "тс" は ("с" または "С" の直前に "т" または "Т" が出現するとき) "t\-s\empty " ("t", "s" はそのときのケースにより大文字となる) に変換する. "\-" はハイフネーション許可を示す.
  • "сх" は ("х" または "Х" の直前に "с" または "С" が出現するとき) "s​\textcompwordmark​{}​h" ("s", "h" はそのときのケースにより大文字となる) に変換する. "\textcompwordmark" はリガチャ/ハイフネーション禁止を示す.

動作条件

 

Utf82TeX 本体は実行環境として Perl 5.8.0 以降が必要である. "perl -version" とコマンドを投入して,お手持ちのバージョンを確認いただきたい. FreeBSD 8-RELEASE, Mac OS X 10.6.4 Snow Leopard にて開発/動作試験を行っている. Linux などの他の UNIX 系 OS でも動作するはずである.

Windows では ActivePerl をインストールしておく.Windows 2000 SP.4, Windows XP SP.2 (ActivePerl) で動作確認済みである. Windows 98/Me ではタイ語オプションは動作しないようになっている.

タイ語処理機能 (-t | -T オプション) を利用する場合は, swath 0.3.4 以上があらかじめインストールされていなければならない.

Utf82TeX は UTF-8 エンコーディングテキストを入力前提とする.したがってテキストの編集には UTF-8 が扱えるエディタが必要である. Emacs の Utf82TeX ドライバ Elisp を利用するには,当然ながら GNU Emacs が前提となる.

Emacs 20 または 21 で教会スラヴ語,辺境キリル言語,古典ギリシア語を表示・編集する場合には,別途 Unicode サポートパッケージが必要である. Emacs 20.7 では Mule-UCS または Otfried Cheong 氏作成の oc-unicode パッケージが利用できる. Emacs 21 では Mule-UCS のみである. Emacs 22 は標準で Unicode をサポートしている.

Unicode フォントについては,電子書体オープンラボが配布する /efont/, Markus Kuhn 氏による ucsfonts フォント等を組み込んでおく.

Emacs では Leim パッケージによって多国語インプットメソッドがサポートされている. Unicode キリル言語,古典ギリシア語については Quail インプットメソッドを自前で書いた. インストール,利用方法は「Emacs スラヴ語/古典ギリシア語汎用インプットメソッド」を参照.

Emacs スラヴ語/古典ギリシア語汎用インプットメソッド, Utf82TeX Elisp は FreeBSD Emacs 20, 21 で作成した. Windows Meadow でも利用可能である. Mac OS X では X11 用にビルドした Emacs, Emacs.app Version 9.0-rc2 で動作確認済みである.それぞれの Unicode 環境については,「​Emacs 21 Unicode 環境」, 「Windows Meadow 2.10 多言語環境の設定」, 「Windows Meadow 3.00」, 「 Mac OS X Tiger, X11-Emacs 22.0.50」を参照.

Windows 秀丸エディタから利用する場合,さらに Java 5.0 環境が必要である.提供マクロの内部で misima SOAP Java クラスライブラリを使用しているためである.動作確認は秀丸エディタ Version 6.09 で行っている.

Mac OS X Jedit X Version 1.42, TeXShop Version 2.14 で動作確認を行っている.

インストール
UNIX

 

以下の手順で導入する. %, # はそれぞれ Tcsh の一般ユーザ,スーパーユーザのコマンドプロンプトを示す.

  1. パッケージの入手と展開

    Utf82TeX パッケージ utf82tex-1009.{tar.gz, zip}ダウンロード・サービスから取得し,アーカイバで解凍する.

    % wget -nH -nd \
    http://yasuda.homeip.net/archives/\
    utf82tex-1009.tar.gz
    % gunzip -c utf82tex-1009.tar.gz | tar xvf -
    % cd utf82tex-1009
    		  
  2. インストールパスの修正

    パッケージにはインストール用 Makefile を添付している.以下に示す格納パスなどの変数値を適宜修正する. PREFIX, UTF82TEXDIR, UTF82TEXPATH は変更しないことを強く勧める.

    PREFIX         = /usr/local
    EMACS          = $(PREFIX)/bin/emacs
    EMACSPATH      = $(PREFIX)/share/emacs
    UTF82TEXDIR    = $(PREFIX)/etc/utf82tex
    UTF82TEXPATH   = $(PREFIX)/bin
    UTF82TEXELPATH = $(EMACSPATH)/site-lisp
    		  
  3. make によるインストール

    スーパーユーザ権限で GNU Make を実行する. FreeBSD の場合 gmake である.

    # make utf82tex-install
    		  
  4. 手動によるインストール

    付属 Makefile によらず,手動でインストールする手順を示す.

    % cd utf82tex-1009
    % su -m
    [ Utf82TeX 用ディレクトリ作成 ]
    # mkdir -p /usr/local/etc/utf82tex
    [ 各種ファイルのコピー ]
    # cp -p config/utf82texrc /usr/local/etc/utf82tex
    # cp -p tables/*-tbl /usr/local/etc/utf82tex
    # cp -p -R contrib /usr/local/etc/utf82tex
    [ utf82tex モジュールのインストール ]
    # install -v -m 755 modules/utf82tex /usr/local/bin
    # install -v -m 755 modules/utf8cat /usr/local/bin
    # install -v -m 755 utils/ulatex /usr/local/bin
    # install -v -m 755 utils/genchrtbl /usr/local/bin
    [ utf82tex.el のバイトコンパイル ]
    # cd elisps && \
      emacs -batch -f batch-byte-compile utf82tex.el
    [ utf82tex.elc の Emacs ロードパスへの格納 ]
    # cp -p elisps/utf82tex.elc \
      /usr/local/share/emacs/site-lisp
    # exit
    % rehash
    		  
  5. UTF82TEXRC 環境変数の設定

    環境変数 UTF82TEXRC にコンフィギュレーションファイルの絶対パスを設定する.ログインシェルの初期設定ファイル (tcsh なら .tcshrc) に記述しておくとよい.この環境変数がセットされていない場合,またコマンドラインオプション -f でファイル指定しない限りにおいて, /usr/​local/​etc/​utf82tex/​utf82texrc を仮定する.本設定は付属 Makefile の標準パスでインストールした場合不要である.

    tcsh: 
     setenv UTF82TEXRC /usr/local/etc/utf82tex/utf82texrc
    bash:
     export UTF82TEXRC=/usr/local/etc/utf82tex/utf82texrc
    		  
  6. UTF82TEXOPT 環境変数の設定

    環境変数 UTF82TEXOPT にユーザのデフォルトオプションを設定しておくことができる.ここに例えば -Tw を設定しておくと,コマンドラインオプションを指定しなくても,タイ語単語境界分割済み UTF-8 出力,Cygwin 環境の指定を行ったことと同じになる.これは任意である.

    tcsh: 
     setenv UTF82TEXOPT -Tw
    bash:
     export UTF82TEXOPT="-Tw"
    		  
  7. コンフィギュレーションファイルの編集

    パス情報システム標準値を変更したいなら,インストール環境に応じてコンフィギュレーションファイル設定値(式の右辺)を修正する.記述は Perl の文法に準拠する必要がある.とくにタイ語関連外部プログラム $SWATH, $SWOPT オプションを確認する. UNIX 系 OS では,添付 Makefile の標準設定で導入したならば,コンフィギュレーションファイルの編集は必要ないと思う.

    # swath プログラムのファイル名を絶対パスで指定する.
    $SWATH   = "/usr/local/bin/swath";
    # swath プログラムのオプションを指定する.(原則変更不可)
    # ただし単語分割アルゴリズムを追加してもよい(以下は標準)
    $SWOPT   = "-f latex";
    # $ECHO echo (for Unix)
    $ECHO    = "/bin/echo";
    # システム標準変換テーブルを絶対パスで指定する.
    $EUR_TBL = "/usr/local/etc/utf82tex/euro-tbl";
    # CJK変換テーブルを絶対パスで指定する.
    $CJK_TBL = "/usr/local/etc/utf82tex/cjk-tbl";
    # キリル T2A 変換テーブルを絶対パスで指定する.
    $T2A_TBL = "/usr/local/etc/utf82tex/t2a-tbl";
    # 教会スラヴ語変換テーブルを絶対パスで指定する.
    $OCS_TBL = "/usr/local/etc/utf82tex/ocs-tbl";
    # 拡張変換テーブル格納ディレクトリ名を絶対パスで指定する.
    # 拡張変換テーブルはいくつ登録してもよい.
    $EXT_DIR = "/usr/local/etc/utf82tex/contrib";
    		  
  8. PTEX_IN_FILTER の登録

    ptexlive の PTEX_IN_FILTER として utf82tex を用いたい場合は,PTEX_IN_FILTER 環境変数に utf82tex の絶対パスを登録しておく.ただし,PTEX_IN_FILTER は原稿ファイル以外にもマクロファイル等のあらゆるファイルに適用されるため,コンパイル速度が遅くなる. PTEX_IN_FILTER は UNIX 系 ptexenc のみの機能である.

インストール
Windows

 

c:\> はコマンドプロンプトでの入力を示している. Cygwin 環境の場合は, UNIX の記述に準じて行うこと.

  1. パッケージの入手と展開

    ブラウザなどで utf82tex-1009.zip をダウンロードし,ワーク(ここでは c:\tmp とする)に解凍する.

  2. インストールパスの修正

    パッケージには Utf82TeX インストール用バッチファイル install.​bat を添付している.これをエディタで開いて,以下に示すインストール先パス情報などの変数値を適宜修正する. LaTeX を c:\usr\local\bin にインストールしているなら修正は不要である.utf82texdir, extdir は変更しないことを強く勧める.

    set bindir=c:\usr\local\bin
    set screxe=runscr.exe
    set utf82texdir=c:\usr\local\etc\utf82tex
    set extdir=c:\usr\local\etc\utf82tex\contrib
    		  

    とくに screxe を確認いただきたい.角藤先生の W32TeX において ConTeXt がインストールされていると, LaTeX プログラムをインストールした実行バイナリ・フォルダ (通常 C:\usr\local\bin) のなかに runscr.​exe かもしくは perlexec.​exe が存在するはずである.この名称を screxe に指定する.

    標準では以下のとおりインストールされるものとしている.

    - utf82tex c:\usr\local\bin\utf82tex
    - utf8cat c:\usr\local\bin\utf8cat
    - screxe c:\usr\local\bin\runscr.exe
    - swath c:\usr\local\bin\swath.exe
    - swath データ c:\usr\local\bin\data
    - utf82texrc c:\usr\local\etc\utf82tex\utf82texrc
    - utf82tex テーブル c:\usr\local\etc\utf82tex
    - utf82tex 拡張テーブル c:\usr\local\etc\utf82tex\contrib
  3. バッチコマンドによるインストール

    install.bat を実行する.以下のようにコマンドプロンプトから指示してもよいし,エクスプローラからこのファイルをダブルクリックしてもよい.

    C:\tmp\utf82tex-1009>install
    		  
  4. UTF82TEXRC 環境変数の設定

    環境変数 UTF82TEXRC にコンフィギュレーションファイルの絶対パスを設定する. Windows ではシステムプロパティで以下の対を登録する.

    キー: UTF82TEXRC
    値 : C:\usr\local\etc\utf82tex\utf82texrc
    		  
  5. UTF82TEXOPT 環境変数の設定

    環境変数 UTF82TEXOPT にユーザのデフォルトオプションを設定しておくことができる.これは任意である.

    キー: UTF82TEXOPT
    値 : -T
    		  
  6. コンフィギュレーションファイルの編集

    エディタで C:\usr\local\etc\utf82tex\utf82texrc を編集する.標準値と同じ環境なら修正は不要である.標準値を変更したいなら,インストール環境に応じてコンフィギュレーションファイル設定値(式の右辺)を修正する.記述は Perl の文法に準拠する必要がある.とくにタイ語関連外部プログラム $SWATH, $SWOPT オプションを確認する. Windows の場合,プログラムのパスは,実行可能を示す拡張子 (exe, com など) をもつファイル名でなければならない.

    # swath プログラムのファイル名を絶対パスで指定する.
    $SWATH   = "c:/usr/local/bin/swath.exe";
    # swath プログラムのオプションを指定する.
    # Windows は単語分割アルゴリズム追加必須(以下は標準)
    $SWOPT   = "-f latex -d c:/usr/local/bin/data";
    # $CAT utf8cat for Windows only
    $CAT     = "perl c:/usr/local/bin/utf8cat";
    # 文字変換基本テーブルを絶対パスで指定する.
    $EUR_TBL = "c:/usr/local/etc/utf82tex/euro-tbl";
    # CJK変換テーブルを絶対パスで指定する.
    $CJK_TBL = "c:/usr/local/etc/utf82tex/cjk-tbl";
    # キリル T2A 変換テーブルを絶対パスで指定する.
    $T2A_TBL = "c:/usr/local/etc/utf82tex/t2a-tbl";
    # 教会スラヴ語用 変換テーブルを絶対パスで指定する.
    $OCS_TBL = "c:/usr/local/etc/utf82tex/ocs-tbl";
    # 拡張変換テーブル格納ディレクトリ名を絶対パスで指定する.
    $EXT_DIR = "c:/usr/local/etc/utf82tex/contrib";
    
    		  

    フォルダセパレータは / を用いることができる. Windows 本来の \ でもよいが,これを指定するときは, \\ のように二つ指定しなければならないことに注意 (Perl 文法に準拠のため).

    タイ語処理を行いたいユーザは, $SWOPT のうち -d オプションを必ず指定する.これは swath の分割アルゴリズムデータの格納場所である.タイ語処理のときのみ参照される.詳細は swath のマニュアルを参照のこと.

    Perl プログラム perl.exe への実行パスを通しておく.環境変数 PATHperl.exe が格納されているフォルダ (c:\Perl\bin など) が設定されていることを確認しておく.

利用の手引

 

Utf82TeX は,コマンドラインでの utf82tex コマンド及び GNU Emacs コマンドの二つの操作をサポートしている.

  1. コマンド書式
    utf82tex [ -r|-s|-g|-b|-t|-T|-x|-h|-u|-q|-d|-w|-p|-c {KCT}|
               -f "rcfile" ] [input] [> output]
    		

    [ ] 内は任意である.

    [input] 入力ファイル,[> output] 出力ファイルが省略された場合,それぞれ標準入力,標準出力となる.

    "|" は同時に指定可能であることを示す. -tx のような指定もできる. -x を同時に指定すると,拡張変換テーブル,システム標準変換テーブルの順に内容が優先される. -r, -s オプションを指定すると,それぞれ T2A 変換テーブル,教会スラヴ語変換テーブルの定義が優先される. -r, -s オプションを同時に指定すると,-r を優先する. -c オプションを指定すると指定パラメータに従って漢字について中国語簡体字,中国語繁体字もしくは韓国語への変換が優先される.

    { } 内の文字は -c 指定時 K, C, T のいずれかひとつが必須であることを示す.複数指定時は最後のものが有効となる.

  2. 標準機能(オプション指定なし)
    • キリル文字,ラテン文字,ギリシア文字をローマントランスクリプションまたは TeX シーケンスに変換する.
    • JIS X 0208 範囲外の CJK 漢字を \UTFM | \CID の OTF 命令に変換する.
    • ハングルを \UTFK{UCS2​十六進数} に変換する.
    • <utf82tex_x> タグ以降の CJK 漢字を, x の値 c, t, k によってそれぞれ \UTFC | \CIDC, \UTFT | \CIDT, \UTFK | \CIDK の OTF 命令に変換する. <utf82tex_x> タグもしくは </utf82tex> タグによって元の変換規則に復帰する.タグそのものは出力されない.
    • <utf82tex_r> タグ以降のキリル文字を T2A シンボルに変換する. </utf82tex_r> タグによって元の変換規則に復帰する.タグそのものは出力されない.
    • <utf82tex_s> タグ以降の文字を OldSlav シンボルに変換する. </utf82tex_s> タグによって元の変換規則に復帰する.タグそのものは出力されない.
    • <utf82tex_h> タグ以降のキリル文字,ギリシア文字,変換テーブルにない U+0080 超エリア文字をエスケープ形式に変換する. </utf82tex_h> タグによって元の変換規則に復帰する.タグそのものは出力されない.
    • <utf82tex_n> タグ以降の文字は変換対象としない. </utf82tex_h> タグによって元の変換規則に復帰する.タグそのものは出力されない.
  3. オプション説明
    -r キリル文字を T2A のシンボルに変換する.
    -s 文字を OldSlav 教会スラヴ語のシンボルに変換する.
    -g ドイツ語オプション.äöüÄÖÜß をそれぞれ "a"o"u"A"O"U"s に変換する.
    -b ラテンアクセント付き文字の変換結果に外側ブレースを付加する.BibTeX 向け.例えば é を {\'e} に変換する.
    -t タイ語テキストを TIS-620 コードに変換し, swath によって単語分割境界をマーキングし,結果を「​^^十六進数」形式に変換する. swath がインストールされていなければならない. -T と同時に指定された場合,-T が優先される.
    -T タイ語テキストに swath によって単語分割境界をマーキングし,結果を UTF-8 で出力する. ThaiLaTeX-0.4.3 以降では UTF-8 直接入力がサポートされたので,こちらを利用したほうがよいと思う. swath がインストールされていなければならない.
    -x 拡張変換テーブルを使って文字を変換する.拡張変換テーブル用のディレクトリに格納されたすべてのテーブルを読み込み,システム標準変換テーブルにマージする.拡張変換テーブルの定義はシステム標準変換テーブルよりも優先される.複数の拡張変換テーブルの間で定義が重複している場合,その優先度は Perl readdir 関数が返す拡張テーブルエントリの順番に依存する. 2006.12 時点ではグルジア語用,ヴェトナム語用,機種依存文字用を読み込む.
    -c CJK 統合漢字を \UTFx{UCS2​十六進数} 形式に変換する.本オプションを指定する場合 -c に続けて以下のいずれかを選択しなければならない.
    K 韓国語として扱い, \UTFK | \CIDK 形式に変換する.
    C 中国語簡体字として扱い, \UTFC | \CIDC 形式に変換する.
    T 中国語繁体字として扱い, \UTFT | \CIDT 形式に変換する.
    -h 標準機能変換対象外の文字を「^^十六進数」エスケープ形式に変換する.ただし,キリル及びギリシア文字は変換対象とする.
    -f オペランドに指定したコンフィギュレーションファイルに従って処理を行う.このオプションを省略したときは環境変数 UTF82TEXRC の設定値,次いで /usr/​local/​etc/​utf82tex/​utf82texrc 設定値が参照される.標準設定と異なるコンフィギュレーションを参照して処理を行いたい場合に指定する.
    -p PTEX_IN_FILTER mode.
    -w Cygwin mode.
    -q 致命的エラー以外は報告しない.エラーは標準エラー出力に表示する.
    -d デバッグ.開発者用.
    -u 簡易ヘルプ,コンフィギュレーション設定値を表示する.
  4. .emacs への記述追加

    Emacs の初期設定ファイル (標準では .emacs) に以下の設定を行う.

    ;; Utf82TeX.el のロード
    (require 'utf82tex)
    
    ;; Utf82TeX のインストールパス
    (setq utf82tex-path "/usr/local/bin/utf82tex")
    
    ;; Utf82TeX rcfile の絶対パス
    (setq utf82tex-rc   "/usr/local/etc/utf82tex/utf82texrc")
    
    ;; Utf82TeX による変換後のバッファ・エンコーディング
    ;;   Emacs で利用できるコーディングシステムのシンボルを記述する.
    ;;   Emacs の TeX モードでエンコーディングを設定していると指定が
    ;;   有効にならない場合がある.
    (setq utf82tex-out-encoding 'utf-8)
    		  
  5. Emacs での変換

    Emacs 上で UTF-8 TeX 文書作成をしつつ,そのバッファに対し Utf82TeX 変換を指示するためのコマンドを以下に示す.

    M-x utf82tex-region RET
      指定したリージョンを Utf82TeX 標準機能 (-q オプション付) で変換し,置き替える.
     
    M-x utf82tex-t2a-region RET
      utf82tex -rq に同じ.キリル T2A 変換.
     
    M-x utf82tex-germany-region RET
      utf82tex -gq に同じ.ドイツ語変換.
     
    M-x utf82tex-ocs-region RET
      utf82tex -sq に同じ.教会スラヴ語変換.
     
    M-x utf82tex-thai-region RET
      utf82tex -tq に同じ.タイ語変換.
     
    M-x utf82tex-thai-ucs-region RET
      utf82tex -Tq に同じ.タイ語変換 (UTF-8 出力).
     
    M-x utf82tex-hex-region RET
      utf82tex -htq に同じ.十六進数変換.
     
    M-x utf82tex-korean-region RET
      utf82tex -q -c K に同じ.韓国語変換.
     
    utf82tex-chinese-simplified-region RET
      utf82tex -q -c C に同じ.中国語簡体字変換.
     
    M-x utf82tex-chinese-traditional-region RET
      utf82tex -q -c T に同じ.中国語繁体字変換.
     
    M-x utf82tex-extend-region RET
      utf82tex -xq に同じ.拡張テーブル変換.
     
    M-x utf82tex-buffer RET
      当該バッファを Utf82TeX 標準機能で変換し,置き替える.
     
    M-x utf82tex-create-buffer RET ファイル名 RET
      当該バッファを Utf82TeX 標準機能で変換し,指定したファイル名で新しいバッファを作成し,カレントバッファを切り替える.同時にファイルを格納する.この時 utf82tex-out-encoding 変数で指定したコーディングシステムに設定する.
  6. 拡張変換テーブル

    利用者で独自に変換規則を追加したい場合,定義ファイルを UTF-8 エンコーディングで作成し,拡張変換テーブル用ディレクトリに格納する.登録テーブル数はいくつでもよい.拡張変換テーブルのファイル名は OS 仕様に準拠していれば任意である.書式は以下のとおりである.

    # コメント行
    e 変換前 変換後 # コメント
    c 変換前 変換後 # コメント
    		  

    先頭の e, c は固定である. e は基本変換の定義である. c は "▼" を前置したときに適用する異体字特殊変換の定義を示す.要素は空白文字(スペース,タブ)で区切って記述する.はじめの二つの空白文字を区切りとして認識する.二つ目の空白文字列に続く文字列を「変換後」として扱う.三つ目の空白文字列よりも後の文字列に # が存在すると,当該文字列以降を「コメント」として無視する.「変換前」には変換対象としたい一文字の UTF-8 キャラクタを指定する.「変換後」には,「変換前」を置換すべき文字ないし TeX コントロールシーケンスを記述する.行頭に # を記述すると当該行をコメントとする.コメントは Utf82TeX の動作には影響しない.

    複数の拡張テーブル間で定義が重複すると,あとから読まれたテーブル内容が優先される.入力の順番は Perl readdir 関数の仕様に依存する.重複時のオーバーロード内容は標準エラーに出力されるので,定義が上書きされてしまうような場合は,メッセージを確認し,ファイル名称を変えることにより読み込み順序を変更するなどの対処が必要となる.

  7. genchrtbl ユーティリティ

    添付 Makefile, install.bat で拡張変換テーブル生成支援ユーティリティ util/​genchrtbl がインストールされる.これは,拡張変換テーブルのテンプレートを生成するツールである.作成したい Unicode 文字のコードポイント範囲を十六進数で指定すると,指定コードポイント範囲でテーブルの雛形テキストを生成し,標準出力に書き出す.

    e UTF-8文字  *  # U+コードポイント Unicode文字名称
    		  

    出力されたテキストを Unicode 対応エディタで開き, * の部分に対してユーザの変換したい TeX シーケンスを記述していけばよい. Perl Unicode 実装においてコードポイントの文字が未定義文字の場合,テキスト行頭に # を付加し,コメント行として生成する. # 以降の文字列 (Unicode コードポイント,文字名称) はコメントであり,削除・修正しても構わない.

    たとえば,以下のように実行すると,キリル文字のテーブルテンプレート cyrtmpl.tbl が生成される. U+xxxx 以降の Unicode 文字名称は Utf82TeX が読み込む際にはコメント扱いとなる.

    % genchrtbl 0400 04ff > cyrtmpl.tbl
    % cat cyrtmpl.tbl
    e Ѐ * # U+0400: CYRILLIC CAPITAL LETTER IE WITH GRAVE
    e Ё * # U+0401: CYRILLIC CAPITAL LETTER IO
    e Ђ * # U+0402: CYRILLIC CAPITAL LETTER DJE
    e Ѓ * # U+0403: CYRILLIC CAPITAL LETTER GJE
    e Є * # U+0404: CYRILLIC CAPITAL LETTER UKRAINIAN IE
             ......
    		  

秀丸エディタ

 

秀丸エディタで編集中のテキスト領域を指定してマクロを実行することにより,直接 Utf82TeX 変換結果を当該テキスト領域に貼付けることができる.

秀丸エディタ用のツールは install.bat ではインストールされない.以下の手順で別途設置が必要である.

  1. Java クラスライブラリ

    パッケージ hidemaru フォルダにある misima SOAP Java クラスライブラリ misima.jar を適当な場所にコピーし,その絶対パスを CLASSPATH 環境変数に登録する.

  2. 秀丸マクロ

    hidemaru フォルダ内のマクロ *.mac を秀丸エディタの「マクロ登録」画面から登録する.マクロファイルと Utf82TeX オプションとの関係は以下のとおり.マクロ名,ショートカットはこれに応じて利用者で分かりやすいものに設定する.

    マクロファイル名 概略(オプション)
    utf82tex-std.mac 標準変換(-qx)
    utf82tex-germany.mac ドイツ語用(-qgx)
    utf82tex-t2a.mac キリルT2A用(-qrx)
    utf82tex-thai.mac タイ語用(-qtx)
    utf82tex-ocs.mac 教会スラヴ語用(-qsx)
    utf82tex-chinese-simplified.mac 中国語簡体字用(-qx -c C)
    utf82tex-chinese-traditional.mac 中国語繁體字用(-qx -c T)
  3. 注意事項

    Utf82TeX 用マクロは,utf82tex Perl モジュールの場所をハードコーディングしている.もし Utf82TeX インストールを標準値以外のディレクトリに対して実施した場合,マクロを開いて以下のパスを修正すること.このときフォルダ・セパレータ記号(円記号)は必ず二個記述すること.

    $Perl = "C:\\Perl\\bin\\perl.exe";
    $Prog = "C:\\usr\\local\\bin\\utf82tex";
    		

Jedit X,
TeXShop

 

Jedit X, TeXShop 各エディタで編集中のテキスト領域を指定して AppleScript を実行することにより,直接 Utf82TeX 変換結果を当該テキスト領域に貼付けることができる.

ツールは make ではインストールされない.以下の手順で別途設置が必要である.

  1. ディスクイメージのマウント

    添付 Utf82TeX-MacOSX.dmg をダブルクリックしてマウントする.すると Finder に JeditX と TeXShop フォルダが表示される.

  2. Jedit X

    Jedit X を起動して,スクリプトウィンドウを表示させる.JeditX 内のスクリプトファイル *.scpt をすべて選択して,スクリプトウィンドウにドラッグする.これでマクロ登録は完了である.

  3. TeXShop

    TeXShop を起動して,マクロエディタを表示させる.「新規マクロ」をクリックして「内容:」のエリアに,TeXShop フォルダ内の提供スクリプト内容を貼付ける.スクリプトを開くにはUTF-8が読めるエディタが必要であるが,TeXShop そのもので開いてコピーすればよい.「項目名:」にはスクリプトファイル名に応じた名称を利用者で入力する.これをスクリプト分繰り返して,「保存」をクリックすれば登録が完了である.メニューの並びはマウスで項目名をドラッグして調整する.

  4. 注意事項

    Jedit X, TeXShop AppleScript は utf82tex が /usr/local/bin にインストールされていることを前提にしている.Utf82TeX を標準値でない場所に格納した場合は,各スクリプトの utf82tex パスを,実際にインストールしたパス名で修正しなければならない.

適用例

 

Utf82TeX の変換操作は コマンドライン utf82tex コマンド,GNU Emacs,秀丸, Jedit X, TeXShop からの実行指示をサポートしている.ここではコマンドライン利用と Emacs 変換での適用例を示す.

  1. TeX 文書の準備

    たとえば,以下のような TeX 文書ファイル (multilang.tex) を UTF-8 エンコーディングで作成・準備する.スラヴ語はキリル文字,ギリシア語は複式アクセント含めギリシア文字で記述する.フランス語,ドイツ語もその本来の文字で表現する. Latin-1, Latin-2 で定義されているアルファベットの範囲をサポートしているのでおもな西欧語,北欧語,東欧語がそのままの姿で記述できるはずである.日本語,中国語,韓国語も包摂の問題を置けば,それぞれの言語を表現できる.

    なお,この文書をコンパイルするためには, Babel, Unicode, OTF, VnTeX-3, Thai​LaTeX, SlavTeX, OldSlav, Teubner のパッケージが必要である.また Babel 言語オプションに japanese を指定している. CTAN からダウンロードして組み込んでおく.なお,本パッケージはこれとほぼ同じ機能の日本語言語定義を babel/ ディレクトリ下に添付しているので, nippon.* を TeX ツリーにコピーして利用できる.

    % -*- coding: utf-8 -*-
    % Utf82TeX sample TeX file
    % (c) 2004-2005, Isao YASUDA, isao@yasuda.homeip.net
    % $Id: utf8test.tex,v 1.12 2007/07/14 14:00:59 isao Exp $
    \documentclass[a4paper]{jsarticle}
    \usepackage[utf8x]{inputenc}
    \usepackage[OT2,T2A,T2B,T2C,T2D,T1]{fontenc}
    \usepackage[thai,vietnam, % Babel by ThaiLaTeX, VnTeX
                russian,ukrainian,
                french,german,czech,
                oldchurchslavonic,% OldSlav
                polutonikogreek,
                japanese]{babel}
    \languageattribute{oldchurchslavonic}{slavdate}
    \usepackage{thswitch}     % ThaiLaTeX encoding switch
    \usepackage{teubner}      % Teubner
    \usepackage{pscyr}        % PSCyr
    \usepackage[deluxe,expert,multi]{otf}
    \renewcommand{\encodingdefault}{T1}
    \renewcommand{\familydefault}{cmr}
    \renewcommand{\baselinestretch}{1}
    \addtolength{\textheight}{36pt}
    \addtolength{\topmargin}{-24pt}
    \DeclareFontFamily{LST}{cmr}{}%
    \DeclareFontShape{LST}{cmr}{m}{n}{<-> s * [1.12] fslavrm}{}%
    \begin{document}
    \parindent=0pt
    \begin{center}
     \Large\bfseries p\LaTeX{} 多言語文書サンプル\par
     \large Babel,CJK(OTF),Vn\TeX{},Thai\LaTeX{},\SlavTeX{}
    \end{center}
    
    \hfill isao yasuda, 2010.9.9\qquad\qquad%
    
    \selectlanguage{french}
    \section{フランス語 Français}
    %% utf82tex default option
    Souvent, la main portée au front, debout sur les 
    vaisseaux,tandis que la lune se balançait entre 
    les mâts d'une façon irrégulière, je me suis surpris, 
    faisant abstraction de tout ce qui n'était pas le but 
    que je poursuivais, m'efforçant de résoudre ce 
    difficile problème!
    
    \hfill 
    {\em Conte de Lautréamont, «Les Chants de Maldoror»}%
    \qquad\qquad
    
    \hfill\today
    
    \selectlanguage{german}
    \section{ドイツ語 Deutsch}
    %% utf82tex default option
    Dann ließ sie ihre Hände langsam über meine Wangen
    heruntergleiten, und ihr Blick ruhte mit unendlicher
    Innigkeit auf mir.
    Sie schüttelte den Kopf mit einem schmerzlichen Ausdruck,
    als könnte sie irgend etwas nicht fassen.
    ,,Mußst du denn schon heute weg?{}`` 
    fragte sie leise.
    
    \hfill 
    {\em A. Schnitzler, «Die Frau des Weisen»}%
    \qquad\qquad
    
    \hfill\today
    
    \selectlanguage{czech}%
    \section{チェコ語 Czech}
    %% utf82tex default option
    Posláním sdružení je vytvářet předpoklady 
    pro všestranné využívání a další rozvoj jazyka 
    počítačové typografie \TeX{} a příbuzného 
    programového vybavení pro stolní tisk, 
    zejména mezi českými a slovenskými uživateli.
    
    \hfill 
    {\em Czechoslovak \TeX{} Users Group}%
    \qquad\qquad
    
    \hfill\today
    
    \selectlanguage{japanese}
    \section{Latin-1,Latin-2}
    %% utf82tex default option
    ÄÁÅÂÀÃ ÏÍÎÌ ÜÚÛÙ ËÉÆÊÈ ÖÓØÔÒÕ ~Þ ÝÐÇÑ ¡¿\\
    äáåâàã ïíîì üúûù ëéæêè öóøôòõ ßþÿýðçñ\\
    ÁĄÂĂ ÍÎ Ú{\selectlanguage{czech}Ů}Ű ÉĘĚ ÓŐÔ 
    ŔŘŢŤÝŚŞŠĐĎĹŁĽŹŻŽĆÇČŃŇ\\
    áąâă íî ú{\selectlanguage{czech}ů}ű éęě óőô 
    ŕřţťýśşšđďĺłľźżžćçčńň
    
    \selectlanguage{russian}
    \section{ロシア語 %
    \fontencoding{OT2}\selectfont{}Русский}
    %% utf82tex default option
    \fontencoding{OT2}\selectfont
    Прежде всего откроем тайну которую Мастер 
    не пожелал открыть Иванушке.
    Возлюбленную его звали Маргаритою Николаевной.
    Все, что Мастер говорил о ней, было сущей правдой.
    Он описал свою возлюбленную верно.
    Она была красива и умна.
    
    \hfill {\em М. Булгаков, <Мастер и Маргарита>}
    
    %% utf82tex -r: Cyrillic T2A option.
    %% <utf82tex_r> T2A control
    \fontencoding{T2A}\selectfont
    АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\\
    абвгдежзийклмнопрстуфхцчшщъыьэюя
    %%</utf82tex_r>
    
    \hfill\today
    
    \selectlanguage{ukrainian}%
    \section{ウクライナ語}
    %% utf82tex -r: Cyrillic T2A option.
    %%<utf82tex_r>
    \fontencoding{T2A}\selectfont%
    \textac{% PSCyr Akademicheskaja font
    Відвідуючи меморіальні музеї Гете, Пушкіна, 
    Толстого, кожен звертає увагу на колосальні 
    особисті бібліотеки цих титанів світової культури. 
    Має і український народ подібного велета. 
    Це---Тарас Шевченко. }
    %%</utf82tex_r>
    
    \hfill 
    {\em \textlatin{\tt http://kobzar.info/our/library/}}
    
    \hfill\today
    
    
    \selectlanguage{japanese}%
    \section{教会スラヴ語 \protect\SlavTeX{}}
    \selectlanguage{oldchurchslavonic}%
    %%<utf82tex_s> OldChurchSlavonic control
    "Аще же под\ъ кл'ятвою <ил`и qлуч'енiемъ
    <архiер'ейскимъ <ил`и <iер'ейскимъ б'ысть, <ил`и 
    "аще кл'ятву <oтц`а своег`w <ил`и м'атере свое`я 
    навед`е на с`я, <ил`и своем`у прокл'ятiю
    подпад`е, <ил`и кл'ятву преступ`и, <ил`и <ин'ыми 
    н'экiими грэх^и "jкw челов'экъ связ'ася: 
    %%</utf82tex_s>
    
    \hfill 
    {\em \SlavTeX{} \textlatin{sample}} \qquad\qquad
    
    \hfill\today
    
    
    \section{教会スラヴ語その他キリル諸語}
    %% utf82tex default option
    \fontencoding{T2D}\selectfont
    T2D: Ѡѡ Ѥѥ Ѧѧ Ѩѩ Ѫѫ Ѭѭ Ѯѯ Ѱѱ Ѷѷ Ѹѹ Ѻѻ Ѽѽ Ѿѿ Ҁҁ %
    
    \fontencoding{T2A}\selectfont
    T2A: ҐґҒғҘҙҚқҜҝҰұҲҳҸҹҺһӔӕӘә
    
    \fontencoding{T2B}\selectfont
    T2B: ҖҗӃӄӅӆӇӈӉӊӋӌӠӡ 
    
    \fontencoding{T2C}\selectfont
    T2C: ҊҋҌҍҎҏҔҕҞҟҴҵҶҷҼҽҾҿӍӎ 
    
    \fontencoding{OT2}\selectfont
    \textlatin{OT2}: ѢѲѴ ѣѳѵ
    
    \section{古典ギリシア語}
    %% utf82tex default option
    \begin{verse}
    Ἄνδρα μοι ἔννεπε, Μοῦσα, πολύτροπον, ὃς μάλα πολλὰ\\
    πλάγχθη, ἐπεὶ Τροίης ἱερόν πτολίεθρον ἔπερσε.\\
    πολλῶν δ'' ἀνθρώπων ἴδεν ἄστεα καὶ νόον ἔγνω,\\
    πολλὰ δ'' ὅ γ'' ἐν πόντῳ πάθεν ἄλγεα ὃν κατὰ θῡμόν,\\
    ἀρνύμενος ἥν τε ψῡχὴν καὶ νόστον ἑταίρων.\\
    ἀλλ'' οὐδ'' ὧς ἑτάρους ἐρρύσατο, ἱέμενός περ·\\
    αὐτῶν γὰρ σφετέρῃσιν ἀτασθαλίῃσιν ὄλοντο,\\
    νήπιοι, οἳ κατὰ βοῦς Ὑπερίονος Ἠελίοιο\\
    ἤσθιον· αὐτὰρ ὁ τοῖσιν ἀφείλετο νόστιμον ἦμαρ.\\
    τῶν ἁμόθεν γε, θεά, θύγατερ Διός, εἰπὲ καὶ ἡμῖν.
    \end{verse}
    
    \hfill 
    [ \textit{Ὅμηρος} ] \qquad\qquad
    
    ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ %
    αβγδεζηθικλμνξοπρσς %
    τυφχψω\\
    ΆἉἊἋἌἍἎἏ ἀἁἂἃἄἅἆἇ ἘἙἚἛἜἝ ἐἑἒἓἔἕ %
    ἨἩἪἫἬἭἮἯ ἠἡἢἣἤἥἦἧ\\
    ἸἹἺἻἼἽἾἿ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ ὈὉὊὋὌὍ ὀὁὂὃὄὅ %
    ὙὛὝὟ ὐὑὒὓὔὕὖὗ\\
    ὨὩὪὫὬὭὮὯ ὠὡὢὣὤὥὦὧ ὰά ὲέ ὴή ὶί ὸό ὺύ ὼώ\\
    ᾈᾉᾊᾋᾌᾍᾎᾏ ᾀᾁᾂᾃᾄᾅᾆᾇ ᾘᾙᾚᾛᾜᾝᾞᾟ ᾐᾑᾒᾓᾔᾕᾖᾗ\\
    ᾨᾩᾪᾫᾬᾭᾮᾯ ᾠᾡᾢᾣᾤᾥᾦᾧ ᾸᾹᾺΆᾼ ᾰᾱᾲᾳᾴᾶᾷ\\
    ῈΈ ῊΉῌ ῂῃῄῆῇ ῘῙῚΊ ῐ ῑ ΐ ῒ ῖ ῗ\\
    ῠῡ ῢΰ ῤῥ ῦῧ ῨῩ ῪΎ Ῥ ῸΌῺΏῼ ῲῳῴῶῷ\\
    ΆΈΉΊΌΎΏ ΪΫ άέήίόύώ ϊϋ ΐΰ ϐ ϴϑ ϒϓϔ 
    ϕϖϗ Ϙϙ Ϛϛ Ϝϝ Ϟϟ Ϡϡ ϰ ϱ ϲ ϳ ϵ ϶· δ᾽
    
    \textlatin{Greek Accents}\\
    ʹ ͵ ͺ ; ΄ ΅ · ᾽ ι ᾽ 
    ῀ ῁ ῍ ῎ ῏ ῝ ῞ ῟ ῭ ΅ ` ´ ῾ 
    
    \hfill\today
    		  
    \selectlanguage{thai}%
    \def\wbr{\hskip0pt plus0.6pt minus0.6pt\relax}%
    \section{タイ語 ภาษาไทย}
    %% utf82tex -T: Thai translate option,
    (Norasi family)\\
    เป็นมนุษย์สุดประเสริฐเลิศคุณค่ากว่าบรรดาฝูงสัตว์เดรัจฉานจงฝ่าฟันพัฒนาวิชาการอย่าล้างผลาญฤๅเข่นฆ่าบีฑาใครไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่าหัดอภัยเหมือนกีฬาอัชฌาสัยปฏิบัติประพฤติกฎกำหนดใจพูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอยฯ

    \hfill\today

    \fontfamily{garuda}\selectfont
    (Garuda family)\\
    เป็นมนุษย์สุดประเสริฐเลิศคุณค่ากว่าบรรดาฝูงสัตว์เดรัจฉานจงฝ่าฟันพัฒนาวิชาการอย่าล้างผลาญฤๅเข่นฆ่าบีฑาใครไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่าหัดอภัยเหมือนกีฬาอัชฌาสัยปฏิบัติประพฤติกฎกำหนดใจพูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอยฯ

    \hfill\today
    \hfill {Thai\LaTeX{} \em samples} \qquad\qquad
    
    \selectlanguage{vietnam}%
    %%<utf82tex_n>
    \section{ヴェトナム語 Tiếng Việt}
    Phần ``Những câu hỏi và giải đáp thường gặp'' 
    (viết tắt từ tiếng Anh là FAQ) được nêu ra ở 
    đây nhằm mục đích thu thập những câu hỏi thường 
    gặp trong thực tế và những lời giải 
    đáp thích hợp nhất của nó.
    Từ lần ấn bản cuối cùng đến nay, đã có những sự 
    thay đổi khá lớn trong cấu trúc của FAQ.  
    \textbf{Để hiểu rõ hơn bạn nên xem lại
      chương ``Làm sao tôi có thể đọc đuợc FAQ''.}
    %%</utf82tex_n>
    
    \hfill {\em CJK samples} \qquad\qquad
    
    \hfill\today
    
    \clearpage
    \parindent=10pt
    \selectlanguage{japanese}%
    \section{日本語}
    %% utf82tex default option.
    雪後庵は起伏の多い小石川界隈の高臺にあつて、%
    幸ひに戰災を免かれた。%
    三千坪に及ぶ名高い小堀遠洲流の名園と共に、京都のとある名刹から%
    移された中雀門も、奈良の古い寺をそのまゝ移した玄關や客殿も、%
    あとに建てられた大廣間も、何一つ損なはれてゐなかつた。
    
    戰後の財產税さわぎの只中に、
    雪後庵は元の持主の實業家の茶人の手から、%
    美しい元氣な女主人の手に渡つて、たちまち名高い料理屋になつた。
    
    \hfill 三島由紀夫『宴のあと』\qquad\qquad
    
    \vspace{1em}%
    森鷗外,▼吉野家,内田百▼間
    \qquad 森鷗外は草彅君と髙島屋に行く。內田百閒は𠮷野家で祈禱書を讀む。
    
    
    骨練平。
    
    \hfill\today
    
    \section{韓国語}
    %% utf82tex default option.<utf82tex_k>
    이 FAQ 은 자주 반복되는 질문과 그에 대한 대답을 간단명료한 %
    양식으로모아 엮어졌습니다. 
    이 FAQ 의 구조는 지난 판에 비하여 획기적으로변경되었습니다.
    \textbf{상세한 것은 ``이 FAQ 을 어떻게 읽을
      것인가'' 라는 대목을 참조하시기 바랍니다.}
    
    \hfill {\em CJK samples} \qquad\qquad
    
    %% utf82tex -c K: Korean option.
    \vspace{1em}%
    骨練平。
    %</utf82tex>
    
    \section{中国語・簡体字}
    %% utf82tex -c C: Chinese Simplified Kantaiji option.
    %% <utf82tex_c>
    本常问问答集~(FAQ list)~%
    是从一些经常被问到的问题及其适当的解答中,%
    以方便的形式摘要而出的。%
    跟上一版不同的是,其编排结构已彻底改变。%
    \textbf{有关新结构的细节,%
    可参考「如何阅读本问答集及了解其编排结构」该项中的说明。}
    
    \hfill {\em CJK samples} \qquad\qquad
    
    \vspace{1em}%
    骨练平。
    %</utf82tex>
    
    \section{中国語・繁体字}
    %% utf82tex -c T: Chinese Traditional Hantaiji option.
    %% <utf82tex_t>
    本常問問答集~(FAQ list)~%
    是從一些經常被問到的問題及其適當的解答中,%
    以方便的形式摘要而出的。%
    跟上一版不同的是,其編排結構已徹底改變。%
    \textbf{有關新結構的細節,
    可參考「如何閱讀本問答集及了解其編排結構」該項中的說明。}
    
    \hfill {\em CJK samples} \qquad\qquad
    
    \vspace{1em}%
    骨練平。
    %</utf82tex>
    \end{document}
    		  

    ptexlive は UTF-8 との親和性が高い.VnTeX ヴェトナム語も UTF-8 直接入力で処理するほうがよいと思われるので,その場合はヴェトナム語テキストを <utf82tex_n> タグで囲んで,変換対象としないようにする.タイ語も UTF-8 のまま ptexlive で処理できる.その場合は,utf82tex 起動オプションに -T を指定する.また, \usepackage[utf8x]{inputenc} をプリアンブルに書いておく.

  2. コマンドラインからの変換

    Utf82TeX はフィルタプログラムであり,本来コマンドラインからの利用を想定している.大量の文書を一括で処理するのにはコマンドラインからの変換が便利なことが多い.以下の例では, UTF-8 による TeX 文書を multilang.tex とし, pLaTeX で処理可能な成果物 multilang.utf を生成する.その後, pLaTeX でコンパイルする.参考までにテスト文書の最終成果物である multilang.pdf を掲載しておく.

    % utf82tex -Tq multilang.tex > multilang.utf
    % platex -kanji=utf8 multilang.utf
    % dvipdfmx multilang.dvi
    		  

    これは土村氏の UTF-8 対応 pTeX の場合である.-kanji=utf8 オプションが使えない場合,以下のように iconv, nkf 等により EUC, SJIS, JIS にコード変換しておく.

    % utf82tex -txq sample.tex | nkf -e > sample.utf
    % platex sample.utf
    % dvipdfmx sample.dvi
    		  

    UTF-8 の TeX ファイルがカレントディレクトリにたくさんあって,これらを一括して Utf82TeX 変換し,platex コンパイルしたい場合, tcsh ならば以下のようにすればよい.実行後, dvi と pdf ファイルができているはずである.

    % ls
    u1.tex  u2.tex  u3.tex  u4.tex  u5.tex
    % foreach i (*.tex) 
    foreach? set JOBN=`basename $i .tex`
    foreach? utf82tex -txq < $i | \
    ? iconv -c -f UTF-8 -t ISO-2022-JP > $JOBN.jis
    foreach? platex $JOBN.jis
    forache? dvipdfmx $JOBN.dvi
    foreach? end
    ...
    %
    	   
  3. ulatex コマンド

    修正のたびに上記のようにいちいち utf82tex, iconv, platex, dvipdfmx コマンド群をタイプするのは億劫だというユーザは, ulatex ユーティリティを利用できる. "ulatex <UTF-8 TeX ファイル名>" を実行することによって,同一ジョブ名の PDF 生成まで自動化できる.ファイルの .tex 拡張子は省略できる. ulatex は UTF-8 の TeX ファイルを処理する簡易 platex コマンドのようなものである.

    ulatex ユーティリティは UNIX 用シェルスクリプト, Windows 用バッチファイルとして添付されている.以下のように単純なものなので,ユーザの好みで PS 変換などを加えたりしていただきたい.変数の設定でパス値をインストール環境に合わせておく必要がある.ご利用の pLaTeX 環境が SJIS ならば JPCODE 変数は SHIFT-JIS にしてもよい.以下のコードでは JIS になっており, platex-euc でも platex-sjis でもコンパイル可能のはずである.

    UNIX 版 ulatex は引数が複数指定されると,最後のものは TeX ファイルとして扱い,残りを dvipdfmx に渡すようになっている. "ulatex -l test" とすると -l オプションで dvipdfmx が起動され landscape で pdf が生成される.

    また UNIX 版 ulatex では,コンパイル・ログに references の warning が出力されている場合,未解決の参照があるものとして最大 MAXC 回数 (5 回) まで platex を再実行するようになっている.

    #!/bin/sh
    # ulatex: Utf82TeX utility for simply compiling
    #   usage: ulatex <dvipdfmx opt..> <UTF-8 TeX file>
    #                                   isao yasuda, 2006(c)
    # $Id: ulatex,v 1.1 2006/12/07 09:08:55 isao Exp $
    
    # valuables
    PREFIX=/usr/local
    UTF82TEX=$PREFIX/bin/utf82tex       # Utf82TeX path
    ICONV=$PREFIX/bin/iconv             # iconv path
    JPCODE=ISO-2022-JP                  # platex charset
    OPT=-txq                            # utf82tex option
    PLATEX=$PREFIX/teTeX/bin/platex     # platex path
    DVIPDFMX=$PREFIX/teTeX/bin/dvipdfmx # dvipdfmx path
    MAXC=5                              # platex compile max
    
    # argc check
    if [ $# -lt 1 ]; then 
        echo usage : `basename $0` <dvipdfmx opt...> \
          <tex-file>
        exit
    fi
    
    # argv 
    while [ $# -gt 1 ]
    do
        DVIOPT=`echo -n "$DVIOPT $1"`
        shift
    done
    JOBname=`basename $1 .tex`
    
    # Utf82TeX, iconv conversion
    echo Utf82TeX jobname: $JOBNAME\; \
         opt: $OPT\; jp-code: $JPCODE\; processing...
    $UTF82TEX $OPT < $JOBNAME.tex | \
        $ICONV -c -f UTF-8 -t $JPCODE > $JOBNAME.jis
    
    # platex compile
    $PLATEX $JOBNAME.jis
    
    # reference definition check
    EC=1
    while [ $EC -lt $MAXC ]
    do
        grep -e "^LaTeX Warning.*references.*" \
          $JOBNAME.log > /dev/null
        if [ $? -eq 0 ]
        then
            $PLATEX $JOBNAME.jis
            EC=`expr $EC + 1`
        else
            EC=$MAXC
        fi
    done
    
    # pdf
    $DVIPDFMX $DVIOPT $JOBNAME.dvi
    		  

    ulatex コマンドでは, Utf82TeX 変換処理後のテキストに日本語 JIS 第一・第二水準範囲外の Unicode 文字が含まれていてはならない. Utf82TeX でサポートしていない言語(アラビア語,サンスクリット語など)が元テキストに含まれる場合, ulatex が内部で利用する iconv 日本語コード変換の過程でドロップしてしまうことに注意いただきたい.

  4. Emacs からの変換

    Emacs での変換は 1 TeX 文書ソースを作成しつつ,リージョンに対し適宜必要なオプションを指定して Utf82TeX を実行するのに向いている. -c オプションで \UTFK, \UTFC などに CJK 漢字を変換したい場合,コマンドラインからファイルに対し実行するとテキストすべてに適用されて,通常の日本語も \UTFK のシーケンスに変わってしまう.こういうときは図のとおり Emacs でリージョンを指定して必要な部分のみを変換するのがよい.もちろん, <utf82tex_x> タグで制御してもよい.


    図1 変換前


    図2 変換後

利用条件・謝辞

 

本ソフトウェアはフリーソフトウェアで無償にて利用できる. GNU GPL を適用する.運用結果に関し作者及びその関係者はいかなる責任も負わない.利用者の責任でご活用いただきたい.

misima Java クラスライブラリの利用条件については misima SOAP Web Service 2.4 パッケージ添付の LICENSE を参照のこと.

Utf82TeX はベータ版である.「巧遅拙速に如かず」,「今日という日を摘め」との言に頼って乏しい知識を省みず拵えたところがあり,文字と変換結果との対応関係において自信のない部分もある.ご指摘をお待ちする.ご意見,ご質問はメールにてご連絡いただけると幸いである.

パッケージに同梱されているグルジア語/ヴェトナム語用拡張テーブルは,大友康寛氏より提供された Perl ソースコードから作成したものである.大友氏に深謝申し上げたい.

CJK 統合漢字拡張 B 領域文字変換用のテーブル構築においては,Unicode Home Page の Unihan database, UNICODE HAN DATABASE (UNIHAN), Adobe CMap and CIDFont Files Specification, Adobe CMap ファイルのほか,角藤先生の utf8toutf.c テーブルを参考にした.角藤先生に深謝申し上げたい.

misima について

 

TeX 変換を行うプリプロセサとして筆者は, misima 旧仮名遣い・旧字変換支援を別に公開している. misima は和文表記変換を主機能とするが, Utf82TeX と同じ TeX 多言語文字変換機能を実装している.Perl などのインストール設定を嫌う方は Web で利用できる.misima はさらに Utf82TeX にない以下の機能を有している.古典籍の利用の多い LaTeX ユーザには misima をお勧めする.

- 現代仮名遣いを歴史的仮名遣いに自動変換することができる.
- 新字,略字を旧字体,異体字に変換する. Unicode にない異体字は OTF パッケージ \CID 命令参照で出力することができる.ユーザ辞書機能を使えば今昔文字鏡番号を設定することが可能である.
- 戦前の用字・用語に自動変換することができる.
- 一定のシーケンスからなるベタの文字列を,藤田眞作氏の漢文訓点パッケージ sfkanbun のフォーマットに整形する.
我愛あいスR君ヲ.→ 我\kundoku{愛}{あい}{ス}{レ}\kundoku{君}{}{ヲ}{}(。)%
- 和文繰返し表現を OTF パッケージ「くノ字点」に変換する.
そろそろ → そろ\ajKunoji{}   しみじみ → しみ\ajDKunoji{}

misima は Web ブラウザでの利用を主としているが, Utf82TeX 同様, Emacs, コマンドライン,秀丸, Jedit X, TeXShop から使うための SOAP アクセスツールも提供している.機能仕様詳細は「misima 旧仮名遣い・旧字変換支援プログラム」を, SOAP アクセスツールについては「Emacs から『misima 旧仮名遣い・旧字変換』を使う」などを参照いただきたい.

更新履歴

 

Dec. 5, 2003 新規作成
Feb. 21, 2004 変換仕様追加
Apr. 25, 2004 スラヴ諸語/古典ギリシア語対応仕様追加
Apr. 29, 2004 Emacs 対応追加
May 16, 2004 Emacs 21 対応追加
July 14, 2004 GPL 適用の追記
Apr. 25, 2005 Mac OS X
May 5, 2005 インストール方法変更
July 17, 2005 misima 記述追加
Nov. 14, 2005 記述見直し修正
Dec. 25, 2005 0512 に伴う改訂
Dec. 28, 2005 0512a: <utf82tex_x> タグサポート
Jan. 13, 2006 曖昧な記述を修正
June 5, 2006 0606: OldSlav サポートほか
June 9, 2006 0606a: Windows サポート
June 13, 2006 0606b
June 18, 2006 サンプル修正 (Windows 向け)
June 19, 2006 genchrtbl ユーティリティ記述追加ほか
June 21, 2006 ulatex コマンドに複数回コンパイル, dvipdfmx オプション指定機能を追加,誤記訂正
Aug. 25, 2006 0608
Dec. 15, 2006 utf82tex-0612, Emacs-im 記述削除
Dec. 27, 2007 utf82tex-0701, BibTeX アクセント記法を考慮したテーブル仕様変更
June 16, 2007 Windows XP swath
July 14, 2007 utf82tex-0707, ギリシア語例省音不正訂正他
Nov 12, 2007 utf82tex-0711, ドイツ語オプション,秀丸,Jedit X, TeXShop サポート
Nov 17, 2007 utf82tex-0711a, 標準値をブレース付加しない仕様に変更.-b オプション追加.upTeX 記述訂正 (ttk 氏のご指摘に感謝します)
June 1, 2009 utf82tex-0902(問題訂正版)
June 28, 2009 utf82tex-0906, CJK 統合漢字拡張 B サポート.角藤先生に感謝します.
Dec. 23, 2009 utf82tex-0912, -h オプション変更 (キリル,ギリシア文字)
July. 31, 2010 utf82tex-1007, <utf82tex_n> (無変換指定) タグサポート.swath-0.3.4 以降に前提を変更.Unicode デコード処理バグ訂正.
Sept. 9, 2010 utf82tex-1009, <utf82tex_h> タグ, -p PTEX_IN_FILTER mode オプション, -w Cygwin mode オプション, UTF82TEXOPT 環境変数サポート.