Que sont les fichiers de source documentée (ou fichiers « dtx ») ?#

et nombre d’extensions associées sont écrits sous forme de programmation lettrée, avec les sources et leur documentation placées dans le même fichier. Ce format est en fait né avant l’époque de et des travaux du projet .

Un fichier de source documentée présente normalement le suffixe dtx.

1.  Utilisation des fichiers de source documentée#

1.1.  Obtention de la source seule#

Pour obtenir la source sans les commentaires, le fichier dtx doit est débarassé des commentaires avant d’être utilisé avec Un fichier d’installation (ins) est normalement fourni pour automatiser ce processus de suppression des commentaires afin d’augmenter la vitesse de chargement. Si le fichier ins est disponible, vous pouvez le traiter avec pour produire l’extension (et, souvent, les fichiers auxiliaires).

Ce traitement devrait donner des résultats ressemblant à quelque chose comme ceci :

Generating file(s) ./extension.sty

Processing file extension.dtx (package) -> extension.sty
File extension.dtx ended by \endinput.
Lines  processed: 2336
Comments removed: 1336
Comments  passed: 2
Codelines passed: 972

Les lignes « Processing ... ended by \endinput » (soit « Traitement ... achevé par \endinput ») sont répétées autant de fois que le fichier dtx fournit de fichiers par ce mécanisme.

1.2.  Obtention de la documentation seule#

Pour lire les commentaires sous forme de document mis en forme, vous pouvez exécuter sur le fichier dtx. La plupart des extensions sur le CTAN fournissent déjà le document PDF résultant de ce traitement du fichier dtx, comme documentation.

Plusieurs extensions peuvent être incluses dans un fichier dtx, avec d’éventuelles parties conditionnelles. De plus, il existe des fonctionnalités pour indexer les commandes. Tout cet ensemble est trié par des directives du fichier ins. Des utilitaires d’indexation peuvent être nécessaires pour une sortie « complète ».

2.  Création de fichiers de source documentée#

N’importe qui peut écrire des fichiers dtx. Ce format est expliqué dans le Companion et il existe un tutoriel en anglais avec des fichiers dtx et ins minimaux. Certains éditeurs, comme Emacs avec , facilite la rédaction de ce type de fichier.

2.1.  Avec le script dtxgen#

Le script Unix dtxgen génère un fichier basique dtx qui peut être utile lors du démarrage d’un nouveau projet.

2.2.  Avec le script makedtx#

Une autre manière d’obtenir un fichier dtx consiste à écrire la documentation et le code séparément, puis à les combiner en utilisant le script Perl makedtx. Cette technique est intéressante car le fichier de documentation peut être utilisé séparément pour générer une sortie HTML. Il est souvent assez difficile de faire en sorte que les outils de conversion de code en HTML traitent des fichiers dtx dans la mesure où ils utilisent un fichier de classe inhabituel.

2.3.  Avec le script sty2dtx#

Le script Perl sty2dtx va encore plus loin : il tente de créer un fichier dtx à partir d’un fichier sty classique avec des commentaires. L’outil fonctionne bien mais, dans certaines circonstances, il peut être dérouté par des commentaires qui cherchent à structurer le document (par exemple, du matériel sous forme tabulaire, comme dans les en-têtes de fichiers de nombreuses anciennes extensions).

3.  Compléments#

Les fichiers dtx ne sont plus utilisés par après avoir été traités pour produire des fichiers sty ou cls (ou autre). Ils n’ont donc pas besoin d’être conservés avec le système de travail. Cependant, pour de nombreuses extesnions, le fichier dtx est la principale source de documentation, vous pouvez donc vouloir conserver les fichiers dtx ailleurs.

Il est à noter que l’extension docmfp, en étendant le modèle de l’extension doc à et , permet la distribution documentée d’extensions contenant du code pour et avec le code associé.