Хартия, Эвристика フォント: Autoinst によるフォント組込み

昨日,ロシアの LaTeX ユーザ・メーリングリスト CyrTeX-ru に,Хартия (Khartiya) 及び Эвристика (Heuristica) キリルフォントの新しいバージョンがリリースされたとの投稿があった(#9285: "Новые версии шрифтов Хартия и Эвристика" posted by Андрей Панов)。私はこのフォントを使ったことがなかった。ダウンロードして Mac OS X Snow Leopard 上の ptexlive で使用してみた。そのメモをしるしておく。

Хартия, Эвристика フォントの配布アーカイブは OpenType フォントを含むだけで,LaTeX で使うためのリソースを添付してはいない。すなわち,.fd (フォント定義ファイル), .tfm (tfm フォントファイル), .map (マップファイル), .sty (スタイルファイル) などの各種ファイルは,ユーザが自分で準備しなければならない。しかし,LaTeX コミュニティにはそのための便利なツールが用意されている。fontools パッケージがそれである。CTAN: fonts/utilities/fontools/ から入手可能である。autoinst は fontools プログラム群のフロントエンドとして各種 LaTeX リソースを一操作で生成してくれるプログラムである。

fontools は ptexlive ならはじめからインストールされている。もし,自分のシステムに組込まれていなければ,アーカイブを取って来て,bin/ ディレクトリ下にある perl プログラムをパスの通ったところにコピーすればよい(実行権限が付加されているか確認のこと)。fontools は Eddie Kohler 氏による LCDF TypeTools (otftotfm プログラム) を前提とするので,こちらを先にインストールしておく。ptexlive ならばこちらもすでに導入済みのはずである。これらのツールは W32TeX 用のアーカイブも用意されていると思う。

上記ツールの組込みが完了していれば,autoinst を用いたフォントインストールは次のように行う。

まず Хартия, Эвристика フォントパッケージをダウンロードする。それぞれ http://code.google.com/p/khartiya/, http://code.google.com/p/evristika/ から,khartiya-otf-0.2.tar.xz, heuristica-otf-0.3.tar.xz を取得する。その後,xz, tar で解凍する。ここでは $HOME/tmp/{khartiya, heuristica} に展開するものとしている。

% mkdir -p ~/tmp/{khartiya, heuristica}
% xz -dc ~/Downloads/khartiya-otf-0.2.tar.xz | tar xvf - -C ~/tmp/khartiya
% xz -dc ~/Downloads/heuristica-otf-0.3.tar.xz | tar xvf - -C ~/tmp/heuristica

それぞれのディレクトリにおいて autoinst を実行する。キリルフォントなので,T2A エンコーディングを指定する。

% cd ~/tmp/khartiya
% autoinst --encoding=T2A *.otf
% cd ../heuristica 
% autoinst --encoding=T2A *.otf

これが終了すると,それぞれのディレクトリに .sty, .map, .fd ファイルが生成されているはずである。そして同時に $HOME/.texlive2009/texmf-var/fonts/.../lcdftools/ 下に Type1 フォント,tfm フォント,vf フォント,.enc エンコーディングファイルといった LaTeX 用リソースが生成されているはずである。この段階で, autoinst を実行したユーザは .sty, .map, .fd ファイルを参照できるところなら LaTeX でこれらフォントを使ったタイプセットが可能になる。当該ユーザ以外にも LaTeX システム全体で使えるようにするため,次に,これらのリソースを TeX ツリーにコピーし,さらにマップ登録を行う。以下のオペレーション中の $TEXDIR は,インストールしたい TeX ツリーのトップディレクトリ(/usr/local/texlive/texmf-local 等)に読み替えていただきたい。

% cd ~/.texlive2009/texmf-var/
% find . -name lcdftools | xargs tar zcvf ~/tmpfonts.tar.gz
[ 自動生成されたリソース一式を "lcdftools" ディレクトリ名で探索し,抽出 ]
% su -m
# cd $TEXDIR
[ $TEXDIR は /usr/local/texlive/texmf-local 等に読み替えること ]
# tar zxvf ~/tmpfonts.tar.gz
# mkdir -p ./{fonts/map/dvips,tex/latex}/lcdftools/
# cp ~/tmp/khartiya/Khartiya.map ./fonts/map/dvips/lcdftools/
# cp ~/tmp/heuristica/Heuristica.map ./fonts/map/dvips/lcdftools/
# cp ~/tmp/khartiya/*.{fd,sty} ./tex/latex/lcdftools/
# cp ~/tmp/heuristica/*.{fd,sty} ./tex/latex/lcdftools/
# mktexlsr
# updmap-sys --nomkmap --enable Map=Khartiya.map
# updmap-sys --enable Map=Heuristica.map

以上で導入は終わりである。今回のような方法で OpenType フォントを LaTeX で手軽に使うことができると思う。ただし,日本語フォントへの適用は,jvf 等の関係で不可ではないかと思う。

Хартия, Эвристика フォントで LaTeX 文書を組むには,プリアンブルにそれぞれ \usepackage{Khartiya}, \usepackage{Heuristica} を指定する。あとは通常のロシア語のためのパッケージ指定を行えばよい。サンプルを以下に示す。このサンプルでは両方のフォントを使用するため,ファミリ切替え用独自マクロを定義している。

% -*- coding: utf-8; -*-
% Шрифты Хартия, Эвристика 
\documentclass[b5paper]{article}
\usepackage[T2A, T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[russian]{babel}
\usepackage{Khartiya}%   Хартия fonts
\usepackage{Heuristica}% Эвристика fonts
% macros for change family
\def\famkhartiya{\fontfamily{Khartiya-TLF}\selectfont}%
\def\famheuristica{\fontfamily{Heuristica-TLF}\selectfont}%
\setlength{\textwidth}{240pt}
\begin{document}
\centering{\large Russian autoinst test}
 
\vspace{2em}
\famkhartiya
\noindent Хартия Khartiya
\begin{verse}
Ты проходишь без улыбки,\\
Опустившая ресницы,\\
И во мраке над собором\\
Золотятся купола. 
\end{verse}
\hfill{\it\famkhartiya Александр Блок}
 
\vspace{1.5em}
\famheuristica
\noindent Эвристика Heuristica
\begin{verse}
Ты проходишь без улыбки,\\
Опустившая ресницы,\\
И во мраке над собором\\
Золотятся купола. 
\end{verse}
\hfill{\it Александр Блок}
\end{document}

組版結果は以下のとおり。原稿: autoinst-test.tex, 結果 PDF: autoinst-test.pdf も掲載しておく。両フォントの違いはわかりにくいかも知れない。Хартия は,д と л の形に特徴がある。

autoinst-test.png