スラヴ研究者向け LaTeX 多言語環境の構築と利用 — pTeX p3.1.2
since Jul.21 2003
 
   
-   はじめに
-   準備
-   teTeX
-   pTeX
-   Mendex
-   Babel, キリル組版環境
-   古代教会スラヴ語
-   Xdvik-VFlib
-   Dvipsk
-   Ghostscript
-   Gv
-   プリンタ設定
-   Dvipdfmx
-   利用方法
-   ヘブライ語との混在について(付記)
-   2004.2 付記
-   2006.11 付記 (ptetex3, ArabTeX 他)
-   2010.4 付記 (ptexlive ArabTeX)

 

はじめに

 

しばらく使わないでいるうちに pTeX のバージョンが新しくなっていた.私はソフトウェアのバージョンアップに対して腰の重い方であるが,最近 TeX についてとある方とメールでやりとりする機会があり,いろいろ調べ直す過程で, Dvipdfmx やら Ghostscript Ver.7 やら pTeX 周辺ソフトの変わり様にも触発されるところとなり,久しぶりに pTeX 環境一式を最新にすることにした.

本稿は, 2003.7 時点の,できる限り最新版のパッケージを取り寄せ,ロシア語をはじめスラヴ諸言語を日本語や古典ギリシア語,フランス語等と同時に扱うことができるよう pTeX を調整し,プレビュア,印刷環境の設定まで総合的に整理することを目的としている.

OS は FreeBSD を前提としている. FreeBSD では ports や pkg_add コマンドでインストールできるバイナリ・パッケージが整備されていて,Windows や Linux と比較してアプリケーションの導入がより容易であると思うが, pTeX 環境については調整済のバージョンが古いため,今回主要なソフトウェアについてはこれを利用せず,最新版アーカイブをインターネット上のサイトからダウンロードしソースから構築する方法をとった.この際,松坂大学奥村教授の Linux 向けインストールについて述べた Web ページがたいへん参考になった.

計算機の入力を示す記述は,日本語環境の仮想端末 (Kterm や Eterm) の Tcsh を想定するものと考えていただきたい. "%" 及び "#" はそれぞれ一般ユーザ,スーパーユーザの権限でのコマンド入力を示している.またコマンドラインないし編集テキスト中の行末尾の "→" は Web の表示幅の関係で折り返しを示すための記号で,実際にはこれを入力せず次行のスペース以外の文字からすぐ続けて入力しなければならない.

本ドキュメントならびに私が作成したパッチは無保証である.利用者の責任においてご活用いただきたい.ご意見,ご指摘あればメールまたは掲示板にてお寄せいただきたい.

 

準備

 

いうまでもなく, FreeBSD 及び X Window System (以降 "X11" と略) をインストールしている必要がある.本稿では 2003年7月時点での最新の安定バージョンである FreeBSD 4.8-RELEASE, XFree86-4.3.0 を利用している. FreeBSD の最新版は 5.1-RELEASE であるが,リリースノートにもあるように「まだ広く試験されていない」ため, 4.8 の方が選択として賢明であると考えたからである.いずれにせよユーザは余計なことに時間と労力を割きたくないものである.

FreeBSD と X11 はご自身の所有する PC のハードウェア属性に従ってインストールする.とくに面倒なのは X11 におけるビデオ,ディスプレイ回りではないかと思うが, FreeBSD システムの構築と活用の全般にわたって参考になる書籍を次にあげておく.本書は FreeBSD 4.6.2-RELEASE を基準にしているが,機能,操作において 4.8-RELEASE と大きな相違はないものと思う.

『改訂版 FreeBSD徹底入門』
衛藤敏寿,のだまさひで,細川達己,内川喜章,天川修平,三田吉郎,ゆっぴぃ(今村友明)著, 翔泳社刊, 2002年9月, ISBN 4-7981-0171-0

その他,LaTeX 原稿を入力するためにはエディタが必要であるが, Emacs を推奨する. YaTeX 等の TeX 入力支援ツールも豊富である. Emacs 等ロシア語をめぐる FreeBSD の生活環境については「FreeBSD におけるロシア語の利用について」を参考にしていただきたい.

pTeX のインストールのために利用するツールを準備する.インターネットからソフトウェア・アーカイブをダウンロードするための Wget, GNU の make ツールである Gmake を ports にてインストールする. Wget は Web ブラウザや FreeBSD 付属の ftp クライアントでも代用可能であるが,たくさんのファイルを一括してダウンロードするのに便利である.

% su -m
Password:xxxxxx
(root パスワードを入力する.以降も同.パスワード入力の記述は省略)
# cd /usr/ports/ftp/wget
# make install
# cd /usr/ports/devel/gmake
# make install
# exit
% rehash
	

 

teTeX

 

LaTeX の最新版 teTeX-2 を組み込む.バージョンは TeX (Web2C 7.4.5) 3.14159, kpathsea version 3.4.5 である.作業用のディレクトリを便宜上 ~/tmp とする.また TeX のルート・ディレクトリを /usr/local/share/texmf とし,本稿ではこれを環境変数 $TEXMF に格納して作業を進めるものとする.

teTeX-1 では,多言語環境構築に際してハイフネーション・パターンを5カ国語程度指定すると, LaTeX のフォーマットファイルを作成する際に IniTeX が "not enough memory (trie_size = ...)" 云々とのメモリ不足エラーメッセージを出力し停止してしまうという問題があった.このため,さらに言語を増やしたい場合, TeX のソースコードを修正する必要があった (pTeX p2.1.10 のページを参照) が, teTeX-2 では ssup_trie_size 等の変数値が拡張され, 10数カ国語指定しても問題なく処理できるようになった.

まず必要なパッケージをダウンロードし,展開する. texmf ツリー, src パッケージはそれぞれ 52MB, 11MB と巨大なのでブロードバンド環境でないと厳しいかもしれない.

% cd ~/tmp
% wget -nH --cut-dirs=8 \
  http://www.ring.gr.jp/pub/text/CTAN/systems/unix/teTeX/2.0/→
  distrib/tetex-texmf-2.0.2.tar.gz
% wget -nH --cut-dirs=8 \
  http://www.ring.gr.jp/pub/text/CTAN/systems/unix/teTeX/2.0/→
  distrib/tetex-src-2.0.2.tar.gz
% tar zxvf tetex-src-2.0.2.tar.gz
% setenv TEXMF /usr/local/share/texmf
% su -m
# mkdir -p $TEXMF
# tar zxvf tetex-texmf-2.0.2.tar.gz -C $TEXMF
# exit
	

teTeX をビルド及びインストールする. configure のオプションには --disable-multiplatform を指定しないと /usr/local/bin/i386-freebsd4.x ディレクトリ下に実行バイナリが格納されパス設定など面倒である.

% cd tetex-src-2.0.2
% ./configure --prefix=/usr/local --disable-multiplatform \
  --without-xdvik --without-oxdvik
% su -m
# make world
# exit
	

 

pTeX

 

pTeX (Web2C 7.4.5) 3.14159-p3.1.2 を組み込む.

必要なパッケージをダウンロードし,アーカイブを展開する.

% cd ~/tmp
% wget -nH --cut-dirs=5 \
  http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/tetex/→
  ptex-texmf-2.1.tar.gz
% wget -nH --cut-dirs=5 \
  http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/tetex/→
  ptex-src-3.1.2.tar.gz
