Si vous collez toujours les mêmes macros dans le préambule, regroupez-les dans votre propre paquet (un fichier .sty chargé avec \usepackage) ou votre propre classe (.cls). Cette page montre le squelette : ligne d’identification, gestion des options, chargement des dépendances, et différences entre paquets et classes.
Le squelette .sty
Un paquet est un fichier .sty présent dans votre projet (ou installé). Il commence par déclarer ce qu’il est, puis définit des macros. \NeedsTeXFormat{LaTeX2e} indique le format requis, et \ProvidesPackage{name}[date version description] identifie le paquet et sa version (le nom doit correspondre au basename du fichier ; la date apparaît dans le journal et permet les vérifications de version). Ensuite, vous définissez le contenu avec \newcommand, \newenvironment, etc.
% mypackage.sty
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mypackage}[2026/01/01 v1.0 My helpers]
\newcommand{\hello}{こんにちは、\LaTeX!}Charger les dépendances — \RequirePackage
Quand votre .sty dépend d’autres paquets, utilisez \RequirePackage{...} : c’est l’équivalent de \usepackage dans un .sty. Chargez xcolor pour la couleur, tikz pour le dessin, etc. Placez-le avant \ProcessOptions si la gestion des options en a besoin, sinon après.
\RequirePackage{xcolor}Accepter des options — \DeclareOption
Pour accepter des options comme \usepackage[option]{name}, déclarez chacune avec \DeclareOption{option}{code}, interceptez les inconnues avec \DeclareOption*{...} (avertir, ou les passer à une classe chargée), puis terminez avec \ProcessOptions\relax. Pour des options key=value, utilisez le moderne \DeclareKeys (l3keys) ou le paquet kvoptions.
\DeclareOption{color}{\renewcommand\hello{\textcolor{red}{こんにちは}}}
\DeclareOption*{\PackageWarning{mypackage}{Unknown option '\CurrentOption'}}
\ProcessOptions\relaxClasses (.cls) ou paquets
Une classe est un fichier .cls (déclaré avec \ProvidesClass) qui définit le type de document entier. On la charge avec \documentclass, et une seule par document est possible. Elle s’appuie souvent sur une classe existante via \LoadClass{article}. Un paquet (.sty), au contraire, ajoute des fonctionnalités, et vous pouvez en charger autant que vous voulez. Les mécanismes d’identification et d’options sont presque identiques. La création d’une classe est traitée sur sa propre page.