> 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/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md).

# Gerenciamento em um projeto grande

## Introdução

Em projetos grandes, como livros, manter partes do seu documento em vários ficheiros .tex torna mais fácil a tarefa de corrigir erros e fazer alterações adicionais. É mais simples localizar uma palavra ou elemento específico num ficheiro curto. Para este fim, este artigo explica como gerir projetos grandes.

## Inserção e inclusão de ficheiros

As ferramentas padrão para inserir um ficheiro LaTeX noutro são `\input` e `\include`.

**comando \input**

\input{filename}

Use este comando no corpo do documento para inserir o conteúdo de outro ficheiro chamado `filename.tex`; este ficheiro não deve conter qualquer código do preâmbulo LaTeX (isto é, sem `\documentclass`, `\begin{document}` ou `\end{document}` ). O LaTeX não iniciará uma nova página antes de processar o material em `filename.tex`. `\input` permite-lhe aninhar `\input` comandos, em ficheiros que já estão a ser inseridos pelo ficheiro raiz.

**comando \include**

\include{filename}

Use este comando no corpo do documento para inserir o conteúdo de outro ficheiro chamado `filename.tex`; de novo, este ficheiro não deve conter qualquer preâmbulo LaTeX. O LaTeX iniciará uma nova página antes de processar o material inserido de `filename.tex`. Certifique-se de não incluir a extensão `.tex` no nome do ficheiro, pois isso impedirá que o ficheiro seja inserido (a extensão pode opcionalmente ser incluída com `entrada` e `import`). Não é possível aninhar `include` comandos. Cada ficheiro que é `\include`incluído tem o seu próprio ficheiro .aux, que armazena informações sobre etiquetas criadas e conteúdos para o índice, lista de figuras, etc. Pode usar `\includeonly` com uma lista de nomes de ficheiros separada por vírgulas (certifique-se de que não existem espaços no início nem no fim). Se fizer isto, o LaTeX processará apenas os ficheiros contidos nessa lista. Isto pode ser usado para aumentar a velocidade de compilação se estiver apenas a trabalhar numa pequena parte de um documento maior. Os números das páginas e as referências cruzadas continuarão, no entanto, a funcionar, pois os ficheiros .aux dos ficheiros omitidos continuarão a ser processados.

