10月 2009

Mac OS X 10.6 に Asymptote をインストールする

やっと成功したので、備忘録として記録。

まずは何はなくとも、Asymptoteの本家サイトからソースコードをダウンロードする。現時点での最新バージョンは1.88、したがって、asymptote-1.88.src.tgz というファイルになる。約1.5MBほど。これを適当な場所で解凍する。ターミナルからだと、tar zxvf asymptote-1.88.src.tgz などとするのだが、ファインダーからダブルクリックしてもOK. asymptote-1.88 というフォルダーが出来る。

次に、本家サイトの左側フレームにある Documentation をクリックすると、右側フレームに説明書の目次が現れるので、セクション2.6 Compiling from UNIX source の項をクリックして説明を読む。Boehm garbage collector のソースをダウンロードするように指示されているので、そこのリンク(ファイルへの直リンクですね、これは)をクリックして、gc-7.1.tar.gz をダウンロードして、asymptote-1.88フォルダーに入れる。

コンパイルの際、latexを使ってマニュアルのPDFなども作成するようなので、TeXシステムも事前にインストールしておく。というか、asymptoteをインストールしようと思う人なら、TeXは普通入っていますよね。もっとも、texinfo形式だったりするので、texinfoが組版できないとエラーを吐くかも。マニュアルは別途ダウンロードできるから、それでも大丈夫かな。ああ、そうだ、開発環境が入っているのが大前提。XCodeが入ってなければ、最新のものを入れておく。

さて、LINUXなどでは以上で準備完了だが、Mac OS X の場合、readline ライブラリーを別途用意する必要がある。GNU readline の最新版をダウンロードして、解凍し、そのフォルダーの中で、./configure して、makeして、sudo make install する。そうすると、/usr/local/lib/ 以下に readline がインストールされる。

Mac OS 10.6 Snow Leopard の場合は、更にもうひと手間必要。ここ のやりとりをざっと読む。英語だけど。先にダウンロードしたガーベージ・コレクター gc-7.1 が Snow Leopard では上手くコンパイルできないらしい。原因はSnow Leopard側のようだが、応急処置として、gc-7.1 にパッチを当てる。gc-7.1.tar.gz を解凍して、ucontext.h をインクルードしているファイルを探す。ターミナルでこの階層に入り、grep -n ucontext.h *.c とすると分かるが、mach_dep.cの163行目と、os_dep.cの2755行目の2カ所ある。2カ所のucontext.hを sys/ucontext.h と変更する。単にコメントアウトしても良いらしい。変更したファイルを保存して、元のように圧縮する。念のため、元々のファイルを gc-7.1-original.tar.gz などと名前を変えて、変更したファイルが入っているgc-7.1 というフォルダーをgc-7.1.tar.gz という名前で圧縮する。ターミナルから、tar -zcf gc-7.1.tar.gz gc-7.1/ とすればよい。

以上でやっと準備完了。asymptote-1.88フォルダーにおいて、まずは、./configure LDFLAGS=-L/usr/local/lib/ とする。これで、先にインストールしたGNU readline ライブラリーが読み込まれるはず。続いて、make として、エラーが無いことを祈りながら待つ(笑)。いやあ、何度エラー出したことか。その度に make distclean して最初からやり直したもんね。エラーが無ければ、sudo make install でインストールされる。

updmap失敗の原因は半角カナだった

[ 備忘録 ] uptexのupdmap-sysが空のkanjix.mapを生成する理由が分かった。原因は、前のMacから持ってきた古いMapファイルにあった。だいぶ前にどこぞで拾ってきた morisawa.map というものだが、これがShift-JIS で書かれ、おまけにフォント名の中に半角のカナが含まれているという代物。そのせいで、updmap-sys から呼ばれた sort か何かが、Illegal byte sequence とかいうエラーを吐き、kanjix.map に書き出されるべき内容が破棄されていたのだった。

ということで、この古い morisawa.map を削除することで解決。えらく苦労してしまった。updmap (UNIXのshell scriptなのだが)のソースコードをかなり読む羽目になったが、学んだことも多く、これはこれで無駄ではなかったかな。

Mac上のupTeXで日本語TrueTypeフォントを利用する

[ 備忘録 ] かなり苦労した。要点をメモ。

