> 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/07-management-in-a-large-project.md).

# Gestión en un proyecto grande

## Introducción

En proyectos grandes, como libros, mantener partes de tu documento en varios archivos .tex hace más fácil la tarea de corregir errores y realizar más cambios. Es más sencillo localizar una palabra o elemento específico en un archivo corto. Con este propósito, este artículo explica cómo gestionar proyectos grandes.

## Inserción e inclusión de archivos

Las herramientas estándar para insertar un archivo de LaTeX en otro son `\input` y `\include`.

**comando input**

\input{filename}

Usa este comando en el cuerpo del documento para insertar el contenido de otro archivo llamado `filename.tex`; este archivo no debe contener ningún código del preámbulo de LaTeX (es decir, no `\documentclass`, `\begin{document}` o `\end{document}` ). LaTeX no comenzará una nueva página antes de procesar el material en `filename.tex`. `\input` te permite anidar `\input` comandos, en archivos que ya están siendo introducidos por el archivo raíz.

**comando include**

\include{filename}

Usa este comando en el cuerpo del documento para insertar el contenido de otro archivo llamado `filename.tex`; de nuevo, este archivo no debe contener ningún preámbulo de LaTeX. LaTeX comenzará una nueva página antes de procesar el material introducido desde `filename.tex`. Asegúrate de no incluir la extensión `.tex` en el nombre del archivo, ya que esto impedirá que el archivo sea incluido (la extensión puede incluirse opcionalmente con `input` y `import`). No es posible anidar `include` comandos. Cada archivo que se `\include`d tiene su propio archivo .aux que almacena información de las etiquetas creadas y de los contenidos para el índice, la lista de figuras, etc. Puedes usar `\includeonly` con una lista de nombres de archivo separados por comas (asegúrate de que no haya espacios al inicio ni al final). Si haces esto, LaTeX solo procesará los archivos contenidos en esa lista. Esto puede usarse para mejorar la velocidad de compilación si solo estás trabajando en una pequeña parte de un documento más grande. Sin embargo, los números de página y las referencias cruzadas seguirán funcionando, ya que los archivos .aux de los archivos omitidos seguirán procesándose.

