Projets multi-fichiers (\input / \include / subfiles)

Un long document se gère plus facilement lorsqu’il est divisé en fichiers : un par chapitre, les figures dans leurs propres fichiers. LaTeX propose plusieurs façons de les recoller, chacune pour un besoin différent : \input pour insérer n’importe où, \include pour des morceaux au niveau chapitre (avec \includeonly pour les builds partiels), et les packages subfiles / standalone qui permettent aussi de compiler chaque morceau seul. Cette page explique comment choisir.

\input — insérer n’importe où

\input{file} insère le contenu de ce fichier exactement à l’endroit où se trouve la commande, comme si vous l’aviez tapé là. Aucun saut de page n’est provoqué, cela fonctionne dans le préambule comme dans le corps, et l’imbrication est possible. L’extension .tex est supposée. C’est adapté aux petits fragments : préambule partagé, tableau, courte section.

latex
% main.tex
\documentclass{report}
\input{preamble/common}
\begin{document}
\input{sections/intro}
\input{tables/experiment-settings}
\end{document}

\include — diviser par chapitre

\include{file} effectue un \clearpage avant et après l’inclusion, puis bascule vers un fichier .aux séparé pour ce bloc. C’est conçu pour de grandes unités comme les chapitres. Vous ne pouvez pas imbriquer \include (mais un fichier inclus par \include peut utiliser \input). Utilisez-le pour des découpages par chapitre qui doivent commencer sur une nouvelle page.

latex
\include{chapters/ch1}

\includeonly — compiler rapidement une partie

Placez \includeonly{ch2,ch3} dans le préambule et LaTeX ne traite que ces chapitres. Comme chaque \include conserve son propre .aux, les numéros de page et références croisées des chapitres ignorés restent corrects depuis le dernier build complet. Après une exécution complète, vous pouvez donc reconstruire uniquement le chapitre en cours d’édition en beaucoup moins de temps. (Cela ne fonctionne qu’avec \include, pas avec \input.)

latex
\includeonly{chapters/ch3}   % プリアンブルに置く / put in the preamble

subfiles / standalone — compiler un fichier seul

L’approche \include ne construit qu’à partir du fichier principal. Le package subfiles permet à chaque sous-fichier de compiler seul, tout en héritant automatiquement du préambule du fichier principal. Le fichier principal utilise \subfile{...}, et chaque sous-fichier commence par \documentclass[../main.tex]{subfiles}. Pratique pour vérifier un seul chapitre sans construire tout le livre.

latex
% main.tex
\documentclass{book}
\usepackage{subfiles}
\begin{document}
\subfile{chapters/ch1}
\end{document}

% chapters/ch1.tex
\documentclass[../main.tex]{subfiles}
\begin{document}
  \chapter{はじめに}
\end{document}

Le package/la classe similaire standalone donne à chaque fichier son propre préambule. C’est plus flexible, mais plus complexe à écrire. Il est particulièrement utile pour les figures et TikZ : garder une figure comme fichier autonome qui compile vers son propre PDF/image rogné, tout en pouvant aussi être inclus dans le document principal.

Lequel utiliser

Il est utile de concevoir d’abord la division au niveau des dossiers. Placez les chapitres dans chapters/, les longues sections ou tableaux dans sections/ ou tables/, les graphiques dans figures/, et la configuration partagée dans preamble/. Évitez les espaces dans les noms de fichiers ; utilisez lettres, chiffres, traits d’union et underscores. Quand le projet sera construit plus tard en CI ou sur un autre système d’exploitation, ces règles de nommage simples deviendront de la reproductibilité.

  • Petits fragments, préambule partagé\input.
  • Unités au niveau chapitre avec nouvelle page\include (plus \includeonly pour les builds partiels).
  • Compiler chaque chapitre seul, préambule partagésubfiles.
  • Figures autonomes réutilisées dans le corps, préambule proprestandalone.

Comme latexmk suit aussi les fichiers inclus comme dépendances, diviser le document ne casse pas les builds automatisés ni la recompilation à l’enregistrement. Si un projet nouvellement divisé signale “file not found”, vérifiez d’abord que les chemins sont relatifs au fichier principal, que l’extension .tex n’est pas dupliquée inutilement, et que la commande de build est lancée depuis la racine du projet plutôt que depuis un sous-dossier.

Un autre échec courant consiste à compiler directement un fichier subordonné. Un fichier inclus avec \input ou \include n’a généralement ni \documentclass ni préambule, donc ce n’est pas un document autonome. Si vous devez compiler un chapitre seul, utilisez subfiles ; si vous avez besoin d’un PDF de figure indépendant, utilisez standalone. Gardez cette limite claire au lieu de forcer des fichiers de chapitre ordinaires à compiler seuls.