Old Standard Cyrillic Fonts

ロシアの LaTeX メーリングリスト CyrTeX-ru投稿 #9606 に Old Standard キリル・フォントを LaTeX で使う話題が上がっていた。興味深かったので,私もインストールして使ってみた。

Old Standard フォントは Шрифтовое семейство Old Standard サイトの説明によれば,古典文献学,聖書学,中世史学等の人文科学研究文献に適した多言語フォントとある。OpenType フォントはキリル文字のほか,古スラヴ文字,アクセント付きラテン文字,複式アクセント付きギリシア文字も含んでいる。つまりロシア語旧正書法の文字をも含んでいることになる。もともと Antiqua, New Standard 系のフォントのようである。

Old Standard フォントを LaTeX で使うには二つの方法がある。[1] autoinst による方法と,[2] CyrTeX-ru #9606 リンクにある OldStandard-source.7z を用いた方法である。ただし,いずれの方法においても,ギリシア文字の取扱いは考慮されていない。

[2] では T2A, T1, TS1 フォントエンコーディングが考慮されている。イタリック書体のとき ; (セミコロン) が出力できない問題がある(生成された Type1 フォントのエンコーディング・バグのようである)。これに対し,[1] の方法は T2A, T1, TS1 のほか,古スラヴ文字 T2D エンコーディングが利用可能だし,[2] のセミコロン問題がない。そういう意味で私は方法 [1] を推奨する。導入の手間は前提ツール次第であって,すでにツールが揃っていればどちらの方法もそれほど面倒ではない。[1] は autoinst 関連ツール(『Хартия, Эвристика フォント: Autoinst によるフォント組込み』にメモを残したので,そちらもご覧ください),[1], [2] ともに LCDF ツールを必要とする。

簡単に [1], [2] の UNIX 系システムでの導入方法をメモしておく。ptexlive-2009 環境である。端末操作は tcsh シェルである。私は Mac OS X Tiger, Snow Leopard で実施したが,Linux, FreeBSD でも同じ操作でよいはずである。

autoinst によるインストール

  1. Загрузка шрифтов (フォント・ダウンロード) サイトから oldstandard-2.0.2.otf.zip をダウンロードし,解凍する。
  2. 解凍したディレクトリで autoinst を実行する。--encoding オプションに T2D を指定するためには,t2d.enc エンコーディング・ファイルが予め TeX ツリーに格納されていなければならない。このファイルは PSCyr-0.4-beta フォント・パッケージなどで入手できる(ここにインストール・メモを記した)。
  3. % autoinst --encoding=T2A,T2D,T1,TS1 *.otf

  4. スーパユーザで以下を実行する。autoinst が生成した LaTeX リソースを TeX ツリーに格納しているだけである。これら一連のオペレーションを行うシェルスクリプト autoinst-install.sh を落として使っていただいてもよい。
  5. # setenv TEXDIR /usr/local/texlive/texmf-local
    # mkdir -p $TEXDIR/{fonts/map/dvips,tex/latex}/OldStandard
    # cp -p *.sty *.fd $TEXDIR/tex/latex/OldStandard
    # cp -p *.map $TEXDIR/fonts/map/dvips/OldStandard
    # cd $HOME/.texlive2009/texmf-var
    # find . -name lcdftools -type d | xargs tar cf - | ( cd $TEXDIR; tar xvf - )
    # mktexlsr
    # updmap-sys --enable Map=OldStandard.map

  6. 使い方は,通常のロシア語用 LaTeX 原稿のプリアンブルに \usepackage{OldStandard} を追加すればよい。ロシア語旧正書法テクストを直接入力する場合は,以下のように utf8x inputnec 及び T2D エンコーディングの設定が必要である。処理結果イメージをそのあとに掲げておく。原稿及び PDF もリンクしておく。古風な味わいのあるフォントである。
  7. % -*- coding: utf-8; -*-
    % OldStandard Cyrillic Fonts 
    \documentclass[b5paper]{article}
    \usepackage[T2D,T1]{fontenc}% T2D fontenc
    \usepackage[utf8x]{inputenc}% ucs
    \usepackage[russian]{babel}
    \usepackage{OldStandard}
    \pagestyle{empty}
    \setlength{\textwidth}{100mm}
    % 以下 T2D 用設定
    \def\cyrillicencoding{T2D}% russianb.ldf に T2D 指示
    \makeatletter% \cyrii 互換命令
    \def\@td{T2D}% 
    \let\CYRIItmp=\CYRII% upper case
    \let\cyriitmp=\cyrii% lower case
    \def\cyrii{\ifx\cf@encoding\@td\cyrizhe\else\cyriitmp\fi}%
    \def\CYRII{\ifx\cf@encoding\@td\CYRIZHE\else\CYRIItmp\fi}%
    \makeatother%
    \begin{document}
    Вопросъ о разрывѣ Татьяны съ Онѣгинымъ, несмотря на всю
    ясность. Пушкинскаго стиха, выросъ у насъ въ своего рода 
    \glqq гамлетовскую проблему\grqq,
    къ которой постоянно возвращается критическая мысль.
     
    Онъ, по выраженію Достоевскаго, имѣетъ въ нашей литературѣ
    \glqq своего рода исторію весьма характерную\grqq.
      
    Иначе говоря, вокругъ него сталкивались и боролись 
    различныя враждующія теченія соціально-политической мысли.
     
    И совсѣмъ не случайно выразителями двухъ наиболѣе 
    противоположныхъ взглядовъ на этотъ предметъ являются 
    представители враждующихъ міросозерцаній
    "---соціалистъ-радикалъ Бѣлинскій и 
    націоналистъ-славянофилъ Достоевскій.
     
    \vspace{1em}%
    \small%
    \hfill%
    \parbox[t]{.8\textwidth}{%
    \textit{А. И. Ванновский}~~Зерколо судьбы. (Сон Татьяны.)\\
    в кн.: \textit{С. А. Небольсин}~~Пушкин и европейская традиция. 
    Историко-теоретические работы. М. 1999.}%
     
    \end{document}

    20110210-oldstandard.png


