Что такое формат файла DTX?
Файл .dtx - это документированный исходный файл LaTeX - стандартный формат для распространения пакетов LaTeX в CTAN (Comprehensive TeX Archive Network). Формат реализует подход грамотного программирования (literate programming): один файл .dtx чередует исполняемый исходный код пакета с его полной сверстанной документацией в одном автономном текстовом файле.
Механизм опирается на DocStrip, утилиту, входящую в каждый дистрибутив TeX. Комментарии-ограничители в форме % <guard> помечают, какие строки относятся к реализации, а какие являются чистой документацией. Запуск latex package.ins (с использованием сопутствующего файла установщика .ins) удаляет маркеры документации и извлекает используемые файлы пакетов .sty или .cls. Запуск pdflatex package.dtx, напротив, верстает полное руководство - вместе с аннотированным исходным кодом с подсветкой синтаксиса.
Почти каждый пакет CTAN поставляется в виде пары .dtx + .ins. Файл .ins представляет собой короткий скрипт DocStrip, который сообщает экстрактору, какие выходные файлы нужно создать и где их разместить.
Файлы .dtx представляют собой обычный текст в кодировке UTF-8 (или ASCII) и открываются в любом текстовом редакторе, хотя редакторы с поддержкой TeX, такие как TeXstudio или Texmaker, обеспечивают подсветку синтаксиса. Класс документа ltxdoc, являющийся частью ядра LaTeX, используется для верстки документации .dtx и предоставляет окружения для аннотирования определений макросов вместе с их исходным кодом.
Безопасность и защита
РИСК: LOWФайлы DTX являются текстовыми исходными файлами; они не представляют прямого риска выполнения при открытии в текстовом редакторе. Компиляция ненадежного .dtx с помощью LaTeX несет тот же риск, что и запуск любого документа LaTeX: вредоносный код TeX может выполнять команды оболочки, если включена опция --shell-escape. Не компилируйте файлы .dtx из ненадежных источников с включенной опцией shell-escape.
Детали формата
в двух словахПрограммы, открывающие файлы DTX
latex package.ins через меню «Инструменты», чтобы извлечь файлы .sty. latex package.ins в терминале для извлечения .sty/.cls; запустите pdflatex package.dtx для создания PDF-документации. latex package.ins через меню «Инструменты», чтобы извлечь файлы .sty. latex package.ins через меню «Инструменты», чтобы извлечь файлы .sty. Технические подробности
глубокая спецификация| Кодировка | Обычный текст - ASCII или UTF-8 |
| Механизм | Система грамотного программирования DocStrip (Франк Миттельбах, 1989) |
| Синтаксис ограничителей | Комментарии % <guard> управляют тем, какие строки извлекаются как код, а какие верстаются как документация |
| Сопутствующий файл | Скрипт установщика .ins управляет процессом извлечения DocStrip |
| Команда извлечения | latex package.ins - создает выходные файлы .sty или .cls |
| Команда документации | pdflatex package.dtx - верстает аннотированное руководство по исходному коду |
| Класс документации | ltxdoc (часть ядра LaTeX); предоставляет окружения \DescribeMacro и \DescribeEnv |
| Типичный размер файла | 5 КБ - 500 КБ (большие пакеты с полной документацией могут достигать нескольких МБ) |
| Платформа распространения | CTAN (Comprehensive TeX Archive Network) - практически все пакеты CTAN используют .dtx |
| Операционные системы | Windows, Linux, macOS |
| Выходные файлы | .sty (пакет) или .cls (класс документа), извлеченные DocStrip из исходного кода .dtx |
| Контейнер | Обычный текст; без бинарной оболочки или сжатия |
| Выпущен | 1989 (DocStrip mechanism introduced with LaTeX2e era) |
| Последняя версия | no versioned format spec; governed by current DocStrip and ltxdoc packages in TeX Live |
| Открыть стандартное | Да · без роялти |
| Спецификация | ctan.org |
Конвертации DTX
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах DTX.
Часто задаваемые вопросы
Как установить пакет .dtx в LaTeX?
latex package.ins (сопутствующий файл установщика), чтобы извлечь файл .sty, затем переместите его в локальное дерево texmf и запустите texhash. Или используйте менеджер пакетов вашего дистрибутива (tlmgr / MiKTeX Package Manager).Можно ли открыть файл .dtx без установленного LaTeX?
В чем разница между .dtx и .ins?
Как прочитать документацию пакета .dtx?
pdflatex package.dtx, чтобы создать руководство в формате PDF. Многие пакеты CTAN также содержат уже готовый PDF-файл.