% tar zxvf ptex-src-3.1.2.tar.gz -C tetex-src-2.0.2/texk/web2c/
% su -m
# tar zxvf ptex-texmf-2.1.tar.gz -C $TEXMF
# mktexlsr
# exit
	

pTeX のビルド及びインストール.文字コードは EUC とする. SJIS で構築するのと比較してフランス語,ドイツ語等の8ビット・ハイフネーション・パターンとの相性がよいようである.

% cd tetex-src-2.0.2/texk/web2c/ptex-3.1.2
% ./configure euc
% gmake
% su -m
# gmake install
# exit
	

 

Mendex

 

最新の mendexk 2.5 を組み込む.これは索引作成のための Makeindex を日本語対応としたものである.まずはダウンロードと展開.

% cd ~/tmp
% wget -nH --cut-dirs=5 \
  http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/mendex/→
  mendexk2.5.tar.gz
% tar zxvf mendexk2.5.tar.gz -C tetex-src-2.0.2/texk/
% cd tetex-src-2.0.2/texk/mendexk2.5
	

Makefile を修正する.以下のとおり "for kpathsea-3.*" の記述部分を生かし, "for no kpathsea" の記述部分はコメントアウトする.

# for kpathsea-3.*   → 以下2行のコメントを外す.行頭 # を削除
CFLAGS = -O -DKPATHSEA -DKPATHSEA3
PROGlink = $(kpathsea_link) $(OBJS) $(kpathsea_3)
...
# for no kpathsea    → 以下2行をコメントアウト.
#CFLAGS = -O
#PROGlink = $(CC) $(OBJS) -o $(PROGRAM)
	

Mendex のビルド及びインストール.

% gmake
% su -m
# gmake install
# exit
	

 

Babel, キリル
組版環境

 

Babel は現時点では LaTeX における多言語タイプセット環境としてスタンダードといってよい.今後 UTF-8 で入力できる新たなマルチリンガル・パッケージの登場を期待したい. teTeX においても標準的にインストールされるが,ここでは最新版をインターネットの CTAN アーカイブから取得して組み込む.

Babel 環境においてロシア語,日本語を混在利用するためには,標準的な設定では十分でない.日本語文書向けキャプション,ロシア語のハイフネーションやフォント環境など, pTeX で利用する際には様々な問題点が存在する.このため japanese 言語環境他,私がこれまで少しずつ調整した一連のパッチをまとめたスラヴ語関連 LaTeX アーカイブを提供する.あくまで私個人の利用を目的としたものではあるが,ご参考までに本稿ではこれを適用するものとして述べる.

スラヴ語関連 LaTeX アーカイブの内容は以下のとおり.

 — babel-3.7h-jp.patch

Babel v3.7h (6 Oct.2002) において日本語環境をサポートするためのパッチ.これを適用すると \selectlanguage{japanese} の指定で,日付 (\today) や章,表などのキャプションが日本語で出力されるようになる.

ところで pTeX p2.1.10 からバージョンが上がって,ギリシア語の pLaTeX 処理においてエラーが出るようになった.あまり影響がないようなので greek.ldf の当該部分を以下のとおりコメントアウトするコードもパッチに含めた.

    %\lowercase{%
    %  \initiate@active@char{~}%
    %  \declare@shorthand{greek}{~}{}}
	   