[Abre un ejemplo de un proyecto grande en Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Preámbulo en un archivo separado

Si el preámbulo de tu documento tiene muchos comandos definidos por el usuario o definiciones de términos para el [glosario](/latex/es/estructura-del-documento/05-glossaries.md), puedes ponerlo en un archivo separado. La forma correcta es crear un paquete personalizado, que es un archivo con la extensión .sty. Veamos un ejemplo:

```latex
\ProvidesPackage{example}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage[español, inglés]{babel}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{textcomp}
\usepackage{pgfplots}

\pgfplotsset{width=10cm,compat=1.9}

%Estilos de encabezado
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textbf{\textit{\nouppercase{\leftmark}}}}
\fancyhead[LO]{\textbf{\textit{\nouppercase{\rightmark}}}}
\fancypagestyle{plain}{ %
\fancyhf{} % elimina todo
\renewcommand{\headrulewidth}{0pt} % elimina también las líneas
\renewcommand{\footrulewidth}{0pt}}

%pone disponibles los comandos \proof, \qedsymbol y \theoremstyle
\usepackage{amsthm}

%Regla
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

%Definición del lema y contador de lemas
\newtheorem{lemma}{Lema}[section]

%Contador de definiciones
\theoremstyle{definition}
\newtheorem{definition}{Definición}[section]

%Contador de corolarios
\newtheorem{corolary}{Corolario}[section]

%Comandos para naturales, enteros, topología, casco convexo, Bola, Disco, Dimensión, frontera y algunos más
\newcommand{\E}{{\mathcal{E}}}
\newcommand{\F}{{\mathcal{F}}}
...

%Entorno de ejemplo
\theoremstyle{remark}
\newtheorem{examle}{Ejemplo}

%Contador de ejemplos
\newcommand{\reiniciar}{\setcounter{example}{0}}
```

Todos los comandos de este archivo podrían haberse puesto en el preámbulo, pero el archivo principal se habría vuelto confuso debido a esta gran cantidad de código, y localizar el cuerpo real del documento en un archivo tan grande habría sido una tarea engorrosa.

Este archivo también podría colocarse en un archivo .tex normal e importarse con el comando `import` (véase el [sección siguiente](#importing-files)), pero un archivo .sty evita posibles errores si el archivo se importa accidentalmente más de una vez.

Observa que la primera línea del ejemplo es

```latex
\ProvidesPackage{example}
```

esto significa que tenemos que importar este paquete como *ejemplo* en el archivo principal, es decir, con el comando

```latex
\usepackage{example}
```

como se muestra en la [introducción](#introduction).

*Nota: un archivo .sty es mucho más flexible, puede usarse para definir tus propias macros y se pueden pasar parámetros opcionales, véase* [*Escribir su propio paquete*](/latex/es/archivos-de-clase/03-writing-your-own-package.md).

[Abre un ejemplo de un proyecto grande en Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Uso del paquete import

Como se mencionó anteriormente, las herramientas estándar para insertar un archivo de LaTeX en otro son `\input` y `\include`, pero son propensas a errores si se necesita importar archivos anidados. Por esta razón, quizá quieras considerar el paquete **import**.

A continuación se muestra un libro con tres capítulos y varias secciones en un archivo principal ordenado que toma archivos externos para generar el documento final. Los archivos de imagen de cada capítulo se almacenan en carpetas separadas junto con el archivo .tex de cada capítulo.

```latex
\documentclass[a4paper,11pt]{book}
\usepackage{import}
\usepackage{example}

\usepackage{makeidx}
\makeindex

\begin{document}

\frontmatter
\import{./}{title.tex}

\clearpage
\thispagestyle{empty}

\tableofcontents

\mainmatter
\chapter{Primer capítulo}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}

\chapter{Capítulo adicional}
\import{sections/}{section2-1.tex}

\chapter{Último capítulo}
\import{sections/}{section3-1.tex}

\backmatter

\import{./}{bibliography.tex}

\end{document}
```

Como ves, el ejemplo es un libro con tres capítulos y varias secciones en un archivo principal ordenado que toma archivos externos para generar el documento final. El comando `\frontmatter` en la clase de documento book se usa para las primeras páginas del documento; con este comando, el estilo de numeración de páginas se establece en números romanos; el comando `\mainmatter` reinicia la numeración de páginas y cambia el estilo a arábigo, `\backmatter` desactiva la numeración de capítulos (adecuado para la bibliografía y los apéndices).

```latex
\chapter{Primer capítulo}
\import{sections/}{section1-1.tex}
\import{sections/}{section1-2.tex}
```

Primero, añade esta línea al preámbulo de tu documento:

```latex
\usepackage{import}
```

Luego usa `\import{ }{ }`. El primer parámetro entre llaves es el directorio donde se encuentra el archivo, puede ser relativo al directorio de trabajo actual o absoluto. El segundo parámetro es el nombre del archivo que se va a importar

También está disponible el comando `\subimport` que tiene la misma sintaxis, pero si se usa en uno de los archivos que se importan en el archivo principal, la ruta será relativa a ese subarchivo. Por ejemplo, a continuación se muestra el contenido del archivo "section1-1.tex" que se importó en el ejemplo anterior:

```latex
\section{Primera sección}

A continuación se muestra una gráfica 3D sencilla

\begin{figure}[h]
\centering
\subimport{img/}{plot1.tex}
\caption{Pie de figura}
\label{fig:my_label}
\end{figure}

[...]
```

Como ves, este archivo importa un [gráfico pgf](/latex/es/especifico-de-un-campo/08-pgfplots-package.md) archivo llamado "plot1.tex" que crea una gráfica 3D. Este archivo se importa

```latex
\subimport{img/}{plot1.tex}
```

desde la carpeta "img", contenida en la carpeta "sections".

Si `\import` se usara en su lugar, la ruta *img/* sería relativa al archivo principal, en lugar de a la carpeta "sections" donde se guarda "section1-1.tex".

[Abre un ejemplo de un proyecto grande en Overleaf](https://www.overleaf.com/project/new/template/20618?id=70769185\&templateName=Managing+a+large+project+on+Overleaf\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Lectura adicional

Para más información, consulte:

* [Proyectos de LaTeX de varios archivos](/latex/es/estructura-del-documento/08-multi-file-latex-projects.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)
* [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)
* [La introducción no tan breve a LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [`import` documentación del paquete](ftp://sunsite.icm.edu.pl/pub/CTAN/macros/latex/contrib/import/import.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/07-management-in-a-large-project.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.
