---
myst:
html_meta:
keywords: LaTeX, programmation, extensions, classes, écrire une classe,
écrire une extension, créer une classe, créer une extension
---
# Comment créer une extension ?
Il n'y a rien de particulièrement extraordinaire dans les commandes
que vous utilisez lors de l'écriture d'une extension :
- vous regroupez simplement un ensemble de commandes `\(re)newcommand`
et `\(re)newenvironment`. La question
"[](/2_programmation/macros/makeatletter_et_makeatother)" pourra d'ailleurs
vous éviter une erreur sur la gestion du caractère `@` ;
- vous les enregistrez en un fichier `⟨mon-extension⟩.sty` ;
- et c'est fait !
Cependant, vos extensions pourront demander un peu plus de sophistication :
- des informations sur les commandes LaTeX utilisées pour cette tâche
se trouvent dans le document
*[Class and package programming guide](ctanpkg:clsguide)* (en PDF
[ici](texdoc:clsguide)) ;
- une bonne connaissance de TeX lui-même est importante et des livres
comme le [TeXbook](/1_generalites/documentation/livres/documents_sur_tex)
ou [TeX by topic](/1_generalites/documentation/livres/documents_sur_tex)
sont ici précieux. Dès lors, il vous sera possible d'utiliser
la source documentée de LaTeX comme matériel de référence. Cette source
peut être obtenue en compilant le fichier "[source2e.tex](ctanpkg:source2e)"
ou en consultant directement sa [version PDF](texdoc:source2e) ;
- les [sources documentées](/1_generalites/documentation/documents/documents_extensions/fichiers_sources_dtx)
(fichiers DTX) des extensions sont également une bonne aide.
:::{sources}
- [Learning to write LaTeX classes and packages](faquk:FAQ-writecls)
:::