Wat is het DTX-bestandsformaat?
Een .dtx-bestand is een Documented LaTeX Source-bestand - het standaardformaat voor het distribueren van LaTeX-pakketten op CTAN (het Comprehensive TeX Archive Network). Het formaat implementeert een „literate programming”-benadering: een enkel .dtx-bestand combineert de uitvoerbare broncode van het pakket met de volledige opgemaakte documentatie in één op zichzelf staand tekstbestand.
Het mechanisme vertrouwt op DocStrip, een hulpprogramma dat bij elke TeX-distributie wordt geleverd. „Guard”-commentaren in de vorm % <guard> markeren welke regels bij de implementatie horen en welke pure documentatie zijn. Het uitvoeren van latex package.ins (met behulp van het bijbehorende .ins-installatiebestand) verwijdert de documentatiemarkeringen en extraheert de bruikbare .sty- of .cls-pakketbestanden. Het uitvoeren van pdflatex package.dtx zet in plaats daarvan de volledige handleiding om - compleet met geannoteerde broncode met syntaxisaccentuering.
Bijna elk CTAN-pakket wordt geleverd als een .dtx + .ins-paar. Het .ins-bestand is een kort DocStrip-script dat de extractor vertelt welke uitvoerbestanden moeten worden geproduceerd en waar ze moeten worden geplaatst.
.dtx-bestanden zijn platte UTF-8 (of ASCII) tekst en kunnen in elke tekstverwerker worden geopend, hoewel TeX-georiënteerde editors zoals TeXstudio of Texmaker syntaxisaccentuering bieden. De ltxdoc-documentklasse, onderdeel van de LaTeX-kernel, wordt gebruikt om .dtx-documentatie op te maken en biedt omgevingen voor het annoteren van macrodefinities naast hun broncode.
Beveiliging & veiligheid
RISICO: LOWDTX-bestanden zijn platte tekst bronbestanden; ze vormen geen direct uitvoeringsrisico wanneer ze in een tekstverwerker worden geopend. Het compileren van een onbetrouwbare .dtx met LaTeX brengt hetzelfde risico met zich mee als het uitvoeren van elk LaTeX-document: kwaadaardige TeX-code kan shell-opdrachten uitvoeren als --shell-escape is ingeschakeld. Compileer geen .dtx-bestanden van onbetrouwbare bronnen met shell-escape ingeschakeld.
Formaatdetails
in een notendopProgramma's die DTX-bestanden openen
latex package.ins uit via het menu Extra om .sty-bestanden te extraheren. latex package.ins uit in de terminal om .sty/.cls te extraheren; voer pdflatex package.dtx uit om PDF-documentatie te bouwen. latex package.ins uit via het menu Extra om .sty-bestanden te extraheren. latex package.ins uit via het menu Extra om .sty-bestanden te extraheren. Technische details
diepe specificaties| Codering | Platte tekst - ASCII of UTF-8 |
| Mechanisme | DocStrip literate programming-systeem (Frank Mittelbach, 1989) |
| Guard-syntaxis | % <guard> commentaren bepalen welke regels worden geëxtraheerd als code versus opgemaakt als documentatie |
| Bijbehorend bestand | .ins-installatiescript stuurt het DocStrip-extractieproces aan |
| Extractie-opdracht | latex package.ins - produceert .sty- of .cls-uitvoerbestanden |
| Documentatie-opdracht | pdflatex package.dtx - maakt de geannoteerde bronhandleiding op |
| Documentatieklasse | ltxdoc (onderdeel van LaTeX-kernel); biedt \DescribeMacro- en \DescribeEnv-omgevingen |
| Typische bestandsgrootte | 5 KB - 500 KB (grote pakketten met volledige documentatie kunnen enkele MB's bereiken) |
| Distributieplatform | CTAN (Comprehensive TeX Archive Network) - vrijwel alle CTAN-pakketten gebruiken .dtx |
| Besturingssystemen | Windows, Linux, macOS |
| Uitvoerbestanden | .sty (pakket) of .cls (documentklasse) geëxtraheerd door DocStrip uit de .dtx-bron |
| Container | Platte tekst; geen binaire wrapper of compressie |
| Uitgebracht | 1989 (DocStrip mechanism introduced with LaTeX2e era) |
| Laatste versie | no versioned format spec; governed by current DocStrip and ltxdoc packages in TeX Live |
| Open standaard | Ja · royaltyvrij |
| Specificatie | ctan.org |
DTX conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over DTX-bestanden.
Veelgestelde vragen
Hoe installeer ik een .dtx-pakket in LaTeX?
latex package.ins uit (het bijbehorende installatiebestand) om het .sty-bestand te extraheren, verplaats het vervolgens naar uw lokale texmf-tree en voer texhash uit. Of gebruik de pakketbeheerder van uw distributie (tlmgr / MiKTeX Package Manager).Kan ik een .dtx-bestand openen zonder dat LaTeX is geïnstalleerd?
Wat is het verschil tussen .dtx en .ins?
Hoe lees ik de documentatie van een .dtx-pakket?
pdflatex package.dtx uit om een PDF-handleiding te genereren. Veel CTAN-pakketten bieden ook de vooraf gebouwde PDF aan.