インド学仏教学における UTF-8 による TeX 文書作成 (1)

紹介

Unicode を扱うことのできるワープロソフトやエディタの普及した現在においても、多言語処理能力という点において、いまだ LaTeX は他を凌駕していると言われる。しかし、新しく TeX を使って文書作成を試みようとする人がまず戸惑うのは、実際の画面表示と印刷イメージが同一ではないという点かもしれない。すなわち、印刷イメージでの文章の構造や見栄えの指定 (markup) を、テキストファイル内に記述しなければならず、そのシンタックスを覚えることは容易ではないように思えてしまう。しかし、TeX を巡る状況は幾分変化してきた。標準文字コードの UTF-8 への移行に伴い、TeX もまたその動向に合わせ改良が加えられてきた。また、エディタやプレビューアとの統合環境の整備に伴い、操作性も一段と向上した。結果、使用機種を問わず、互換性の高いテキストファイルで原稿作成を行いつつも視覚性を損なわず、簡単な操作で LaTeX の高品質な組版を実現することに成功している。

インド学仏教学の分野においても、多くの研究者や学生が論文作成の際に LaTeX を利用しているが、扱う文字の関係上少し工夫を凝らさなければならない。例えばデーヴァナーガリー文字「अमृत」をラテン文字に転写すれば「amṛta」となるが (cf. IAST)、これを印刷結果に出力しようとすれば、TeX 原稿中には、

amd{r}ta

と書かなければならない。このような単語が散在する原稿は視覚的に優れず、入力ミスにも気づきにくい。そこで 京都ハーバード方式 などの ASCII コードの範囲内の文字によってローマ字転写しておいて (ASCII 翻字, amRta)、組版処理の前に ストリームエディタ などを利用して LaTeX で処理可能なシンボル (d{r} などのアクセント類の文字命令) に変換する、という方式が利用されてきた。最近では OS の標準文字エンコードとして UTF-8 が採用されるようになったので、それに伴い TeX 文書も UTF-8 で作成される傾向にある。UTF-8 文書では上記の「amṛta」の「ṛ」(Latin Extended Additional, U+1E5B, Latin Small Letter R with dot below) も UTF-8 を扱うことのできるエディタであれば直接入力することができるので1、さらに直感的である。こうして作成した UTF-8 による文書をなんらかのプリプロセッサによって TeX が処理できる命令に変換して2、その変換済みのファイルに対してタイプセットを行い印刷結果を得る、という手法は、現在でもインド学仏教学の分野では LaTeX を利用する場合 (少なくとも日本国内では) 広く利用されているように思う。

https://skalldan.files.wordpress.com/2011/10/wpid-indo_tex_80b18e32ec032705282ab1d2696d3a879b8b215a.png

すべてのプロセスを簡単なシェルスクリプトで自動化しておけば、結局エディタのキー操作やクリックだけで印刷イメージまで表示されるので、ワープロソフトと感覚的にはほとんど変わらない。さらには 祝鳥 (秀丸マクロ, Windows) や TeX Tools for mi (mi 用スクリプト集, Mac OS X)、AUCTeXYaTeX (Emacs) などに備わった TeX 入力支援機能を利用すれば TeX の命令を入力する手間は大幅に削減される。

齋藤修三郎さんによる OTF パッケージ のおかげで OpenType フォントの CID (character identifier) 番号を直接指定することができるようになり、フリーソフトウェアにおいては唯一 Adobe-Japan1-6 の全グリフ (23,058 字) の使用が実現された。とりわけ JIS X 0208 外の漢字を扱う機会の多い仏教学の分野では恩恵に与るところが大きい。また、土村展之さんの尽力により pTeX で UTF-8 文書の入力が可能となり (cf. ptetex Wiki, UTF-8 対応)、ダイアクリティカルマーク付き文字も日本語と混在して直接入力することができるようになった。さらに、北村弘典さんの尽力により、pTeX への e-TeX 拡張が実現した (e-pTeX)。

また、Unicode による多言語混在文書の統一的な処理を実現するため XeTeX, LuaTeX (LuaTeX-ja), Omega/Aleph/Lambda や、pTeX の内部処理の Unicode 化を実現した upTeX などが、将来的に主流になる可能性を秘めつつ活発に開発が進められている。

TeX Live

さて、以上のような TeX を巡る動向の中で、インド学仏教学の分野において TeX を利用して論文を作成するにあたり、どの選択肢を選んでどういった使い方をするのが最善かは、現時点ではまだ意見が分かれるところだと思う。以下では一例として TeX Live (2010) に収録された pTeX と安田功さんの Utf82TeX を利用する方法を紹介してみたい。

