LaTeX サンスクリット語パッケージの導入

LaTeX サンスクリット語パッケージ skt を Mac OS X にインストールして使ってみた。Charles Wikner 氏によるものである。デーヴァナーガリー文字と,学術論文で用いられるラテン翻字表記とを出力することができる。入力は 7-bit アスキーコードで行う方式なので pTeX でも利用できる。

CTAN: language/sanskrit/ から関連ファイル一式をダウンロードして,TeX ツリーに TDS に従って格納し,skt.map マップ登録を行えば TeX 環境の組み込みは終わりである。

サンスクリットなどインド系言語の TeX パッケージは複雑怪奇なアクセントの記述のためにプリプロセッサで TeX 原稿の前処理を行うものが多く,このパッケージも skt というプリプロッサが添付されている。次にこれを C でコンパイルし,実行バイナリをパスの通った場所にインストールしておく。

% cc -ansi -g -o skt skt.c
% su -m
# cp -i skt /usr/local/teTeX/bin
# exit
% rehash

プリプロセッサ skt はそのままでもよいが,私のマシンのコンパイラ(Mac OS X gcc 4.0.0, FreeBSD gcc 3.4.2)で作成した実行バイナリでは,ファイル名指定の引数を省略すると入力/出力ファイルの問い合わせで無限ループに陥る。気難しい scanf 関数を使っているオリジナルのコードを fgets 関数で書き換え,パッチ skt-2.2.patch を作ってみた。これを適用してコンパイルすると,きちんと動作するようになるはずである。

% patch < skt-2.2.patch
% cc -ansi -g -o skt skt.c

パッケージの読み込み指示はプリアンブルで次のように記述しておく。オプションは利用する書体指定であり,larger, xitalic, iitalic, titalic, uitalic が選択できる。

\usepackage[larger,iitalic,uitalic]{skt}

原稿をたとえば xxxx.skt という名前で準備したのち,skt プリプロセッサで処理する。この結果生成される xxxx.tex を (p)latex でコンパイルする。次の例は添付のドキュメントを処理し,dvips, ghostscript によって pdf まで生成している。

% skt sktdoc.skt sktdoc.tex
% latex sktdoc
% latex sktdoc
% dvips sktdoc -o
% ps2pdf sktdoc.ps sktdoc.pdf

多言語環境などで他のパッケージとともに使うと,問題があった。skt.sty (パッケージスタイルファイル) の \ZH などの定義が \newcommand で定義されており,他のパッケージとコントロール・シーケンス名が重複すると,エラーとなってしまうのである。私の環境では,奇しくも自作の教会スラヴ語パッケージ OldSlav との間でこの状況に陥った。そこで,skt.sty をカンレトディレクトリにコピーしてきて,\newcommand\renewcommand に書き換えてやると,うまくコンパイルできた。skt.sty を手直ししたくない場合は,OldSlav の \ZH を使わない前提で,まず babel を読み込んだあとで OldSlav の \ZH を無効にする指定 (\let\ZH=\relax) を行いその直後に skt.sty を読み込めばよい。

\usepackage[oldchurchslavonic,...,
  nippon]{babel}% babel oldchurchslavonic 指定
\let\ZH=\relax% OldSlav \ZH 無効化
\usepackage[larger,iitalic,uitalic]{skt}% skt 読み込み

タイプセット例は図のとおり。デーヴァナーガリーとラテン翻字表記,リグ・ヴェーダの一節から。サンスクリット語をさまざまな言語とともに私がタイプセットしてみたサンプルもここにリンクしておく。

skt-test.png

skt プリプロセッサで処理する前の原稿 skt-test.skt は以下のとおりである。

% Sanskrit LaTeX package skt sample code: skt-test.skt
% coded by isao yasuda.
% - preprocess: skt skt-test.skt skt-test.tex
% - compile: pdflatex skt-test
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[larger,iitalic,uitalic]{skt}
\pagestyle{empty}
{\skt [0- 1+ 2+ 6+ 7+ 8+ 9+ 10+]}
\begin{document}
 