なお,併用する LaTeX パッケージによっては "~"(チルダ) の分類コードをグローバルに変更する場合があり,この影響でギリシア語の処理で無限ループすることがある.これに対し,以下のようにギリシア語に切替えた直後に "~" の分類コードを 12 に再セットすることで回避できる.

    \selectlanguage{polutonikogreek}
       \catcode`\~=12 % ~(チルダ)でループする対策
       ...ギリシア語のコーディング
	   

 — cyrillic.patch

Cyrillic Bundle を pTeX で利用する時に発生する代替フォントに関するエラーを抑止するパッチ. Cyrillic Bundle はキリル文字を利用する諸言語のタイプセットのために開発されたフォント・エンコーディング定義等のパッケージである.現在知られている「すべての」キリル諸言語をタイプセットできると豪語している.シベリアの少数民族の言語もカバーしており, LaTeX を利用するスラヴ言語の研究者にとっては必携のパッケージである.開発者はさすがに日本語との混在は意識しなかったようである.

Cyrillic Bundle については以下の論文を参照されたい.

   Volovich, V., Lemberg, W., and LaTeX3 Project Team,
   "Cyrillic languages support in LaTeX",
   1999,
   http://www.tug.org/tex-archive/macros/latex/doc/cyrguide.pdf

 — t2denc.patch

UNICODE パッケージの T2D キリルエンコーディング定義 t2denc.def を pTeX で利用する時に発生する代替フォントのエラーを抑止するパッチ. T2D は 古ロシア語・教会スラヴ語用のエンコーディング定義であり, Cyrillic Bundle を補足する位置付けにある.

T2D については以下の論文を参照いただきたい.

   Berdnikov, A., Lapko, O.,
   "Old Slavonic and Church Slavonic in TeX and Unicode",
   EuroTeX'99 Proceedings,
   http://www.uni-giessen.de/~g029/eurotex99/berdnikov2.pdf

 — ruhyphen-0307.patch

ロシアの А.Лебедев (A.レーベジェフ) 氏のハイフネーション・パターン・ファイル最新版 (2003.3版) を7ビット用に調整したバージョンを生成するパッチ. METAFONT ソースにおいて "zh" "ch" の合字として定義されている "ж" "ч" が,誤って "з-х" "ц-х" とハイフネーションされないように, "z8h" "c8h" のようなパターン・コードを独自に追加している.

パッチを適用すると ruhyphen7.tex, ruhyphal7.tex, ruhyphot2.tex, trans-ot2 の4ファイルが新たに生成される.ハイフネーション・パターン本体は ruhyphal7.texruhyphot2.tex で,これらを ruhyphen7.tex から呼び出すようになっているため, language.dat 定義の russian には ruhyphen7.tex を指定しなければならない. trans-ot2 は koi8-r で書かれたパターンファイルを7ビット OT2 用に変換するツールである.


 — multitest.tex

多言語テスト用 TeX 原稿ファイル.フランス語,ドイツ語,ロシア語,古代教会スラヴ語,ユカギール語 (キリル言語の例),ギリシア語,日本語を含む.多言語機能を網羅しているわけではなく,お試しである. EUC コードで記述されている.

まず Babel パッケージとスラヴ語関連 LaTeX アーカイブの取得, Babel 日本語対応パッチの適用から行う.旧版の Babel は削除する.

% cd ~/tmp
% wget -r -nH --passive-ftp --cut-dirs=4 \
  ftp://ftp.dante.de/tex-archive/macros/latex/required/babel
% wget -nH --cut-dirs=2 \
  http://yasuda.homeip.net/tex/slav-latex-0307.tar.gz
% tar zxvf slav-latex-0307.tar.gz
% su -m
# rm -fr $TEXMF/tex/generic/babel
# cp -R babel $TEXMF/tex/generic
# cd $TEXMF/tex/generic/babel
# patch < ~/tmp/babel-3.7h-jp.patch
# platex babel.ins
	

上記 babel.ins の処理は,パッチにより生成される japanese.dtx に EUC 漢字コードが含まれるため, Babel 付属のインストール解説文に反して,必ず platex で行わなければならない.これにより Babel の日本語の言語定義ファイル japanese.ldf が TeX Docstrip により展開・生成されるはずである.なお, japanese.dtx は EUC コードであるため, pTeX を SJIS で構築した場合は, babel.insplatex で処理する前に Nkf 等のツールによりコード変換を施す必要がある.

ロシア語用ほかハイフネーション・パターン, LH キリル・フォント, Cm-Super Type1 フォント, Unicode パッケージの最新版を組み込む.まずはダウンロード,アーカイブの展開から. Cm-Super パッケージは 65MB と巨大なので注意.

% cd ~/tmp
% wget -nH --cut-dirs=2 \
  ftp://ftp.vsu.ru/pub/tex/ruhyphen-030323.tar.gz
% wget -nH --cut-dirs=4 \
  ftp://ftp.vsu.ru/pub/tex/font-packs/lhfnt/lhfnt-3.4i.tar.gz
% wget -nH --passive-ftp --cut-dirs=3 \
  ftp://ftp.dante.de/tex-archive/fonts/ps-type1/cm-super.tar.gz
% wget -r -nH --passive-ftp --cut-dirs=4 \
  ftp://ftp.dante.de/tex-archive/macros/latex/contrib/unicode
% wget -r -nH --passive-ftp --cut-dirs=2 \
  --retr-symlinks --exclude-directories="*ruhyphen*" \
  ftp://ftp.dante.de/tex-archive/language/hyphenation
% tar zxvf ruhyphen-030323.tar.gz
% tar zxvf lhfnt-3.4i.tar.gz
% tar zxvf cm-super.tar.gz
% su -m
# rm -fr $TEXMF/tex/generic/ruhyphen
# cp hyphenation/* $TEXMF/tex/generic/hyphen/
# cp -R ruhyphen $TEXMF/tex/generic/
# cp -R unicode $TEXMF/tex/latex/
	

CTAN で入手できるロシア語のハイフネーション・パターンは8ビットコードから成っており,日本語 pLaTeX では利用できない.かつては pLaTeX で利用できる7ビット OT2 エンコーディング用が配布されていたが, LaTeX 標準でキリル文字により入力可能となった現在では obsolate したものとして CTAN で入手できなくなってしまった.日本語との混在で利用するため, 7ビット OT2 エンコーディング用のパッチを適用する.

LH フォントは teTeX に標準で付属するが版が少し古く, T2D エンコーディング・フォントも含められていないため,最新版 lhfnt-3.4i を別途導入する.旧版を TeX ツリーから削除する必要がある.以下の手順では find コマンドで探索して消去している.その後,付属の inst-lh.sh を実行すると所定の位置に LH フォント一式が格納される.

teTeX 標準の Cyrillic Bundle と UNICODE パッケージにパッチを適用する.

# cd $TEXMF/tex/generic/ruhyphen
# patch < ~/tmp/ruhyphen-0307.patch
# cd $TEXMF
# find . -name lh -type d | xargs rm -fr
# cd /var/tmp/texfonts
# find . -name lh -type d | xargs rm -fr
# cd ~/tmp/lh
# ./inst-lh.sh
# cd $TEXMF/tex/latex/cyrillic
# patch < ~/tmp/cyrillic.patch
# cd $TEXMF/tex/latex/unicode/contrib
# patch < ~/tmp/t2denc.patch
	

Cm-Super Type1 フォント及びマップ・ファイルを $TEXMF ツリーに格納する. Cm-Super は EC や LH フォントから生成した Type1 アウトライン・フォント・パッケージである.キリル組版・印刷のためには LH フォントで充分かと思うが,ビットマップ形式である PK フォントに比べ, PS や PDF 形式で配布する際のフォントの品質,ポータビリティに優れる.

# mkdir -p $TEXMF/fonts/{type1,afm}/public/cm-super
# cd ~/tmp/cm-super/
# cp pfb/*.pfb $TEXMF/fonts/type1/public/cm-super
# cp afm/*.afm.gz $TEXMF/fonts/afm/public/cm-super
# mkdir -p $TEXMF/dvips/cm-super
# cp dvips/*.{map,enc} $TEXMF/dvips/cm-super
# cp dvipdfm/*.map $TEXMF/dvipdfm/config
# cd $TEXMF/fonts/afm/public/cm-super
# gunzip *.afm.gz
# mktexlsr
	

$TEXMF/tex/generic/config/language.dat を編集し,必要とする言語とハイフネーション・パターン・ファイルの対を定義する. language.dat の編集方法はそのものを眺めれば理解できるものと察する.私の language.dat を参考までに設置しておく.私が提供するロシア語7ビット用のハイフネーション・パターンを利用するには, russian に対するパターン・ファイル名に ruhyphen7.tex を指定する.指定する言語によっては,ハイフネーション・パターンが8ビットであるがゆえに pLaTeX のフォーマット・ファイル作成時にエラーとなる場合がある.(その時は pLaTeX においてそのパターン・ファイルの指定を諦めるか,自前で用意・改修するしかない)

language.dat は LaTeX2e 用と pLaTeX2e 用を別に準備することをお勧めする. LaTeX2e 用は8ビットのオリジナルのロシア語ハイフネーション・パターンを指定し, pLaTeX2e 用は7ビット版を指定し,フォーマット・ファイル作成時点で切替えるわけである.

language.dat を編集したら, LaTeX と pLaTeX のフォーマット・ファイルを再作成して Babel 多言語環境の設定は完了である.この際,以下手順にあるとおり,フォーマット・ファイル作成において, $TEXMF/tex/generic/babel/hyphen.cfg$TEXMF/tex/generic/config/language.dat が読み込まれるかを kpsewhich コマンドで事前に確認しておく.パスの異なるものが表示されるようなら,これを名称変更すべきである.指定した覚えのないのにハイフネーション・パターンがないとのエラーが出たり,逆にハイフネーション・パターンが hyphen.tex しか読み込まれないという問題の原因は,たいていはこれである.

# cd $TEXMF/tex/generic/config
# emacs language.dat &      → LaTeX2e 用編集作業
# cp language.dat language.dat.ltx
# cp language.dat language.dat.pltx
# emacs language.dat.pltx & → pLaTeX2e 用編集作業
# cd $TEXMF/tex/latex/base
# kpsewhich --progname=tex hyphen.cfg
/usr/local/share/texmf/tex/generic/babel/hyphen.cfg
# kpsewhich --progname=tex language.dat
/usr/local/share/texmf/tex/generic/config/language.dat
# tex -ini latex.ltx
# mv -f latex.fmt $TEXMF/web2c
# cd $TEXMF/tex/generic/config
# cp language.dat.pltx language.dat
# cd $TEXMF/ptex/platex/base
# kpsewhich --progname=ptex hyphen.cfg
/usr/local/share/texmf/ptex/platex/base/hyphen.cfg
("/usr/local/share/texmf/tex/generic/babel/hyphen.cfg" と
 表示される場合,次の2コマンド行は不要)
# cd $TEXMF/ptex/platex/config
# mv hyphen.cfg hyphen.cfg.orig
# cd $TEXMF/ptex/platex/base
# kpsewhich --progname=ptex language.dat
/usr/local/share/texmf/tex/generic/babel/language.dat
("/usr/local/share/texmf/tex/generic/config/language.dat" と
 表示される場合,次の2コマンド行は不要)
# cd $TEXMF/tex/generic/babel
# mv language.dat language.dat.orig
# cd $TEXMF/ptex/platex/base
# ptex -ini platex.ltx
# mv -f platex.fmt $TEXMF/web2c
	

 

古代教会スラヴ語

 

ロシアの О.Мотыгин (O.モトゥイギン) 氏が開発したパッケージ Izhitsa をベースに,私が日本語混在で利用可能とした古代教会スラヴ語パッケージ Izhitsa-ltn を組み込む.詳細は「古代教会スラヴ語 LaTeX パッケージ Izhitsa-ltn 利用の手引き」を参照いただきたい.

% cd ~/tmp
% wget -r -nH --passive-ftp --cut-dirs=5 \
  ftp://ftp.riken.go.jp/pub/tex-archive/fonts/cyrillic/→
  old_slavonic/izhitsa/
% wget -nH --cut-dirs=1 http://yasuda.homeip.net/archives/→
  izhitsa-ltn.tar.gz
% tar zxvf izhitsa-ltn.tar.gz
% cd izhitsa
% su -m
# mkdir -p $TEXMF/{tex/latex,fonts/source}/izhitsa
# cp -p *.mf $TEXMF/fonts/source/izhitsa/
# cp -p *.sty lcs* $TEXMF/tex/latex/izhitsa/
# mktexlsr
# exit
	

 

Xdvik-VFlib

 

TeX の出力である dvi ファイルのビュアの代表的ソフトウェアである Xdvi(k) をインストールする.日本語対応の Xdvi の構築において,日本語フォントをラスタライズするライブラリとして FreeType と VFlib と2種類の選択が可能であるが,ここでは後者とする.

VFlib 2.25.6 導入を FreeBSD の ports で行う. Xdvik のパッケージはコンパイル時において VFlib のヘッダファイル VF.h/usr/X11R6/include に探しに行く.これに対し FreeBSD VFlib のインストールでは /usr/local/include に格納されるので,シンボリックリンクを張っておく.

% cd /usr/ports/japanese/vflib
% su -m
# make install
# rehash
# ln -s /usr/local/include/VF.h /usr/X11R6/include/VF.h
	

/usr/local/share/fonts/TrueType に明朝及びゴシックの日本語フォントをコピーする.フォントはライセンスに従った範囲で利用する必要がある. Windows に付属している MS明朝, MSゴシックも VFlib, Ghostscript で動作するのだけれど,残念ながら Windows に限った使用しか認められていないようである.ここでは FreeBSD 商用パッケージに含まれていたリョービ(株)のリョービ明朝とリョービゴシックの TrueType フォントを利用する例を示す.お手持ちの日本語 TrueType フォントのファイル名で読み替えていただければよいはずである.

# mkdir -p /usr/local/share/fonts/TrueType
# cp tchomil.ttc tcgothb.ttc /usr/local/share/fonts/TrueType
	

VFlib のフォント管理ファイル /usr/local/share/VFlib/2.25.6/vfontcap に以下の内容を記述する.行頭が "min" "goth" "tmin" "tgoth" "bmin" "bgoth" の行は定義内容を以下のとおり修正ないしは追加する.

min:\                      → 追加
    :fc=ryobi-mincho:      → 追加
goth:\                     → 追加
    :fc=ryobi-gothic:      → 追加
#min:\                     → コメントアウト
#   :fc=kochi-mincho:      → コメントアウト
#goth:\                    → コメントアウト
#   :fc=kochi-gothic:      → コメントアウト

###--------------------------
#### PRIMITIVE  FONTS
####
### Ryobi fonts            → 以下10行追加
ryobi-mincho:\
    :fc=r-ryobi-mincho:
ryobi-gothic:\
    :fc=r-ryobi-gothic:
r-ryobi-mincho|Ryobi Mincho:\
    :ft=freetype:\
    :ff=/usr/local/share/fonts/TrueType/tchomil.ttc:
r-ryobi-gothic|Ryobi Gothic:\
    :ft=freetype:\
    :ff=/usr/local/share/fonts/TrueType/tcgothb.ttc:

###--------------------------
### for ASCII jTeX
###
min|min5|min6|min7|min8|min9|min10|min12|min17|Mincho Font:\
    :fc=ryobi-mincho:      → 修正
goth|goth5||goth6|goth7|goth8|goth9|goth10|goth12|goth17|→
  Gothic Font:\
    :fc=ryobi-gothic:      → 修正
tmin|tmin5|tmin6|tmin7|tmin8|tmin9|tmin10|tmin12|tmin17|→
  Mincho Font:\
    :fc=ryobi-mincho:      → 修正
tgoth|tgoth5||tgoth6|tgoth7|tgoth8|tgoth9|tgoth10|tgoth12|→
  tgoth17|Gothic Font:\
    :fc=ryobi-gothic:      → 修正
bmin:\
    :fc=ryobi-mincho:      → 修正
bgoth:\
    :fc=ryobi-gothic:      → 修正
	

VFlib 用のフォント・インデックスを作成する.これを実施したのちに ktest コマンドでフォントが表示されれば VFlib 環境設定は完了である.

# cd /usr/local/share/fonts/TrueType
# ttindex tchomil.ttc
# ttindex tcgothb.ttc
# exit
% rehash
% ktest -f min &
% ktest -f goth &
	

さて次に Xdvik. 日本語対応パッチは,土村氏が精力的に作成・公開しているページからダウンロードして適用する.

% cd ~/tmp
% wget -nH --cut-dirs=5 \
  http://www.ring.gr.jp/pub/text/CTAN/dviware/xdvik/→
  xdvik-22.40y.tar.gz
% wget -nH --cut-dirs=5 \
  http://www.nn.iij4u.or.jp/~tutimura/tex/→
  xdvik-22.40w-j1.17.patch.gz
% tar zxvf xdvik-22.40y.tar.gz
% cd xdvik-22.40y
% zcat ../xdvik-22.40w-j1.17.patch.gz | patch -p1
% ./configure --prefix=/usr/local --disable-multiplatform
% gmake
% su -m
# cd texk/xdvik
# gmake install
	

$TEXMF/xdvi/vfontmap の "# --with-vflib=vf2ft" 行の直前あたりに以下の記述を追加する.スーパーユーザ権限で編集する必要がある.これで Xdvi の環境構築は完了である.

ryumin-l        min
ryumin-l-v      min
gtbbb-m         goth
gtbbb-m-v       goth
futomin-b       min
futomin-b-v     min
futogo-b        goth
futogo-b-v      goth
jun101-l        goth
jun101-l-v      goth
	

 

Dvipsk

 

Dvipsk 5.94a p1.6 を構築する. teTeX に含まれる Dvips パッケージに対し,(株)アスキーによる日本語パッチを適用する.

% cd ~/tmp
% wget -nH --cut-dirs=5 \
  http://www.ring.gr.jp/pub/text/TeX/ascii-ptex/dvips/→
  dvipsk-jpatch-p1.6.tar.gz
% wget -nH --cut-dirs=5 \
  http://www.ring.gr.jp/pub/text/TeX/ptex-win32/utils/→
  udvips-5.94a-p1.6.patch
% tar zxvf dvipsk-jpatch-p1.6.tar.gz \
  -C tetex-src-2.0.2/texk/dvipsk/
% cd tetex-src-2.0.2/texk/dvipsk/
% patch -p1 < dvipsk-5.92b-p1.6.patch
% patch -p1 < ~/tmp/udvips-5.94a-p1.6.patch
% gmake
% su -m
# gmake install
	

漢字用のマップ定義を追加する.次の4行のテキストを kanji.map というファイル名で記述し $TEXMF/dvips/config/ 配下に格納する.スーパーユーザ権限で実行する必要がある.

rml     Ryumin-Light-H
rmlv    Ryumin-Light-V
gbm     GothicBBB-Medium-H
gbmv    GothicBBB-Medium-V
	

さらに $TEXMF/dvips/config/config.ps 中の "% +myfonts.map" とある行の次行に,いましがた作成した kanji.map 及び Cm-Super のマップの定義を追加する.またついでに "o |lpr" 行は,不用意に印刷しないようコメントアウトしておく.

% How to print, maybe with lp instead lpr, etc...
% will go into a file by default.
%o |lpr               → コメントアウト
...
% p +myfonts.map
p +kanji.map          → 追加
p +cm-super-t1.map    → 追加
p +cm-super-ts1.map   → 追加
p +cm-super-t2a.map   → 追加
p +cm-super-t2b.map   → 追加
p +cm-super-t2c.map   → 追加
p +cm-super-x2.map    → 追加
	

$TEXMF ツリーにファイルを追加したので,次のように $TEXMF/ls-R を更新しておく. (現在の UNIX のファイルシステムは充分高速であり,かつてのように TeX ファイルを高速に見出すための ls-R を必要としなくなっている.ファイルを追加する度にいちいち ls-R を作り直すよりも,削除してしまう方が賢明かもしれない.ただしこの場合 TeX 関連のパッケージによっては独自に ls-R を再作成するものがあるので注意する.削除したはずと思っていても,追加したファイルが認識されなくなってしまうことがある.要するに $TEXMF ツリーを更新したら mktexlsr を実行するか $TEXMF/ls-R を削除するかいずれかを行うのがよい)

# mktexlsr
	

 

Ghostscript

 

Ghostscript は PostScript(PS) の変換プログラムである. PC 画面で TeX 文書の出来栄えを確認するには Xdvi などの dvi ビュアがあればよいが,家庭用のプリンタで印字するには,いったん Dvipsk で PostScript 形式のファイル変換を行ったのち Ghostscript を用いてさらにプリンタに適したフォーマットに変換するのが一般的である.

かつては FreeBSD 環境で安価な TrueType 日本語フォントを扱うためには別途 VFlib 対応の Ghostscript が必要であったが,現在のバージョンでは CJK 対応プロジェクトのおかげで独自に和文が利用できるようになった.ここでは 2003.7 時点の最新版 7.07 を組み込む.

Ghostscript は様々な形式に変換することが可能であるが,別途ライブラリを必要とする場合があり,例えば PNG 形式にするには libpng が必要となる.ここでは JPEG 用 jpegsrc と libpng を取り寄せてコンパイルした.とくに libpng は, EPSON プリンタのドライバを利用する場合は Ghostscript の PNG 変換を前提とするため必須である.

% cd ~/tmp
% mkdir gs7
% wget -nH --passive-ftp --cut-dirs=5 \
  ftp://mirror.cs.wise.edu/pub/mirrors/ghost/gnu/gs707/→
  ghostscript-7.07.tar.bz2
% wget -nH --cut-dirs=3 \
  http://ring.airnet.ne.jp/archives/GNU/ghostscript/→
  gnu-gs-fonts-std-6.0.tar.gz
% wget -nH --cut-dirs=3 \
  http://ring.airnet.ne.jp/archives/GNU/ghostscript/→
  gnu-gs-fonts-other-6.0.tar.gz
% wget -nH --cut-dirs=3 \
  http://ring.airnet.ne.jp/archives/GNU/ghostscript/→
  jpegsrc.v6b.tar.gz
% wget -nH --cut-dirs=2 \
  http://easynews.dl.sourceforge.net/sourceforge/libpng/→
  libpng-1.2.5.tar.bz2
% wget -nH --passive-ftp --cut-dirs=2 \
  ftp://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200204.tar.gz
% wget -nH --passive-ftp --cut-dirs=2 \
  ftp://ftp.gyve.org/pub/gs-cjk/acro5-cmaps-2001.tar.gz
% bzip2 -dc ghostscript-7.07.tar.bz2 | ( cd gs7; tar xvf - )
% cd gs7/ghostscript-7.07
% tar zxvf ~/tmp/jpegsrc.v6b.tar.gz
% bzip2 -dc ~/tmp/libpng-1.2.5.tar.bz2 | tar xvf -
% ln -s jpeg-6b jpeg
% ln -s libpng-1.2.5 libpng
% ./configure
% gmake
% su -m
# gmake install
# cd /usr/local/share/ghostscript
# tar zxvf ~/tmp/gnu-gs-fonts-std-6.0.tar.gz
# tar zxvf ~/tmp/gnu-gs-fonts-other-6.0.tar.gz
# mkdir Resource
# cd Resource
# tar zxvf ~/tmp/adobe-cmaps-200204.tar.gz
# tar zxvf ~/tmp/acro5-cmaps-2001.tar.gz
	

/usr/local/share/ghostscript/7.07/lib/gs_res.ps の以下の2行中の /Resource/ (2箇所) を /usr/local/share/ghostscript/Resource/ に書き換える.

/FontResourceDir (/usr/local/share/ghostscript/Resource/Font/) →
  readonly .forcedef	% pssys'params is r-o
/GenericResourceDir (/usr/local/share/ghostscript/Resource/) →
  readonly .forcedef	% pssys'params is r-o
	

Ghostscript で利用するフォントは VFlib 項で述べたリョービ日本語 TrueType フォントを共有する. /usr/local/share/ghostscript/fonts からシンボリックリンクを設定する.

# cd /usr/local/share/ghostscript/fonts
# ln -s /usr/local/share/fonts/TrueType/tchomil.ttc tchomil.ttc  
# ln -s /usr/local/share/fonts/TrueType/tcgothb.ttc tcgothb.ttc
	

日本語フォントのファイル名称と Dvips が出力する PostScript フォント名称とを関係づける定義を記述する. /usr/local/share/ghostscript/7.07/lib/CIDFnmap に以下の内容を追加する.

/Ryumin-Light           (tchomil.ttc)   ;
/GothicBBB-Medium       (tcgothb.ttc)   ;
/FutoMinA101-Bold       (tchomil.ttc)   ;
/FutoGoB101-Bold        (tcgothb.ttc)   ;
	

 

Gv

 

Ghostscript は画面上でのインタラクティブな操作には向いていない. PS ファイルのビュア Gv 3.5.8 を ports から組み込む.これは裏で Ghostscript を利用しているのではあるが.

# cd /usr/ports/print/gv
# make install
# exit
	

 

プリンタ設定

 

プリンタの設定は機種に依存する.ここでは私の所有する EPSON の PM-900C カラーインクジェットプリンタを例に設定方法を示す.一般的な機種を想定したプリンタ設定については,『改訂版 FreeBSD徹底入門』に, Ghostscript を利用したフィルタを lpr から呼び出す方法の詳しい解説がある.

FreeBSD には EPSON やキヤノンの有名なプリンタ用のドライバの ports が用意されている.これらはもともと Linux 用に作成されたものであはるが, FreeBSD の Linux エミュレータのおかげで FreeBSD でも利用可能である. ports によって linux_base-7.1_4, 引続き pips900-1.3 をインストールする.

# cd /usr/ports/emulators/linux_base
# make install
# cd /usr/ports/print/pips900
# make install
# cd /usr/local/libexec/pips900
# setup
Select : en ja
(english) > ja
プリンタの接続先を指定してください.
(/dev/ulpt0) > (空送信)
設定は以上です.設定を保存してよろしいですか?
(Yes/no) > Yes
# exit
	

FreeBSD の Linux エミュレーション機能を有効にするためには,さらに /etc/rc.conf ファイルに linux_enable="YES" 行を追加してリブートする.

スーパーユーザで pips900 コマンドを起動し,下図のとおり "Main" タブの "Input Resolution" の値を "720" に変更し, "Save" をクリックし, "Quit" で終了する.

以上で /etc/printcap やプリンタに出力するためのスクリプトの準備は完了であるが, Pips900 の画面から印刷を行うためには PRINTER 環境変数に /etc/printcap のエントリである pm900c を設定しておく必要がある.メニューから様々な設定が可能なので,マニュアルを参照していただきたい.

% setenv PRINTER pm900c
% pips900 &
(I/O タブの "Input" で,印刷したい PS ファイルを選択して
 "Print" をクリックすると印刷される)
	

 

Dvipdfmx

 

インターネットで配布するドキュメント形式としていまや PDF はデファクト・スタンダードとなった. TeX の世界でも dvi ファイルを pdf 形式に変換するソフトウェアが日本語でも利用できるようになった.次に Dvipdfmx 2003.3 月版を組み込む.

% cd ~/tmp
% wget -nH --cut-dirs=2 \
  http://project.ktug.or.kr/dvipdfmx/snapshot/→
  dvipdfmx-20030313.tar.gz
% tar zxvf dvipdfmx-20030313.tar.gz -C tetex-src-2.0.2/texk
% cd tetex-src-2.0.2/texk/dvipdfmx-20030313
% ./configure --prefix=/usr/local --with-kpathsea=/usr/local
% gmake
% su -m
# gmake install
# mktexlsr
	

Dvipdfmx の設定ファイル $TEXMF/dvipdfm/config/dvipdfmx.cfg の最後尾あたりを以下のとおり書き換える. cmr.map, psbase14.map, lw35urw.map のある行をコメントアウトし, dvipdfm.map を追加する.また Cm-Super フォント用のマップ定義も追加しておく.

% Font map files
%
%f cmr.map                  → コメントアウト
%f psbase14.map             → コメントアウト
% Most distributions now use these names
%f lw35urw.map              → コメントアウト
% Some use these names
% f lw35urwa.map
f dvipdfm.map               → 追加
f cm-super-t1.map           → 追加
f cm-super-ts1.map          → 追加
f cm-super-t2a.map          → 追加
f cm-super-t2b.map          → 追加
f cm-super-t2c.map          → 追加
f cm-super-x2.map           → 追加
f cid-x.map
	

Ghostscript でインストールした cmap ファイル群を Dvipdfmx からも利用できるようにシンボリックリンクを設定する.

# cd $TEXMF/dvipdfm
# ln -s /usr/local/share/ghostscript/Resource .
# exit
	

 

利用方法

 

Babel パッケージにおけるロシア語の利用は文書のプリアンブルで,以下の例のとおり, \usepackage コントロール・シーケンスによって inputenc, fontenc, babel パッケージを順に指定する.

inputenc には入力文字コードを指定する.ロシア語は koi8-r, cp1251 などを指定することでキリル文字で直接 TeX 文書が記述できるが,日本語との混在を行う場合,必然的にアスキー・コードによるトランスクリプション入力である ot2enc オプションを選択すべきである.

fontenc にはフォント・エンコーディング (出力) を指定する.指定できるキリル・エンコーディングは OT2, T2A, T2B, T2C, T2D または X2 で,複数列記できる. (欧文用として T1 も指定しておくことを推奨する.) ただし本文の記述 (inputenc) はローマ字入力となる (ot2enc) ため,ロシア語と共通する文字は OT2 エンコーディングで出力し, T2B など他のキリル諸言語独自の文字の出力は \CYRxxx という定義されたコントロール・シーケンスによって行う.この時 \CYRxxx の直前で \fontencoding{T2B}\selectfont などとフォント・エンコーディングを切替え,さらに OT2 に戻す必要がある.なんと面倒なこと..., よってロシア語のコンテキストで利用する場合,頻繁に利用する文字は

\newcommand{\YUKO}{\fontencoding{T2B}\selectfont\CYROTLD%
    \fontencoding{OT2}\selectfont}

のように別にコントロール・シーケンスを定義しておいて簡略に入力できるような工夫をするのがよい.

babel の言語オプションの指定は末尾に指定した言語がデフォルトの言語となる.

\usepackage[russian,...,japanese]{babel}

この場合, japanese が初期状態で選択された言語となる.よって,プリアンブルでタイトルを記述したり, \hyphenation で例外ハイフネーションを指定する場合,この言語で組版されることになる.

\documentclass[a4paper]{jarticle}
\usepackage[ot2enc]{inputenc}%    → 入力エンコーディング
\usepackage[OT2,T2A,T2B,T2C,T2D,X2,T1]{fontenc}
\usepackage[russian,polutonikogreek,german,french,japanese]{babel}
\usepackage{izhitsa}%             → 古代教会スラヴ語パッケージ
\begin{document}
...                               → 初期状態は日本語
\selectlanguage{russian}          → ロシア語切替え
  \fontencoding{OT2}\selectfont   → T2x と併用する場合必要
  Russki{i0} yazyk
  {\fontencoding{T2B}\selectfont% → T2x 文字を利用する時 
  \cyrotld}
  Opyat{p1} russki{i0} yazyk
  ... ロシア語,キリル諸言語
\selectlanguage{polutonikogreek}  → 古典ギリシア語切替え
  ... 古典ギリシア語
\selectlanguage{japanese}         → 日本語切替え
  ... 日本語
{\slav %                          → 古代教会スラヴ語テキスト
  ... 教会スラヴ語%   \slav は宣言なのでグルーピング{ }を行う
}
\end{document}
	

ロシア語の文字の記述方法 (ot2enc) は「スラヴ学研究者のコンピュータ・リテラシーのために/多言語その他の利用方法について」を参照いただきたい.ギリシア語も同様である.ここでは, ot2enc 入力エンコーディングによるキリル文字の記述において注意すべき点を追記しておく.

OT2 エンコーディングではアスキー・コードによりキリル文字を表現するわけであるが,同一のコードで異なるキリル文字を表現する曖昧さを残している.例えば, "ts" という記述はキリル文字の "ц" 及び "тс" 両方を示す可能性がある.つまり "становится" と書きたいがために "stanovitsya" と記述すると "становиця" と出力されてしまうのだ.これを回避するためには "stanovit\-sya" とハイフネーション許可コントロール・シーケンス ("\-") を挿入する必要がある.

逆に, "ch" で "ч" を期待しているにもかかわらず "цх" と出力される場合については, "c" と "h" の間でハイフネーションを禁止する工夫が必要である.私の調整した上記 OT2 用ハイフネーション・パターンでは,以下の文字は分離されないパターン・コード指定を行っている.

ч (=ch),   ћ (=dj),   х (=kh),   љ (=lj),   њ (=nj),   ш (=sh),
    щ (=shch, xq),   ю (=yu),   я (=ya)

Cyrillic Bundle の T2A, T2B, T2C, T2D, X2 エンコーディングの文字の入力については LH フォントのドキュメント beresta.tex を参照のこと.使用したい文字がどのエンコーディングの何というコントロール・シーケンスで定義されているか記載がされている. beresta.tex を以下のように TeX で処理する.いくつかフォントエラーが出るがかまわず Enter を押して突き進んで,出力された dvi ファイルを Xdvi で閲覧する.

% cd ~/tmp/lh/doc/beresta
% tex beresta.tex
(何回かエラーにより停止するが Enter を押して進める)
% xdvi beresta.dvi &
	

LH フォントの OT2, T2A, T2B, T2C, T2D, X2 エンコーディングのフォントマップは同様に LH フォントのドキュメントを参照のこと.以下のように TeX で処理して,それぞれの dvi ファイルを Xdvi で閲覧いただきたい.

% cd ~/tmp/lh/doc/fonttest
% tex t2a-fmap.tex t2b-fmap.tex t2c-fmap.tex t2d-fmap.tex \
  x2-fmap.tex wn-fmap.tex
% xdvi t2a-fmap.dvi &
(などなど)
	

これまで記述したインストール・設定が完了したら,テストしてみる.多言語テスト用 TeX 文書 multitest.tex を pLaTeX でタイプセットし,印刷まで試していただきたい. pLaTeX, Xdvi, Dvips, Dvipdfmx, Ghostscript, Gv それぞれのコマンド書式,利用方法についてはパッケージ添付マニュアル,インターネット・リソースを参照いただきたい.思うようにタイプセットできることを祈る. (テスト文書の組版結果は multitest.pdf を参照)

% cd ~/tmp
% platex multitest.tex
% xdvi multitest.dvi &
% dvips -D 720 -mode esphi -o multitest.ps multitest.dvi
% gv -antialias multitest.ps &
% dvipdfmx multitest.dvi
% acroread multitest.pdf &
% lpr -Ppm900c multitest.ps
(下線部はユーザのプリンタ環境に応じて変更する)
	

 

ヘブライ語との
混在について
(付記)

 

聖書文献学でヘブライ語を記述する必要のある方から問い合わせがあった. Babel におけるヘブライ語パッケージはその記述コードが8ビットである関係で日本語 pTeX での利用が不可能である.一方 ArabTeX を別途インストールするという手段がある.ところがこれがまた Babel との相性が悪くギリシア語,フランス語等と混在させるとエラーとなってしまう.ここでは, pTeX 上で ArabTeX ヘブライ語と Babel とを混在利用する際の問題点に対する対処方法について簡単に述べる.

ArabTeX は,アラビア語,ヘブライ語という右から左へと記述される言語を様々なトランスクリプションでサポートする凝った TeX パッケージであるが,その構造上の本性として文字の分類コードの変更や ISO 8859-6 もしくは -8 によるコーディングを基盤としているため, pTeX 上の Babel との混在において不具合を発生する.

パッケージ添付のヘブライ語用コマンド・シーケンス定義である hecmd.sty は8ビットコードで書かれており, pTeX でうまく通らない.これをアスキー・コードで書き換える必要がある.私が適当に修正したパッチを適用する.ここでは ArabTeX は $TEXMF/tex/latex/arabtex にインストールするものとする.

% cd ~/tmp
% wget -r -nH --passive-ftp --cut-dirs=2 \
  ftp://ftp.dante.de/tex-archive/language/arabtex
% wget -nH --cut-dirs=2 \
  http://yasuda.homeip.net/tex/hebrew.patch
% su -m
# mkdir $TEXMF/{tex/latex,fonts/{source,tfm,type1}}/arabtex
# cd arabtex
# cp -p texinput/* $TEXMF/tex/latex/arabtex
# cp -p mfinput/* $TEXMF/fonts/source/arabtex
# cp -p tfm/* $TEXMF/fonts/tfm/arabtex
# cp -p psfonts/*.pfb $TEXMF/fonts/type1/arabtex
# cp -p psfonts/*.map $TEXMF/dvips/config
# cd $TEXMF/tex/latex/arabtex
# patch < ~/tmp/hebrew.patch
# mktexlsr
# exit
	

さらに $TEXMF/dvips/config/config.ps 中に arabtex.map を追加する. Dvips が Type1 フォントを使用するようになる.

p +kanji.map
p +cm-super-t1.map
...

p +cm-super-x2.map
p +arabtex.map       → 追加
	

 

フランス語と混在させる場合は,以下の例のとおり,ヘブライ語環境を宣言する直前で ":" (コロン) の分類コードを 12 にセットする.これを行わないとヘブライ語記述のパースにおいてエラーとなる.

\documentclass[a4paper]{jarticle}
\usepackage[ot2enc]{inputenc}
\usepackage[OT2,T1]{fontenc}
\usepackage{hebtex}
\usepackage[french,polutonikogreek,german,russian,japanese]{babel}
\begin{document}
...
  \catcode`\:=12 % この行を hebtex 環境の直前に挿入する
  \begin{hebtex}
  \setcode{standard}
  ...ヘブライ語のコーディング
  \end{hebtex}
	

 