まず、理由は不明だが、updmap-sysが空のkanjix.mapを生成するのに難儀した。ちゃんとKanjiMapは読んでいるのだが。業を煮やして、直接 kanjix.map を編集するという禁じ手で応急処置。いつか解決せねば。

次に日本語フォントの設定が必要。uptexでは旧来のJY1, JT1ではなく、JY2, JT2なるエンコーディングが使われている。TFMもVFも作り直さないとダメみたい。さしあたって、普段一番使っているセプテンバーフォントを使えるようにする。upjisr-h.tfm を複製して、up-septm-jis.tfm などとする。makejvf を使って、ヴァーチャルフォントを生成。makejvf –help として使い方を見る。-u jis というオプションで ucs mode (JIS) とある。

$ makejvf -i -u jis up-septm-jis.tfm r_up-septm-jis

とすれば、up-septm-jis.vf と r_up-septm-jis.tfm が生成される。これを適宜移動させる。スタイルファイルもこれに合わせて変更。JY2にするのを忘れないように。mapファイルの項目は、

r_up-septm-jis UniJIS-UTF16-H :0:SeptM.ttf

のようにする。UCS2 かなとも思ったが(上記 makejvf のヘルプ参照)、uptex付属の READMEファイルには、upjisr-h に対して、UniJIS-UTF16-H としてあったので、それを真似した。今のところ不都合はなさそう。texhashして、updmap-sys すれば (と言っても上で述べたような状況なので、手動でするのだが 😥 ) とりあえず完了。

そりゃあ政権交代だって最初は大変でしょうよ

めずらしく政治ネタというわけではないのです。与党になったばかりの大臣たちだって、初めての事だらけで、そりゃあ大変だろうと、新しいマックの初期設定をしながら思ったわけでした。というわけで、別に政権が変わったわけではありませんが、まだまだ新しいマックで仕事できないでおります。

エディターは当面は、Carbon Emacsとmiの併用。TeX(テック)に関しては、日本語ファイル名が通らないと既存の文書類をコンパイルできないので、uptex を採用。これはptexの内部コードをUTF8にしたもので、ptetex3のパッチとして提供されている。ただし、文書の文字コードはJISとUTF8の自動識別なので、Shift-JISで作ってある過去の文書は、nkf などで、一括してUTF8に変換しないとダメ。それから、マクロ類もShift-JISで書かれているのはダメ。emathがそうだった。

uptexのコンパイルがなかなか上手く行かなくて苦労した。最終的にmy_optionの変更で何とか成功。Snow Leopardだと、何故かX11のライブラリーを認識しないらしく、それへの対処などが必要らしい。次のページを参考にした。

動作報告/140

既存の文書をコンパイルしたところ、クラスファイルがuptexに対応できずにエラー。JY1が見つからないとか何とか言われてしまう。どうもuptexではJY2という名前で横組の日本語フォントを管理している模様。仕方ないので、自前のクラスファイルをこれに対応させるべく作業を行う。きちんとは理解してないと思うが、見よう見まねで、とりあえず組版に成功したから、これで良いのか?

しかし、組版のスピードが速いのには驚いた。40ページぐらいある文書で、途中で図版作成の為に metapost が何度も呼び出されるのだが、一瞬で終わってしまう。いや、一瞬は言い過ぎか(笑)。でも、3秒以内で終了。試しにG4でやってみたら35秒ぐらいかかった。もう何というか、インテルすごいね。命令が直交化してないとか、バイトオーダーが気に入らないとか、もうそんなことは瑣末に思えるね、こりゃあ :mrgreen: 。もっとも、ファイルの書き出しとか多いので、ハードディスクのスピードも関係するから、純粋にプロセッサの速度だけの問題ではないが、それにしても速すぎだ 😉 。

さて・・・テックに関しては、フォント関係の整備が必要。もうすっかり忘れているので、できるか心配。疲れたので、今日はこのへんで。

D-Deckが来ました

Yamaha D-Deck Electone

今日の午前中、ヤマハ D-Deck が来ました。Stagea Mini よりも一回り大きくて、かなり威圧感あります。うーん、もう少し小さいと良かったんだけどなあ・・・。まあしかし、音はずっと良いです。ちなみにスピーカーもヤマハ製で、HS50Mという70ワット、バスレフ式のパワード・モニター・スピーカー2台です。それぞれに電源コードがあるので、都合3個のコンセントが必要なのが少々誤算かな。スピーカーはとりあえず、足鍵盤の台座の上と脇に直置きです。そんなに違和感ないから、個人的にはこれでも良いかな〜。ともあれ、練習しなくちゃ、ですよ 😉 。