現在 (2011/07/22) すでに TeX Live 2011 がリリースされているが、私は Fink 経由でインストールしたものを利用している (cf. TeX Live in unstable)。

$ ptex -v
pTeX 3.1415926-p3.1.11 (utf8.euc) (TeX Live 2010/Fink)
kpathsea version 6.0.0
ptetex 1.1.1
Copyright 2010 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pTeX source.
Primary author of pTeX: D.E. Knuth.

サンスクリット語のローマ字転写 (IAST) の場合であれば、次のような文字を扱うことができれば大抵の場合で問題はないだろう。

skt-ex.tex:

% -*- coding: utf-8; -*-
% platex -kanji=utf8 (TeX Live 2010/Fink)
documentclass[a4j,11pt]{jsarticle}
usepackage[T1]{fontenc}
usepackage[deluxe,multi]{otf}
usepackage[utf8x]{inputenc}
usepackage{ucs}
usepackage{txfonts}
usepackage{textcomp}
usepackage[english,french,japanese]{babel}
usepackage{extaccent}

makeatletter
uc@dclc{7736}{default}{udot{={L}}}
uc@dclc{7737}{default}{udot{={l}}}
uc@dclc{7772}{default}{udot{={R}}}
uc@dclc{7773}{default}{udot{={r}}}
makeatother

begin{document}

section*{特殊文字}
label{sec:skt_tbl}
begin{table}[htb]
begin{tabular}{|ll|}
hline
Vowels     & ā ī ū ṛ ḷ ṝ ḹ (â î û ê ô)
Consonants & ṅ ñ ṭ ḍ ṇ ś ṣ            
Visarga    &
Anusvāra   & ṃ (ṅ ṁ)                  
hline
end{tabular}
end{table}

section*{}
label{sec:skt_ex}
begin{verse}
    phenapiṇḍopamaṃ rūpaṃ vedanā budbudopamā~/
    marīcisadṛśī saṃjñā saṃskārāḥ kadalīnibhāḥ~/
    māyopamaṃ ca vijñānam ukatam ādityabandhunā~//
end{verse}

end{document}

このようにプリアンブルに usepackage[utf8x]{inputenc} を加えることでダイアクリティカルマーク付きのラテン文字も直接扱うことができる。母音の「ṝ」「ḹ」「Ṝ」「Ḹ」に関しては ucs.stydefault にはなかったので、プリアンブルで定義してある。なお、定義には Ω/CHISE の配布物に含まれる extaccent.sty 依存のマクロ (udot) を使用している。コンパイルは次のように行う。

$ platex -kanji=utf-8 skt-ex.tex
$ dvipdfmx skt-ex.dvi
$ open skt-ex.pdf

skt-ex.pdf:

https://skalldan.files.wordpress.com/2011/07/wpid-skt-ex4.png

なお、Ā, Ī, Ū などの大文字の表記も小文字とペアで定義されているので直接処理が可能である。

Utf82TeX

Utf82TeX とは UTF-8 で書かれた文書を pTeX が解釈可能な形式に変換する Perl のプログラムである。上記の通りインド学仏教学の分野では従来、京都ハーバード方式などで転写されたサンスクリット語を含む TeX 原稿を、ストリームエディタ等を用いて TeX シンボルに変換していたが、この役割を担ってくれるのが安田さんの Utf82TeX である3。ただしその機能はかなり強力で「西欧語、ロシア・東欧語、北欧語、教会スラヴ語を含むほとんどのキリル諸言語、複式アクセント文字からなる古典ギリシア語、日本語、中国語、韓国語をカバーできるもの」である。しかもユーザー定義の変換テーブルによって容易に拡張が効くように設計されている。

こちら から Utf82tex のパッケージをダウンロードする。Utf8 による TeX 文書の作成 やアーカイブを展開した中にある README.first にはとても丁寧にインストール方法から使用方法まで解説されており、ここで繰り返す必要はないだろうが、自分用のメモも兼ねてごく簡潔に記しておく。なお、私の実行環境は Mac OS X 10.6.8, Perl 5.12.3 (v5.8.0 以降が必要), pTeX 3.141592-p3.1.11 (Fink), Emacs (23.3) であるが、作者自身が Windows をはじめ様々な環境で動作を検証してくださっている。

インストールには Makefile が用意されており、以下のように適宜環境に応じて変数を修正する。

