2009年11月13日金曜日

Asymptote 1.90のインストール

AsymptoteはMetaPostを発展させたベクトルグラフィック記述言語で、LaTeXなどに図として貼りこむことが出来るようです。
Ubuntu 9.10のリポジトリにもパッケージがあるのですが、バージョンが1.80くらいでちょっとだけ古いので、最新版をソースからmakeすることにしました。

まずは公式サイトから現時点で最新版であるasymptote-1.90.src.tgzをダウンロードします。
これを

$ tar xvzf asymptote-1.90.src.tgz

で展開して、出来たディレクトリに移動します。
./configure を実行するのですが、その際にgarbage collectorなるものが必要になるようなので


を実行して、入手したファイルをasymptoteのソースを展開したディレクトリに入れておきます。この後

$ ./configure
$ make all

を実行したところ、私の使っているptetexではtexinfoやpdftexが入っていないためかmakeでエラーが出て止まります。対処法としては、


からマニュアルを取ってきてdocディレクトリに入れ、さらに

$ sudo apt-get install texinfo

でtexinfoをインストールした後でmake allすればすんなり通りました。
後は

$ sudo paco -D make install

でインストールしました。(注: pacoを導入していない場合は普通にsudo make installでOKです.)

使い方が掲載されているサイトがあまり多くないようなので、使えるようになるには相当苦労しそうです。

Ubuntu9.10へJabRef2.5の導入

JabRefはBibTeXを用いた文献管理ソフトです。

Ubuntu 9.10のリポジトリにあるJabRefのバージョンは2.3.1になっており、現在の安定版であるバージョン2.5と比べて若干古いようです。そこでとりあえず新しいもので置き換えることを試みます。
ただ、後々にUbuntuで提供されるパッケージのバージョンが新しくなるかもしれないので出来るだけ影響を残さない形で導入したいと思い、update-alternativeコマンドを用いて置換することにしました。
synapticなどでリポジトリにあるJabRefのパッケージは既に導入しているものとします。

まずはJabRefの公式ページからJabRef-2.5.jarをダウンロードします。
JabRef-2.5.jarはjavaを使って実行しなければならないので、私の場合は~/applicationsというディレクトリにこれを置き、

#!/bin/sh

java -jar $HOME/applications/JabRef-2.5.jar

と記述したファイルをjabref2.5.shという名前でパスの通ったディレクトリに保存します。
私は~/bin/ に個人的な実行ファイルを置いているので、ここに保存しました。 このjabref2.5.shには実行権を与えておきます。
JabRefはalternativesを提供していないので、まずは次のようにして登録する必要があります。

$ sudo update-alternatives --install /usr/local/bin/jabref jabref /usr/bin/jabref 50

これで/usr/bin/jabref にインストールされているものを/usr/local/bin/jabref にリンクし、jabrefコマンドは/usr/local/bin/jabref から実行するようになります。一番最後の数字は優先度を表す数字です。次に

$ sudo update-alternatives --install /usr/local/bin/jabref jabref ~/bin/jabref2.5.sh 70

と実行します。すると~/bin/ に置いてあるバージョンをalternativesに加えることが出来ます。最初のものと比べて優先度を大きく設定したので、これがデフォルトとして使われることになります。登録したものをalternativesから消去するには

$ sudo update-alternatives --remove jabref ~/bin/jabref2.5.sh

のように記述すればよいみたいです。

Ubuntuのリポジトリに元々あるパッケージならば、gnomeに登録されているアプリケーションの場合、alternativesを使って置換することでgnomeのランチャから起動することが出来るので、わざわざ自分でgnomeに登録する手間が省けます。

使ってみたところ突然文字入力が出来なくなるようなことがありました。原因は不明です。元々そんなに使いこなしていないので元に戻そうかな。

