Mac OS X

BBEditでTeXを使うプラグイン

[備忘録 ] BBEditからTeXを呼び出すプラグインを見つけた。次のサイトからダウンロードする。

BBEdit and TextWrangler TeX integration scripts

まずは、指示通りに~/Library/Application Support/BBEdit/ 以下にフォルダーを設置する。すると、BBEditからApple Script経由でUNIX shell scriptが呼び出され、TeXのコンパイルが出来る。

ただしこのプラグインは欧文のLaTeX、具体的にはpdflatexを呼び出すように出来ている。そこで、日本語LaTeX用に少しだけ変更をする。pdflatexを呼び出している箇所を探し、自前のShell Scriptを呼び出すように変更。自前のShell Scriptと言っても、単にuplatexを起動し、続いて dvipdfmx を起動するという単純なもの。最後にPDFのプレビューアーを呼び出すのだが、Mac標準のPreviewではなく Skim というPDF Viewerにした。まだ試してないけど、PDFとLaTeXソースとのシンクロナイズ (SyncTeX) にはこのViewerが良いのだという。

問題が一つ。個人的に、LaTeX流の \begin{hoge} ... \end{hoge} があまり好きではなく、Plain TeX 流、あるいは、以前の AMS-TeX 流と言いますか、\hoge ... \endhoge と書くのが好きなのです。実はLaTeXだって、この形にマクロを展開しているんですがね 😉 。しかし、 \begin{hoge} ... \end{hoge} でないとコードの折り畳み (Code folding) が出来ないみたい。ここをハックする元気もないしなあ・・・。まあ、仕方ありません。これからは、LaTeX流に直しますかね。

ということで、BBEditの購入はほぼ決定です。普段はオープンソースの無料ソフトばかり使っているので、久々のソフト購入です。

Mac OS X上のVirtualBoxにUbuntuをインストールしてみた

Sunが、個人使用に限ってではあるが、無料でPCの仮想環境である VirtualBox を公開している。バージョンも上がってきて、完成度も高くなっているようだ。Mac OS X がそもそもUNIXなので、その上に同じUNIXである Ubuntu を入れる必然性がやや疑問だが(笑)、MacはUNIXとしては少々異端で、UNIXのソフトをコンパイルするのに苦労することも多いから、ごく普通のUNIXとして、Ubuntuを入れておいても良いだろうと思った。以下、再びインストールするときの為の、最小限のメモ。

まずは、Sunのサイトから最新版のVirtualBoxを落としてインストールする。VirtualBoxとは良く言ったもので、マシンの電源を入れるところから仮想化されている。新たな仮想マシンを作り、これにUbuntuをインストールする。作業は、一般のIBM PC (=Windowsマシン)にUbuntuをインストールする手順と同じ。それがVirtualBox内でシミュレーションされることだけが異なる。

新しく作った仮想マシンの設定としては、とりあえず実メモリーを1Gバイト、ハードディスクを最大で20Gバイトとした。ハードディスクの容量は必要に応じて増やしていくので、最初から20Gが消費されるわけではない。設定するのは最大のサイズということ。音楽とかそういうことはMac側でやるから20Gもあれば十分だと思う。

次にUbuntuをインストールするために、Ubuntu日本語版のCDイメージ (拡張子 iso のファイル)をダウンロードして適当な場所に置く。仮想マシンの電源を入れて、CDイメージをマウントする。実機で言えば、CDを差し込むことに対応する。そうすると、実機と同様に Ubuntu が Live モードで起動する。あとは、ハードディスク(仮想マシン上に設定したもの)にインストールすることを選ぶだけ。これで、Ubuntuのインストールは終了。

このあと、Guest Additions をインストールする。これをやっとかないと、ファイル共有とか様々なことで不便。ここまで自動でやってくれれば言うことないのだが。

以上で基本設定は終わりだが、実は日本語入力ではまった。かな、英数のキーが全然反応しないのである。調べた結果、日本語IMであるSCIM/Anthyの起動・終了は、コントロール・スペースで行うことが分かった。日本語・英語の切り替えはコントロール J で行う。これを、かな・英数のキーに変更することを試みたが、キー自体を認識してないようで、あきらめた。まあ、しかし、この程度なら許容範囲だ。

Macとファイル共有する方法。Macの側で、適当なフォルダーを作り、共有フォルダーにしておく。次に、VirtualBox上のUbuntuに移り、VirtualBoxフレームの右下にあるアイコンから、ファイル共有のアイコンをクリックする。共有したいフォルダーを選ぶ。マックのファイルシステムが見えるので、そこから、先ほど作った共有フォルダーを選ぶ。その際、フォルダーの名前を覚えておく。ここでは、それを sharedfolder とする。

Ubuntuからそのsharedfolderをマウントするには、次のようにする。まず、Ubuntuのファイルシステム内に、対応するフォルダーを作る。名前は同じでなくても良いが、今回は /home/hoge(ここは自分のアカウント)/sharedfolder と同じ名前のフォルダーを自分のホーム直下に作った。これをUbuntuからマウントするには、mount.vboxsf なるコマンドを使う。ターミナルを起動して、

sudo mount.vboxsf sharedfolder /home/hoge/sharedfolder

と打ち込む。これで、sharedfolderを通してファイルの交換が出来る。ログアウトすると、この設定は失われてしまうので、/etc/rc.local に書き込んでおく。このファイルはroot権限がないと編集できないので、