PREFIX         = /usr/local
EMACS          = $(PREFIX)/bin/emacs
EMACSVER       = 23.3
EMACSPATH      = $(PREFIX)/share/emacs
LEIMPATH       = $(EMACSPATH)/$(EMACSVER)/leim
UTF82TEXDIR    = $(PREFIX)/etc/utf82tex
UTF82TEXPATH   = $(PREFIX)/bin
UTF82TEXELPATH = $(EMACSPATH)/site-lisp
TEXDIR         = /sw/share/texmf-local

あとはターミナルで make コマンドを実行するだけである。

$ sudo make install

標準だけでもかなりの機能が用意されているが、もっとも基本的な部分である JIS X 0208 外の漢字の OTF 命令への変換のテストを行ってみる。ファイルは文字コード UTF-8 である必要がある。

kanji-ex.tex:

% -*- coding: utf-8; -*-
% platex -kanji=utf8 (TeX Live 2010/Fink)
documentclass[a4j,11pt]{jsarticle}
usepackage[T1]{fontenc}
usepackage[deluxe,multi]{otf}
usepackage{txfonts}
usepackage[japanese]{babel}
begin{document}

section*{}
label{sec:kanji_ex}
begin{verse}
    觀色如聚沫 受如水上泡
    想如春時燄 諸行如芭蕉
    諸識法如幻 日種姓尊說
end{verse}

end{document}

ターミナルで、

$ utf82tex kanji-ex.tex > kanji-ex.utf
$ platex -kanji=utf8 kanji-ex.utf
$ dvipdfmx -f hiraginox.map kanji-ex.dvi
$ open kanji-ex.pdf

変換されたファイル (kanji-ex.utf) は、

 
kanij-ex.tex kanij-ex.utf
CID{16966}
CID{13880}

というように pTeX が解する CID 番号へ変換されているのが確認される。変換定義にないものはそのまま出力される。

PDF 表示は次の通り。

kanji-ex.pdf:

https://skalldan.files.wordpress.com/2011/07/wpid-kanji-ex2.png

ユーザーは各自「拡張変換テーブル」を作成して変換対象の文字を追加することができる (デフォルトでは /usr/local/etc/utf82tex/contrib/ に格納)。このテーブルでの定義はシステム標準テーブルよりも優先される。2010.9.9 改訂版ではグルジア語用 (g2tex-tbl)、ヴェトナム語用 (v2tex-tbl)、機種依存文字用 (sjis-tbl) が含まれている。

例えば次のようなテーブルを UTF-8 で作成し /usr/local/etc/utf82tex/contrib/ に格納する。ファイル名は任意でかまわない。この拡張変換テーブルはデーヴァナーガリー文字の「ऋ」「ॠ」「ऌ」「ॡ」を「r の下丸」(r-ring-below, cf. Wikipedia Talk: IAST) 等で表示するためのものである。

rl2tex-tbl:

# Sanskrit characters r and l ring below in place of dot below

e Ḷ {ucirc{L}}
e ḷ {ucirc{l}}
e Ḹ {ucirc{={L}}}
e ḹ {ucirc{={l}}}
e Ṛ {ucirc{R}}
e ṛ {ucirc{r}}
e Ṝ {ucirc{={R}}}
e ṝ {ucirc{={r}}}

utf82tex-x オプションを付加することで拡張変換テーブルが読み込まれる。簡単な内容のファイル (amrta.tex) でテストしてみる。

% -*- coding: utf-8; -*-
% platex -kanji=utf8 (TeX Live 2010/Fink)
documentclass[a4j,11pt]{jsarticle}
usepackage[T1]{fontenc}
usepackage[utf8x]{inputenc}
usepackage{ucs}
usepackage{txfonts}
usepackage[english]{babel}
usepackage{extaccent}
begin{document}

section*{Amṛta}
āyuṣmannadhigatam amṛtam iti /

end{document}

ターミナルで、

$ utf82tex -x amrta.tex > amrta.utf
$ platex -kanji=utf8 amrta.utf
$ dvipdfmx amrta
$ open amrta.pdf

PDF 表示は以下のとおり (amrta.pdf)。

https://skalldan.files.wordpress.com/2011/07/wpid-amrta2.png

「ṛ」(r-dot-below) で入力された文字が「r の下丸」(r-ring-below) で表示されているのが確認される。この utf82tex-x オプションの有無によって、同じ原稿で「r-dot-below」と「r-ring-below」を切り替える、という使い方もできるだろう。チベット語の場合 ALA-LC 転写法 (ex. dṅos po) で作成した原稿を Extended Wylie 転写法 (ex. dngos po) に変換して寄稿する、といったことも拡張変換テーブルを利用すれば可能となる。

