TDS(TeX Directory Structure)とは、TeX Users Group(TUG)のメンバーによって提案された、TeX の標準的なディレクトリ構成です。最近人気のある teTeX もこれにしたがっています。提案書(tds.pdf etc)は $CTAN/tds で公開されています。
tds.dvi は、最近の teTeX ディストリビューションなら、$TEXMFDIST/doc/help/tds.dvi にも入っています。いろいろな環境で読めるように、PDF ファイルにしておくとよいでしょう。$TEXMFDIST の部分は自分の環境に合わせて、例えば /usr/local/teTeX/share/texmf-dist などに読みかえてください。
$ cp $TEXMFDIST/doc/help/tds.dvi ./ $ dvipdfmx tds.dvi
以下では TDS version 1.1(June 23, 2004)の概要と teTeX での例を紹介し、実際にどのように TeX に関するファイルやディレクトリを配置したらよいのか考えます。
以下では TeX や METAFONT に関するファイルを配置する TDS のルートディレクトリを texmf*1 とします。現在の TeX ディストリビューションのほとんどで採用されていますから、特に問題ないでしょう。
texmf をどこに配置するかは、そのシステム・TeX ディストリビューションによります。例えば
などが挙げられます。ptetex3 では
がデフォルトです。
1つのシステムの中に2つ以上の texmf ツリーを持つこともできます。
そのパッケージが「ローカルに追加」されたもの(local addition)かどうかについては、TDS が明確に特定することはできません。それぞれのシステムのやり方にしたがって決定する必要があります。
配布された texmf ツリーにローカルなファイルを追加するやり方は、大きく分けて2つあります。これらを併用することもできます。
TDS には述べられていませんが、teTeX では「多重 TEXMF ツリー」を採用して「ローカルなファイル」を置く場所を明確に分けています。詳しくは次の URL を参照してください。
ptetex3 に合わせて簡単にまとめると、次のようなディレクトリ構造になっています。かっこ内は ptetex3 のデフォルトです。
このように分けると、保守する範囲を明確に分けることができます。具体的には、ptetex3 や teTeX のシステムを更新する場合を考えてください。TEXMFLOCAL をこのように分離しておけば、ptetex3 や teTeX のシステムを更新した場合でも自分の追加したファイルをインストールする必要がありません。また、複数のマシンを管理している場合、TEXMFLOCAL を USB メモリなどのリムーバブルメディアに保存して持ち歩くこともできます。
このように TDS の提案する local ディレクトリと比較すると、多重 TEXMF ツリー が優れているのは明らかです。いろいろなところに local ディレクトリを作ると、一覧性が損なわれ、TeX システムの保守が面倒になります。もちろん TEXMFLOCAL の下位のディレクトリ構造は TDS にしたがうべきですから、TDS の重要性は変わりません。
「名前は同じだが内容は違う」ファイルが1つの TDS ツリーの中に存在することがあります。どちらが使われるかは検索パスによるので、一概には言えません。もっとも安全な方法はユニークな名前を使うことです。ただし、次の例外を設けています。
texmf ルートディレクトリの下位にあるディレクトリは TeX システムの主要な構成物を表しています。下に挙げたディレクトリ全てを含んでいる必要はありません。
TeX のマクロは、TeX のフォーマットとパッケージの名前により、次のように別々のディレクトリに収める必要があります。
format> とはフォーマットの名前です(例:amstex, latex, plain, texinfo)。TDS は次のフォーマットの名前を予約しています。
次に、<package> は TeX のパッケージ名です(例:babel, texdraw)。単一のファイルでフォーマットファイルができており、補助パッケージを必要としない場合、<format>/base ディレクトリの下ではなく <format> ディレクトリの直下に置くことができます。例えば Texinfo は texmf/tex/texinfo/texinfo.tex に置きます。TDS は次のパッケージ名を予約しています。
フォントに関するファイルは、ファイルの種類(type)-> メーカ(supplier)-> 書体(typeface)の順で分類します。
次の「ファイルの種類」(<type>)は TDS によって予約されています。
上の他に TDS によって次のファイルの種類が予約されています。
これら3つのファイルは、上に挙げた他のファイルとは性質が違うので、ディレクトリの作り方も異なります。<subpath> は <syntax>/<package> という形になります。<syntax> には dvips, dvipdfm などが入ります。ただし、updmap(-sys) プログラムを使うようにすれば、ほとんどの場合 dvips のみを使えば済みます。lig ファイルは afm2pl というプログラムによって使われます。
次の「メーカ」(<supplier>)は TDS によって予約されています。
「書体」(<typeface>)とは、書体ファミリ(typeface family)の名前です(例:cm, euler, times)。TDS は次の書体名を予約しています。
上を使い、例えば次のような配置にします。
メーカ(supplier)と書体名(typeface name)の一覧は Filenames for TeX fonts(Appendix D 参照)にあります。
通常自分で作成することはないと思うので、例だけ挙げておきます。
ほとんどのパッケージには解説書や見本が付属しています。TDS では次のディレクトリ構造を提案しています。
category> には次のようなものが入ります。
ドキュメントをまず言語で分類することもできますが、ほとんどのドキュメントは英語で書かれているので、わざわざ言語で分類する必要はないと思われます。
それぞれの <category> の中では base というディレクトリが予約されています。
TDS は次の <category> を予約しています。
OS や、TeX に関連するプログラム(vms など)に関するドキュメントは別の場所に収める必要があります(例:texmf/vms/help)。
これらのディレクトリには TeX のソースファイル、DVI ファイル、PostScript ファイル、テキストファイルなどを収めることができます。
TDS の13ページに一覧になったディレクトリ構造がありますので、目を通すことをお勧めします。