[Abra um exemplo de um projeto grande no 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 num ficheiro separado

Se o preâmbulo do seu documento tiver muitos comandos definidos pelo utilizador ou definições de termos para o [glossário](/latex/overleaf-learn-latex-pt/estrutura-do-documento/05-glossaries.md), pode colocá-lo num ficheiro separado. A forma correta é criar um pacote personalizado, que é um ficheiro com a extensão .sty. Vejamos um exemplo:

```latex
\ProvidesPackage{example}

\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[latin1]{inputenc}
\usepackage[spanish, english]{babel}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{textcomp}
\usepackage{pgfplots}

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

%Estilos de cabeçalho
\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{} % remover tudo
\renewcommand{\headrulewidth}{0pt} % remover também as linhas
\renewcommand{\footrulewidth}{0pt}}

%torna disponíveis os comandos \proof, \qedsymbol e \theoremstyle
\usepackage{amsthm}

%Régua
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}

%Definição do lema e contador do lema
\newtheorem{lemma}{Lema}[section]

%Contador da definição
\theoremstyle{definition}
\newtheorem{definition}{Definição}[section]

%Contador do corolário
\newtheorem{corolary}{Corolário}[section]

%Comandos para naturais, inteiros, topologia, hull, Ball, Disc, Dimension, fronteira e mais alguns
\newcommand{\E}{{\mathcal{E}}}
\newcommand{\F}{{\mathcal{F}}}
...

%Ambiente de exemplo
\theoremstyle{remark}
\newtheorem{examle}{Exemplo}

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

Todos os comandos neste ficheiro poderiam ter sido colocados no preâmbulo, mas o ficheiro principal tornar-se-ia confuso devido a esta grande quantidade de código, e localizar o corpo real do documento num ficheiro tão grande seria uma tarefa complicada.

Este ficheiro também podia ser colocado num ficheiro .tex normal e importado com o comando `import` (veja o [secção seguinte](#importing-files)), mas um ficheiro .sty evita possíveis erros se o ficheiro for importado acidentalmente mais do que uma vez.

Repare que a primeira linha do exemplo é

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

isto significa que temos de importar este pacote como *exemplo* no ficheiro principal, ou seja, com o comando

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

como mostrado no [introdução](#introduction).

*Nota: Um ficheiro .sty é muito mais flexível; pode ser usado para definir as suas próprias macros e podem ser passados parâmetros opcionais; veja* [*Escrever o seu próprio pacote*](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/03-writing-your-own-package.md).

[Abra um exemplo de um projeto grande no 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=)

## Utilizando o pacote import

Como mencionado acima, as ferramentas padrão para inserir um ficheiro LaTeX noutro são `\input` e `\include`, mas estas são propensas a erros se for necessário importar ficheiros aninhados. Por esta razão, talvez queira considerar o pacote **import**.

Abaixo está um exemplo de um livro cujas secções e comandos definidos pelo utilizador estão armazenados em ficheiros separados, e em que os ficheiros de imagem de cada capítulo estão armazenados em pastas separadas juntamente com o ficheiro .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{Primeiro 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 pode ver, o exemplo é um livro com três capítulos e várias secções num ficheiro principal organizado que vai buscar ficheiros externos para gerar o documento final. O comando `\frontmatter` na classe de documento book é usado para as primeiras páginas do documento; o estilo de numeração de páginas é definido para algarismos romanos por este comando; o comando `\mainmatter` reinicia a numeração das páginas e altera o estilo para árabe, `\backmatter` desativa a numeração dos capítulos (adequado para a bibliografia e os apêndices).

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

Primeiro, adicione esta linha ao preâmbulo do seu documento:

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

Depois use `\import{ }{ }`. O primeiro parâmetro dentro das chavetas é o diretório onde o ficheiro se encontra; pode ser relativo ao diretório de trabalho atual ou absoluto. O segundo parâmetro é o nome do ficheiro a importar

Também está disponível o comando `\subimport` que tem a mesma sintaxe, mas, se for usado num dos ficheiros que são importados no ficheiro principal, o caminho será relativo a esse subficheiro. Por exemplo, abaixo está o conteúdo do ficheiro "section1-1.tex" que foi importado no exemplo anterior:

```latex
\section{Primeira secção}

Abaixo está um gráfico 3D simples

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

[...]
```

Como pode ver, este ficheiro importa um [gráfico pgf](/latex/overleaf-learn-latex-pt/especifico-da-area/08-pgfplots-package.md) ficheiro chamado "plot1.tex", que cria um gráfico 3D. Este ficheiro é importado por

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

a partir da pasta "img", contida na pasta "sections".

Se `\import` fosse usado em vez disso, o caminho *img/* seria relativo ao ficheiro principal, em vez da pasta "sections" onde "section1-1.tex" está guardado.

[Abra um exemplo de um projeto grande no 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=)

## Leitura adicional

Para mais informações, consulta:

* [Projetos LaTeX com vários ficheiros](/latex/overleaf-learn-latex-pt/estrutura-do-documento/08-multi-file-latex-projects.md)
* [Referência cruzada de secções e equações](/latex/overleaf-learn-latex-pt/estrutura-do-documento/03-cross-referencing-sections-equations-and-floats.md)
* [Índices](/latex/overleaf-learn-latex-pt/estrutura-do-documento/04-indices.md)
* [Glossários](/latex/overleaf-learn-latex-pt/estrutura-do-documento/05-glossaries.md)
* [Hiperligações](/latex/overleaf-learn-latex-pt/estrutura-do-documento/09-hyperlinks.md)
* [Numeração de páginas](/latex/overleaf-learn-latex-pt/formatacao/03-page-numbering.md)
* [Documentos de uma face e de dupla face](/latex/overleaf-learn-latex-pt/formatacao/08-single-sided-and-double-sided-documents.md)
* [Múltiplas colunas](/latex/overleaf-learn-latex-pt/formatacao/09-multiple-columns.md)
* [Formatação de parágrafos](/latex/overleaf-learn-latex-pt/formatacao/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Tamanho da página e margens](/latex/overleaf-learn-latex-pt/formatacao/07-page-size-and-margins.md)
* [Contadores](/latex/overleaf-learn-latex-pt/formatacao/10-counters.md)
* [Notas na margem](/latex/overleaf-learn-latex-pt/formatacao/15-margin-notes.md)
* [Negrito, itálico e sublinhado](/latex/overleaf-learn-latex-pt/nocoes-basicas-de-latex/03-bold-italics-and-underlining.md)
* [Tamanhos, famílias e estilos de fonte](/latex/overleaf-learn-latex-pt/fontes/01-font-sizes-families-and-styles.md)
* [Tipos de letra](/latex/overleaf-learn-latex-pt/fontes/02-font-typefaces.md)
* [Suporte para tipos de letra modernos com XeLaTeX](/latex/overleaf-learn-latex-pt/fontes/03-xelatex.md)
* [Suporte a línguas internacionais](/latex/overleaf-learn-latex-pt/idiomas/03-international-language-support.md)
* [Tamanhos, famílias e estilos de fonte](/latex/overleaf-learn-latex-pt/fontes/01-font-sizes-families-and-styles.md)
* [Escrever o seu próprio pacote](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/03-writing-your-own-package.md)
* [Escrever a sua própria classe](/latex/overleaf-learn-latex-pt/ficheiros-de-classe/04-writing-your-own-class.md)
* [A introdução não tão curta ao LaTeX2ε](http://www.ctan.org/tex-archive/info/lshort/)
* [`import` documentação do pacote](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/overleaf-learn-latex-pt/estrutura-do-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.
