2010年6月2日水曜日

Asymptoteの練習

インストールしたままかなりの間放置していたAsymptoteですが,ようやく勉強し始めることにしました.参考にさせていただいているのは,webで検索すればすぐに見つかるとは思いますが,「カビパン男と私」で紹介されているasymptoteメモ「TeX&MetaPostであそぼう」の実験室(Asymptote)にある「比較対照 MetaPost & Asymptote」のpdfファイル群です.

後者は名前の通りMetaPostとAsymptoteの比較をしながらAsymptoteの基礎的な内容を取り扱っているのですが,MetaPostの知識を全く持たない私にとっても非常にわかりやすい読み物となっていますのでオススメです.これを読んでいるとAsymptoteのマニュアルの読み方もわかってきます.

取り敢えず何か作成してみないとモチベーションが上がらないだろうということで,人様のソースを切り貼りして例を作り,LaTeX文書に貼り付けてみました.
なんかカッコいいです.この例では立方体の中に連続な曲面を描画していますが,asymptoteでは描画する図形を描画した順に上書きしていくみたいなので,曲面の前に出てきて欲しい線と,曲面に隠れて欲しい線は苦肉の策として別々に描画しています.ソースでは見ている角度も色々と調整出来るので,見ている角度によって前面に出るべきものと後ろに隠れるものを自動的に判断してくれるとありがたいのですが,現時点では実現可能なのかさえよくわかりません.

 でもこれでしばらくはモチベーションを保つことが出来そうです.やはり手書きでは難しい3次元的なグラフが書けるところが便利です.曲面の接平面や,複雑な曲面の絵が描けるくらいになるよう勉強していきたいと思います.単体複体のホモロジー論なんかも,絵を描かせながら勉強すると楽しいかもしれません.

pdvipsで文字化け ptexlive on Ubuntu 10.04 (32bit)


普段はdvipdfmxでpdfを作成しているため,気に留めずにいたのですが,Asymptoteで日本語を表示させようと色々調べていたところ,Ubuntu 10.04に導入したptexliveのpdvipsでdviファイルから作成したpsファイルの日本語が文字化けしていることに気づきました.

解決策はptexlive Wikiの動作報告95にありました.最小限必要なものが何かまでは追求していないのですが,この動作報告にあパッケージで新規に
cmap-adobe-japan1,  cmap-adobe-japan2, gs-cjk-resource, xpdf-japanese
を導入したところ,日本語が表示されるようになりました.ちなみにpoppler-dataも日本語表示のために重要なパッケージのようですが,私の環境では既に導入済みでした.

日本語は表示されるようになったのですが,フォントの設定がまずいらしく,見栄えがあまりよくありません.上の動作報告にもあるように,pdvipsで生成されるpsファイルを表示した際のフォントや,さらにps2pdfなどでpdfファイルを生成した際に埋め込まれるフォントはghostscript (Ubuntu 10.04でのバージョンは8.71)で設定されているようで,ptexlive自体とはあまり関係してないようです.

そこで,千葉大学の倉澤治樹教授のHomePage (topページから[Linux(Ubuntu)]→[Ghostscript]とリンクを辿ります)を参考に,ghostscriptのフォントの設定を変更しました.同ページは物理の講義録が非常に充実しているのも参考になります!! 上記のパッケージを導入した時点で,ファイル
/var/lib/defoma/gs.d/dirs/fonts/cidfmap
には
/Ryumin-Light /SazanamiMincho-Regular ;
/GothicBBB-Medium /TakaoGothic-Regular ;
 という行がありましたが,さざなみフォントが見栄えの悪さの原因となっているので自分の場合は/Ryumin-Light の行を削除し,
/Ryumin-Light << /FileType /TrueType /Path (/usr/share/fonts/truetype/takao/TakaoMincho.ttf) /SubfontID 0 /CSI [(Japan1) 0] >> ;
と書き改めました.これでpdvipsで生成したpsファイルや,これからps2pdfで作成したpdfファイルに埋め込まれたフォントはTakaoフォントに置き換わりました.

追記:(2010/06/05) この例では,Takaoフォントを導入済みでしたが,Takaoフォントをインストールしていない場合にはGothic-BBB-Mediumのほうもさざなみフォントがあてがわれているようです.その場合はRyuminの記述を真似て
/Gothic-BBB-Medium << /FileType /TrueType /Path (/usr/share/fonts/truetype/takao/TakaoGothic.ttf) /SubfontID 0 /CSI [(Japan1) 0] >> ;
と書いておけばよいようです.

  Asymptoteの日本語設定
Asymptoteで生成されるファイルの日本語表示自体はTeX WikiのAsymptoteの項目 にある設定をそのまま踏襲すればうまくいきました.具体的には ~/.asy/config.asy という設定ファイルを作り,その中に
 import settings;
tex="latex";
texcommand="platex";
dvips="pdvips";
と記述しました.platex の扱う文字コードがデフォルトでUTF-8になっていない場合には,
texcommand="platex -kanji=utf8";
のような記述は出来ないそうなので,エイリアスやシェルスクリプトで同様の動作をするコマンドをplatex-utf8のような名前で作っておき,それを設定ファイルに記述する必要があるそうです.

そんでもってAsymptoteで簡単な例を作ってみました.

日本語がきちんと表示されています.