ヘブライ語とギリシア語を混在する場合,以下の例のように,ギリシア語に切替えた直後に "<" の分類コードを 12 にセットする.これを行わないと,ギリシア語の処理において "<" 文字 (気息記号のディレクティブ) 以降予期に反してヘブライ文字に置き換えられる等の不具合が発生する.

\documentclass[a4paper]{jarticle}
\usepackage[ot2enc]{inputenc}
\usepackage[OT2,T1]{fontenc}
\usepackage{hebtex}
\usepackage[french,polutonikogreek,german,russian,japanese]{babel}
\begin{document}
...
\selectlanguage{polutonikogreek}
  \catcode`\<=12 % ArabTeX ヘブライ語混在時必要
  \catcode`\~=12 % "~" でループする場合の対策 (上述)
  ...古典ギリシア語のコーディング
	

 

\catcodeの変更による影響を極小化するため,上記指定は必要な部分でのみ使用し,かつその範囲をグルーピングするのがよい.

とはいえ,私はまったくヘブライ語を理解していないので,これ以外にもいろんなパターンで記述を行うとエラーが出るかもしれない.

 

2004.2 付記

 

2003.11 に pTeX 3.1.3 が公開された.上記インストール手順において ptex-src-3.1.2.tar.gz を ptex-src-3.1.3.tar.gz に変更すればよい.

