Yamamoto's Laboratory
 
 
texmf
 
 

LaTeX::設定texmfTeX 用ファイルの置き場所

自作ファイルや手作業で追加するファイルを,TeX が見つけられる場所に置くための基本を示します.

目次


texmf とは?

texmf は,TeX 関連のファイルを置くためのディレクトリーです.LaTeX のスタイルファイル,クラスファイル,BibTeX のデータベース,フォント関連ファイル,説明書などを,一定の規則に従って配置します.この規則は TDS と呼ばれます.

TeX Live では,配布物本体の texmf-dist,システム全体で使う texmf-local,ユーザーごとの texmf など,複数の texmf ツリーを検索します.自作ファイルや手作業で追加する少数のファイルは,TeX Live 本体が管理する texmf-dist ではなく,ユーザー用またはローカル用の texmf ツリーに置きます.

一度だけ使う *.sty や *.bib は,作業中の *.tex と同じディレクトリーに置いても読み込めます.複数の文書から再利用する場合は,texmf ツリーに置くと,作業ディレクトリーに依存せずに読み込めます.

texmf ツリーの種類

実際にどのディレクトリーが使われているかは,kpsewhich で確認できます.環境やインストール方法によって場所が変わるため,固定のパスを覚えるよりも,コマンドで確認する方が確実です.

TeX Live でよく使う texmf ツリー
変数 確認コマンド 用途
TEXMFHOME kpsewhich -var-value TEXMFHOME ユーザー個人で使うファイルを置く場所.典型例は Linux の ~/texmf や Windows の C:/Users/ユーザー名/texmf です.
TEXMFLOCAL kpsewhich -var-value TEXMFLOCAL 複数ユーザーやシステム全体で使うファイルを置く場所.TeX Live では典型的に /usr/local/texlive/texmf-local です.
TEXMFDIST kpsewhich -var-value TEXMFDIST TeX Live が配布・管理するファイルの置き場所.手作業で直接書き換えると,アップデートで上書きされることがあります.

主なファイルの配置場所

texmf ツリーの中では,ファイルの種類ごとに置き場所が決まっています.下の表の category,package,syntax,supplier,typeface は,実際の分類名,パッケージ名,記法名,配布元名,書体名に置き換えます.

texmf ツリー内の主なファイル配置
拡張子 ディレクトリー 備考
.sty tex/latex/package LaTeX のスタイルファイル
.cls tex/latex/package LaTeX のクラスファイル
.cfg, .def tex/latex/package LaTeX パッケージ用の設定ファイル・定義ファイル
.tex tex/plain/package Plain TeX 用のマクロファイル
.tex tex/generic/package 複数の TeX 形式で使う汎用マクロファイル
.bib bibtex/bib/package BibTeX のデータベースファイル
.bst bibtex/bst/package BibTeX のスタイルファイル
.pdf, .dvi doc/category/package 説明書やサンプル文書
.afm fonts/afm/supplier/typeface Adobe Font Metrics
.enc fonts/enc/syntax/package フォントエンコーディングファイル
.map fonts/map/syntax/package フォントマップファイル
.mf fonts/source/supplier/typeface METAFONT のソースファイル
.tfm fonts/tfm/supplier/typeface TeX Font Metric ファイル
.pfb, .pfa fonts/type1/supplier/typeface PostScript Type 1 フォント
.otf fonts/opentype/supplier/typeface OpenType フォント
.ttf fonts/truetype/supplier/typeface TrueType フォント
.vf fonts/vf/supplier/typeface TeX の仮想フォントファイル

ファイルを追加した後の確認

たとえば自作の my_style.sty を個人用の texmf ツリーに追加する場合は,次のように配置します.

$ mkdir -p ~/texmf/tex/latex/my_style
$ cp my_style.sty ~/texmf/tex/latex/my_style/

配置後は,LaTeX を実行する前に kpsewhich で検索できるか確認します.パスが表示されれば,TeX から見える場所に置けています.

$ kpsewhich my_style.sty
/home/yamamoto/texmf/tex/latex/my_style/my_style.sty

TEXMFHOME は通常,ディスク上のファイルを直接検索するため,ファイルを置くだけで使えることが多いです.一方,TEXMFLOCAL のように検索パスの先頭に「!!」が付くツリーでは,ls-R というファイル名データベースだけを検索します.その場合は,ファイル追加後に mktexlsr を実行して ls-R を更新します.

$ sudo mktexlsr

何も表示されない場合は,保存場所,ファイル名,大文字小文字,拡張子,または mktexlsr の実行忘れを確認します.同じ名前のファイルが複数ある場合は,kpsewhich が表示したものが先に使われます.

texmf の共有

複数の PC で同じ自作ファイルを使う場合は,Dropbox などで個人用 texmf ツリーを同期し,ホームディレクトリー側にリンクを作ると管理しやすくなります.共有するのは自作ファイル用の小さな texmf ツリーだけにし,TeX Live 本体の texmf-dist は共有しません.

Linux や macOS では,たとえば Dropbox 内の texmf をホームディレクトリーの ~/texmf として使う場合,次のようにシンボリックリンクを作ります.既に ~/texmf がある場合は,中身を退避してから作業します.

$ ln -s ~/Dropbox/texmf ~/texmf

Windows では,PowerShell で次のようにシンボリックリンクを作れます.権限の設定によっては,管理者権限または開発者モードが必要です.

PS> New-Item -ItemType SymbolicLink -Path $env:USERPROFILE\texmf -Target $env:USERPROFILE\Dropbox\texmf

クラウド同期で共有する場合は,OS 間の大文字小文字の扱いの違いや,同時編集による競合に注意します.また,共有している texmf の直下に ls-R があると,新しく追加したファイルが見つからないことがあります.個人用の TEXMFHOME では,ls-R を作らないか,作る場合は更新を忘れないようにします.

ページ作成情報

参考資料

  1. texmf ツリーの構造については,TeX Users Group の「A Directory Structure for TeX Files」を参考にしました.
  2. ls-R と mktexlsr については,TeX Users Group の「Kpathsea: A library for path searching」を参考にしました.
  3. 手作業で追加するスタイルファイルの扱いについては,「スタイルファイル」のページも参照してください.

更新履歴

2026年05月15日 内容を見直し,texmf ツリーの種類,TDS,ファイル追加後の確認,共有時の注意を追記
2023年04月08日 ページの新規作成


no counter