DTX ファイル形式とは?
.dtx ファイルは Documented LaTeX Source ファイルであり、CTAN (Comprehensive TeX Archive Network) で LaTeX パッケージを配布するための標準形式です。この形式は文芸的プログラミングの手法を実装しており、単一の .dtx ファイル内に、パッケージの実行可能なソースコードとその完全な組版ドキュメントが、一つの自己完結型プレーンテキストファイルとして交互に配置されています。
この仕組みは、すべての TeX ディストリビューションに含まれているユーティリティである DocStrip に依存しています。% <guard> という形式のガードコメントにより、どの行が実装に属し、どの行が純粋なドキュメントであるかがマークされます。付属の .ins インストーラーファイルを使用して latex package.ins を実行すると、ドキュメントマーカーが取り除かれ、使用可能な .sty または .cls パッケージファイルが抽出されます。代わりに pdflatex package.dtx を実行すると、注釈付きで構文強調されたソースコードを含む完全なマニュアルが組版されます。
ほぼすべての CTAN パッケージは、.dtx と .ins のペアとして提供されます。.ins ファイルは短い DocStrip スクリプトであり、抽出プログラムに対してどの出力ファイルを生成し、どこに配置するかを指示します。
.dtx ファイルはプレーンな UTF-8 (または ASCII) テキストであり、任意のテキストエディタで開くことができますが、TeXstudio や Texmaker などの TeX 対応エディタを使用すると構文強調表示が利用できます。LaTeX カーネルの一部である ltxdoc ドキュメントクラスは、.dtx ドキュメントの組版に使用され、マクロ定義とそのソースコードを並べて注釈を付けるための環境を提供します。
セキュリティと安全性
リスク: LOWDTX ファイルはプレーンテキストのソースファイルです。テキストエディタで開く際に直接的な実行リスクはありません。信頼できない .dtx を LaTeX でコンパイルすることは、他の LaTeX ドキュメントを実行することと同じリスクを伴います。--shell-escape が有効な場合、悪意のある TeX コードがシェルコマンドを実行する可能性があります。信頼できないソースからの .dtx ファイルを shell-escape を有効にしてコンパイルしないでください。
形式の詳細
概要DTX ファイルを開くプログラム
latex package.ins を実行して .sty/.cls を抽出します。pdflatex package.dtx を実行して PDF ドキュメントをビルドします。 技術的詳細
詳細仕様| エンコーディング | プレーンテキスト - ASCII または UTF-8 |
| メカニズム | DocStrip 文芸的プログラミングシステム (Frank Mittelbach, 1989年) |
| ガード構文 | % <guard> コメントにより、どの行をコードとして抽出するか、またはドキュメントとして組版するかを制御します |
| 付属ファイル | .ins インストーラースクリプトが DocStrip の抽出プロセスを駆動します |
| 抽出コマンド | latex package.ins - .sty または .cls 出力ファイルを生成します |
| ドキュメント作成コマンド | pdflatex package.dtx - 注釈付きソースマニュアルを組版します |
| ドキュメントクラス | ltxdoc (LaTeX カーネルの一部)。\DescribeMacro および \DescribeEnv 環境を提供します |
| 一般的なファイルサイズ | 5 KB - 500 KB (完全なドキュメントを含む大規模なパッケージは数 MB に達することがあります) |
| 配布プラットフォーム | CTAN (Comprehensive TeX Archive Network) - 事実上すべての CTAN パッケージが .dtx を使用しています |
| オペレーティングシステム | Windows, Linux, macOS |
| 出力ファイル | .dtx ソースから DocStrip によって抽出された .sty (パッケージ) または .cls (ドキュメントクラス) |
| コンテナ | プレーンテキスト。バイナリラッパーや圧縮はありません |
| リリース日 | 1989 (DocStrip mechanism introduced with LaTeX2e era) |
| 最新バージョン | no versioned format spec; governed by current DocStrip and ltxdoc packages in TeX Live |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | ctan.org |
DTX の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。DTX ファイルについて最初の質問をしてみましょう。
よくある質問
.dtx パッケージを LaTeX にインストールするにはどうすればよいですか?
latex package.ins を実行し、.sty ファイルを抽出します。その後、それをローカルの texmf ツリーに移動して texhash を実行します。または、ディストリビューションのパッケージマネージャー (tlmgr / MiKTeX Package Manager) を使用してください。LaTeX をインストールせずに .dtx ファイルを開くことはできますか?
.dtx と .ins の違いは何ですか?
.dtx パッケージのドキュメントを読むにはどうすればよいですか?
pdflatex package.dtx を実行して PDF マニュアルを生成します。多くの CTAN パッケージでは、ビルド済みの PDF も公開されています。