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

XeTeX の紹介

Jonathan Kew さんによる XeTeX とは、もともと Mac OS X 向けに開発された TeX に基づく Unicode 対応の組版システムである。現在では Windows や Linux にも移植されている。TeX の Unicode 化の試みとしては Omega (Ω) が知られているが、XeTeX はそれとは系統を異にする。従来からの TeX ユーザにとって目を引く特徴は、システム標準の TrueType や OpenType の Unicode フォントがそのまま使用できるという点だろう。コマンドラインツールの fc-list で返ってくるフォント名を、特別の設定なしに直接ソースファイルに指定することができる。現状では pTeX ほど十全な日本語組版は望めず、中国語・韓国語等のアジア言語へのサポートも十分とは言えない。

LaTeX でデーヴァナーガリー文字やチベット文字を扱いたい場合、あるルールに則った ASCII 翻字で原稿を作成し、プリプロセッサによる前処理によって LaTeX が処理可能な形式に変換する、という手法が常道であり、開発されたパッケージはいずれも労作ぞろいである1。しかし、プリプロセッサ処理の若干の煩雑さから逃れたいと考えたことがあるならば、XeTeX の使用は一考の価値がある。XeTeX を利用すれば、以下のスクリーンショットのようにデーヴァナーガリー文字などをそのまま入力して、TeX 処理に掛けることができる。

https://skalldan.files.wordpress.com/2011/08/wpid-xetex01.png

もっとも、MiKTeX (Windows) や TeX Live (Linux), MacTeX (Mac OS X) などの巨大な TeX ディストリビューションの最新版をインストール済みならば、すでに使用準備は整っているかも知れない。私の場合、Mac OS X (10.6.8) 上で Fink チーム の恩恵を被り TeX Live 2010 がインストールされているので、その場合すでに XeTeX を使用する環境は整っている。

$ xetex -v
XeTeX 3.1415926-2.2-0.9997.4 (TeX Live 2010/Fink)
kpathsea version 6.0.0
Copyright 2010 SIL International and Jonathan Kew.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 4.4 [with modifications for XeTeX]
Compiled with zlib version 1.2.3; using 1.2.3
Compiled with FreeType2 version 2.4.4; using 2.4.4
Using Mac OS X Carbon, Cocoa & QuickTime frameworks

実際の使用例

まずは標準状態 (TeX Live 2010/Fink) からあらたにパッケージを導入することなしに利用できる範囲の、ごく基本的な事柄をメモしておく。

文書クラスと基本パッケージ

documentclass[a4paper,12pt]{article}
usepackage{xltxtra,xunicode,fontspec}

これらが基本となるパッケージ類となる。xltxtra パッケージにより XeTeX のロゴを表示できる (XeTeX)。xunicode パッケージによりアクセント文字の命令 (={a}) を Unicode 文字 (ā) へと変換することが可能となる。fontspec パッケージによりシステムフォントを直接指定することができるようになる。xltxtra は fontspec や xunicode も読み込むようなので (RequirePackage に含まれている)、実際に記述するのはこの xltxtra パッケージのみでもかまわない。

polyglossia

usepackage{polyglossia}
setdefaultlanguage{english}
setotherlanguage{french}
setotherlanguage{german}
setotherlanguage{sanskrit}
newfontfamilysanskritfont{Devanagari MT}
%
defseng{selectlanguage{english}}
defsfra{selectlanguage{french}}
defsger{selectlanguage{german}}
defsskt{selectlanguage{sanskrit}}

polyglossia パッケージは LaTeX の Babel に相当するものである。便宜上、各言語を seng (english) 等で切り替えるよう定義している。サンスクリット語のフォントには Mac OS X (Snow Leopard) に標準で備わっている Devanagari MT を指定している。

フォント

defaultfontfeatures{Mapping=tex-text}
setromanfont{Charis SIL}
setsansfont{Helvetica}
setmonofont{Courier}
newfontfamilyfjpn{ヒラギノ明朝 ProN W3} % font Japanese
newfontfamilyftib{Kokonor} % font Tibetan

