コンピュータ

Twitter 2011-08-03 の記録

  • 08:37  おはようございます。Lionでのコンパイルエラーの原因は、gcか。Lionの64ビットアプリではpie(position indep exe)が標準になったことと関係ありそう。リンカーにどう指示だせばよいのかな。
  • 08:58  いずれにせよ、boehm-gc 関係を修正する必要ありということで、ワタシの能力を超えますね。いったんあきらめて、ビルド済みをMBPから持ってくることにします。
  • 09:45  Lion上でのビルドをあきらめ、MacTeX 2011の巨大パッケージ(2Gもある)でasymptote 2.13をインストール。config.asyでのロードパスの指定は自分でやらないとダメだったが。
  • 09:47  MBA(Core i5)で何度もビルド失敗をやってて思ったが、コンパイル速度はMBP(Core 2 Duo)より速い。ディスクも関係してるのだろうが。
  • 09:55  MacTeX2011付属のasymptote2.13で、円弧arc(circle,point,point)のバグ再現なう。CCWだから優弧のはずなのに、劣弧が描かれる。ワタシのビルドのせいではなかった。
  • 10:34  MacBook Airのキーボードレイアウト変更なう。MBPで使っていた自作のkeylayoutとアイコンの2つを持っていくだけ。これでバックスラッシュがいつもの場所になった。
  • 13:13  asymptoteのバージョンを1.99まで戻したら、円弧ルーチンが正しく動作した。
  • 13:15  MBP (10.6) の方で、Asymptote 1.99 をビルドして、MBAに持っていくことにした。/usr/local/bin/asy と /usr/local/lib/libreadline**と/usr/local/share/asymptote以下を移動。
  • 13:18  移しただけでは、readlineがロードできないというエラーメッセージ。chmod 666 として解決。当面 Macbook Air ではasymptote 1.99を使おう。あ、MacTeX どうしようか。4Gも場所とってるからなあ。
  • 13:19  あれ? 雨降ってるのか。
  • 13:22  そうか、パッケージってものを作れば、いちいち手動でファイルを移すようなことしないで良いのか。hoge.pkg とかいうの、どうすれば作れるのかなあ。
  • 14:00  Makefileでprefix=/usr/local となってるところを prefix=$HOME/tmplocal とかして、(sudo) make install すれば、別の場所にインストールできた。あとは、これをパッケージに出来ればよいのだが。
  • 14:17  /Developer以下にPackageMaker.appというのがあって、簡単にパッケージ化できた!これをMBAに持って行ってインストールすればよい。ただし、readlineは含まれていないようだ。そちらは別途に入れる必要あり。
  • 17:39  そうか、configureするときにprefixを変更するのか。./configure –prefix=/Users/hoge/tmplocal などと。
  • 18:25  カミさんがハリー・ポッター見に行こうって言ってるんだが、どこも3Dばっかり。3Dじゃない吹き替えって池袋近郊にないのかあ。 http://bit.ly/qqhasZ
  • 20:04  New blog post: AsymptoteのMac用パッケージを作る(不完全版) http://bit.ly/oIk8Mv
  • 21:49  MacBook AirのSafariに、ClickToPlugin というSafari extensionを入れてみた。バッテリーを消費するFlashを必要なときだけ読み込み、また、HTML5などに置き換えることができるという話。
  • 22:03  MacBook AirからFlashをアンインストールした。ClickToPlugin Extensionのおかげで、SafariでYouTubeなどは見れる。FlashをHTML5に変換しているらしい。これならFlashなしでもOKだな。バッテリーも長持ちするらしいし。
  • 22:11  MacBook Airでメモリーリークが起こらないなあと不思議だったが、よく考えてみたら Firefox を入れてなかった(^^;; しばらくはSafariで行きますか。
  • 23:05  Oisix、ニュースとはいえ、良い宣伝になってるじゃないか。


Powered by twtr2src.

AsymptoteのMac用パッケージを作る(不完全版)

にわか勉強のメモ。

通常のインストールは出来るものとする。AsymptoteとBoehm-gcをダウンロードして、gcにパッチを当ててAsymptoteフォルダーに入れる作業は済んでいるものとする。また、GNU readlineもインストールしてあるものとする。通常は /usr/local 以下にインストールされるものをパッケージ化してみる。

ユーザーのホーム直下、つまり$HOME=/Users/hoge 直下に例えば temproot というフォルダーを作り、ここにインストールする。configureは普通。Snow Leopardでは、

./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"

次は、make だが、これも普通に。最後に、make install とするところを、make install DESTDIR=$HOME/temproot とする。すると、自分のホーム直下の temproot に、つまり /Users/hoge/temproot にインストールされる。

次は、これをパッケージにするのだが、アップル純正の PackageMaker.app というアプリを使えば簡単に出来るようだ。これは、/Developer/Applications/Utilities/ にある。temproot にあるフォルダーを追加して名前を付けて Build すれば終了。今回は、Asymptote 1.99 をビルドしたので、名前は Asymptote199.pkg とした。

さて、これを別のマシンに持っていく。MacBook Air (mid 2011) に持って行き、Asymptote199.pkg を開くと、通常のインストーラーの画面になって、パスワード入力を求めれれ、ごく普通にインストールが完了する。

では、実験。ターミナルから asy と打ち込む。あれ? エラーで終了。どうも、readlineが読め込めないとかいう理由らしい。readlineだけはパッケージに入らなかったようだ。仕方ないですね。手動で、libreadline.6.0.dylib (これは今回のビルドに際して使ったバージョン) を、母艦から持ってきて、/usr/local/lib/ に放り込む。これで大丈夫かと思いきや、またもやエラー。アクセス権関係だろうとカンを働かせ、パミッションを666(誰でも読み書き可能)にしてみたら、無事に asy が起動した。

以上で、不完全ではあるが、ある程度のパッケージ化ができた。readlineも一緒に入れたいが、どうしたら良いのか分かんないので、今回はこれで満足することにした。まあ、ユーザーは自分一人なんだからいいか 😉 。

MacBook Air の設定(2)

備忘録。MacBook Air (mid 2011) の設定の続き。

  • JISキーボードなので、バックスラッシュや括弧の位置が使いにくい。そこで、以前自作したkeylayoutとアイコンをMBAにも持って行き、~/Library/keyboard Layouts/ に置く。 ~/Library は初期設定では隠しフォルダーになっていたような気がする。
  • Google日本語変換をインストール。ことえりでも良いんだけどね。念の為。
  • Asymptoteを導入。Lion上での自前ビルドに失敗したので、MacTeXを入れることで同時にasymptote2.13もインストール。ところが、2.13には、というか、もっと前からだと思うが、arc(circle,point,point) ルーチンがmajor arcを描けないことがある。そこで、1.99もインストールすることにした。Snow Leopard の方でビルドして、パッケージマネージャーで pkg ファイルにしてMBAに持っていく。Lionの開発環境が良くなるまで、当面はこの手でしのぐしかないか。
  • Carbon EmacsでAsymptoteを使う為の設定。すっかり忘れていたので、検索したところ、自分の備忘録がヒットした(苦笑)。情けない。

とりあえず、こんなとこだろうか。MacBook Air の方で何度も asymtote のビルドを試みて、MacBook Pro (Core 2 duo) でビルドしてみたら、えらい時間が掛かるので、改めてスピードの違いを感じた。Core i5 になって、相当に速くなっている。こうなると、母艦のMacBook Proも、Corei5とかにしたくなるなあ。というか、Air の13インチを買えば良かったのかあ、とか 😉 。

MBAにHomebrewをインストール

MacBook Airの設定の続き。Asymptoteをビルドする準備として GNU readline をインストールしようとしたが、エラーで挫折。Snow Leopard では、すんなり make 通ったんだけどな。仕方ないので、MacPorts で入れようかとも思ったが、せっかくの機会だから、最近評判の Homebrew を導入することにした。導入は簡単。サイトに書いてあるように、ターミナルに次のコマンドをコピペするだけ。

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

Homebrew でのパッケージのインストールは、MacPorts に似ている。

brew install readline

とすれば、GNU readline がインストールされる。リンクするかが悩ましい。

brew link readline

とすると、既存のライブラリーを置き換えるのかな? ちょっと、このあたり、これから勉強しないと。それから、ライブラリーの場所も覚えておかないと。以下、インストールに際して表示された内容。

This formula is keg-only, so it was not symlinked into /usr/local.

OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.

Generally there are no consequences of this for you.
If you build your own software and it requires this formula, you'll need
to add its lib & include paths to your build variables:

  LDFLAGS: -L/usr/local/Cellar/readline/6.2.1/lib
  CPPFLAGS: -I/usr/local/Cellar/readline/6.2.1/include
==> Summary
/usr/local/Cellar/readline/6.2.1: 32 files, 1.9M, built in 18 seconds

MacBook Air の設定 (1)

MacBook Airを普段の環境と同じにするための、いろいろな設定。備忘録として。

  • ファイルの拡張子を表示させる(ファインダーの環境設定)。
  • 隠しファイルも表示させる。
  • AppStoreからXCodeのインストーラーをダウンロードしてインストール。
  • Carbon Emacs (Emacs 22) をダウンロードしてインストール。
  • .profileを作成して、パスを通す。
  • TeXShopの最新版をダウンロード。
  • uptexを一式。MacBook Proで使っているものをそのままコピーした。ところが、PDF作成で失敗。原因はUniJIS-USC2-HなどのCMapファイルがないことだった。一式をコピーしたのだが、その中に、GhostscriptのCMapファイル群へのシンボリック・リンクがあって、これの行き先がないのだった。そこで、Ghostscriptをインストールして、そのCMapファイルを使用したところ、無事にPDFまで作成できた。
  • 上にも書いたが、Ghostscript 9.0.2 をダウンロード。

とりあえず、TeXでの組版が出来るようになったので、今日はここまで。

MacBook Air

昨日の朝、そろそろマンション管理組合の総会に行かなくちゃ、って頃に、クロネコヤマト便で届きました。Mac Book Air 11インチ (mid 2011) です。夕方からは次期役員の方たちとの懇親会があるので、合間の時間に、とりあえずの設定を行いました。

MacBook Air 11inch(mid2011)

電源入れて、アカウントの作成です。最初に無線LANの設定とApple IDの入力があるので、直ちに作業に入れます。ところが、ちょっとした手違いがありまして、初期化します(苦笑)。ディスクをフォーマットして、OS X Lion を再インストールします。所要時間は20分くらいかな。最初から何やってんだか。

画面は小さいですが、キーボードは特に打ちにくいとかないですね。普通に使えます。2本指スクロールの向きが逆になっているので驚きました。iOS と合わせたようです。しかし、画面に直接触れてスクロールさせるのと、タッチパネルでは感覚が違うようにも思います。タッチパネルの場合、どちらの向きの方がより直感的なのか微妙な感じです。しばらく使ってみて、逆に、つまり今までと同じ向きに変更しました。MacBook Pro (Snow Leopard) も使いますから、操作性は同じ方が良いですから。

ファインダーの表示が、コンピューターらしさを感じさせないように変更されています。ファイルシステムを極力見せないつもりでしょうか。マイファイルなんて項目がトップに来ています。まるでWindowsのマイドキュメントみたいで、気に入りませんなあ 😉 。

まずは、ファインダーの環境設定をします。サイドバーにディスクを表示させ、ファイルの拡張子も表示させるようにします。ドットから始まる隠しファイルも表示させたいので、ターミナルを起動して、

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

とします。

TeXやAsymptoteをコンパイルするには、あれこれ入れないといけません。Lion用のXCodeはAppStoreからダウンロードするようになってました。AppStoreからXCode InstallerをDLしてそれを開きます。XCodeのバージョンは4ですけど、不具合大丈夫でしょうか。どこぞでEmacs23が XCode 4 ではコンパイルできないとか読んだことがあるので、ちょっと心配です。

とりあえず、ここまで。次は、Emacsですね。Carbon Emacs (Emacs 22)と Cocoa Emacs (Emacs 23) のどっちにしようかな。

Carbon Emacs メモ

asymptoteの編集にはCarbon Emacs (Emacs22をMac OS Xに移植したもの) を使っているのだが、昨日、ちょっと困った事態になったので、解決策をメモ。

昨日、Asymptoteの最近版?である 2.12 をソースからコンパイルしたのだが、Carbon Emacsからコンパイルしようとすると、古いバージョンが起動してしまった。古いバージョンどころか、ログを見ると、TeXLive/2009/ 以下にあるasymptote1.88が起動している。これは、自分で以前にコンパイルしたものとも違う。

つらつら考えるに、TeXLive/2009 以下にあるasymptoteが先に認識されているからに違いなかった。つまり、パスの優先順位の問題だ。しかるに、ワタシの場合、怠けていて、.emacs すら作っていない。いったい何処にパスの設定があるのだろうか。

いろいろ調べて分かったこと。Carbon Emacs.app はアプリとは言いながら、実態はフォルダー。Finderから右クリックして、パッケージの内容を表示というのを選べば、アプリの内容をファインダー上で表示できる。Carbon Emacs.app/Contents/Resorces/site-lisp/ に、site-start.el というEmacs Lisp があるが、これが最初に読み込まれるようだ。中を見ると、

  (carbon-emacs-package-add-to-path
   '(
     "~/bin"          ; one's own
     "/usr/texbin"    ; TeX
     "/usr/local/bin"
     "/usr/X11R6/bin" ; xdvi
     "/usr/local/teTeX/bin/i386-apple-darwin-current" ; i-Installer (intel)
     "/usr/local/teTeX/bin/powerpc-apple-darwin-current" ; i-Installer (ppc)
     "/opt/local/bin" ; MacPorts
     "/sw/bin"        ; Fink
     ))

