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

upTeX の利用

ttk さんによる upTeX は pTeX 内部処理の Unicode 化を果たしたもので、従来の JIS X 0208 (JIS 第一・第二水準) の制限から開放され、中国語・韓国語を含む極めて広範囲の文字の直接入力を可能としている。pTeX の和文組版をそのまま引き継いでいるので、pTeX のノウハウはそのまま upTeX にも通じる。一方で、インド系文字などを直接扱うことは、その守備範囲とはしていない。

数年前よりすでに十分な完成度に達しているということなので、Web 上や書籍など各所で詳しい解説がなされていることもあり、インド学仏教学の分野でも実際にメインの TeX 環境としている方もたくさんいらっしゃるだろう。upTeX は TeX Live 対応形式へ移行予定とのことなので、今 (2011/07/30) ここで書いてもすぐに過去の情報となってしまうだろうが、ごく簡単な例を示してその使用方法に触れておきたいと思う。

はじめに作業環境である Mac OS X (10.6.8) 上での uplatex のバージョン (ptetex3 ベース) をコピーしておく。

$ /usr/local/teTeX/bin/uplatex -v
upTeX 3.141592-p3.1.11-u0.30 (utf8.uptex) (Web2C 7.5.4)
kpathsea version 3.5.6
ptexenc version 0.999-u01
Copyright (C) 1997-2004 D.E. Knuth.
Kpathsea is copyright (C) 1997-2004 Free Software Foundation, Inc.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the upTeX copyright and
the GNU General Public License.
For more information about these matters, see the files
named COPYING and the upTeX source.
Primary author of TeX: D.E. Knuth.
Kpathsea written by Karl Berry and others.

使用に際して注意すべきは、upTeX では 8 ビット文字はすべて和文とみなされる、という点である。したがって、サンスクリット語をローマ字転写する際に用いられるダイアクリティカルマーク付き文字も和文扱いとなる。これらを欧文として扱うには、欧文として扱いたい文字が属する Unicode ブロックの任意の一文字に対して kcatcode 15 を設定しておく。サンスクリット語のローマ字転写の場合、Basic Latin (ASCII) に加え Latin-1 Supplement, Latin Extended-A, Latin Extended Additional の Unicode ブロックの文字を使用するので、プリアンブルには以下の例 (indo-uptex-ex1.tex) のように三種類、各ブロックから任意の一文字を取り出して、それぞれに対して kcatcode 15 を設定しておく。

indo-uptex-ex1.tex:

% -*- coding: utf-8; -*-
% upTeX 3.141592-p3.1.11-u0.30
documentclass[11pt,a4paper,uplatex]{jsarticle}
kcatcode`â=15
kcatcode`ā=15
kcatcode`ḍ=15
usepackage[utf8x]{inputenc}
usepackage[T1]{fontenc}
usepackage{txfonts}
usepackage{textcomp}
usepackage[uplatex]{otf}
usepackage[french,english,japanese]{babel}
usepackage{extaccent}

makeatletter
uc@dclc{7734}{default}{ucirc{L}}
uc@dclc{7735}{default}{ucirc{l}}
uc@dclc{7736}{default}{ucirc{={L}}}
uc@dclc{7737}{default}{ucirc{={l}}}
uc@dclc{7770}{default}{ucirc{R}}
uc@dclc{7771}{default}{ucirc{r}}
uc@dclc{7772}{default}{ucirc{={R}}}
uc@dclc{7773}{default}{ucirc{={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}
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}

section*{漢訳文献の入力例}
label{sec:chin}
begin{verse}
    觀色如聚沫 受如水上泡
    想如春時燄 諸行如芭蕉
    諸識法如幻 日種姓尊說
end{verse}

end{document}

kcatcode 15 の設定によって欧文処理に渡された各 Unicode ブロックの文字は、欧文 LaTeX で utf8 (or utf8x) 入力エンコーディング (inputenc) を使用した場合と同じマクロによって処理される。また、上の例のプリアンブル中の makeatlettermakeatother で括られた定義はサンスクリット語の「r の下丸」(r-ring-below) 等を表示するためのものなので (cf. Utf82TeX の 拡張変換テーブル: rl2tex-tbl)、必要なければなくてもかまわない。

コンパイルはターミナルで次のように実行する。

$ /usr/local/teTeX/bin/uplatex indo-uptex-ex1.tex
$ /usr/local/teTeX/bin/dvipdfmx indo-uptex-ex1.dvi
$ open indo-uptex-ex1.pdf

現在私の Mac には複数の TeX 環境がインストールされているので、コマンドはフルパスで入力している。一台のマシンに複数の TeX 環境をインストールすることは誤動作の元ともなるので、あまり推奨はされない。

PDF 表示結果は以下の通り。

indo-uptex-ex1.pdf:

https://skalldan.files.wordpress.com/2011/07/wpid-indo-uptex-ex1.png

(上記のテストに使用したファイル ex1.zip)

BibTeX の利用

BibTeX 処理を upTeX で行う場合、コマンドには upjbibtex を用いる。latexmk を利用する場合、設定ファイルには例えば次のように書いておく (~/.latexmkrc)。

$latex  = '/usr/local/teTeX/bin/uplatex -interaction=nonstopmode';
$bibtex = '/usr/local/teTeX/bin/upjbibtex';
$dvipdf  = '/usr/local/teTeX/bin/dvipdfmx %O -o %D %S';
$pdf_previewer = 'open -a TeXShop.app %O %S';
$pdf_mode = 3;
$pdf_update_method = 0;

hyperref.sty のテストも兼ねて以下のようなファイルを用意してみた。

indo-uptex-ex2.tex:

% -*- coding: utf-8; -*-
% upTeX 3.141592-p3.1.11-u0.30
documentclass[11pt,a4paper,uplatex]{jsarticle}
kcatcode`â=15
kcatcode`ā=15
kcatcode`ḍ=15
usepackage[utf8x]{inputenc}
usepackage[T1]{fontenc}
usepackage{txfonts}
usepackage{textcomp}
usepackage[uplatex]{otf}
usepackage[french,english,japanese]{babel}
usepackage{extaccent}
usepackage{natbib}
usepackage[dvipdfm]{color}
definecolor{entan}{cmyk}{0.07,0.81,0.78,0}
definecolor{yamabukiiro}{cmyk}{0,0.4,0.96,0}
definecolor{tsuyukusairo}{cmyk}{0.9,0.36,0,0}
usepackage[dvipdfm,bookmarks=true,bookmarksnumbered=true,bookmarkstype=toc,%
pdftitle={インド学仏教学における upTeX の利用},%
pdfauthor={skalldan},pdfkeywords={upTeX,Indology,Buddhology},%
colorlinks,urlcolor=entan,linkcolor=yamabukiiro,citecolor=tsuyukusairo]{hyperref}

makeatletter
uc@dclc{7734}{default}{ucirc{L}}
uc@dclc{7735}{default}{ucirc{l}}
uc@dclc{7736}{default}{ucirc{={L}}}
uc@dclc{7737}{default}{ucirc{={l}}}
uc@dclc{7770}{default}{ucirc{R}}
uc@dclc{7771}{default}{ucirc{r}}
uc@dclc{7772}{default}{ucirc{={R}}}
uc@dclc{7773}{default}{ucirc{={r}}}
makeatother

begin{document}