無線ルーター買い替えました

少々迷いましたが、おそらくはルーターが原因だろうということで、昨日、新しい無線ルーター買いました。メーカーがいろいろあって迷いましたが、E.T さんがCoregaを使われているということで、真似をして同じメーカーにしました :mrgreen:

Corega CG-WLR300GNH

です。ネットで調べて、USBポートが便利かもとか思ったのでした。念のためにお店で店員さんに確認すると、設定の段階でWindowsが必要とか、Macでも設定できるけど、OS 10.4以上じゃないととか、いろいろ言われて心配になります。若い店員さんの話だと、Coregaは設定が複雑です、Buffaloは設定CDが付いていて簡単ですよ、ということらしく、別のメーカーを勧めてくれるのです(笑)。 おそらく、このじいさんじゃあ設定無理だろうと、心配してくれたのだと思います 😉 。まあ、でも、Coregaにしましたよ :mrgreen:

細かい設定をするのが大変という意味なのかも知れませんが、デフォルトのSSIDとパスワードを使う分には簡単でした。無線ルーターの側面に、ネットワーク名(SSID)と初期PINコード(無線LANの暗号パスワード)が貼ってあるのです(笑)。SSIDはMACアドレス(個々のデバイスに固有のアドレス、マッキントッシュとは無関係ですね、笑)をそのまま流用という安直さです :mrgreen: 。だから、ブラウザーからの設定も不要で、ルーターの電源を入れて、イーサネットの口と繋ぎ、マックのAirMacからルーターのSSIDを選んで、パスワードを入力するだけで、あっさりと繋がりました。SSIDが少々かっこ悪いですが(だってMACアドレスそのまんまですからねえ・・・)、それを除けば不満はありません。

有線でも繋ごうとしたのですが、その前に、とりあえず無線でどれくらいのスピードが出ているかをチェックします。

usen_speed_test_2009_10_12

マジですか・・・。唖然。いや、イーサ直付けで90Mくらい出ることは知っているのですが、昼間の時間帯(午後の3時ごろ)でルーターから3メーターの距離、直視できる位置ということを考慮しても、無線で50M出るとは知りませんでした。知らないうちに性能上がっているんですねえ。ええ、もう有線のケーブルは捨てます :mrgreen: (いや、嘘ですが)。

しかし、ルーターの不具合がなければ前のままで使っていたことを思うと、何が幸いするか分からないですよねえ。うーん。

Finderからすべてのファイルが見えるようにする

Mac OS Xは基本的にはUNIXであるが、ファインダーからはそれを隠すために、ファイルシステム全体が見えないようになっている。従って、通常は /usr/local/bin なども見えない。また、ドット(ピリオド)から始まるファイル(ユニックスでは設定ファイルによくこのような名前が使われる)も見えない。これら隠れファイル(hidden files)を含めすべてのファイルをFinderから見るためには、ターミナルを起動して、次のコマンドを入力すればよい。

$ defaults write com.apple.finder AppleShowAllFiles TRUE
$ killall Finder

見えないように戻すには、TRUEのところをFALSEに変えればよい。

ルーターとの相性なのか?

買ったばかりの MacBook Pro だが、ネットに繋げようとして、いきなりハマる。何もしないでも普通に繋がるのは、もはやマックでは普通なので特に意識してなかったが、よくよく見ると無線LANで接続している。むむむ、まあそれでも良いが、大きなファイルをダウンロードするときは有線の方が速い。そこで、有線のLANでの接続を試みるが、これが失敗。ルーターを認識できていない模様。

無線LANで苦労する話はよく聞くが、無線が楽勝で繋がっているのに、有線の方がダメとは面妖な。試しにルーターではなくイーサネットの口に直付けしたところ、きちんと繋がった。してみると、ルーターが悪いのか。しかし、他のコンピューターは同じルーターに何の問題もなく接続できている。ううむ、謎である。

予備のというか、ほとんど使わない有線のルーターを引っ張り出して接続してみると、これがちゃんと繋がる。やはり、無線ルーター(の有線部分?)と Snow Leopard との相性なのか? さて、どうしたものか。