となっていて、2番目に /usr/texbin がロードパスに指定されていることが分かる。/usr/texbin は実際には /usr/local/texlive/2009/bin へのシンボリック・リンクなので、これで、TexLive 2009 のAsymptoteがロードされているのだった。

そこで、これを削除することで解決。ついでにいろいろ調べていたら、.emacs とかに、

(mac-key-mode 1)

と書けば、マック風のキーバインドになって、Command-Cでコピー、Command-Vでペーストとか出来ることを発見。まあ、これは慣れの問題だから、どっちでも良いのだが。

Firefox4でDeliciousを使う

いつもお世話になっているDelicious bookmarksなのだが,Yahoo!に買収されたかと思えば,チーム解散の噂とかで,心配な状況。だからなのか Firefox が version 4 になってからも,対応版のアドオンが出ず,仕方なく一旦は Firefox 3.6 に戻したりしていた。

先日,Firefox 4 でDeliciousを使う方法があることを知り,さっそくインストールしたのだが,4.0.1 へのアップでまたも使えなくなってしまった。そこで,またもや検索。Delicious Bookmarksアドオン改造版をfirefox4.0.1以降で動かす,というページの通りにして,4.0.1に対応させることが出来た。

ただ,出来たアドオンのファイルをFirefoxにDrag&Dropして開くことが何故か出来なかった。Mac OS Xだからなのか? 仕方ないので,アドオンファイルを右クリックしてFirefoxから開くことに。これで無事にインストールされた。後は,Deliciousボタンなどをツールバーに配置して終了。