使い方は JabRefによるBibTeX文献管理とJab2HTMLに詳しいです。書籍の管理に使うのならば、BibTeX情報を出力してくれるLead2Amazonが便利です。 ただ出力されるBibtexkeyの形式が著者名と発売年月日だけで今ひとつな感じです。個人的には書籍名もBibtexkeyに使って欲しいところです。洋書のBibTeX情報が欲しいのならばGoogle Scholarもよいかもしれません。

JabRefで日本語を日本語を表示するための方法などについてはまた後日。

2009年11月12日木曜日

inkscapeでばねを描く

inkscapeで物理の問題集に出てくるような、簡易的なばねを描いてみたいと思います。
使用するのはinkscape 0.47 pre4です。
まずは適当な大きさの楕円を描き、
「ノードでパスを編集」→「選択オブジェクトをパスに変換」
を選択し、楕円をパスに変換します。


すると楕円が4つのセグメントに分かれるので、上部2つのセグメントのいずれかを選択し、「新しいノードを選択セグメントに挿入」をクリックしてノードを増やします。一方が終わればもう一方もノードを挿入します。
次に挿入したノードを選択し、「選択ノードでパスを切断」をクリックします。


その後、メニューから「パス」→「分割」を選択して、楕円を、端点を持つ2つのパスに分けます。


分割したパスのうち、小さい方は削除し、大きいほうの切断した端点のノードがグリッドの交点にくるように移動します。


この図形を複製して、複製した図形の切断部分がオリジナルの切断部分と同じ位置にくるように移動します。これらの操作は「グリッドにスナップ」を有効にしておくとより正確に行うことが出来ます。


次に、「オブジェクトを選択/移動/変形」をクリックして図全体を選択したのち、メニューの「パス」から「連結」を選択します。これで2つの図形が1つのパスとして扱われます。
さらに「ノードでパスを編集」をクリックして、2つの図形を合わせた切断部分のノードを選択し、「選択した端点ノード同士を連結」をクリックして、ノードを接合します。


さらに、接合されたノードを選択し、「選択ノードの種類をスムーズに」をクリックして、角を無くします。


後は以上の操作を繰り返し行うことでばねを描くことが出来ます。注意するべき点は、図形の端点のノードを接合するときに、ノードをグリッドの交点に合わせてから接合しないと歪みが生じてしまうことです。この操作を3回繰り替えしたのが次の画像です。


この後両端の処理を行ってやれば、ばねの完成です。

Ubuntu 9.10のMBMを使ったマルチブート

私はUbuntuを8.04から使い始め、その当初からMBMを使ってマルチブート環境を構築しています。現在用いているMBMのバージョンは0.39です。MBMを用いたマルチブート環境の作り方についてはdiskless Fun's Wikiに詳しいですので、そちらを参考にされるとよいと思います。

さて、Ubuntu 9.04までは何も問題なくマルチブート環境を構築出来ていたのですが、Ubuntu 9.10を幾つかのPCに新規インストールしたところMBMでブート出来るものと出来ないものが出てきました。
原因はどうやら、Ubuntu 9.10になってブートローダがgrub2に変更になったことにあるようです。
ブート出来るPCと出来ないPCを比較してみたところ、Ubuntuを拡張領域(論理パーティション)にインストールしたのが原因のようでした。
そこでパーティションの分け方を変更して、基本領域(基本パーティション)にインストールしてみるとMBMからブート出来るようになりました。基本領域は4つしか作れないのでたくさんのOSを使い分けている人は大変でしょうね。もっと積極的な解決策がないか探してみたいと思います。私はせいぜいデュアルブートくらいなのであまり困りませんが。

2009年11月9日月曜日

被覆多様体

投稿テストを兼ねて独り言。
F. Warner "Foundations of Differentiable Manifolds and Lie Groups"を読んでいるのですが、被覆空間のところの

「第2可算公理を満たす位相多様体$M$の基本群$\pi_1(M, m)$の要素が高々可算個である」

ということの証明がなかなか思いつかない。頭悪すぎ。