{\sktX Devanaagarii}
 
\verb+{\+\verb+sktb  te_ja_svi naa_vadhii!tamastu|}+\hspace{2mm}
             {\sktb  te_ja_svi naa_vadhii!tamastu|}
 
\vspace{1em}
\textbf{Basic Transliteration}
 
{\skt [6+]}
\verb+{\+\verb+sktx te_ja_svi naa_vadhii!tamastu|}+\hspace{.8mm}
             {\sktx te_ja_svi naa_vadhii!tamastu|}
 
\vspace{1em}
\textbf{Sample Text from} {\sktX .Rgveda 10..125..}
 
\vspace{.5em}
\hspace*{10mm}%
\begin{minipage}{122mm}
\addtolength{\parskip}{2mm}
\renewcommand{\baselinestretch}{1.1}
 
{\skt [40+ 44+]
a_ha.m 
  ru_drebhi_rvasu!bhi"scaraamya_hamaa!di_tyairu_ta 
  vi_"svade!vai.h|\\
a_ha.m mi_traavaru!.no_bhaa
  bi!bharmya_hami!ndraa_gnii 
  a_hama_"svino_bhaa|| 1||
 
a_ha.m soma!maaha_nasa!.m bibharmya_ha.m 
  tva.s.taa!ramu_ta puu_.sa.na_.m bhaga!m|\\
a_ha.m da!dhaami_ dravi!.na.m ha_vi.sma!te 
  supraa_vye"3 yaja!maanaaya sunva_te|| 2||
 
a_ha.m raa.s.trii! sa_.mgama!nii_ vasuu!naa.m 
  ciki_tu.sii! pratha_maa ya_j~niiyaa!naam|\\
taa.m maa! de_vaa vya!dadhu.h puru_traa 
  bhuuri!sthaatraa_.m bhuuryaa!ve_"saya!ntiim|| 3||
 
mayaa_ so anna!matti_ yo vi_pa"sya!ti_ ya.h 
  praa.ni!ti_ ya ii!.m "s.r_.notyu_ktam|\\
a_ma_ntavo_ maa.m ta upa! k.siyanti "sru_dhi 
  "sru!ta "sraddhi_va.m te! vadaami|| 4||}
 
{\skt 
a_hame_va sva_yami_da.m va!daami_ ju.s.ta!.m 
  de_vebhi!ru_ta maanu!.sebhi.h|\\
ya.m kaa_maye_ ta.mta!mu_gra.m k.r!.nomi ta.m
  bra_hmaa.naa_.m taam.r.si_.m ta.m su!me_dhaam|| 5||
 
a_ha.m ru_draaya_ dhanu_raa ta!nomi 
  brahma_dvi.se_ "sara!ve_ hanta_vaa u!|\\
a_ha.m janaa!ya sa_ma!da.m k.r.nomya_ha.m 
  dyaavaa!p.rthi_vii aa vi!ve"sa|| 6||
 
a_ha.m su!ve pi_tara!masya muu_rdhanmama_ 
  yoni!ra_psva"1nta.h sa!mu_dre|\\
tato_ vi ti!.s.the_ bhuva_naanu_ vi"svo_taamuu.m 
  dyaa.m va_r.sma.nopa! sp.r"saami|| 7||
 
a_hame_va vaata! iva_ pra 
  vaa!myaa_rabha!maa.naa_ 
  bhuva!naani_ vi"sva!|\\
pa_ro di_vaa pa_ra e_naa p.r!thivyaitaava!tii 
  mahi_naa sa.m ba!bhuuva|| 8||[40-43-]
 
}
\end{minipage}
\end{document}

skt パッケージの命令,記法などの入力仕様詳細は添付の sktdoc.ps を参照。結構難しいかもしれないが,宗教学やインド学でサンスクリットをきちんと組みたいと思う研究者にとって,素晴らしい文房具となるはずである。ArabTeX といい,この skt といい,研究者の情熱が伝わってくる労作である。LaTeX 文化の奥の深さを思い知らされる。