TeX Live 2013 導入

Mac OS Mavericks 環境を整える一環で LaTeX を更改した。最近,まったく LaTeX に触っていないので,いまや浦島太郎状態であった。これまで奥村先生の『美文書作成入門』の改訂版が出るタイミングでバージョンアップをしていたのだが,昨年 10 月に改訂第 6 版が出たときすら面倒臭くて放置していた。一念発起,TeX Live 2013 をインストール。

といっても,今回は TeX Wiki の MacTeX ページの通り,TeX Live 2013 Mac 向けパッケージを組み込んだので,何の悩みもなく,さっさと終わってしまった。追加で行った作業というと,これまで使っていた TEXMFLOCAL 下パッケージのなかで,TeX Live 標準組込みになっていないマイナーなフォントパッケージ(多くはキリルフォント)のマップ登録と,言語ハイフネーションの追加くらいだった。

map の一括登録

fonts/map/dvips 配下にあるフォントマップをひとつひとつ登録するのは面倒なので,シェルスクリプトを生成して一括処理した。

$ cd /usr/local/texlive/texmf-local/fonts/map/dvips
$ for i in `find . -name "*.map" | xargs basename`
> do echo "updmap-sys --nomkmap --enable Map=$i" >> ~/tmp/addmap.sh; done
$ sudo sh ~/tmp/addmap.sh
$ sudo updmap-sys

言語の追加

TeX Live 2013 では,80 近い言語についてハイフネーションパターンが初期状態で登録されており,普通は何も手を加える必要はない。だが,自作の OldSlav 教会スラヴ語パッケージについては,追加しなければならない。

language.dat ファイルに対し言語名とそれに紐づいたハイフネーションパターンファイル名を記述して,フォーマットファイルを生成するわけだが,TeX Live ではシステム提供の language.dat ファイルを直接触ってはならないとされている。language.dat の先頭にそういうコメントがある。TEXMFLOCAL 配下に,サイト独自の定義ファイル language-local.dat を作成し,tlmgr ユーティリティを用いて,サイト独自ファイルとシステム提供ファイルとをマージした language.dat を別に生成するのが「マナー」のようである。仕上げに fmtutil-sys コマンドを投入することでフォーマットファイルをダンプする。

[ TEXMFLOCAL/tex/generic/config で作業する ]
$ cd /usr/local/texlive/texmf-local/tex/generic/config
$ ls
[ まだ更地。oldchurchslavonic 定義だけの language-local.dat を作る ]
$ sudo vi language-local.dat
$ cat language-local.dat
% OldSlav Church Slavonic Language
oldchurchslavonic ocshyphen.tex
[ tlmgr でマージされた language.dat を生成する ]
$ sudo tlmgr generate --dest language.dat language.dat
To make the newly-generated language.dat take effect, run fmtutil-sys --byhyphen
language.dat.
$ ls
language-local.dat      language.dat
[ 新たに生成された language.dat に基づいてフォーマットファイルをダンプする ]
$ sudo fmtutil-sys --byhyphen language.dat

これで教会スラヴ語 ocshyphen.tex が登録される。language.datlatex 系エンジン用である。もし tex 系,lua 系に追加しなければならないのなら,それぞれ language-local.deflanguage-local.dat.lua に追加すべき定義を書いて,tlmgr generate アクションのオペランドも language.deflanguage.dat.lua とする。

詳細は texdoc tlmgr もしくは man tlmgr でマニュアルを参照。

uplatex サンプル組版

さて,拙作 OldSlav 教会スラヴ語と日本語との混在文書をタイプセットしてみる。upLaTeX ならば,教会スラヴ語 UTF-8 古スラヴ文字入力モード,アクティブアクセント記法(古スラヴ文字を直接タイプし,アクセント命令を \ なしで記述する記法)が問題なく利用できる。

% -*- coding: utf-8; mode: latex; -*-
% up-biblija.tex - Ветхая Библия 19:23-26
\documentclass[b5paper,uplatex]{jsarticle}
\usepackage[T2A,T1]{fontenc}
\usepackage[japanese,oldchurchslavonic]{babel}
\languageattribute{oldchurchslavonic}{utf8,slavdate}
\setlength{\textwidth}{11cm}
\DeclareFontFamily{LST}{cmr}{}%
\DeclareFontShape{LST}{cmr}{m}{n}{<-> s * [1.12] fslavrm}{}%
\pagestyle{empty}
\kcatcode`б=15% Cyrillic
\begin{document}
\Large
С'олнце вз'ыде над\ъ з'емлю, л'ѡтъ же вн'иде въ си\-г'ѡръ.
\И г|сдь <ѡдожд`и на сод'омъ \и гом'орръ ж'упелъ, 
\и "ѻгнь ѿ г|сда съ небес`е.
\И преврат`и гр'ады сї^ѧ, \и вс`ю <ѡкр'естную стран`у, 
\и вс'ѧ жив'ущыѧ во град'ѣхъ, \и вс^ѧ прозѧб^ающаѧ ѿ земл`и.
\И <ѡзр'ѣсѧ жен`а єг`ѡ всп'ѧть, \и б'ысть ст'олпъ сл'анъ.
 
\vspace{.4em}
\hfill БЫТЇ`Е ГЛАВ`А \slnum(19).: \slnum(23).-\slnum(26).
 
\vspace{1em}
\selectlanguage{japanese}
ロト,ゾアルに至れる時日地の上に昇れり ヱホバ硫黃と火をヱホバの所より卽ち
天よりソドムとゴモラに雨しめ 其邑と低地と其邑の居民および地に生ふるところの
物を盡く滅ぼし給へり ロトの妻は後を囘顧みたれば鹽の柱となりぬ
 
\vspace{.4em}
\hfill 創世記 19.: 23\--26.
 
\end{document}

ptex2pdf -l -u up-biblija でタイプセットした up-biblija.pdf の画像は以下のとおり。

20140402-biblija19.png
upLaTeX 教会スラヴ語・日本語組版

\showhyphens のログ出力を確認すると,- の挿入具合からみて,ハイフネーション処理も機能しているようである。記号・文字罫線がごちゃごちゃしているが,これは教会スラヴ語の内部コードの関係である。

[]  \LST/cmr/m/n/14.4 С╖л-н-це вз╣-де над[] з│м-лю, л╚├въ же вн┤-де въ ├би-г╚├аъ. 
[][] И г^^@дь [][] wдож-ди[][] на со-д╖мъ [][] и го-м╖р├аъ ж╕-пелъ, [][] и [][] 
oгнь q г^^@да с├к не-бе-се[][]. [][] И пре-вра-├ви[][] гр░-ды ├бi╪, [][] и вс├о[][]
 [][] wк-р│├бт-н├гю ├бт├аа-н╬, [][] и вс╛ жи-в╕-щ├ля во гра-д║х├к, [][] и вс├Ш про-з
я-б├Рю-├йая q зем-ли[][]. [][] И [][] wз-р║-├бя же-на[][] eгw[][] всп╛т├м, [][] и б
╣с├вь ├бт╖лпъ ├бл░нъ.