December 16, 2009

TeXで綺麗なアスペクト比の記号

TeXで飛行機関係の文章を書く最近なのですが、飛行機の大きさや重さといった緒元を表にしようと思っていました。そこで遭遇したのが、翼の細長さを表現するアスペクト比(Aspect Ratio)です。アスペクト比は航空関係だとローマ字の大文字AとRをくっつけた特別な記号(画像参照)で書かれるのですが、流石はTeX、外部パッケージながらar.styというフォントが用意されています。

TeX_AR.png
赤丸をつけたのがAR記号。

しかしながらこのar.styはMETAFONTというフォーマットでしか提供されていないので、このままだとPDFにした際にビットマップフォント(Type3)として埋め込まれ、拡大すると汚くなってしまいます。確認方法としては、dvipdfmxなどでARの記号が入ったPDFを作り拡大してみてください。ガタカタしていると思います。

そこで一念発起してPDFでも綺麗に表示可能なベクタフォント(Type1)をMETAFONTから作ることにしました。そして上記の画像の品質を得ることができました。
過程を簡単に紹介しますと、Linux上でTeX環境とar.styを導入、ビットマップからアウトラインを抽出するpotraceを用いたベクタフォント作成ツールであるmftraceを使って、ar.mfからar.pfaを作成、そしてt1binaryで目的のTYpe1フォントar.pfbに変換。最後にfontmapを作ってar.pfbとともにtexmfツリーにmktexlsrとupdmap --addでWindowsのTeX環境に登録しました。

Windowsではなぜかmftraceが動かなかったり、Adobe Readerで『フォントが抽出できないエラー』が発生した(fontforgeを使ってar.pfbの文字コードマップが0から全て埋まるようコピペして回避)ので苦労しました。しかし結果的に綺麗なAR記号を作れて満足しています。成果物として、上記過程で処理したものをまとめたar_type1.zipを公開します。使いたい方はar_type1.zipをTeXをインストールしたディレクトリ(フォルダとしてbinとかshareがあるはずです)の下に展開、mktexlsrとupdmap --add ar.mapをして(mktexlsrがうまくいっていればkpsewhich ar7.pfbでar7.pfbがあるパスが表示される)、あとはTeX上でar.styをusepackageすると\ARで綺麗な記号がでてくるはずです。

08:50 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/733
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。