TEXMFHOMEの利用

TeXシステムのインストール時には、環境変数 TEXMFHOME が設定されます。 TEXMFHOME とは、TeXユーザ個人が自由に使うことのできるフォルダ texmf を置くことができる場所で、定められたフォルダ構成にしたがって、TeXシステムが有する標準的なパッケージ以外のパッケージをCTAN(The Comprehensive TEX Archive Network)などから入手したパッケージを置いておくことができます。

TEXMFHOMEを利用しないとすると、TeXの本文ファイルに必要な標準以外のパッケージ(つまり、スタイルファイル)をそのTeXファイルと同じフォルダに置いておく必要があります。 TeXに必要な標準以外パッケージは、以下で説明する方法にしたがって TEXMFHOME内にフォルダ texmfを作成して、その内のサブフォルダ tex 以下(つまり、TEXMFHOME/texmf/tex 以下)に配置しましょう(必要なパッケージが現在のTeXシステムに存在しているのかどうかを調べる方法も以下で説明します)。

TeXシステムでは、TeXシステムにとってたいへん重要なさまざまな情報,特にTeXユーザにとって必要なさまざまなパッケージ(スタイルファイル)が収められている場所が複数あり、それらはTEXMFツリーと呼ばれていいます。 これらのコンピュータ内の場所は、TEXMFで始まる環境変数で指定されています。

大学のシステムのように,ユーザがホーム以外に自由にパッケージを追加できない場合には TEXMFHOME に texmf フォルダを作成しておくことはとても大切です。 そのとき、追加するパッケージは TEXMFHOME/texmf/tex に置かねばならないことを強調しておきます(単に TEXMFHOME/texmf 内ではありません)。

TEXMFHOMEの場所

TEXMFHOMEの場所は、コンピュータのOSやTeXシステムの配布形態によって異なります。 下記のように、ユーザのホーム領域(のどこか)がTEXMFHOMEの場所に割り当てられ、そこに次に従ってフォルダ texmf を作成します。

自分のTeXシステムがどのTEXMFツリーを検索するかを確認するには、DOSコマンド(Windowsの場合)またはターミナル(MacOSノ場合)も kpsewhich コマンドを次のように使います(プロンプトは入力しない)。

kpsewhich -var-value TEXMF

このコマンドに、サーチパスのディレクトリ(フォルダ)が表示されるので、自分のホームで都合の良い場所を見つけます。

実際のTEXHOMEの場所は次のようになります。

実習室のWindowsのTEXMFHOME
Z:/.windows2000/texmf/tex(マイドキュメント\texmf が設定されました! Z:/.windows2000/texmf/tex(マイドキュメント\texmf\tex)内にシステムで用意していないパッケージをダウンロードして置いて下さい。
自分のMacのTEXMFHOME
[Macportによって]TeXシステムを構築した時:[ホーム]「/Users/ユーザ名」に設定される (ホームにフォルダ texmf を作成(その内部にフォルダtexを作成する)。
[MacTeXによって]TeXシステムをインストールした時:/Users/ユーザ名/Library/texmf に設定される そこにフォルダ texmf を作成(その内部にフォルダtexを作成する)。
show_library show_mavericks_library

MacOS 7(Lion)やMacOS 8(Mavericks)ではフォルダ ~/Library は不可視になっています。 非表示のユーザーライブラリフォルダーにアクセスする方法(Mac OS X 10.7 以降)などを参考にして上図のように見えるようにする。 たとえば、MacOS8では、ホームフォルダを開いてメニューバー[表示]/[表示オプション]を開いて右図のように[ライブラリフォルダを表示」にチェックを入れて表示。

次いで、Finder左端にライブラリフォルダをドラッグして常時アクセスできるようにしておくとよい。 そうした上で、/Users/ユーザ名/Library/ 内にフォルダ texmf を作成(その内部にフォルダtexを作成する)。


繰り返しになりますが、作成した TEXMFHOME/texmf が検索対象のフォルダになっていることをまず確かめてください。 システムに用意されておらずに、自分で入手したパッケージは上で説明したように TEXMFHOME/texmf/tex/の中に適当なフォルダを作成して置いておかねばなりません(パッケージを含むフォルダ全部でもよい)。

TEXMFHOMEの使い方

上で説明したそれぞれのTeXシステムに応じたTEXMFHOMEに 「texmf」 という名前のフォルダを作成します(これを以降で TEXMFHOME/texmf と表記します)。 texmf/tex内に標準以外のTeXパッケージ(スタイルファイル)を置きます(必要なフォルダごと置いて構いません)。

ただし、フォルダ texmf は次のような構造をになっていなければなりません(texmf 内に フォルダ tex を作成しておくことが必要です。 フォルダ texmf/tex 内は次のように自由に platex や latex などの任意フォルダを作成しても構いません。 自分で分かりやすいようにパッケージをフォルダごと置くことができるのです。

TEXHOME(←インストール環境に応じて場所が決まってます)
    texmf
       |--tex
            |-- 直接パッケージを置いてもよい
            |--platex <-- 日本語に関わるパッケージ(フォルダごとでもよい)
            |--latex  <-- 一般のパッケージパッケージ(フォルダごとでもよい)
            |--misc   <-- 何か他のパッケージ

こうしておくと、TeXシステムは TEXMFHOME/texmf/tex を含む TEXMFツリー内を検索して、それが存在すれば、TeXファイルで \usepackage{...} で宣言したパッケージとして読み込んでくれます。 とても便利でしょ!

TeXシステム内のパッケージを探す

必要なパッケージ名がわかっているときに、現在のTeXシステムにそのパッケージが存在しているかどうかを知るには、コマンド kpsewhich を次のように使います(下の記号「%」 はコマンドプロンプトであり、入力する必要はありません)。

もしパッケージが存在しない場合には、インターネット経由でパッケージを入手して、自分(以下では名称をUserNameとした)の TEXHOME/texmf/tex/ 内に置きます。 次の例は、MacTeXの場合に、パッケージ(スタイルファイル)fourier.sty や pxjahyper.sty がTeXシステムのTEXMFツリー内にあるかを調べた例です。

% kpsewhich fourier.sty
/usr/local/texlive/2013/texmf-dist/tex/latex/fourier/fourier.sty

% kpsewhich pxjahyper.sty
/Users/UserName/Library/texmf/tex/misc/PXjahyper-master/pxjahyper.sty
この例では、前者のスタイルファイル fourier.sty は /usr/local/texlive/2013/texmf-dist/tex/latex/fourier/fourier.sty とシステム内に存在していることがわかりました。 一方、後者のスタイルファイル pxjahyper.sty では、システム内にはなく、PXjahyperからダウンロードしてものをユーザのTEXHOME内においてあったためにそれを見つけ出して、その場所が /Users/UserName/Library/texmf/tex/misc/PXjahyper-master/pxjahyper.sty にあると表示されました(見つけ出せない場合には、何も返されません)。