Homebrew から gnuplot を入れると色々メンドかった話

Mac OS X Marvericks で MacTeX (TeX Live 2013) & Homebrew gnuplot を入れて使おうとしたところ，```gnuplot-lua-tikz``` パッケージが使えなくてハマりました．関連して色々と落とし穴が見えたので，まとめようと思います．

# Homebrew から gnuplot をインストールする

```shell-session
uda@mac:~$ brew install gnuplot
```

私の OS X Marvericks / Homebrew 環境で何も考えずに上記を実行したところ，問題なく gnuplot がインストールされたように見えました．しかし，この方法は色々と落とし穴を含んでいます．

## clang のせいでインストールに失敗することがある（らしい）

詳しくはこちら：

 * [gnuplot をMac OS X 10.9 Mavericksに導入](http://qiita.com/jtwp470/items/09f8aea31d172bd4acc7)

Xcode で入る gcc …… は実際には **<del>F*CKING</del> Apple LLVM clang** なので，そのせいでうまくいかないことがあったようです．

私は ```gcc-4.9``` を指定した場合も何も指定しなかった場合もうまく行きましたが，Mac OS のバージョンによってはうまくいかないのかもしれません．気になる人はホンモノの gcc を指定してみましょう．

```shell-session
uda@mac:~$ brew install --cc=gcc-4.9 gnuplot
```

## LaTeX 関連のファイルが導入されない etc.

Homebrew の gnuplot フォーミュラでは，膨大な数の機能を持つ gnuplot の全機能を有効にしてビルドするわけではありません．そのため，```brew install gnuplot``` にはいくつかオプションを渡すことができます．

```shell-session
uda@mac:~$ brew info gnuplot
(前略)
==> Options
--cairo
	Build the Cairo based terminals
--latex
	Build with LaTeX support
--nogd
	Build without gd support
--nolua
	Build without the lua/TikZ terminal
--pdf
	Build the PDF terminal using pdflib-lite
--qt
	Build the Qt4 terminal
--tests
	Verify the build with make check (1 min)
--with-x
	Build the X11 terminal
--without-aquaterm
	Do not build AquaTerm support
--without-emacs
	Do not build Emacs lisp files
--wx
	Build the wxWidgets terminal using pango
--HEAD
	install HEAD version
(後略)
```

明示的にオプションを指定しなければ，これらの機能は有効にならないようです．例えば，以下のようにすることで ```gnuplot-lua-tikz.sty``` などのスタイルファイルが生成されるようになります．

```shell-session
uda@mac:~$ brew install gnuplot --latex
```

他にも gnuplot のターミナルを種類を増やすオプションがありますから，必要に応じて有効にするとよいでしょう．

## ! LaTeX error: `gnuplot-lua-tikz.sty' not found.

さて，これで ```gnuplot-lua-tikz.sty``` が無事使えるようになったのでしょうか？いいえ，まだ落とし穴があります．実はこのファイルは tex のパスの通っていない場所に配置されてしまいます．

```shell-session
uda@mac:~$ ls -la /usr/local/texlive/texmf-local/tex/latex/ | grep gnuplot

uda@mac:~$ ls -la /usr/local/Cellar/gnuplot/4.6.5/share/texmf/tex/latex/gnuplot/
total 32
drwxr-xr-x 7 uda admin   238  4  8 23:41 .
drwxr-xr-x 3 uda admin   102  4  8 23:41 ..
-rw-r--r-- 1 uda admin 13768  4  8 23:41 gnuplot-lua-tikz-common.tex
-rw-r--r-- 1 uda admin   299  4  8 23:41 gnuplot-lua-tikz.sty
-rw-r--r-- 1 uda admin   250  4  8 23:41 gnuplot-lua-tikz.tex
-rw-r--r-- 1 uda admin   173  4  8 23:41 gnuplot.cfg
-rw-r--r-- 1 uda admin   407  4  8 23:41 t-gnuplot-lua-tikz.tex
```

いわゆる ```TEXMFLOCAL```（全ユーザ共通の TeX 設定ディレクトリ）には配置されません．まぁ Homebrew のマナーを考えればある意味当然なのですが，だったらせめて ```TEXMFHOME```（ユーザ個人の TeX 設定ディレクトリ）に置いてくれって感じですね．なんなんだ．

# 面倒すぎて何が何だか分からない，結局どうすればいいの？

<del>案0: Mac を投げ捨てる．</del>

## 案1: gnuplot をソースからビルドする

はい，安定ですね．http://sourceforge.net/projects/gnuplot/files/gnuplot/ からとってきてがんばってください．

```shell-session
uda@mac:~/gnuplot-4.6.5$ ./configure
uda@mac:~/gnuplot-4.6.5$ make
uda@mac:~/gnuplot-4.6.5$ sudo make install
```

いりそうな機能もだいたい入りますしコンパイラの問題もいくらでも自分で調整できます．

え？「俺はそんなことしたくないから Homebrew 使ってるんだ」って？

## 案2: ```TEXMFHOME``` にシンボリックリンクを作る

Homebrew から gnuplot をインストールしたあと TEXMFHOME -> Cellar のシンボリックリンクを張る方法です．また，こちらは sudoer でなくてもいけます．

```shell-session
uda@mac:~$ brew install gnuplot --latex
uda@mac:~$ mkdir -p ~/Library/texmf/tex/latex
uda@mac:~$ ln -s /usr/local/Cellar/gnuplot/4.6.5/share/texmf/tex/latex/gnuplot $HOME/Library/texmf/tex/latex/gnuplot
```

MacTeX では ```TEXMFHOME``` が ```$HOME/Library``` 以下になることに要注意です．

## 案3: TeX Live に ```gnuplot-lua-tikz.sty``` が入るのをおとなしく待つ

これは個人的な意見ですが，そもそも gnuplot のインストールに依存してしまっているのがなんか釈然としないのですよね．```gnuplot-lua-tikz.sty``` 自体は gnuplot がなくても使えるパッケージですから，CTAN にも上がっていて欲しいです．

……善処します．