2003.12 に Babel 3.7o が公開された. babel-3.7h-jp.patch はそのままこれに適用できる.

Xdvik パッケージ,日本語パッチは 2004.2 現在,それぞれ以下に版が上がっている.上記手順のファイル名称を読み替えればよい.
— xdvik-22.40y1.tar.gz
— xdvik-22.40y1-j1.18.patch.gz

Xdvik でフォントのレンダリングにおいて FreeType を利用したい場合, FreeBSD でコンパイルするとき注意が必要である.上記 Xdvik パッケージ展開/パッチ適用のあと, configure に以下のとおり環境変数とオプションを指定してビルドする.これを行わないと FreeType のヘッダファイルを見つけられずコンパイルに失敗し,またライブラリのリンクができない.

% env LDFLAGS="-L/usr/local/lib -L/usr/X11R6/lib" \
  LD_LIBRARY_PATH=":/usr/local/lib:/usr/X11R6/lib" \
  CPPFLAGS="-I/usr/local/include -I/usr/local/include/freetype2" \
  ./configure --with-vflib=vf2ft --enable-shared \
  --prefix=/usr/local --disable-multiplatform 
% gmake
% su -m
# cd texk/xdvik
# gmake install
	

 

Dvipdfmx パッケージは 2004.2 現在, dvipdfmx-20031207.tar.gz のスナップショットが出ている.ダウンロードの URL が
   http://project.ktug.or.kr/dvipdfmx/snapshot/current/
