MacTex2010で構築したtex環境でjbibtexが使えない件

homebrewを使ったtex環境の整備<出オチ>

前回のエントリにあるとおり,homebrewでtex環境を整えようとしました.

$ brew install tex
Installing TeX from source is weird and gross, requires a lot of patches,
and only builds 32-bit (and thus can't use Homebrew deps on Snow Leopard.)

We recommend using a MacTeX distribution:
http://www.tug.org/mactex/

なななんと・・・
パッケージ管理のくせに,よそのバイナリ使ってインストールしろ,と.
斬新なパッケージ管理だなぁ.

MacTex2010のインストール

MacTexはTexディストリビューションMac版であり,*tex一式とTexShopというtexエディタをごっそりインストールしてくれる,ありがたいパッケージです.
http://www.tug.org/mactex/
あとはここからダウンロードしてインストールしてみてください.

MacTex2010でインストールしたtex環境の日本語対応

文字コード関連でいくつか設定があります.詳しくは下記のHPを参照してください.
http://www.clas.kitasato-u.ac.jp/~fujiwara/MacTeX/MacTeX2010.html

jbibtexが使えない

本題.
卒研のときからずっとbibtexを使った文献管理をしていて,今書いている論文ももちろんbibtexを使っています.
今回構築したtexshopの設定でjbibtexを使うように選択すると,bibtexのタイプセットを行ったときに/usr/texbin/jbibtexなんてありません!とエラーを吐いてきて,さて困った.
実際に/usr/texbin/を見ると,確かにjbibtexがなく,いったいどういうこと?という状態に.

調べてみると,2009年の7月にjbibtexはpbibtexに変更になったそうな.なるほど,texshopの方が対応できていないということですね.
pbibtexは,実質的にjbibtexと一緒らしいので

$sudo ln -s /usr/texbin/pbibtex /usr/texbin/jbibtex
$ ls -al /usr/texbin/jbibtex
lrwxr-xr-x 1 root wheel 7 11 ** **:** /usr/texbin/jbibtex -> pbibtex

こういう状態に.
これでtexshopからタイプセットすると,無事に日本語bibtexも扱えるようになりました.

Macのパッケージ管理ツールhomebrewを試してみた

homebrewとは?

パッケージ管理ツールです.主にUnix向けのアプリケーションのインストール・依存関係の解決などを行ってくれます.
http://mxcl.github.com/homebrew/

似たようなツールとしてMacportsfinkがあります.僕はMacportsを使っていましたが,ports installにかかる長さに辟易していました.なにげにパッケージも古かったりするし.(ocaml+omakeのインストールでハマった記事が前回のエントリーですね)
軽い気持ちでgnucashのインストールを試みたら,数時間かかっても終わらず結局諦めた,なんてことも.

Macportsは,依存関係があるアプリケーションのソースコードをすべてダウンロード&再コンパイルしてくれるので,非常に重かったんですね.homebrewはインストール済みのプログラムはそのままにするので,手早くインストールされます.とても嬉しい.

一通り使ってみる

インストールは
https://github.com/mxcl/homebrew/wiki/installation
にあるとおり,

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

でインストール完了.
ついでにocamlをインストールしてみます.

brew install ocaml

でインストール完了.
入ったocamlはこんな感じ.

% ocaml -version
The Objective Caml toplevel, version 3.12.0
% which ocaml
/usr/local/bin/ocaml
% ls -la /usr/local/bin/ocaml
lrwxr-xr-x 1 hoge staff 41 11 6 23:15 /usr/local/bin/ocaml -> ../Cellar/objective-caml/3.12.0/bin/ocaml
%

実際は/usr/local/Cellarに格納して,シンボリックリンクを張ってくれるんですね.なるなる.

応用編

このhomebrew,ほかにもかゆいところに手が届く,よい機能があります.
パッケージのコンパイルオプションなどをカスタマイズしたいとき,ローカルのレシピをすぐに書き換えて,対応できるのです.例えばmsgpackコンパイルオプションを変えてインストールしたいとき,
>>
%brew edit msgpack

Ocaml3.11.1 on Mac OSX 10.5 でomakeがビルドできない

エラーはこんな感じ.

$ sudo make all
make[1]: `Makefile.dep' is up to date.
make[1]: `omake' is up to date.
touch .config
OMAKEFLAGS= OMAKEPATH=lib ./omake-boot --dotomake .omake --force-dotomake -j2 main

omake: reading OMakefiles
      • Checking for gcc... (found /usr/bin/gcc)
    • snip--
omake: finished reading OMakefiles (3.21 sec)
  • build src/clib clib.a
  1. ar cq clib.a lm_heap.o lm_channel.o lm_printf.o lm_ctype.o lm_uname_ext.o lm_unix_cutil.o lm_compat_win32.o readline.o omake_shell_sys.o fam_win32.o fam_kqueue.o fam_inotify.o lm_notify.o lm_termsize.o lm_terminfo.o lm_fs_case_sensitive.o

ranlib: file: clib.a(fam_win32.o) has no symbols
ranlib: file: clib.a(fam_inotify.o) has no symbols

  • build src/clib clib.a
  1. ranlib clib.a

/usr/bin/ranlib: file: clib.a(fam_win32.o) has no symbols
/usr/bin/ranlib: file: clib.a(fam_inotify.o) has no symbols

  • build src/main omake.opt
  1. ocamlopt.opt -warn-error A -w Aez -I . -I ../libmojave -I ../util -I ../magic -I ../ast -I ../ir -I ../env -I ../exec -I ../eval -I ../shell -I ../build -I ../builtin -o omake.opt unix.cmxa ../libmojave/lm.cmxa ../util/util.cmxa ../magic/magic.cmxa ../ast/ast.cmxa ../ir/ir.cmxa ../env/env.cmxa ../exec/exec.cmxa ../eval/eval.cmxa ../shell/shell.cmxa ../build/build.cmxa ../builtin/builtin.cmxa omake_shell.cmx omake_main.cmx ../clib/clib.a -cclib -lncurses -cclib -lreadline

Undefined symbols:
"_caml_sync", referenced from:
_camlOmake_exec__28 in exec.a(omake_exec.o)
ld: symbol(s) not found[========================================================================== ] 01149 / 01154
collect2: ld returned 1 exit status
File "caml_startup", line 1, characters 0-1:
Error: Error during linking

omake: 1149/1154 targets are up to date
omake: failed (31.45 sec, 229/229 scans, 337/496 rules, 774/2605 digests)
omake: targets were not rebuilt because of errors:

src/main/omake.opt
make: *** [all] Error 2

解決方法は,http://d.hatena.ne.jp/takashyx/20091024/p1を参考にしてください.パッチまだー(AA略

Mac OSX 10.5.8でGOを動かす.

とりあえず,作業ログとして書いておく.

GOとは?

とりあえずGOの概要とかをさらっと.
GOは,Googleが今日(2009年11月11日)にリリースした,システム記述向け言語である.
WebページはThe Go Programming Languageで,この微妙な齧歯類がマスコットキャラのようだ.へー.

言語としてはCの派生,Objective-Cのような印象.
goroutineというスレッドもどきと,スレッド間通信が特徴.
個人的には,Typeが面白い感じ.

システムプログラミングに用いるとすると,GCがあるにも関わらずパフォーマンスが10%程度しかC/C++と変わらないとか.そのあたりは良さそう.
スレッドに関しても,goがマネジメントしてくれるので楽そう.

そんな感じ.

Go Install

インストールの方法を書いていたらid:amachangのエントリ:早速 Go 言語を試してみる! - IT戦記が既に・・・!

重ねて書くほど中身も無いので, 関連してハマったことをいくつか.

Mercurialhttpsリポジトリからcloneできない

Mac OS X 10.5.8 で発生.

$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
abort: Python support for SSL and HTTPS is not installed

こんなエラーが.とりあえずググったらこんな記事があった.
http://rubenlaguna.com/wp/2009/05/08/python-support-ssl-https-not-installed/

ということでやってみると

$sudo port upgrade python
Error: python is not installed

まさか,いやいや

$ Python --version
Python 2.5.1

Python動いてるし...
OSXに入っているPythonは,Mac用の通称MacPythonと呼ばれるもので,このportがインストールしようとするpythonが何なのか読めない.怖い.
ということで,改めて

$ sudo port upgrade python25

とやったら,upgradeできました.

あとは,早速 Go 言語を試してみる! - IT戦記と同じ.

Camera-Readyに関するTopics

そんなことから,今日がCamera-Ready原稿の提出締め切りで,いろいろそのための作業をしていた.また調べるのが嫌なので,ここにCamera-Readyの提出時にやった作業とかをまとめておく.

なお,前提としてOS環境はMacOSX 10.5, Tex環境はtexshoplatexである.

Letterサイズでのpdf出力

いつまでたってもSI単位系に適用できないアメリカンだが,論文の世界でも彼らの常識,Letterサイズでpdfを作成し提出しなくてはイケナイ.
僕の環境では,

\pdfpagewidth=8.5truein

とか書くとコンパイルエラーになるので,至極やっかいである.
これは,dvipdfmというdviからpdfに変換するプログラムに

$ dvipdfm -p letter hoge.dvi

と渡せばいいらしいが,texshopがわざわざpdf出力までやってくれるのに,いちいちコマンドを打つのはメンドクサイ.
ということで他の方法を調べたら,ソース(.texファイル)に

\special{pdf: pagesize width 8.5truein height 11.0truein}

と書けば,このオプションがtexshopからdvipdfmに渡されるらしく,texshopから一発でLetterサイズのpdfを作ることが可能になった.
これを確認するためには,preview.appで印刷を試みたときに,用紙設定が「レターサイズ」になっていればOK.

fontの埋め込み

僕の環境では,本分に関しては何もしなくても埋め込みになっていた.
ただ,図表に用いたepsファイルに関して,いくつか注意点があった.

epsファイルはベクタ形式で図を保存するフォーマットだ.
ここで図に文字が含まれる場合,保存の際にフォントを埋め込むようなオプションを指定しないと,フォントは埋め込まれない.
例えば,Windowsで図を作成し,MacOSX環境でpdf化する際,Windows限定のフォントを用いていると,上手くコンパイルできない可能性がある.

ということで,texコンパイル時にフォント関係のエラーが出たり,フォントの埋め込みが完全ではなかった場合,この辺をまず疑うとよさそう.

ちなみにフォントがちゃんと埋め込まれているか確認するためには,pdfのプロパティを見よう.
でも僕はよくわかんなかったので,http://pdf.printjapan.com/というサイトでチェックした.

国際会議通った.

 国際会議(ACM SAC Meetings)に投稿していた論文の査読が通った.これで3月はスイスで発表.実は初めての海外で,とっても不安.でもなかなか経験できることではないので,楽しもうと思う.
 7月末に指導教員から「書かない?」と言われ,「書きまつ!」返事してしまったことから8月,9月前半はこの論文に係りきりだった.結果的に,僕の原稿はほとんどすべて書き直され(M1ならこんなもんらしい),提出したときには

「これが通って,ホントに自分の業績か?」

とちょっと考えてしまった.でもよく考えれば,ネタ(テーマ)や論文の構成というコンテンツそのものは僕のモノなので,余り気にしないようにした.だが,この過程によって,英語での表現や,論文を書くときのロジックは,人以上に勉強する必要があることがわかった.がんばろう.