OldSlav 1.4

OldSlav 教会スラヴ語 LaTeX マクロパッケージ,バージョン 1.4 を公開した。中身に手を入れたのは 2010 年 4 月以来である。アーカイブは弊サイト・ダウンロードページから取得できる。インストール等の詳細については,ドキュメント(英語版日本語版)を参照のこと。ここでは簡単に 1.4 のあらましを記しておく。

ここ数年 LaTeX に触らぬうちに,奥村先生の著書の改訂版が出版され,いつの間にか pTeX, upTeX が TeX Live に取り込まれ,日本語 LaTeX の事情も大きく様変わりした。Mac OS X Mavericks にしたのを機に,ようやく TeX Live 2013 を導入して,変化を実感した。ま,別に LaTeX を仕事で使っているわけでもないので,浦島太郎状態であろうが,気にすることはないのだが,OldSlav だけは動作確認しておく必要を感じた。OldSlav 1.3 は TeX Live 2013 の pdflatex でも,uplatex でも,UTF-8 直接入力によるアクティブアクセントモード(アクセント付加命令を \ なしで記述できるモード。初期状態でオンになっている)できちんと動作した。もちろん,1.4 でも同じように動作する。

OldSlav 1.4 の変更点

ocsbiblija 環境をサポートした。これは教会スラヴ語聖書を再現するためのものである。とはいえ,昔作ってみたマクロをそのまま入れ込んだに過ぎない。ocsbiblija 環境の仕様,タイプセット例については記事『OldSlav 教会スラヴ語聖書環境』に記したとおりである。OldSlav 1.4 の実装はこれとまったく同じである。

platex 向け ptexenc オプション使用時に UTF-8 直接入力をサポートした。つまり utf8 オプションとの同時指定を可能にした。これまでは ptexenc 指定時は UTF-8 入力を無効にしていた。

\usepackage[oldchurchslavonic]{babel}
\languageattribute{oldchurchslavonic}{utf8,ptexenc}

platex UTF-8 入力時の注意事項

OldSlav 1.4 を platex UTF-8 エンコードで処理する場合,注意事項がある。

platex は,UTF-8 エンコードのキリル文字を JIS として扱う内部デコード仕様になっており,これを欧文として扱うには,文字を ^^十六進数 形式で記述しなければならない(*)。たとえば,Б を表すに ^^d0^^91(Б U+0411 は UTF-8 エンコードにおいて 2 オクテット X“d091” で符号化される)と「コーディング」しなければならない。なんとも面倒な仕様だが,過去資産との互換性を重視するポリシーがあるのだろうと推察する。こんなキテレツな入力なんてできたものではないので,実際には,原稿を通常の UTF-8 キリル文字で入力し,platex で処理する前に,フィルタプログラムを用いてキリル文字をこの ^^十六進数 形式に変換することになる。フィルタプログラムの例は記事『ドキュメント訂正・PTEX_IN_FILTER』に掲載した(奥村先生の『美文書作成入門』改訂第 5 版 — 最新は第 6 版なので注意 — にも掲載されている)。OldSlav 1.4 を UTF-8 直接入力で platex 処理する場合も事情は同じである。

(*)注記: ここで「JIS として扱う」ということは,日本語フォントに含まれる全角キリル文字で組んでしまうという結果を惹き起こす。また一方,「欧文として扱う」というのは,文字をしかるべきキリルフォントで組むのみならず,言語に応じたハイフネーション処理やスペースファクタ処理(フレンチスペーシングなどのアキ組み),約物処理を行う,ということである。

アクティブアクセントモードは使用できない。これは文字を ^^十六進数 形式にしておかなければならない事情と関係している。\'ю のように逆スラッシュ(もしくは円記号)を必ず記す。ただし,\^ (Kamora アクセント命令) に限り,オペランドとなるキリル文字を波括弧(ブレース)で囲んで書かなければならない。oldchurchslavonic 言語オプションに utf8(UTF-8 直接入力)とともに,ptexenc もしくは inhibitslavactive を指定しておく。

platex 向け原稿の例を示す。

% -*- coding: utf-8; -*-
% Ветхая Библия 19:23-26
\documentclass[b5paper]{jsarticle}
\usepackage[T2A,T1]{fontenc}
\usepackage[oldchurchslavonic]{babel}
\languageattribute{oldchurchslavonic}{utf8,ptexenc,slavdate}
\begin{document}
С\'олнце вз\'ыде над\ъ з\'емлю, л\'ѡтъ же вн\'иде въ сиг\'ѡръ.
\И г\|сдь \<ѡдожд\`и на сод\'омъ \и гом\'орръ ж\'упелъ, 
\и \"ѻгнь ѿ г\|сда съ небес\`е.
\И преврат\`и гр\'ады сї\^{ѧ}, \и вс\`ю \<ѡкр\'естную стран\`у, 
\и вс\'ѧ жив\'ущыѧ во град\'ѣхъ, \и вс\^{ѧ} прозѧб\^{а}ющаѧ
ѿ земл\`и.
\И \<ѡзр\'ѣсѧ жен\`а єг\`ѡ всп\'ѧть, \и б\'ысть ст\'олпъ сл\'анъ.
\end{document}

これを処理する。ptexfilter^^十六進数 形式変換フィルタプログラムである。

$ ptexfilter < plbiblija.tex > plbiblija.hex
$ platex plbiblija.hex
$ dvipdfmx plbiblija.dvi

uplatex 用原稿(UTF-8 入力・アクティブアクセントモード)と比較してみていただきたい。教会スラヴ語に関するプレアンブル・本文の書き方は pdflatex でも同じである。

% -*- coding: utf-8; -*-
% Ветхая Библия 19:23-26
\documentclass[b5paper,uplatex]{jsarticle}
\usepackage[T2A,T1]{fontenc}
\usepackage[oldchurchslavonic]{babel}
\languageattribute{oldchurchslavonic}{utf8,slavdate}
\kcatcode`б=15%
\begin{document}
С'олнце вз'ыде над\ъ з'емлю, л'ѡтъ же вн'иде въ сиг'ѡръ.
\И г|сдь <ѡдожд`и на сод'омъ \и гом'орръ ж'упелъ, 
\и "ѻгнь ѿ г|сда съ небес`е.
\И преврат`и гр'ады сї^ѧ, \и вс`ю <ѡкр'естную стран`у, 
\и вс'ѧ жив'ущыѧ во град'ѣхъ, \и вс^ѧ прозѧб^ающаѧ
ѿ земл`и.
\И <ѡзр'ѣсѧ жен`а єг`ѡ всп'ѧть, \и б'ысть ст'олпъ сл'анъ.
\end{document}

upLaTeX ならコマンド一発で PDF 生成まで処理できる。

$ ptex2pdf -l -u upbiblija.tex
20140417-oldslav14.png
タイプセット出力

参考文献

OldSlav を開発するに際して,常に座右において研究した書籍をあげておく。いずれも LaTeX マクロ・フォントに関し最も高度な内容を備えた本である。残念ながら,このなかで『LaTeX2ε マクロ & クラス プログラミング基礎解説』及び『実践解説』は入手が難しくなってしまった。