Proyectos de varios archivos (\input / \include / subfiles)

Un documento largo se gestiona mejor si se divide en archivos: uno por capítulo y las figuras en sus propios archivos. LaTeX ofrece varias formas de volver a unirlos, cada una para una necesidad distinta: \input para insertar en cualquier lugar, \include para piezas a nivel de capítulo (con \includeonly para compilaciones parciales) y los paquetes subfiles / standalone, que permiten compilar cada pieza por separado. Esta página trata de cómo elegir entre ellos.

\input — insertar en cualquier lugar

\input{file} inserta el contenido de ese archivo exactamente donde está el comando, como si lo hubieras escrito allí. No provoca salto de página, funciona en el preámbulo o en el cuerpo y puede anidarse. Se asume la extensión .tex. Es adecuado para fragmentos pequeños: un preámbulo compartido, una tabla, una sección corta.

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

\include — dividir por capítulos

\include{file} hace un \clearpage antes y después de la inclusión, y cambia a un archivo .aux separado solo para ese bloque. Está pensado para unidades grandes, como capítulos. No puedes anidar \include (aunque un archivo incluido con \include puede usar \input para otros). Úsalo para divisiones por capítulo que deban empezar en una página nueva.

latex
\include{chapters/ch1}

\includeonly — compilar solo una parte, rápido

Pon \includeonly{ch2,ch3} en el preámbulo y LaTeX procesa solo esos capítulos. Como cada \include mantiene su propio .aux, los números de página y referencias cruzadas de los capítulos omitidos conservan los valores de la última compilación completa. Así, después de una ejecución completa, puedes recompilar solo el capítulo que estás editando en una fracción del tiempo. (Esto funciona solo con \include, no con \input.)

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

subfiles / standalone — compilar un archivo por separado

El enfoque \include solo construye desde el archivo principal. El paquete subfiles permite que cada subarchivo compile por sí solo, mientras hereda automáticamente el preámbulo del archivo principal. El archivo principal usa \subfile{...} y cada subarchivo empieza con \documentclass[../main.tex]{subfiles}. Es útil para revisar un solo capítulo sin compilar todo el libro.

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}

El paquete/clase similar standalone da a cada archivo su propio preámbulo. Es más flexible, pero más complejo de escribir. Brilla especialmente para figuras y TikZ: mantén una figura como archivo standalone que compila a su propio PDF/imagen recortado, y que también puede incluirse en el documento principal.

Cuál usar

Ayuda diseñar primero la división a nivel de directorios. Coloca los capítulos del cuerpo en chapters/, secciones largas o tablas en sections/ o tables/, gráficos en figures/ y la configuración compartida en preamble/. Evita espacios en los nombres de archivo; usa letras, dígitos, guiones y guiones bajos. Cuando el proyecto se construya más tarde en CI o en otro sistema operativo, estas reglas sencillas de nombres se convierten en reproducibilidad.

  • Fragmentos pequeños, preámbulo compartido\input.
  • Unidades de capítulo con página nueva\include (más \includeonly para compilaciones parciales).
  • Compilar cada capítulo por separado, preámbulo compartidosubfiles.
  • Figuras standalone reutilizadas en el cuerpo, preámbulo propiostandalone.

Además, como latexmk rastrea los archivos incluidos como dependencias, dividir el documento no rompe las compilaciones automatizadas ni la recompilación al guardar. Si un proyecto recién dividido informa “file not found”, comprueba primero que las rutas sean relativas al archivo principal, que no hayas duplicado innecesariamente la extensión .tex y que estés ejecutando el comando de compilación desde la raíz del proyecto, no desde un subdirectorio.

Otro fallo común es compilar directamente un archivo subordinado. Un archivo incorporado con \input o \include normalmente no tiene \documentclass ni preámbulo, así que no es un documento standalone. Si necesitas compilar un capítulo solo, usa subfiles; si necesitas un PDF de figura independiente, usa standalone. Mantén clara esa frontera en vez de forzar archivos de capítulo normales a compilar por sí mismos.