Debian 7 wheezy stable への TeX Live 2013 導入の備忘録

もう二年以上になるが、この記事 を書いたあたりの時期にデスクトップで Debian sid (unstable) を使用し始めた。以来今まで楽しみながら使用してきたが、sid は最新の開発成果が享受できる一方で、大規模な変更やライブラリアップデートのため、依存関係の問題など常に不安定さがつきまとう。

今回、心機一転、デスクトップでも現在 (2013/11/26) の安定版 (stable) Debian 7.0 Wheezy をクリーンインストールすることにした。sid の楽しさも捨てがたいが、常用するのには “stable” に越したことはない。

さて、そこでこちらも久しぶりに執筆環境である TeX もはじめから整えることをしなければならなかった。といっても、今は TeX Live という完全な TeX ディストリビューションが簡単に導入できる。もろもろの設定も Linux であれば、Mac や Windows など他の OS のそれよりもシンプルで手間がかからないように思う。

ということで、以下は Debian 7 wheezy stable への TeX Live 2013 導入の備忘録。

TeX Live 導入

導入は apt-get で可能。

$ sudo apt-get install texlive-full

私は今回は TeX Live 公式サイト のパッケージをインストールすることにした。

$ wget http://ring.airnet.ne.jp/pub/text/CTAN/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar xvf install-tl-unx.tar.gz
$ cd install-tl*
$ sudo ./install-tl --repository http://ring.airnet.ne.jp/pub/text/CTAN/systems/texlive/tlnet/

オプション <O> で “create symlinks in standard directiories” <L> を選択しておいた。メインメニューにリターン <R> して、インストール <I> をスタートする。コーヒーブレーク。

上のように公式サイトのパッケージをインストールしたあとで apt-get などを使用して TeX Live/Debian に依存するパッケージを導入すると、巨大な TeX Live/Debian そのものもインストールされてしまう。これを回避するために dummy パッケージを作成しておく。このあたりは 以前に書いた記事 の事情と同じ。

$ sudo apt-get install equivs
$ wget http://www.tug.org/texlive/files/debian-equivs-2013-ex.txt
$ equivs-build debian-equivs-2013-ex.txt
$ sudo dpkg -i texlive-local_2013-1_all.deb

この作業の後は、普段使用している TeX 関連のツールを導入しても問題なし。

$ sudo apt-get install auctex

などなど。

TEXMFHOME の設定

これは TeX Live 2013 ではなく、Debian に特有の設定かもしれないが、 /usr/local/texlive/2013/texmf-dist/web2c/texmf.cnf を見ると、 Kpathsea によって使用される ls-R ファイルのパス (TEXMFDBS) に TEXMFHOME が含まれていない。Tex Live 自体が完全なので、通常は TEXMFHOME には必要最小限のものだけを置く方がよいが、私はこのホームの TEXMF は便利なので個人で使用するスタイルファイル等はすべてここに置いている。

ユーザー個人の texmf.cnfTEXMFCONFIG/web2c 以下に配置すればよいが、以下のように環境変数をセットする必要があるようだ (cf. Per user configuration changes)。

export TEXMFCNF=$HOME/.texlive2013/texmf-config/web2c:

私はこれを ~/.bashrc に加えておいた。

さて、 /home/hoge/.texlive2013/texmf-config/web2c/texmf.cnf を作成して TEXMFDBSTEXMFHOME を加える。ついでに このあたり を参考に extractbb などの追加の設定も書いておく。

% user-specific texmf.cnf
% TEXMFDBS
TEXMFDBS = {!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFDIST,!!$TEXMFHOME}

% SHELL ESCAPE COMMANDS
shell_escape_commands = bibtex,bibtex8,bibtexu,pbibtex,upbibtex,biber,kpsewhich,makeindex,mendex,texindy,mpost,pmpost,upmpost,repstopdf,epspdf,extractbb

これで、例えば pTeX 関連のパッケージ (.tex or .sty.) やクラスファイル (.cls) であれば ~/texmf/tex/platex/ に置けば良い。また、学会誌ごとに独自のスタイルが要求されることの多い BibTeX のスタイルファイル (.bst) なども適宜ここに配置しておけばよいだろう。

注意すべきは、 ~/texmf 以下の フォルダ構造は大事である 、ということ。 ~/texmf 直下にあらゆるファイルをランダムに置いてはいけない。例えば ~/texmf 以下は次のようになるだろう。

~/texmf
    +--tex
         +--platex <-- pTeX 関連のパッケージ
         +--latex  <-- 一般のパッケージ
         +--misc   <-- その他
    +--bibtex
         +--bib
         +--bst
    +--pbibtex
         +--bib
         +--bst

最後に ~/texmfls-R ファイルを生成するために texhash を実行しておく。この時、管理者権限ではなく ユーザー権限で行うこと。

$ texhash ~/texmf
texhash: Updating /home/hoge/texmf/ls-R...
texhash: Done.

TEXMFHOME に配置したスタイルファイルが読み込まれるか調べるには kpsewhich を利用すればよい。例えば、

$ kpsewhich 'mythesis.sty'
/home/hoge/texmf/tex/platex/thesis/mythesis.sty

など。

TEXMFHOME に新しいファイルを追加した場合は、 texhash を再度実行して ls-R ファイルを更新することを忘れないようにする。

TEXMFHOME にフォントもインストールしたい場合1~/texmf/fonts/ 以下の適切なフォルダに必要なファイルをコピーする (cf. User-specific installation)。例えば次のようなフォルダ構造で。

~/texmf
    +--fonts
         +--map
             +--dvipdfmx
             +--dvips
         +--opentype  
         +--truetype

ここでもう一度 texhash を実行して ls-R ファイルをアップデートしておいてから、 updmap を実行し map ファイルを生成する。ここでもシステムワイドのフォントインストール時に実行する updmap-sys ではない点に注意する。

$ updmap

先ほどと同じくフォントを加えるごとに updmap は実行しなければならない。

Footnotes:

1

ただし、フォントは原則として TEXMFLOCAL に置かれることが推奨されている (see http://tug.org/mactex/TeXLive2013Changes.pdf)。どうも tlmgr でアップデートした後 updmap-sys は自動で実行されるが updmap は手動で行わなければならないようだ。

2 thoughts on “Debian 7 wheezy stable への TeX Live 2013 導入の備忘録

  1. 同じくTexlive2014ではなくTexlive2013をWheezy(WattOS R8)にインストールしようと思っていたので役立ちました。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s