[[TeX]] //type -> 字体 //typeface -> 書体 *TDS [#gf5e5d3f] TDS(TeX Directory Structure)とは、TeX Users Group(TUG)のメンバーによって提案された、TeX の標準的なディレクトリ構成です。最近人気のある [[teTeX>TeX/Keyword/teTeX]] もこれにしたがっています。提案書(tds.pdf etc)は $[[CTAN>TeX/Keyword/CTAN]]/tds で公開されています。 tds.dvi は、最近の [[teTeX>TeX/Keyword/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/Keyword/teTeX]] での例を紹介し、実際にどのように [[TeX]] に関するファイルやディレクトリを配置したらよいのか考えます。 **2.2 texmf ツリー [#z3ac25a8] 以下では TeX や METAFONT に関するファイルを配置する TDS のルートディレクトリを ''texmf''((TeX と [M]ETA[F]ONT という意味です。)) とします。現在の TeX ディストリビューションのほとんどで採用されていますから、特に問題ないでしょう。 ''texmf'' をどこに配置するかは、そのシステム・TeX ディストリビューションによります。例えば -''/usr/local/share'' -''/usr/local'' -''/usr/local/lib'' -''/opt'' などが挙げられます。ptetex3 では -''/usr/local/teTeX/share'' TeXLiveでは -''/usr/local/texlive/texmf-local'' がデフォルトです。 1つのシステムの中に2つ以上の texmf ツリーを持つこともできます。 **2.3 「ローカルな」追加 &aname(local); [#w0ef171c] そのパッケージが「ローカルに追加」されたもの(local addition)かどうかについては、TDS が明確に特定することはできません。それぞれのシステムのやり方にしたがって決定する必要があります。 配布された ''texmf'' ツリーにローカルなファイルを追加するやり方は、大きく分けて2つあります。これらを併用することもできます。 +違うツリーを使う。例えば the University of Massachusetts at Boston のシステムでは ''/usr/local/umbtex'' 使う、など。 +適切な場所に ''local'' というディレクトリを作る。例えば <'''format'''>, <'''package'''> の下に ''local'' というディレクトリを作る。この目的のために TDS は ''local'' というディレクトリを予約している。 ***2.3(追加) teTeX の流儀 [#j0a9b379] TDS には述べられていませんが、teTeX では「[[多重 TEXMF ツリー>TeX/Keyword/TEXMF-tree]]」を採用して「ローカルなファイル」を置く場所を明確に分けています。詳しくは次の URL を参照してください。 -http://tutimura.ath.cx/ptetex/?%C2%BF%BD%C5TEXMF%A5%C4%A5%EA%A1%BC ptetex3 に合わせて簡単にまとめると、次のようなディレクトリ構造になっています。かっこ内は ptetex3 のデフォルトです。 -''TEXMFSYSVAR'' (/usr/local/teTeX/share/texmf-var/) -''TEXMFLOCAL'' (/usr/local/teTeX/share/texmf-local/) そのシステムの管理者が編集する -''TEXMFMAIN'' (/usr/local/teTeX/share/texmf/) ptetex3 などのディストリビューションによって使われる -''TEXMFDIST'' (/usr/local/teTeX/share/texmf-dist/) Thomas Esser 氏のみが編集できる このように分けると、保守する範囲を明確に分けることができます。具体的には、ptetex3 や teTeX のシステムを更新する場合を考えてください。''TEXMFLOCAL'' をこのように分離しておけば、ptetex3 や teTeX のシステムを更新した場合でも自分の追加したファイルをインストールする必要がありません。また、複数のマシンを管理している場合、''TEXMFLOCAL'' を USB メモリなどのリムーバブルメディアに保存して持ち歩くこともできます。 このように TDS の提案する ''local'' ディレクトリと比較すると、[[多重 TEXMF ツリー>TeX/Keyword/TEXMF-tree]] が優れているのは明らかです。いろいろなところに ''local'' ディレクトリを作ると、一覧性が損なわれ、TeX システムの保守が面倒になります。もちろん ''TEXMFLOCAL'' の下位のディレクトリ構造は TDS にしたがうべきですから、TDS の重要性は変わりません。 **2.4 ファイル名 [#h48770b3] 「名前は同じだが内容は違う」ファイルが1つの TDS ツリーの中に存在することがあります。どちらが使われるかは検索パスによるので、一概には言えません。もっとも安全な方法はユニークな名前を使うことです。ただし、次の例外を設けています。 -''texmf/tex'' と ''texmf/tex/generic'' の1番目のレベルの下位ディレクトリの中ではファイル名はユニークでなければならないが、''texmf/tex'' の中ではユニークでなくてもよい。つまり、異なる TeX のフォーマットなら同じファイル名が存在してもよい。 -フォントのファイルは同じファイル名であってもよい。 *3 最上位のディレクトリ [#gb57e2e8] ''texmf'' ルートディレクトリの下位にあるディレクトリは TeX システムの主要な構成物を表しています。下に挙げたディレクトリ全てを含んでいる必要はありません。 -''tex'' TeX に関するファイルを収める -''fonts'' フォントに関するファイルを収める -''metafont'' フォントに関係しない、METAFONT に関するファイルを収める -''metapost'' METAPOST に関するファイルを収める -''bibtex'' BibTeX に関するファイルを収める -''scripts'' プラットフォームに依存しない実行ファイルを収める -''doc'' 解説書を収めたディレクトリ -''source'' Web2C や LaTeX の dtx などのソースを収める -<'''implementation'''> ''emtex'', ''vtex'', ''web2c'' などを収める -<'''program'''> ''mft'', ''dvips'' など、TeX に関係するプログラムを収める **3.1 マクロ [#e09d1581] TeX のマクロは、TeX のフォーマットとパッケージの名前により、次のように別々のディレクトリに収める必要があります。 -''texmf/tex/''<'''format'''>''/''<'''package'''>''/'' <'''format'''> とはフォーマットの名前です(例:''amstex'', ''latex'', ''plain'', ''texinfo'')。TDS は次のフォーマットの名前を予約しています。 -''generic'' 複数のフォーマットに渡って使われるファイル。Plain TeX で記述されていて、他のフォーマットに依存しないもの。Plain TeX でのみ有用なファイルはここではなく ''texmf/tex/plain'' に収めます。 -''local'' [[第2.3節>#local]]参照。 次に、<'''package'''> は TeX のパッケージ名です(例:''babel'', ''texdraw'')。単一のファイルでフォーマットファイルができており、補助パッケージを必要としない場合、<'''format'''>/''base'' ディレクトリの下ではなく <'''format'''> ディレクトリの直下に置くことができます。例えば Texinfo は ''texmf/tex/texinfo/texinfo.tex'' に置きます。TDS は次のパッケージ名を予約しています。 -''base'' それぞれのフォーマットの基本的なファイルを収めます。例えば ''ltx'', ''.ini'' ファイルなどです。 -''hyphen'' ハイフネーション・パタンを収めます。 -''images'' EPS ファイルを収めます。 -''local'' [[第2.3節>#local]]参照。 -''misc'' 単一のファイルからなるパッケージを収めます。しかしながら、単一のファイルからなるパッケージであってもそれぞれのディレクトリを作ることができます(メンテナンス上こちらが推奨されます)。 **3.2 フォント [#rd3275c6] フォントに関するファイルは、ファイルの種類('''type''')-> メーカ('''supplier''')-> 書体('''typeface''')の順で分類します。 -texmf/fonts/<'''type'''>/<'''supplier'''>/<'''typeface'''>/ -texmf/fonts/{enc,lig,map}/<'''subpath'''>/ 次の「ファイルの種類」(<'''type'''>)は TDS によって予約されています。 -''afm'' Adobe Font Metrics と、それに付随する ''inf'' ファイル -''gf'' Generic Font bitmap files -''opentype'' Open Type フォント -''pk'' PacKed bitmap fonts -''source'' METAFONT ファイル、プロパティリストなど -''tfm'' TeX Font Metric files -''truetype'' TrueType フォント -''type1'' PostScript Type 1 fonts(''pfa'', ''pfb'' などのファイル)と ''pfm'' ファイル -''type3'' PostScript Type 3 fonts -''vf'' バーチャルフォント 上の他に TDS によって次のファイルの種類が予約されています。 -''enc'' エンコーディング用のファイル -''lig'' リガチャ用のファイル -''map'' MAP ファイル これら3つのファイルは、上に挙げた他のファイルとは性質が違うので、ディレクトリの作り方も異なります。<'''subpath'''> は <''syntax''>/<''package''> という形になります。<''syntax''> には ''dvips'', ''dvipdfm'' などが入ります。ただし、''updmap(-sys)'' プログラムを使うようにすれば、ほとんどの場合 ''dvips'' のみを使えば済みます。''lig'' ファイルは ''afm2pl'' というプログラムによって使われます。 次の「メーカ」(<'''supplier'''>)は TDS によって予約されています。 -''ams'' American Mathematical Society の AMS-fonts collection 用。 -''local'' 「ローカル」のフォントを入れますが、多重 TEXMF ツリーを使う場合はこれは使わない方がよいでしょう。 -''public'' フリーとして配布されているもので、そのメーカが次の条件を満たすときにここに入れます。 ++''ams'' などの独自のディレクトリを要求していない ++''adobe'' のように所有権を有するフォント(proprietary fonts)を作っていない -''tmp'' いくつかのシステムで、一時的に生成されるフォントを置くために使います。 「書体」(<'''typeface'''>)とは、書体ファミリ('''typeface family''')の名前です(例:''cm'', ''euler'', ''times'')。TDS は次の書体名を予約しています。 -''cm''(''public'' 内) '''Computers and Typesetting, Volume E'''(Appendix D 参照)で定義されている75フォント -''latex''(''public'' 内) LaTeX ディストリビューションと一緒に配布されているフォント -''local'' [[第2.3節>#local]]参照 上を使い、例えば次のような配置にします。 -''texmf/fonts/source/public/pandora/pnr10.mf'' -''texmf/fonts/tfm/public/cm/cmr10.tfm'' -''texmf/fonts/type1/adobe/utopia/putr.pfa'' メーカ(supplier)と書体名(typeface name)の一覧は '''Filenames for TeX fonts'''(Appendix D 参照)にあります。 ***3.2.1 ビットマップフォント [#k3891998] 通常自分で作成することはないと思うので、例だけ挙げておきます。 -''texmf/fonts/pk/''<'''mode'''>''/''<'''supplier'''>''/''<'''typeface'''>''/dpi''<'''nnn'''>''/'' -''texmf/fonts/gf/''<'''mode'''>''/''<'''supplier'''>''/''<'''typeface'''>''/dpi''<'''nnn'''>''/'' **3.7 ドキュメント(解説) [#g19f851d] ほとんどのパッケージには解説書や見本が付属しています。TDS では次のディレクトリ構造を提案しています。 -''texmf/doc/''<'''category'''>''/...'' <'''category'''> には次のようなものが入ります。 -TeX フォーマットの名前 --''latex'' -プログラムの名前 --''bibtex'' --''tex'' -言語 --''french'' --''german'' -ファイルのフォーマット --''info'' --''man'' -他のシステムに関わるもの --''web'' --''fonts'' ドキュメントをまず言語で分類することもできますが、ほとんどのドキュメントは英語で書かれているので、わざわざ言語で分類する必要はないと思われます。 それぞれの <'''category'''> の中では ''base'' というディレクトリが予約されています。 TDS は次の <'''category'''> を予約しています。 -''general'' 特定のプログラムに限定されないドキュメントを収める -''help'' FAQ, TeX Catalogue などのファイルを収める -''info'' Texinfo ファイルを収める -''local'' [[第2.3節>#local]]参照 OS や、TeX に関連するプログラム(''vms'' など)に関するドキュメントは別の場所に収める必要があります(例:''texmf/vms/help'')。 これらのディレクトリには TeX のソースファイル、DVI ファイル、PostScript ファイル、テキストファイルなどを収めることができます。 *4 要約 [#x62cf14b] TDS の13ページに一覧になったディレクトリ構造がありますので、目を通すことをお勧めします。 *Appendix D 参考文献 [#a85b6f62] -'''Filenames for TeX fonts''' --http://tug.org/fontname/ -'''Managing Multiple TDS trees''' (Michael Downes) --http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf