OldSlav 古ルーマニア教会スラヴ語フォント追加

OldSlav に対し,先日ルーマニアの学生 K さんから要請されたフォントの追加を行った。古ルーマニア教会文献で用いられた文字を二つ,upper / lower で計 4 グリフ(Ꙟ: Yn U+A65E, U+A65F — 矢印「↑」もしくは漢字「个」のような形をした i — と,Џ: Dzhe U+040F, U+045F)。METAFONT で生成した。Yn のデザインがよいのやら悪いのやらさっぱり判らず,K さんに見てもらうことにした。彼が満足できるものなら,公開しようと思っている。

K さんから送られてきたのは,上記文字を含むルーマニアの古いイコンの部分と,ルーマニア語文献(Gheorghe Mihăilă 著 "Dicţionar al limbii române vechi: sfîrşitul sec. X - începutul sec. XVI, Editura Enciclopedică Română, 1974")の印影画像だった。

romanian-ocs-3-ikon.png
ルーマニアのイコンから
romanian-ocs-2-book.png
Gheorghe Mihăilă: Dicţionar al limbii române vechi から

このルーマニア語文献の引用で,早速タイプセットしてみた。赤い文字が今回追加したものである。

romanian-ocs-1-latex.png
OldSlav Romanian Old Church Slavonic Glyphs.

LaTeX 原稿 romanian-ocs.tex を以下に掲載しておく。タイプセット結果 romanian-ocs.pdf もリンクしておく。