しかしなあ,Firefoxがアップするたびに,この作業をするのは面倒だなあ。

LaTeXで連立方程式に自由に式番号をつける

LaTeXで連立方程式を書くとき,不便だなと感じることがある。それは,それぞれの式に式番号を付けるのが存外と難しいことである。もちろん,式全体を左側から\lbrace で囲まなくてよい,ということであれば簡単なのだが。

以前は,cases.sty や mutlieq.sty というパッケージを使っていたが,これだと式番号が連番になってしまい,独自のタグを付けることができない。つまり,

\begin{multieq}{}
  f(x,y)=0 \tag{a} \\
  g(x,y)=0 \tag{b}
\end{multieq}

のように書けないのだ。ここに \tag は使えません,というエラーメッセージが出る。

そこで,あちこち探して見つけたのが,empheq.sty というパッケージ。empheq 以外のファイルも必要みたいなので,リンク先にある zip アーカイブをダウンロードしてフォルダーにあるすべてのファイルを取得する。

styファイルがないので,dtxファイルから生成する。ターミナルを起動して, tex empheq.dtx とすればよい。

使い方としては,

\begin{empheq}[left=\empheqlbrace]{align}
  & f(x,y)=0 \tag{a} \\
  & g(x,y)=0 \tag{b}
\end{empheq}

