2013年1月5日土曜日

LaTeXのsty, bst, bibファイルなどを単一フォルダで管理する方法

だいぶ前の記事でC/C++のソースファイルをライブラリとして管理する方法を書きました。
LaTeXでも同様のことが出来たらいいなあと思ったら、なんとその方法がありました。

要するに、今まで\bibliographystyle{../../tieice}みたいに相対パスを書いていた人(僕です)が\bibliographystyle{tieice}で良くなるし、また新しい論文作成用フォルダにstyやbibファイルなど必要なものを全てコピペしていた人(僕です)もその必要が無くなります。

ただし、この方法はコマンドラインで”platex”やらを使う人向けなので、TeXShopなどのIDE的なものに頼っている人には関係ない話かもしれません。
僕はMacでもWindowsでも、時にはLinuxでもLaTeXを書くときがあるので、環境依存するソフトウェアにはあまり頼らない派です。
コマンドラインでコンパイルする方法をあまり知らないという方はこちらの記事を読みましょう。

あと、この記事の最後の方でEmacs上でLaTeXコンパイルしている人向け用にも少し説明します。

設定手順

まずは管理フォルダを作る

sty, cls, bib, bstファイルなどを一括して管理しておくフォルダを作成します。
ここではホームフォルダ直下のmytexというフォルダとします。
その中にstyファイルなどをぶち込んでおきます。

.bashrcの設定

冒頭でも述べた通りコマンドラインで”platex”や”bibtex”を使うので、それらのコマンドがそのフォルダを読み込んでくれるように設定しなければいけません。
そのためには以下を.bashrcに書いておきます。(zshもこの書き方でいいかどうかは分かりません)
export TEXINPUTS=$TEXINPUTS:~/mytex/
export BSTINPUTS=$BSTINPUTS:~/mytex/
export BIBINPUTS=$BIBINPUTS:~/mytex/
これでパスが通ります。

完了!

あとは思う存分platexしてください!



Emacs上でコンパイルしている人用の設定


この記事の方法を使っている人や、僕みたいにEmacsで”platex”や”bibtex"や”xdvi”などを呼び出している人用です。(後者の方法は後日上げたいと思います。)

上の設定が済んだら試しにEmacsでM-! (shell-command)を使って以下を打ってみてください。
echo $TEXINPUTS
もしこれでパスが表示されれば設定はこれ以上なにもしなくていいと思いますが、恐らくされないと思います。

その場合は以下をEmacsの設定ファイルに書いておきます。
;; Add tex packages path
(setenv "TEXINPUTS"
 (concat ".:" (getenv "HOME")
                ":~/mytex/:"
  (getenv "TEXINPUTS")))

;; Add bibtex reference files path
(setenv "BIBINPUTS"
 (concat ".:" (getenv "HOME")
                ":~/mytex/:"
  (getenv "BIBINPUTS")))

;; Add bst reference files path
(setenv "BSTINPUTS"
 (concat ".:" (getenv "HOME")
                ":~/mytex/:"
  (getenv "BSTINPUTS")))
getenv “HOME”の部分はいらないかもしれませんが、一応設定はこれでOKなはずです。
ところどころコロン”:”があるのに注意してください。

ただし、WindowsのNTEmacsではまだちゃんと動作してくれてませんのでみなさんの環境でも完璧に動いてくれるかどうかは保証できません…
MacのCocoa Emacs 24ではちゃんとなっていたはずです。
色んな環境での動作報告求む!です。


というわけで快適な論文生活を送ってください。

0 件のコメント :

コメントを投稿