> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/es/estructura-del-documento/08-multi-file-latex-projects.md).

# Proyectos de LaTeX de varios archivos

## Introducción

En [documentos grandes de LaTeX](/latex/es/estructura-del-documento/07-management-in-a-large-project.md) normalmente se tienen varios `.tex` archivos, uno para cada capítulo o sección, y luego se unen para generar una sola salida. Esto ayuda a mantener todo organizado y facilita depurar el documento, pero a medida que el documento crece la compilación tarda más. Esto puede ser frustrante, ya que normalmente solo se está interesado en trabajar en un archivo concreto cada vez.

La forma natural de superar esto es compilar cada archivo por separado. Hay dos paquetes principales que permiten compilar archivos individuales en un proyecto con varios archivos. La elección que hagas depende de lo que necesites.

* Con [el **subfiles** paquete](#the-subfiles-package) puedes compilar cada subarchivo de forma independiente y cada subarchivo usará automáticamente el preámbulo del archivo principal.
* Con [el **standalone** paquete](#the-standalone-package) cada subarchivo funciona como un archivo independiente, los subarchivos pueden unirse después en un documento principal que tomará los preámbulos de cada uno de ellos. Especialmente útil si necesitas reutilizar el mismo archivo en más de un documento; una figura tikz es un buen ejemplo de ello.

## Notas sobre \documentclass en archivos .tex de Overleaf

Como se muestra en el siguiente clip de video, incluso si has establecido el archivo principal de tu proyecto `.tex` puedes seleccionar otro archivo para compilar, siempre que contenga una `\documentclass` declaración. Sin embargo, para asegurarte de que todos los elementos de tu proyecto se compilen correctamente, como los glosarios, el acceso a rutas de `.bib` archivos, etc., te recomendamos encarecidamente que solo compiles archivos contenidos en el directorio raíz de tu proyecto.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/U2nGfRx9NwNGX0vWXNebP/1ca4b9a4b2f36d5ca9c0dbaa87f44bfa/maincompile.mp4>" %}

## El paquete subfiles

Este paquete es adecuado para la mayoría de las situaciones; es realmente fácil de usar.

Los ejemplos de esta sección tienen la siguiente estructura jerárquica de archivos:

![CompileSubfilesEx1OverleafV2.png](/files/b9583670db9a1e8df85a5144ab2bcb6d71cbd3b7)

### El archivo principal

En el archivo principal se necesitan dos comandos especiales.

```latex
\documentclass{article}
\usepackage{graphicx}
\graphicspath{{images/}}

\usepackage{blindtext}

\usepackage{subfiles} % Best loaded last in the preamble

\title{Ejemplo del paquete subfiles}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Introducción}

\subfile{sections/introduction}

\section{Segunda sección}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/3f4c975aeef8b9b6ee631d256d822687058a898a)

La compilación por archivo requiere la línea

```latex
\usepackage{subfiles}
```

en el preámbulo; esto habilita el `subfiles` paquete. Luego, cada subarchivo externo debe importarse con el comando `\subfile{}`. En el ejemplo, los archivos `introduction.tex` y `section2.tex` se importan en el archivo principal desde la `carpeta de secciones` . Ten en cuenta que la extensión del archivo no es obligatoria.

[Abre un `subfiles` en Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### Los subarchivos

Una vez que hayas configurado tu archivo principal, cada subarchivo debe tener una estructura especial.

```latex
\documentclass[../main.tex]{subfiles}
\graphicspath{{\subfix{../images/}}}
\begin{document}
\textbf{¡Hola, mundo!}
\begin{figure}[bh]
\centering
\includegraphics[width=3cm]{overleaf-logo}

\label{fig:img1}
\caption{Logotipo de Overleaf}
\end{figure}

Hola, aquí hay algo de texto sin significado...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/f360d069ed69243138b397fc791314c0dc936830)

Ahora este archivo puede compilarse como un archivo independiente; la clase de documento y el resto del preámbulo serán los mismos que se definan en el documento principal.

El primer comando aquí es

```latex
\documentclass[../main.tex]{subfiles}
```

el parámetro entre corchetes, `../main.tex`es la ruta relativa al documento principal. En este caso, el archivo `introduction.tex` está dentro de la carpeta `carpeta de secciones`, por lo tanto el archivo `main.tex` está un nivel por encima de la carpeta actual (esto es lo que `../` significa).

También necesitarás usar el `\subfix` comando con la ruta relativa de la carpeta al especificar `\graphicspath` en `introduction.tex`:

```latex
\graphicspath{{\subfix{../images/}}}
```

Entonces el contenido real se escribe dentro de `\begin{document}` y `\end{document}`. Todo lo que esté fuera de este entorno se ignorará, o más concretamente, se considerará parte del preámbulo. Evita dejar líneas en blanco al principio y al final del archivo.

[Abre un `subfiles` en Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## El paquete standalone

El paquete **standalone** ofrece la misma funcionalidad que **subfiles** y es más flexible, pero la sintaxis es más compleja y propensa a errores. La principal diferencia es que cada subarchivo tiene su propio preámbulo.

Los ejemplos de esta sección tienen la siguiente estructura jerárquica de archivos:

![CompileSubfilesEx3OverleafV2.png](/files/84ffe3ace4e63f81fd4477efd00a3a659b16d967)

### El archivo principal

El archivo principal es muy similar al de cualquier otro proyecto con varios archivos.

```latex
\documentclass{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}

\title{Ejemplo del paquete standalone}
\author{Overleaf}
\date{mayo de 2021}

\begin{document}

\maketitle

\section{Primera sección}
\import{sections/}{introduction}

\section{Segunda sección}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/95a127dcce2c8ad4c9373d068c27ebb45f9b010d)

La línea

```latex
\usepackage[subpreambles=true]{standalone}
```

habilita el **standalone** paquete; debe colocarse al principio del documento. El parámetro entre corchetes le indica a LaTeX que importe el preámbulo de cada subarchivo (los paquetes se importan solo una vez); si se omite, asegúrate de tener todos los comandos necesarios en el preámbulo del documento principal para que los subarchivos funcionen. Hay que tener cuidado por las posibles incompatibilidades entre los distintos preámbulos.

En el cuerpo del documento principal, cada subarchivo se importa con `\import{}{}`. El comando estándar `\input{}` también puede usarse, pero el de este ejemplo se recomienda para [gestionar proyectos grandes](/latex/es/estructura-del-documento/07-management-in-a-large-project.md) porque evita errores en archivos anidados.

[Abre un ejemplo del `standalone` paquete en Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### Los subarchivos

Cada subarchivo debe tener su propio preámbulo e importar todos los paquetes necesarios para funcionar como documento independiente.

```latex
\documentclass[class=article, crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\usepackage{blindtext}

\begin{document}
Se renderizará una figura TikZ debajo de esta línea

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Un diagrama bonito y sencillo}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/0d18f9d43012f8de73f05a15831c0e3be599fd97)

La primera línea del subarchivo es

```latex
\documentclass[class=article, crop=false]{standalone}
```

Esto declara que este es un archivo para usar con el **standalone** paquete; hay dos parámetros opcionales dentro de los corchetes.

* `class=article`. Establece `article` como clase subyacente; puede usarse cualquier otra clase: book, report, etc. (excepto beamer).
* `crop=false`. Si se omite esta opción, la salida se recortará al tamaño mínimo.

El siguiente comando no es obligatorio

```latex
\usepackage[subpreambles=true]{standalone}
```

pero debe usarse en este ejemplo porque hay un **standalone** archivo anidado aquí. Un [dibujo TikZ](/latex/es/figuras-y-tablas/05-tikz-package.md) se inserta con [`\subimport{../}{diagram.tex}`](/latex/es/estructura-del-documento/07-management-in-a-large-project.md#importing-files), puedes ver el contenido del archivo "diagram.tex" a continuación:

```latex
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Nodos
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Líneas
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);

\end{tikzpicture}
\end{document}
```

[Abre este ejemplo de TikZ independiente en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Standalone+TikZ+example\&snip=%5Cdocumentclass%7Bstandalone%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cusetikzlibrary%7Bpositioning%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Btikzpicture%7D%5B%0Aroundnode%2F.style%3D%7Bcircle%2C+draw%3Dgreen%2160%2C+fill%3Dgreen%215%2C+very+thick%2C+minimum+size%3D7mm%7D%2C%0Asquarednode%2F.style%3D%7Brectangle%2C+draw%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%2C+minimum+size%3D5mm%7D%2C%0A%5D%0A%25Nodes%0A%5Cnode%5Bsquarednode%5D++++++%28maintopic%29++++++++++++++++++++++++++++++%7B2%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28uppercircle%29+++++++%5Babove%3Dof+maintopic%5D+%7B1%7D%3B%0A%5Cnode%5Bsquarednode%5D++++++%28rightsquare%29+++++++%5Bright%3Dof+maintopic%5D+%7B3%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28lowercircle%29+++++++%5Bbelow%3Dof+maintopic%5D+%7B4%7D%3B%0A%0A%25Lines%0A%5Cdraw%5B-%3E%5D+%28uppercircle.south%29+--+%28maintopic.north%29%3B%0A%5Cdraw%5B-%3E%5D+%28maintopic.east%29+--+%28rightsquare.west%29%3B%0A%5Cdraw%5B-%3E%5D+%28rightsquare.south%29+..+controls+%2B%28down%3A7mm%29+and+%2B%28right%3A7mm%29+..+%28lowercircle.east%29%3B%0A%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

![CompileSubfilesEx5.png](/files/89c873eeb5de58fd6e0ea196bbdc1eab5ad0444d)

Esta es la característica principal de **standalone**puedes importar este archivo en cualquier otro documento y reutilizar el código. Por ejemplo, este diagrama puede usarse más tarde en una presentación sin más cambios.

[Abre un ejemplo del `standalone` paquete en Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Lectura adicional

Para más información, consulta

* [Gestión en un proyecto grande](/latex/es/estructura-del-documento/07-management-in-a-large-project.md)
* [Referencias cruzadas a secciones y ecuaciones](/latex/es/estructura-del-documento/03-cross-referencing-sections-equations-and-floats.md)
* [Índices](/latex/es/estructura-del-documento/04-indices.md)
* [Glosarios](/latex/es/estructura-del-documento/05-glossaries.md)
* [Hipervínculos](/latex/es/estructura-del-documento/09-hyperlinks.md)
* [Numeración de páginas](/latex/es/formato/03-page-numbering.md)
* [Documentos a una sola cara y a doble cara](/latex/es/formato/08-single-sided-and-double-sided-documents.md)
* [Varias columnas](/latex/es/formato/09-multiple-columns.md)
* [Formato de párrafos](/latex/es/formato/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Tamaño de página y márgenes](/latex/es/formato/07-page-size-and-margins.md)
* [Contadores](/latex/es/formato/10-counters.md)
* [Notas al margen](/latex/es/formato/15-margin-notes.md)
* [Negrita, cursiva y subrayado](/latex/es/conceptos-basicos-de-latex/03-bold-italics-and-underlining.md)
* [Tamaños, familias y estilos de fuente](/latex/es/fuentes/01-font-sizes-families-and-styles.md)
* [Familias tipográficas](/latex/es/fuentes/02-font-typefaces.md)
* [Compatibilidad con fuentes modernas con XeLaTeX](/latex/es/fuentes/03-xelatex.md)
* [Compatibilidad con idiomas internacionales](/latex/es/idiomas/03-international-language-support.md)
* [Tamaños, familias y estilos de fuente](/latex/es/fuentes/01-font-sizes-families-and-styles.md)
* [Compilación de proyectos grandes](/latex/es/base-de-conocimientos/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Inserción de imágenes](/latex/es/mas-temas/27-inserting-images.md)
* [Paquete TikZ](/latex/es/figuras-y-tablas/05-tikz-package.md)
* [Escribir su propio paquete](/latex/es/archivos-de-clase/03-writing-your-own-package.md)
* [Escribir su propia clase](/latex/es/archivos-de-clase/04-writing-your-own-class.md)
* [El **subfiles** documentación del paquete](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [El **standalone** documentación del paquete](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/standalone/standalone.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/es/estructura-del-documento/08-multi-file-latex-projects.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