に変更されたほか,上記手順のファイル名称を読み替えていただきたい.

ArabTeX についてその後, Babel フランス語テクスト中にギュメ(<<(«) >>(»))を記述するとエラーになるという指摘があった.この対応としては, \flqq{}\frqq{} でギュメを記述して回避するか,もしくは私のパッチ(修正版)を適用し,さらに TeX 文書の始め(\begin{document} のあと)の適当なところに以下を挿入する.

\catcode`\<=12 % \usepackage{hebtex}を入れる場合は
\catcode`\>=12 % この2行を追加.
	

 

2006.11 付記 (ptetex3, ArabTeX 他)

 

[ ptetex3 について ]

teTeX はバージョン 3 以降, TDS (TeX Directory Structure) に準拠したディレクトリ構造でパッケージ,フォントをインストールするようになった. updmap ユーティリティによってフォント・マップの管理が容易になった.上記説明において, $TEXMF で示したツリーのトップはローカル・パッケージ・ディレクトリ /usr/local/teTeX/share/texmf-local とするのが一般的である.フォント・マップについても, $TEXMF/fonts/map/dvips 以下に格納して「updmap --enable Map マップファイル名」を実行すればよい.

フォーマット・ファイルのインストールについては, ini(p)TeX でコンパイルするのではなく,「fmtutil --byfmt フォーマット名称」とするのが一般的になった.