などとすればよい。付属の解説書によれば,式全体を枠で囲んだり,いろんなことが出来るようだ。

MathJaxを試してみる

MathJaxが良くなっているらしいということで、ちょっこし試してみた。mimetexと同じく、LaTeXで表記すればよい。
\$\sqrt{2}\$ と書けば、$\sqrt{2}$となるし、
\$p=x^2+y^2 \Longleftrightarrow p\equiv 1 \pmod{4}\$ と書けば、
$p=x^2+y^2 \Longleftrightarrow p\equiv 1 \pmod{4}$

ディスプレイ数式も、この通り。
\[ \Gamma(s)=\int_{0}^{\infty} e^{-x}x^{s-1}\,dx \]

数式の画像をリアルタイムで作っているようなので、表示されるまで、ややもたつきが見られるが、mimetexと比べても、格段に美しい!LaTeXRenderに匹敵すると思う。これを javascript で実現しているとは驚きであるなあ。

ということで、これからはMathJaxで数式を書こうと思う。以下、簡単に導入メモ。

MathJaxのサイトから一式をDLして解凍したのち、自分のサイトにアップ。ファイルの個数が多いのでUploadには時間が掛かる。サーバー上で解凍できるならその方がベターかなあ。次に、MathJaxをWordPressで使う為のプラグイン、MathJax-LaTeXをダウンロードする。これをWordPressのpluginフォルダーにアップしてプラグインを有効化する。

プラグインの設定では、MathJaxをアップしたディレクトリーを指定する。あとはそのままでも良いのだが、ワタシの場合、\$…\$ でインライン数式を書きたいので、少し変更。default.js というファイルを開き、tex2jax の部分で、コメントアウトされているところを外す。何故か、[‘\$’,’\$’] がコメントアウトされているので、そのままではダラーで囲んだところが組版されないのだ。個人的な不満はここだけだった。ここを修正して default.js を選べば、設定は完了。