% -*- coding: utf-8; -*-
% Romanian Church Slavonic test, coded by isao yasuda
\documentclass[b5paper,papersize]{article}
\usepackage[pdftex]{graphicx,color}
\usepackage[QX]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[oldchurchslavonic,romanian]{babel}
\languageattribute{oldchurchslavonic}{slavdate}
\usepackage{tgtermes}% TeX Gyre Termes (Roman)
\pagestyle{empty}
\newcommand{\OCST}[1]{\bgroup\selectlanguage{oldchurchslavonic}#1\egroup}%
\newcommand{\itt}[1]{\textit{#1}}
\DeclareFontFamily{LST}{cmr}{}%
\DeclareFontShape{LST}{cmr}{m}{n}{<->s*[1.12]fslavrm}{}%
\definecolor{aka}{cmyk}{0.1,1,0.9,0}%
\begin{document}
\Huge
\OCST{\color{aka}\OCSDZHE\OCSdzhe\OCSYN\OCSyn}
 
\vspace{1ex}
\OCST{\OCSCY\OCSSHA\OCSSHCH{\color{aka}\OCSDZHE\OCSYN}\OCSPSI\OCSKSI\
\OCScy\OCSsha\OCSshch{\color{aka}\OCSdzhe\OCSyn}\OCSpsi\OCSksi}
 
\vspace{2ex}
\large
Iată, în esenţă, echivalenţele aplicate în transcrierea
cuvintelor româneşti în repertoriul din paginile
precedente:
 
\OCST{\OCSaz}$=$\,\itt{a}, \OCST{\OCSbuki}$=$\,\itt{b}, 
\OCST{\OCSvedi}$=$\,\itt{v},
\OCST{\OCSglagol}$=$\,\itt{g (gh,} după \itt{e, i)}, 
\OCST{\OCSdobro}$=$\,\itt{d}, \OCST{\OCSest}$=$\,\itt{e},
\OCST{\OCSzhivete}$=$\,\itt{j}, \OCST{ѕ}$=$\,\itt{dz}, 
\OCST{\OCSzemlya}$=$\,\itt{z},
\OCST{\OCSizhe}, \OCST{i}$=$\,\itt{i}, 
\OCST{\OCSkako}$=$\,\itt{c (ch,} după \,\itt{e, i)}, 
\OCST{\OCSlyude}$=$\,\itt{l},
\OCST{\OCSmyslite}$=$\,\itt{m}, \OCST{\OCSnash}$=$\,\itt{n}, 
\OCST{\OCSon}, \OCST{w}$=$\,\itt{o}, \OCST{\OCSpokoj}$=$\,\itt{p},
\OCST{\OCSrcy}$=$\,\itt{r}, \OCST{\OCSslovo}$=$\,\itt{s}, 
\OCST{\OCStverdo}$=$\,\itt{t},
\OCST{\OCSuk}, \OCST{oy}, \OCST{\OCSukt}$=$\,\itt{u}, 
\OCST{\OCSfert}$=$\,\itt{f}, \OCST{\OCSher}$=$\,\itt{h},
\OCST{\OCScy}$=$\,\itt{ţ}, \OCST{\OCScherv}$=$\,\itt{c (ce, ci)}, 
\OCST{\OCSsha}$=$\,\itt{ş}, 
\OCST{\OCSshch}$=$\,\itt{şt}, 
\OCST{\OCSert}, \OCST{\OCSerm}$=$\,\itt{ă, î} sau zero,
\OCST{\OCSery}$=$\,\itt{î}, 
\OCST{\OCSyat}$=$\,\itt{ea} sau \itt{é} 
(acolo unde astăzi se pronunţa \,\itt{e} şi nu avem siguranţa că 
în trecut se pronunţa \,\itt{ea}), \OCST{\OCSyu}$=$\,\itt{iu}, 
\OCST{j}$=$\,\itt{ia}, \OCST{\OCSyusm}$=$\,\itt{ea, ia, é}, 
\OCST{\OCSyusb}$=$\,\itt{ă, î}, 
{\color{aka}\OCST{\OCSdzhe}$=$\,\itt{ge, gi}},
{\color{aka}\OCST{\OCSyn}$=$\,\itt{î}}.
 
\begin{flushright}
Gheorghe Mihăilă: \ \textit{Dicţionar al limbii române vechi:\\
  (sfîrşitul sec, X - începutul sec, XVI),\\
  Editura Enciclopedică Română}, 1974, p.\,180.
\end{flushright}
\end{document}

ここで,ルーマニア語には TeX Gyre の Termes (Roman) フォント,QX フォントエンコーディングを使用した。

\usepackage[utf8x]{inputenc}
\usepackage[QX]{fontenc}
\usepackage[oldchurchslavonic,romanian]{babel}
\usepackage{tgtermes}% TeX Gyre Termes (Roman)

ルーマニア語アルファベットには Ș (U+0218), ș (U+0219), Ț (U+021A), ț (U+021B) というコンマを付けた特徴的な文字がある。\usepackage[utf8x]{inputenc} を指定すれば,これら文字を直接タイプして T1 フォントエンコーディングでも出力できる。この場合 utf8x.def が定義している \textcommabelow 命令によって,S, との合成で文字が出力される。

ところが,昔から Latin2 (ISO 8859-2) でテキスト作成する関係で,これらの文字はコンマ付プロパーではなくセディーユ付で代用されて来たせいか,Ş (U+015E), ş (U+015F), Ţ (U+0162), ţ (U+0163) を入力し,かつ QX エンコーディングを指示してタイプセットしたほうが,TeX Gyre にあるカンマ付プロパー文字 Ș ș Ț ț が出力できるのである。カンマとの合成文字で出力するよりもずっと綺麗である。T1 エンコーディングだと — 当然ながら — セディーユ付 Ş ş Ţ ţ が出てしまう。

こういうややこしい事情からして,ルーマニア語はどうも可哀相な扱いを受けて来たらしい。この Ș ș Ț ț の文字がいまブラウザに表示されていない方(おそらく Windows な方)もいるはずである。これらは Unicode 体系においては,アゼルバイジャン語,エヴェ語,フーラ語などの拡張ラテン文字ブロック Latin Extended-B (U+0180 - U+024F) に収められている。いわゆるヨーロッパ言語の文字が基本的に Latin Extended-A (U+0100 - U-017F) までに収容されていることからすれば,仲間はずれにされているわけである。ルーマニア語ってヨーロッパ言語のなかで個性的だということがよくわかるのである。

※ 2010.4.30 付記

このルーマニアの学生さんは,ルーマニアでのこうした文字の混乱について憤慨していた。彼は LaTeX で母国語を組むときは combelow パッケージを使っているそうである。TeX-Gyre のコンマ付文字はコンマが少し大きくて,彼は好きになれないそうである。その一方で combelow の \cb 命令(\cb S とすると親文字 S の下にコンマのダイアクリティカルマークが付加される)も,コンマと親文字の間のアキが大きすぎるとこぼしていた。自分で微調整して使用するとともに,作者にも連絡をとって提案しているとのことだった。

私自身は TeX-Gyre のフォントが気に入っているので,「ルーマニア語 LaTeX 事情は複雑ですなぁ」としか応対できなかった。