2006.11 現在 UNIX 系システムに pTeX をインストールするならば土村氏による ptetex3 を利用するのがもっとも簡単かつ確実である. Babel, ハイフネーション・パターンのみならず, Xdvi, Dvipdfmx の組込み,フォント環境の調整など到れり尽くせりのインストール・ツールである. ptetex3 最新版は土村氏のサイトからポイントして入手いただきたい.

Babel についてはその後,ギリシア語言語定義 greek.ldf のチルダの問題は解消した.現在の版 2005/03/30 v1.3l では上記パッチ,チルダの分類コード変更は不要になっている.また Cyrillic bundle の代替フォント・エラーも pTeX p3.1.9 では対策された.

[ Babel 日本語定義ファイルについて ]

本文説明で述べている Babel 日本語定義ファイル japanese.ldf は,稲垣氏配布のパッケージと名称が重複するという問題がある.そこで拙作を nippon.ldf に名称変更したものをアーカイブしたので,こちらをご利用いただいてもよい. zip アーカイブとしたので Windows ユーザにも解凍できるはずである. platex フォーマットは EUC でも SJIS でもよい. Babel 言語オプションに nippon と指定すれば,他の言語と同じインタフェースで利用できる.

\documentclass[a4paper]{jarticle}
\usepackage[nippon]{babel}
\begin{document}
\selectlanguage{nippon}
...
\end{document}
	