Mapping=tex-text で引用符やダッシュなど通常の TeX コード (`single-quote', em-dash 等) の使用を有効にする。romanfont にはセリフ体フォント (Charis SIL) を、sansfont にはサンセリフ体フォント (Helvetica) を、monofont には等幅フォント (Courier) をそれぞれ指定している。日本語フォント (fjpn) には「ヒラギノ明朝」を、チベット語フォント (ftib) には「Kokonor」をそれぞれ Mac OS X 標準フォントから選択している。

合字

newcommand*{rsymbol{"325}}
newcommand*{rsymbol{"304}symbol{"325}}

文字合成が比較的容易に実現されるのも XeTeX の特徴である。はじめの例は「r」に「ring below」(U+0325) を合成している。次のものはそれにさらに「Macron」(U+0304) を追加している。また例のように、命令そのものに Unicode 文字が使用できる。

実行コマンド

以上をプリアンブルに書いた TeX ファイルに対して (xetex1.tex)、次のように xelatex コマンドを実行する。

$ xelatex xetex1.tex
$ open xetex1.pdf

xetex1.pdf:

https://skalldan.files.wordpress.com/2011/08/wpid-xetex16.png

https://skalldan.files.wordpress.com/2011/08/wpid-xetex26.png

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

Biber と biblatex

Biber とは biblatex ユーザのための次世代 BibTeX コマンド (Perl) で、完全 Unicode 対応をはじめ相当数の機能を有している (biber.pdf, documentation, ver. 0.9.5)。最近の TeX ディストリビューションには標準で組み込まれているようだが、TeX Live 2010 (Fink) にはなかったのでインストールする必要があった。ダウンロードは SourceForge から可能で、各 OS へのバイナリも用意されている。最新版を git clone で取得しインストールを行うために、以下の手順を踏んだ。

$ git clone git://biblatex-biber.git.sourceforge.net/gitroot/biblatex-biber/biblatex-biber
$ cd biblatex-biber
$ perl Build.PL
$ ./Build
$ sudo ./Build install
$ biber -h

Usage:  biber [options] file.bcf

        Creates file.bbl using control file file.bcf (.bcf extension is optional)
        Normaly use with biblatex requires no options as they are all set in
        biblatex and passed via the .bcf file
 ...

また Biber に合わせ biblatex も最新のものをインストールし直した (2011/07/29, ver. 1.6, CTAN directory)。

$ head -5 `kpsewhich biblatex.sty`
% $Id: biblatex.sty,v 1.6 2011/07/29 19:21:28 lehman stable $

% Copyright (c) 2006-2011 Philipp Lehman.
%
% Permission is granted to copy, distribute and/or modify this

biblatex.bib という BibTeX ファイルを用意したとすると、プリアンブルには例えば、

usepackage[backend=biber,natbib=true,%
style=authoryear,babel=hyphen]{biblatex}
addbibresource{biblatex.bib}

と書いておき、参考文献を出力したい場所に、

printbibliography

と記述する。biblatex はとてもたくさんの機能が用意されているので詳細は biblatex.pdf を参照のこと。

BibTeX ファイルは UTF-8 で作成する。

@Book{Pras_ed_poussin_1903-13,
  author =       {La Vallée Poussin, L.},
  title =        {Mūlamadhyamakakārikās (Mādhyamikasūtras) de Nāgārjuna avec la
                  Prasannapadā Commentaire de Candrakīrti ({sskt प्रसन्नपदा नाम मध्यमकवृत्ति})},
  publisher =    {Académie impériale des science},
  address =      {St. Pétersbourg},
  series =       {BB},
  volume =       {IV},
  year =         {1903--1913},
  hyphenation =  {french}
}
...

といったように、デーヴァナーガリー文字を含むエントリーも作成できる。ハイフネーションに関してはサンスクリット語やチベット語、日中韓などのアジア言語はサポートされていない (cf. biblatex.pdf, p. 46, Table 4: Supported Lauguages)。

コンパイルは次のように実行する (テスト用ファイル: xetex2.tex, biblatex.bib)。

$ xelatex xetex2.tex
$ biber xetex2.bcf
$ xelatex xetex2.tex
$ open xetex2.pdf

以下のような出力結果が得られる。

xetex2.pdf:

https://skalldan.files.wordpress.com/2011/08/wpid-xetex33.png

Hyperref Package による PDF 情報は以下の通り (Preview.app, インスペクタを表示)。

https://skalldan.files.wordpress.com/2011/08/wpid-xetex41.png

https://skalldan.files.wordpress.com/2011/08/wpid-xetex51.png

https://skalldan.files.wordpress.com/2011/08/wpid-xetex61.png

PDF のフォント情報も載せておく (Adobe Reader.app, Document Properties)。

https://skalldan.files.wordpress.com/2011/08/wpid-xetex71.png

なお、上の例の実際の書籍にはデーヴァナーガリー文字やチベット文字での情報は含まれない。念の為に。

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

AUCTeX の設定

Emacs の AUCTeX から biber コマンドを使用するには設定ファイルに以下のように記述しておけばよいようだ。

;; See Biber's documentation (v.0.9.4), pp. 20f.
(eval-after-load "tex"
  (quote (defun TeX-run-Biber (name command file)
    "Create a process for NAME using COMMAND to format FILE with Biber."
    (let ((process (TeX-run-command name command file)))
      (setq TeX-sentinel-function 'TeX-Biber-sentinel)
      (if TeX-process-asynchronous
          process
        (TeX-synchronous-sentinel name file process))))))

(eval-after-load "tex"
  (quote (defun TeX-Biber-sentinel (process name)
    "Cleanup TeX output buffer after running Biber."
    (goto-char (point-max))
    (cond
     ;; Check whether Biber reports any warnings or errors.
     ((re-search-backward (concat
                           "^(There (?:was|were) ([0-9]+) "
                           "(warnings?|error messages?))") nil t)
      ;; Tell the user their number so that she sees whether the
      ;; situation is getting better or worse.
      (message (concat "Biber finished with %s %s. "
                       "Type `%s' to display output.")
               (match-string 1) (match-string 2)
               (substitute-command-keys
                "<TeX-mode-map>[TeX-recenter-output-buffer]")))
     (t
      (message (concat "Biber finished successfully. "
                       "Run LaTeX again to get citations right."))))
    (setq TeX-command-next TeX-command-default))))

;; Add XeLaTeX and Biber to TeX command list
(add-hook 'LaTeX-mode-hook
          (lambda ()
            (add-to-list 'TeX-command-list
                         '("XeLaTeX" "%`xelatex%(mode)%' %t"
                           TeX-run-TeX nil (latex-mode) :help "Run XeLaTeX"))
            (add-to-list 'TeX-command-list
                         '("Biber" "biber %s"
                           TeX-run-Biber nil t :help "Run Biber"))
            ))

Footnotes:

1 デーヴァナーガリー文字の組版は有名なものに Devanāgarī TeX や、これに Vedic Accent 等を加えた skt for TeX Package が知られている。チベット文字の組版に関しては Tibetan for TeX and LaTeX2eTibTeX Package がインド学仏教学を專門とする TeX ユーザーの間ではよく知られている。

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