sudo gedit /etc/rc.local

として編集し、exit 0 の直前に、

mount.vboxsf sharedfolder /home/hoge/sharedfolder

という行を書き込む。これで、ログイン時にこのコマンドが実行されて、共有フォルダーがマウントされるはず。

とりあえずは、こんなところかな。

Mac OS X 上での GTK+

Mac OS X で GTK を利用するアプリをコンパイルするには幾つかの選択肢がある。一番簡単なのは、MacPortsやFinkを利用することだろう。X11を経由せずに使いたいならば、次が良かろうと思う。

GTK+ on OSX
(ソースなどは GTK-OSX にある)

複数ある GTK Library on Mac OS X の中で、これはQuartz に対応していてMacライクな画面になっている。Geanyという気になるエディターがあるので、そのコンパイルのために、このGTKをインストールしようと思う。

三重苦

いや、どれも頑張れば解決できるとは思うけど。

その1。D-Deckでは市販のレジストデーター(プロテクトされたもの)の移動すらできない!これには驚いた。先日、ヤマハであちこちに分散していたレジストを一つのUSBメモリーに移してもらったのだが、フォルダーの位置はあとで移動させればいいからと、配置の最適化まではやってもらわなかった。ところが、Stageaではできるプロテクトデータの移動(コピーではなく移動ですよ、ええ)が、D-Deckではできないのだ。多分・・・。そんなことってありか? もう、まったく・・・。

その2。Ubuntuを8.04から8.10に上げたら、日本語入力できなくなってしまった。プロセスを見てみると、SCIMがロードされていないみたい。ううむ。日本語の表示はされるのだけど。つらつら考えるに、ブート用のCDが8.04専用になっているのが原因のようだ。8.04に戻すのもしゃくなので、最新の9.10をクリーンインストールしているところなのだが、家のマシンはUSBブートできないので、ブート用CDを別途作らなくてはならない。8.04とは微妙に違うみたいで、現在悪戦苦闘中。あーあ。

その3。マックで動くBBEditというテキストエディターがとてもよさそう(Code Foldingできるのが、ツボ :mrgreen: )なので、これをTeXで使いたいのだが、BBEditからUNIX Shellスクリプトに文書名を渡すパラメーターのやり方が分からない。仕方なく、Apple Script 経由でトライしているが、Apple Script って最低!(笑)とか思ってしまう。この中途半端な自然言語っぽい文法は何とかならないのかね。あーあ。

ということで、楽しい週末(苦笑)になりそうです 😉 。トホホ。

MacBook ProのJISキーボード配列をいじる

前の機種がUSキーボードだったせいもあって,すっかり指がASCII配列(?)になれてしまっている。MacBook Proは,コントロールキーがAの左にあることを優先してJISキーボードにしたのだが,右端の括弧が上下に配列されているのが,どうしても馴染めない。左右に並んでいるASCIIの方が絶対に良いって。

ということで,あれこれ調べた結果,~/Library/Keyboard Layouts/ に hogehoge.keylayout というXMLファイルを置いてこれを読み込ませるようにすれば,キーボードの配列は好きにできることが分かった。Dvorakだってできるというわけですよ :mrgreen: 。実際にオフィシャルの選択肢にもあるし。

TeXで多用するバックスラッシュをリターンの左に持ってきて,括弧はASCII配列にならって左右に置いて,などなど,あれこれカスタマイズしてみた。数日使用した結果,TeXの特化しすぎると普段の入力に不便だなあというわけで,過激なカスタマイズは止めることにした(笑)。

結局,バックスラッシュとブラケット,中括弧の位置を変更,それに伴ってアットマークとバッククオート,それからチルダーの位置を変更するくらいに止めた。これでもJIS配列のままよりずっと使いやすい。

TeX文書の文字コードを一括してUTF8に変換する

[ 備忘録 ] 以前のMac OS 9とかの頃には、フォルダーをドラッグ&ドロップすれば、それに含まれる文書の文字コードやら行末コードを一括して変換してくれるツールがあった。Mac OS Xでも似たようなツールがありそうなはず・・・と検索したが、一つだけ見つかったそのツールはTeX文書の変換には使えないことが分かった。だって、バックスラッシュをすべてユニコードの円マークに変換してしまうのだから 👿 。

やれやれ、どうしたものかとあれこれ検索。すると、ターミナルからUNIXのツールを組み合わせれば、簡単に実現できることを知る。nkf を用いて、カレント・ディレクトリー内のすべてのテック文書をUTF8に変換したことはあったのだが、find と組み合わせてパイプラインで送れば良いのだった。ポイントは xargs を利用すること。具体的には、次のようにする。

find . -name '*.tex' -type f -print | xargs nkf --overwrite -w -Lu

こうすれば、find がカレント以下のサブフォルダーを探索して、拡張子 tex のすべてのファイルを列挙してくれる。それが xargs を通して nkf に渡されるという仕組み。nkf のオプションは、-w でUTF8に、-Lu で行末コードをLF (UNIXの標準、今のマックもこれ)、それから –overwrite で上書きしてタイムスタンプは変えない。

それにしても・・・知識さえあれば、UNIXはかくも便利であるということですな。

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 でインストールされる。

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: 。もっとも、ファイルの書き出しとか多いので、ハードディスクのスピードも関係するから、純粋にプロセッサの速度だけの問題ではないが、それにしても速すぎだ 😉 。

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

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

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

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

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