[ ArabTeX について ]

ArabTeX は 2006.11 現在,バージョン 3.11, 2006.7.6 訂正スタイル収録版が最新のようである.上記拙作パッチはこの版に対してもまだ適用可能のようである.Windows ユーザにとってはパッチ適用は困難なので,適用済みのアーカイブを用意した. arabtex-patched.zip をダウンロードし, ArabTeX オリジナルの同名のスタイルと差し換えて利用できる.

トノ氏は, 8 ビットコードを「^^十六進数」の 7 ビット・アスキー形式に変換する Perl スクリプト 8bt2ptex.pl を公開されている.これを用いて ArabTeX の各スタイルファイルを変換しても pTeX で ArabTeX が利用可能となる.上記拙作パッチは今後の ArabTeX バージョンアップに追従できない虞れが十分にあり,もとより ArabTeX の命令そのものを一部書き換えているため,現時点ではトノ氏ツールを適用するほうが適切であると思う.もちろん,オリジナルの 8 ビットコード文字からなる命令を使用する場合も同様の変換を施して原稿に書く必要があるが, ArabTeX に関しローマン・トランスリテレーションでヘブライ語,アラビア語を入力する範疇において,ユーザ原稿でそれを行う状況はあまりないと思う.

8bt2ptex.pl は稲垣氏のサイトから入手可能である. ArabTeX スタイル・ファイル群に対する 7 ビット・アスキー形式変換は,パスの通ったところに 8bt2ptex.pl があり, arabtex スタイル・ディレクトリが作業カレント・ディレクトリにあるものとして,以下のようにすればよい.バックアップは事前に取得しておく.

% ls
arabtex
% mkdir arabtex-7bit
% cd arabtex
% foreach i (*)
foreach? 8bt2ptex.pl $i > ../arabtex-7bit/$i
foreach? end
% cd ..
% su -m
# rm -f \
  /usr/local/teTeX/share/texmf-local/tex/latex/arabtex/*
(古いスタイルを削除)
# cp arabtex-7bit/* \
 /usr/local/teTeX/share/texmf-local/tex/latex/arabtex
(7ビット化したスタイルをコピー)
# mktexlsr
# exit
%
	

8bt2ptex.pl 変換が面倒なら,変換済みアーカイブを用意したので,すでに ArabTeX を導入済みの方には,ダウンロードして展開すればすぐに使えると思う. UNIX でも Windows でも利用できるはずである. arab7bit.zip をアーカイバで解凍し, arabtex-7bit 以下のファイルを $TEXMF/tex/latex/arabtex 以下にコピーしていただきたい.本アーカイブは 2006.7.6 版の ArabTeX 3.11 に対し変換を施したものである.

% unzip arab7bit.zip
% su -m
# cp arabtex-7bit/* \
  /usr/local/teTeX/share/texmf-local/tex/latex/arabtex
# mktexlsr
# exit
%
	

サンプル原稿 (JIS) は arabmulti.tex (組版結果 arabmulti.pdf) を参照.

ArabTeX のみならず 8 ビットコードで書かれた外国語パッケージは,このように「^^十六進数」形式にしておくと, pTeX で和文と混在して利用可能となる場合がある.タイ語 ThaiLaTeX もそのひとつである.

 

2010.4 付記

 

[ ptexlive ArabTeX 3.11s について ]

ptexlive 2009 にははじめから ArabTeX 3.11s が導入されている.ところが,3.11s だと 8bt2ptex.pl 変換ではヘブライ語でエラーとなってしまう.上記の古い版を使うか,バックアップ取得の上,ptexlive 用パッチを適用してみていただきたい.ヘブライ語は普通に組めるようである.このパッチは,特別なことはなにひとつしておらず,hecmd.sty の 47--63L \allowarab 行すべてをコメントアウトしているだけなので,自分で編集したほうが早いかも知れない.いずれにせよ,自己責任でお願いしたい.

# cd /usr/local/texlive/p2009/texmf-dist/tex/latex/arabtex
# patch < ~/somewhere/arabtex-hecmd-ptexlive.patch
	

このパッチは,特別なことはなにひとつしておらず,hecmd.sty の 47--63L \allowarab 行すべてをコメントアウトしているだけなので,自分で編集したほうが早いかも知れない.いずれにせよ,自己責任でお願いしたい.