さらに、rcfile を切り替えることで、拡張変換テーブルを格納するディレクトリを切り替えることもできる。例えば ALA-LC から Extended Wylie への拡張変換テーブル (ala2wylie-tbl) のみ変換時に読み込んで欲しかったとする。

$ cd /usr/local/etc/utf82tex
$ mkdir mytib                                          # 新規 DIR (名称任意)
$ emacsclient mytib/ala2wylie-tbl                      # 新規作成 (名称任意)
# ALA-LC Transliteration Scheme to Extended Wylie

e ṅ ng
e ñ ny
e ź zh
e ś sh

$ cp -a utf82texrc mytibrc                              # rcfile コピー (名称任意)
$ emacsclient mytibrc                                   # エディタで編集
  ...
  $EXT_DIR = "/usr/local/etc/utf82tex/mytib";           # テーブルを格納する DIR
  ...
$ utf82tex -x -f /usr/local/etc/utf82tex/mytibrc foo.tex > foo.utf

これで通常の /usr/local/etc/utf82tex/contrib/ 以下の拡張変換テーブルではなく /usr/local/etc/utf82tex/mytib/ 以下に配置された ala2wylie-tbl のみが読み込まれ、foo.tex 全体が Extended Wylie 表記 (foo.utf) に変換される4。ただしこの場合ファイル全体が変換されてしまうので、サンスクリット語の転写文字 (ṅ, ñ, ś) が混じっている場合などは注意しなければならない。あくまでもこういった使い方もできる、という例としてメモしておく。

ある部分だけ変換するには、例えば Emacs を使用していれば、設定ファイルに、

(require 'utf82tex)
(setq utf82tex-path "/usr/local/bin/utf82tex")
(setq utf82tex-rc   "/usr/local/etc/utf82tex/utf82texrc")
(setq utf82tex-out-encoding 'utf-8)

(defvar mytib-rc "/usr/local/etc/utf82tex/mytibrc"
  "Path for rcfile to convert ALA into Wylie")

(defun utf82tex-ala2wylie-region (start end)
  "Replace ALA romanization of specified region to EWTS."
  (interactive "r")
  (call-process-region
   start end
   utf82tex-path
   t (list t nil) nil
   "-qx"
   "-f"
   mytib-rc)
  )

というように書いておけば、リージョンのみ Extended Wylie に変換することも可能である (M-x utf82tex-ala2wylie-region)。

変換前:

https://skalldan.files.wordpress.com/2011/07/wpid-tib-conv.png

変換後:

https://skalldan.files.wordpress.com/2011/07/wpid-tib-conv2.png

以上の簡単なテストによって、Utf82TeX の機能のごく一部の動作が確認された。

(上記テスト用に利用したファイル example.zip)

続く

Footnotes:

1 インプットメソッドには Mac OS X であれば EasyUnicode が利用できるだろう。Carbon Emacs や Cocoa Emacs からは直接 Mac OS X の IM を利用できるが、Linux では ibus や scim から m17n database を利用することで可能なようだ。How to use Sanskrit Input with Ibus in UbuntuHow to use IBus to type Romanized Pali and Sanskrit in Ubuntu 9.10 の記事を参照。

2 例えば Indica et Buddhica で公開されている Encoding conversion scripts には UTF-8 から LaTeX markup への変換スクリプトも含まれている。

3 同種のユーティリティーに角藤亮さんの utf8toutf や TeXShop の機能 (「環境設定」「詳細」「utf パッケージ対応」にチェックを入れる)、銭谷誠司さんの utf-tool.el (Emacs) などがある。

4 Utf82TeX でユーザー定義のある拡張変換テーブルのみ読み込むことは可能か、という旨を作者の安田功さんにメールでお尋ねしたところ、上記の方法が記された迅速で丁寧なお返事を頂いた。お礼を申し上げます。

2 thoughts on “インド学仏教学における UTF-8 による TeX 文書作成 (1)

  1. 安田です。インド学への適用についての丁寧な解説を拝読させていただき,私が思ってもいなかった素晴らしい活用をなさっていらっしゃることに,たいへん感銘を覚えました。私も本 Web ページの成果を少しでも今後の開発に役立てればと思っています。ありがとうございました。

    • わざわざ記事の方までご確認いただき恐縮致します。お礼を言うべきはこちらの方で、私などは利用させていただくばかりで何のお力にもなれません。私のような Utf82TeX の Big fan はたくさん潜伏しているはずです。今後の開発を期待させていただくとともに、陰ながら応援させていただきます。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s