OldStandard-source.7z によるインストール

  1. http://narod.ru/disk/4873172001/OldStandard-source.7z.html から OldStandard-source.7z をダウンロードする。解凍には 7-Zip 圧縮をサポートしたアーカイバが必要である。
  2. Windows MikTeX ユーザなら,添付の fos-FontLab.bat を実行すればよいはずである(私は未確認)。UNIX ユーザは仮想端末から以下を順次実行する。まず,解凍した OldStandard ディレクトリで以下を実行する。これでフォント・リソースが生成される。fos-fontgen.sh としてシェルスクリプトにしたので,これを使ってもよい。
  3. % latex fos-drv.tex
    % latex fos-map.tex
    % foreach i (*.pl)
    foreach? set BS=`basename -s .pl $i`
    foreach? pltotf $BS.pl $BS.tfm
    foreach? end
    % foreach i (*.vpl)
    foreach? set BS=`basename -s .vpl $i`
    foreach? vftovf $BS.vpl $BS.vf $BS.tfm
    foreach? end
    %

  4. スーパユーザでリソースを TeX ツリーにコピーし,マップ登録を実行する。fos-install.sh としてシェルスクリプトにしたので,これを使ってもよい。
  5. # setenv TEXDIR /usr/local/texlive/texmf-local
    # mkdir -p $TEXDIR/{fonts/{tfm,vf,afm,type1,map/dvips},tex/latex}/OldStandard
    # cp -p *.tfm $TEXDIR/fonts/tfm/OldStandard
    # cp -p *.vf $TEXDIR/fonts/vf/OldStandard
    # cp -p *.afm $TEXDIR/fonts/afm/OldStandard
    # cp -p *.pfb $TEXDIR/fonts/type1/OldStandard
    # cp -p fos.map $TEXDIR/fonts/map/dvips/OldStandard
    # cp -p *.fd $TEXDIR/tex/latex/OldStandard
    # mktexlsr
    # updmap-sys --enable Map=fos.map

  6. 以上でインストールは完了。使い方は通常のロシア語 LaTeX 原稿に \renewcommand{\rmdefault}{fos} を追加すればよい。ただしこの場合,T2D エンコーディングは使えない。また,dvipdfmx で PDF を生成する際,イタリックのセミコロンがエラーになるので注意。