OldSlav-0.1g bug fixed.

| | コメント(0) | トラックバック(0)

もうやることがなくなったと書いたばかりの OldSlav。ところが、pTeX 縦組の処理結果を子細にチェックしてみたら、アクセント位置がおかしい。文字のおなかのあたりに打たれているのである。横組だとまったく正常なのに。

原因はほどなく判明した。文字のメトリック情報、つまり幅、高さ、深さを \the\wd0 などで表示させて、縦組と横組とで数値を比較すると、なんと高さと深さが変わるのである。その和は同じ。深さの数値が増えている。このためアクセント位置を高さに応じて \raise で持ち上げる方式において、高さが小さくなった分、低い位置にアクセントが付加されてしまったのだった。

fonts_ty.jpg

対策は、組版方向をチェックして、縦組の場合持ち上げるサイズに深さを加えるという基本方針で OK そうであった。縦組の時には高さの量が深さに奪われているからである。ただし、アクセントと対象文字の深さについて後者が前者よりも大の時という条件が付く。これら双方の深さの関係を無視して一律対象文字の深さを加えると、英語の g のような深い文字では逆にアクセント位置が高すぎてしまうことも判明したからである。

pTeX の組版方向は \iftdir 命令でチェックできる。その前に \pfmtname マクロ (pTeX のフォーマット名称) が定義されているかをチェックしておかなければ、\iftdir 命令は欧文用 LaTeX ではエラーとなってしまう。 これが対策のもうひとつの注意事項であった。

アクセントが付くと考えられる文字について、すべてのアクセント・パターンを確認したが問題なさそうである。もともとオリジナルの大文字ヤッチのアクセント位置が気に入らなかったので、バグ対策ついでに少し右下方にずらすなどの微調整を入れておいた。oldslav-0.1g.{tar.gz,zip} を更新した。

(p)LaTeX2e ではエンコーディングに応じたアクセント命令を \DeclareTextAccent 命令で簡単に定義できる。しかし文字によってアクセント位置を微調整したい教会スラヴ語フォントなどでは、やはりマクロを自分で書く必要がある。欧文フォントの独自パッケージを作成しようとする方は pTeX のこうした仕様に注意されたい。

しかしながら pTeX は縦組でこういう仕様になっているなんて想像もしなかった。どこかに文書化されているのだろうか。手元にある pTeX 本には見当たらなかった。縦組の場合はベースラインを上げる、という意味はこういうことだったわけだ。EUC、SJIS とともに組版方向の確認もパッケージのテストにおいて必須なのだと認識した次第である。

トラックバック(0)

このブログ記事を参照しているブログ一覧: OldSlav-0.1g bug fixed.

このブログ記事に対するトラックバックURL: http://nox-insomniae.ddo.jp/cgi-bin/mt-tb.cgi/142

Comments


画像の中に見える文字を入力してください。

Profile

ISAO。システムエンジニア。昭和 30 年代を懐かしむオヤジ。ロシアに興味があります。
[more], [About our site]

Notice

この文書はフィクションであり,実在する個人,団体等とは一切関係ありません。

文書の記述内容は無保証です。不適切な表現があればコメントにてご指摘ください。

管理者が公序良俗に反すると判断したコメント,トラックバックは,断りなく削除される場合があります。

Links

About this entry

Written by isao at 2006年10月 6日 01:35.

Previous: misima, OldSlav 更新

Next: 引用文献マクロ citare.sty 公開

Recent Entries in Main Index.
All Entries in Archive Index.

Web Pages

Powered by Movable Type 4.1