- 追加された行はこの色です。
- 削除された行はこの色です。
* TeX のディレクトリ構成 (TDS) [#u528ce3e]
// こういう内容,美文書には(付録に)記載されていますが,Web ではほとんど解説されていないので
// 有用そうです.
TDS (TeX Directory Structure) とは,TeX の標準的なディレクトリ構成です。
[[TeX Live]] や [[W32TeX]] はこの TDS に従っています。
-http://www.tug.org/texinfohtml/tds.html
-http://www.ctan.org/tex-archive/tds
実際にどのように TeX に関するファイルやディレクトリを配置したらよいのか考えます。
[[パッケージ]]や[[フォント]]を追加する際,あるいは使用しているパッケージの置き場を探す際に参考になるはずです。
[TODO] TDS のバージョンによる違いはどの程度でしょうか?
----
#contents
----
** TEXMF ツリー・多重 TEXMF ツリーとは [#ae6fe566]
現在の TeX ディストリビューションのほとんどは TEXMF ツリー((TEXMF とは,'''TeX''' と '''M'''ETA'''F'''ONT という意味です。))を採用しています。
TEXMF ツリーには,パッケージやクラスファイル・フォント・スクリプト・説明文書などが規則に従って分類され,収録されています。
TeX Live や W32TeX では複数の TEXMF ツリーを使い分ける「多重 TEXMF ツリー」が採用されています。
これにより,ディストリビューションが用意したファイルとユーザが追加したローカルなファイルなどを明確に区別できます。
TeX Live では例えば(以下の YYYY には年が入ります)
- C:\texlive\YYYY\texmf-dist や C:\texlive\texmf-local(Windows での典型的な例)
- /usr/local/texlive/YYYY/texmf-dist や /usr/local/texlive/texmf-local(Unix 系での典型的な例)
W32TeX では
- C:\w32tex\share\texmf-dist や C:\w32tex\share\texmf-local(典型的な例)
などのディレクトリがそれにあたります。
//
// ほかに,以下のような例があるようです。
// - C:\w32tex\share\texmf(2013年4月7日以前の W32TeX の典型的な例)
// - /usr/local/share/texlive/YYYY/texmf-dist
// - /opt/local/share/texlive/YYYY/texmf-dist
// - /usr/share/texmf
// - /opt/share/texmf
// - ~/Library/texmf
//
以下では,これらのディレクトリを一般に ''texmf'' とします。
** TEXMF ツリーの中身 [#y056dcf8]
''texmf'' ルートディレクトリの下位には,主に次のようなディレクトリがあります:
-tex:TeX の動作に必要なテキストファイルが入ります。
-fonts:[[フォント]]に関するファイルが入ります。
-metafont:[[METAFONT]] の動作に必要なテキストファイルが入ります。
-metapost:[[MetaPost]] の動作に必要なテキストファイルが入ります。
-dvipdfmx:[[dvipdfmx]] 用の設定ファイルが入ります。
-dvips:[[dvips]] 用の設定ファイルが入ります。
-bibtex:BibTeX に関するファイルが入ります。
-scripts:プラットフォームに依存しないスクリプト (Perl, Lua, etc.) が入ります。
-doc:説明文書が入ります。
-source:ソースファイル(LaTeX パッケージの元になる dtx や ins なども含む)が入ります。
TeX でファイル検索を行う kpathsea ライブラリは,このディレクトリ構成に従って必要なファイルを検索します。
kpathsea ライブラリは多重 TEXMF ツリーにも対応しています。
** TeX のマクロ,LaTeX のパッケージなど:texmf/tex [#edefb928]
LaTeX のパッケージなどのファイルは,「TeX のフォーマット→パッケージの名前」に従って配置します。
-''texmf''/tex/<format>/<package>/
まず,<format> とはフォーマットの名前です(例:latex, context, plain, amstex, texinfo)。
次のフォーマット名は TDS によって予約されています。
-generic:複数のフォーマットに渡って使われるファイル(plain TeX で記述されていて,他のフォーマットに依存しないもの)。
-local:ユーザがローカルに追加したファイル(多重 TEXMF ツリーに対応していない場合によく使われる方法です)。
-generic:複数のフォーマットに渡って使われるファイル(plain TeX で記述されていて,他のフォーマットに依存しないもの)
-local:ユーザがローカルに追加したファイル(多重 TEXMF ツリーに対応していない場合によく使われる)
次に,<package> は TeX のパッケージ名です(例:babel, hyperref)。
次のパッケージ名は TDS によって予約されています。
-base:それぞれのフォーマットの基本的なファイル(例えば .ltx や .ini など)。
-hyphen:ハイフネーション・パターンを記述したファイル。
-images:PostScript ファイルなどの画像ファイル。
-local:ユーザが「ローカル」に追加したファイル(多重 TEXMF ツリーを使う場合は使わない方がよい)。
-misc:単一のファイルからなるパッケージ(ただし,メンテナンス上,個別にディレクトリを作ることを推奨)。
-base:それぞれのフォーマットの基本的なファイル(例えば .ltx や .ini など)
-hyphen:ハイフネーション・パターンを記述したファイル
-images:PostScript ファイルなどの画像ファイル
-local:ユーザが「ローカル」に追加したファイル(多重 TEXMF ツリーを使う場合は使わない方がよい)
-misc:単一のファイルからなるパッケージ(ただし,メンテナンス上,個別にディレクトリを作ることを推奨)
例えば,[[hyperref]] パッケージは ''texmf''/tex/latex/hyperref/ 以下に置かれているはずです。
これは hyperref パッケージが LaTeX フォーマットを必要とすることに由来します。
** フォント:texmf/fonts [#o1f2354d]
フォントに関するファイルは,大きく分けて2種類あります。
***フォントファイル本体の配置 [#y073dd9a]
多くのファイルは「ファイルの種類→メーカー→書体名」の順で分類します。
-''texmf''/fonts/<type>/<supplier>/<typeface>/
一般ユーザが良く使う,または目にするファイルの種類 <type> は以下の6つでしょう。
-opentype:OpenType フォント
-truetype:TrueType フォント
-type1:PostScript Type 1 フォント(pfb, pfa など)
-source:METAFONT のソース(フォントのアウトラインを METAFONT 言語で記述したもの)
-tfm:TFM ファイル(TeX フォントメトリックといい,フォントの寸法を記したもの)
-vf:仮想フォントファイル
以上6つのほかに TDS によって予約されているものは5つです:
-afm:Adobe フォントメトリックファイル
-gf:Generic Font bitmap files
-pk:PacKed bitmap fonts
-type3:PostScript Type 3 フォント
次に,<supplier> はメーカーの名前,<typeface> は書体ファミリの名前です(例:cm, euler, times)。
次のメーカーは TDS によって予約されています。
-ams:American Mathematical Society の AMS-fonts collection 用
-local:「ローカル」のフォント(多重 TEXMF ツリーを使う場合は使わない方がよい)
-public:フリーとして配布されているもの(ただし,ams などの独自のディレクトリを要求していない,かつ adobe のように所有権を有するフォント (proprietary fonts) を作っていない)
-tmp:一時的に生成されるフォントを置くため
次の書体名は TDS によって予約されています。
-cm(public 内):Computers and Typesetting, Volume E(Appendix D 参照)で定義されている75フォント
-latex(public 内):LaTeX ディストリビューションと一緒に配布されているフォント
-local:「ローカル」
上を使い,例えば次のような配置にします。
-texmf/fonts/source/public/pandora/pnr10.mf
-texmf/fonts/tfm/public/cm/cmr10.tfm
-texmf/fonts/type1/adobe/utopia/putr.pfa
***フォント関連ファイルの配置 [#n5f4bd62]
以下の3つは他の種類のファイルとは性質が違います。
これらも TDS によって予約されています。
-enc:エンコーディング用のファイル
-lig:リガチャ用のファイル
-map:MAP ファイル(TFM の名称と実フォントとの対応関係を記述したファイル)
これらのファイルは「ファイルの種類→シンタックス→パッケージ」
-''texmf''/fonts/{enc,lig,map}/<syntax>/<package>
ここで,<syntax> には dvips, dvipdfm などのフォントを扱うプログラムの種類が入ります。
ただし,updmap(-sys) プログラムを使うようにすれば,ほとんどの場合 dvips のみを使えば済みます。
lig ファイルは afm2pl というプログラムによって使われます。
** ドキュメント [#f44c25a3]
** ドキュメント:texmf/doc [#f44c25a3]
ほとんどのパッケージには,解説書や見本といったドキュメントが付属しています。
ドキュメントには,テキストファイル,TeX のソースファイル,PDF ファイル,PostScript ファイル,DVI ファイルなどが含まれます。
これらはファイルの種類によらず,以下のように分類されて収録されます。
-''texmf''/doc/<category>/...
ここで,<category> には次のようなものが入ります。
-TeX フォーマットの名前
--latex
-プログラムの名前
--bibtex
--tex
-言語
--french
--german
-ファイルのフォーマット
--info
--man
-他のシステムに関わるもの
--web
--fonts
TDS は次の <category> を予約しています。
-general:特定のプログラムに限定されないドキュメント
-help:FAQ, TeX Catalogue などのファイル
-info:Texinfo ファイル
-local:「ローカル」なファイル(多重 TEXMF ツリーを使う場合は使わない方がよい)
それぞれの <category> の中では base というディレクトリが TDS によって予約されています。
% 少しずつ作業を進めていきたいと思います.
% mktexlsr に関する話のリンク(整理前)
-TeX Forum での話題(賛否両論):[[forum:454]], [[forum:700]], [[forum:1467]]
-[[mktexlsr は有害だ (mktexlsr Considered Harmful):http://0xcc.net/misc/mktexlsr.html]]
-[[texmf の ls-R の必要性:http://d.hatena.ne.jp/lugia/20110923/1316736886]]