section{サンスクリット語}
label{sec:skt}
begin{verse}
    phenapiṇḍopamaṃ rūpaṃ vedanā budbudopamā~/
    marīcisadṛśī saṃjñā saṃskārāḥ kadalīnibhāḥ~/
    māyopamaṃ ca vijñānam ukatam ādityabandhunā~//footnote{GRETIL:
      href{http://fiindolo.sub.uni-goettingen.de/gretil/1_sanskr/6_sastra/3_phil/buddh/canprasu.htm}{textit{Prasannapadā}}}
end{verse}

section{漢訳}
label{sec:chin}
begin{verse}
    觀色如聚沫 受如水上泡
    想如春時燄 諸行如芭蕉
    諸識法如幻 日種姓尊說footnote{SAT:
      href{http://21dzk.l.u-tokyo.ac.jp/SAT/ddb-sat3.php?mode=detail&mode2=1&num1=99&num2=&vol=2&page=69}{『雑阿含経』}}
end{verse}

section{補足}
label{sec:sup}
この詩頌はパーリ相応部 (textit{Saṃyuttanikāya}, citealp{SN3_ed_feer_1890},
p.~142; 『雑阿含』T2, 69a) からの一節だがfootnote{GRETIL:
  href{http://fiindolo.sub.uni-goettingen.de/gretil/2_pali/1_tipit/2_sut/3_samyu/samyut3u.htm}{textit{Saṃyuttanikāya}}
}、textit{Bhavasaṅkrāntiṭīkā}~citep[p.~36]{BhSS_ed_sastri_1938},
textit{Prasannapadā}~citep[pp.~41,~549]{Pras_ed_poussin_1903-13},
textit{Bodhicittavivaraṇa}~citep[p.~188, v.~12]{BCV_ed_lindtner_1982},
textit{Aśokāvadāna}~citep[p.~48]{AAv_ed_mukhopadhyaya_1963} など多くの文献から
サンスクリット語が知られている。

bibliographystyle{chicago}
bibliography{indo-uptex}

end{document}

BibTeX 用パッケージには natbib.sty を、BibTeX スタイルファイルには chicago.bst を利用している。BibTeX ファイルは以下のようにアクセント付きラテン文字が多用された文字コード UTF-8 のファイルを使用している。

indo-uptex.bib:

@Comment upJBibTeX 0.99c-j0.33-u0.30

@String{BB = {Bibliotheca Buddhica}}
@String{PTS = {The Pali Text Society}}

@Book{BhSS_ed_sastri_1938,
  author =    {Aiyaswami Sastri, N.},
  title =        {Bhavasaṅkrānti Sūtra and Nāgārjuna's Bhavasaṅkrānti Śāstra
                  with the Commentary of Maitreyanātha},
  publisher =    {Adyar Library},
  year =         1938,
  address =   {Chennai}
}

@Book{SN3_ed_feer_1890,
  author =    {Feer, M. Leon},
  title =        {Saṃyutta-Nikāya, Part III, Khandha-Vagga},
  publisher =    PTS,
  year =         1890,
  address =   {London}
}

@Book{Pras_ed_poussin_1903-13,
  author =       {de La Vallée Poussin, L.},
  title =        {Mūlamadhyamakakārikās (Mādhyamikasūtras) de Nāgārjuna avec la
                  Prasannapadā Commentaire de Candrakīrti},
  publisher =    {Académie impériale des science},
  address =      {St. Pétersbourg},
  series =       BB,
  volume =       {IV},
  year =         {1903--1913},
  note =         {Repr. Meicho-Fukyū-Kai, Tōkyō, 1977}
}

@Book{BCV_ed_lindtner_1982,
  author =       {Lindtner, Chr.},
  title =        {Nagarjuniana: Studies in the Writings and Philosophy of Nāgārjuna},
  publisher =    {Akademisk Forlag},
  year =         1982,
  address =      {Copenhagen}
}

@Book{AAv_ed_mukhopadhyaya_1963,
  author =    {Mukhopadhyaya, Sujitkumar},
  title =        {The Aśokāvadāna : Sanskrit text compared with Chinese versions},
  publisher =    {Sahitya Akademi},
  year =         1963,
  address =   {New Delhi}
}

ターミナルから次のコマンドを実行する。

$ latexmk indo-uptex-ex2.tex

表示結果は以下の通り。

indo-uptex-ex2.pdf:

https://skalldan.files.wordpress.com/2011/07/wpid-indo-uptex-ex23.png

Hyperref Package の挙動も良好なようだ。

しおり:

https://skalldan.files.wordpress.com/2011/07/wpid-indo-uptex-ex2-3.png

一般情報:

https://skalldan.files.wordpress.com/2011/07/wpid-indo-uptex-ex2-1.png

キーワード:

https://skalldan.files.wordpress.com/2011/07/wpid-indo-uptex-ex2-2.png

なお、上の BibTeX のテストは流れ上 uplatexupjbibtex を用いてコンパイルを行ったが、TeX ファイルや BibTeX ファイル中に JIS X 0208 外の文字を使用しない限り、pTeX のマージされた TeX Live (2010 以降) などでも、結局同様の処理をすることになる (usepackage[utf8x]{inputenc} を使用)。したがって、先の BibTeX ファイル (indo-uptex.bib, ラテン文字のみ) に関しては TeX Live 2010 に収録されている pbibtex などでも同様に処理できる。

(上記のテストで使用したファイル ex2.zip)

参考

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