Construire un document LaTeX à la main oblige à répéter « compiler → bibliographie → compiler → compiler » et à savoir quand relancer quoi. Un build automatisé confie ce jugement à un outil : il suit les dépendances, n’exécute que les étapes nécessaires et, en mode surveillance, reconstruit dès l’enregistrement. Cette page traite de ce workflow (pour les outils eux-mêmes, voir « Build tools »).
Ce qu’est un build automatisé
Avec des références croisées, une table des matières, une bibliographie ou un index, la compilation demande plusieurs passes, avec biber ou makeindex intercalés. Un outil de build automatisé détermine lui-même l’ordre et le nombre de passes, appelle les outils auxiliaires au bon moment et continue jusqu’à stabilisation de la sortie. En pratique, vous tapez une seule commande. Le standard est latexmk ; l’alternative déclarative est llmk.
Automatiser avec latexmk
Un seul latexmk -pdf document.tex lance autant de compilations que nécessaire, appelle bibtex/biber et makeindex, puis répète jusqu’à stabilisation. Les réglages propres au projet vont dans .latexmkrc (changement de moteur, configuration japonaise uplatex + dvipdfmx, etc.). En collaboration, validez ce fichier et faites-en le contrat du projet : « ce document se construit avec cette commande ». Le même PDF devient plus facile à reproduire entre éditeurs et systèmes d’exploitation. Pour les options individuelles, voir « Build tools ».
latexmk -pdf document.tex # 必要な手順を自動で回す / runs all the needed stepsLa première décision consiste à choisir le chemin de moteur qui produit le PDF. Un court document uniquement en anglais se satisfait souvent de pdflatex ; du texte japonais ou des polices OpenType orientent plutôt vers upLaTeX + dvipdfmx ou LuaLaTeX. Inscrivez ce choix dans .latexmkrc afin que les boutons de l’éditeur, le terminal et la CI suivent tous le même chemin. Plus le document grandit, plus ce chemin de build fixé devient rentable.
# .latexmkrc — upLaTeX + dvipdfmx の例 / example route
$latex = 'uplatex -interaction=nonstopmode -halt-on-error %O %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;Reconstruire à chaque enregistrement — latexmk -pvc
Le mode le plus pratique pendant la rédaction est -pvc (preview continuously). latexmk surveille tous les fichiers source dont il dépend : le fichier principal, les .tex inclus avec \input/\include et les fichiers graphiques. Dès que l’un d’eux est enregistré, il reconstruit automatiquement et actualise le visualiseur. C’est comme un « serveur de développement » pour votre document : vous enregistrez, le résultat apparaît aussitôt.
latexmk -pdf -pvc document.tex # 監視して保存ごとに自動更新 / watch and auto-rebuild on saveNe traiter que ce qui a changé — builds incrémentaux
latexmk évite les relances inutiles parce qu’il enregistre les dépendances. Après chaque exécution, il sauvegarde l’état de chaque fichier source dans une base, .fdb_latexmk, et utilise le fichier .fls produit par -recorder (la liste de ce que cette exécution a lu et écrit) pour connaître précisément les entrées et sorties concernées. À l’appel suivant, une étape n’est relancée que si ses entrées ont changé : si rien n’a changé, rien ne se passe ; une petite modification ne déclenche que les passes nécessaires. C’est pourquoi les reconstructions sont rapides.
llmk automatise lui aussi le build. Comme ses réglages sont écrits déclarativement dans llmk.toml (ou dans des magic comments du document), les étapes sont les mêmes pour tout le monde, sur toute machine : excellent pour la reproductibilité, et bien adapté à la collaboration comme à la distribution. On peut voir latexmk comme l’outil qui déduit les relances à partir des journaux et dépendances, et llmk comme celui qui énonce le workflow de traitement dans le projet documentaire lui-même.
L’intégrer à votre workflow
-pvc sert pendant la rédaction, un lancement normal de latexmk sert à vérifier avant soumission, et latexmk -C est le nettoyage qui prouve que vous ne dépendez pas de fichiers générés périmés. En collaboration, un document qui ne se reconstruit pas proprement risque de casser chez quelqu’un d’autre. Ne vous fiez pas seulement aux aperçus immédiats à l’enregistrement ; nettoyez et reconstruisez périodiquement pour que la soumission finale du PDF se passe sans incident.
- Pendant la rédaction →
latexmk -pdf -pvc: mise à jour automatique à chaque enregistrement. - Livrer la configuration avec le projet → garder
.latexmkrc/llmk.tomldans le dépôt pour la reproductibilité. - Dernière passe avant diffusion →
latexmk -Cpour effacer les sorties, puis clean build. - Build sur un serveur ou en CI → voir la page « CI ».