> 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/08-multi-file-latex-projects.md).

# Projetos LaTeX com vários arquivos

## Introdução

Em [documentos LaTeX grandes](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md) normalmente existem vários `.tex` ficheiros, um para cada capítulo ou secção, e depois são unidos para gerar uma única saída. Isto ajuda a manter tudo organizado e torna mais fácil depurar o documento, mas, à medida que o documento cresce, a compilação demora mais tempo. Isto pode ser frustrante, uma vez que normalmente só se quer trabalhar num ficheiro específico de cada vez.

A abordagem natural para ultrapassar isto é compilar cada ficheiro separadamente. Existem dois pacotes principais que permitem a compilação de ficheiros individuais num projeto com vários ficheiros. A escolha que fizer depende do que precisa.

* Com [o **subficheiros** pacote](#the-subfiles-package) pode compilar cada subficheiro de forma independente e cada subficheiro usará automaticamente o preâmbulo do ficheiro principal.
* Com [o **standalone** pacote](#the-standalone-package) como cada subficheiro funciona como um ficheiro independente, os subficheiros podem depois ser unidos num documento principal que irá carregar os preâmbulos de cada um deles. Especialmente útil se precisar de reutilizar o mesmo ficheiro em mais do que um documento, uma imagem tikz é um bom exemplo disto.

## Notas sobre \documentclass em ficheiros .tex do Overleaf

Como demonstrado no vídeo seguinte, mesmo que tenha definido o ficheiro principal do seu projeto `.tex` ficheiro pode selecionar outro ficheiro para compilar — desde que contenha uma `\documentclass` declaração. No entanto, para garantir que todos os elementos do seu projeto são compilados corretamente — como glossários, acesso a caminhos para `.bib` ficheiros, etc. — recomendamos vivamente que compile apenas ficheiros contidos no diretório raiz do seu projeto.

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

## O pacote subfiles

Este pacote é adequado para a maioria das situações, é realmente fácil de usar.

Os exemplos nesta secção têm a seguinte estrutura hierárquica de ficheiros:

![CompileSubfilesEx1OverleafV2.png](/files/9b396999a5d599744106063683920d941399f114)

### O ficheiro principal

No ficheiro principal são necessários dois comandos especiais.

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

\usepackage{blindtext}

\usepackage{subfiles} % Carregado idealmente por último no preâmbulo

\title{Exemplo do pacote subfiles}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Introdução}

\subfile{sections/introduction}

\section{Segunda secção}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/296901613f4b8b52d9b924a064583dee96174f64)

A compilação por ficheiro requer a linha

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

no preâmbulo, isto ativa o `subficheiros` pacote. Depois, cada subficheiro externo tem de ser importado com o comando `\subfile{}`. No exemplo, os ficheiros `introduction.tex` e `section2.tex` são importados para o ficheiro principal a partir da pasta `sections` pasta. Tenha em atenção que a extensão do ficheiro não é obrigatória.

[Abrir um `subficheiros` exemplo do pacote no Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### Os subficheiros

Assim que configurar o seu ficheiro principal, cada subficheiro tem de ter uma estrutura especial.

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

\label{fig:img1}
\caption{Logótipo do Overleaf}
\end{figure}

Olá, aqui há algum texto sem significado...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/087751b28ba43f2debfb387a2f87b2ab864ebea9)

Agora este ficheiro pode ser compilado como um ficheiro autónomo, a classe do documento e o resto do preâmbulo serão os mesmos definidos no documento principal.

O primeiro comando aqui é

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

o parâmetro entre parênteses retos, `../main.tex`, é o caminho relativo para o documento principal. Neste caso, o ficheiro `introduction.tex` está dentro da pasta `sections`, por isso o ficheiro `main.tex` está um nível acima da pasta atual (é isto que `../` significa).

Também precisará de usar o `\subfix` comando com o caminho relativo da pasta ao especificar `\graphicspath` em `introduction.tex`:

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

Depois, o conteúdo real é escrito dentro de `\begin{document}` e `\end{document}`. Tudo o que estiver fora deste ambiente será ignorado, ou mais especificamente, será considerado parte do preâmbulo. Evite deixar linhas em branco no início e no fim do ficheiro.

[Abrir um `subficheiros` exemplo do pacote no Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## O pacote standalone

O pacote **standalone** fornece a mesma funcionalidade que **subficheiros** e é mais flexível, mas a sintaxe é mais complexa e propensa a erros. A principal diferença é que cada subficheiro tem o seu próprio preâmbulo.

Os exemplos nesta secção têm a seguinte estrutura hierárquica de ficheiros:

![CompileSubfilesEx3OverleafV2.png](/files/f70a61b863313d89d8f228b033b714a66a455054)

### O ficheiro principal

O ficheiro principal é muito semelhante ao de qualquer outro projeto com vários ficheiros.

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

\title{Exemplo do pacote standalone}
\author{Overleaf}
\date{Maio de 2021}

\begin{document}

\maketitle

\section{Primeira secção}
\import{sections/}{introduction}

\section{Segunda secção}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/fb58e0f8394f84bc91446ba4fa68e5f83cda1b09)

A linha

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

ativa o **standalone** pacote, devendo ser colocada cedo no documento. O parâmetro entre parênteses retos diz ao LaTeX para importar o preâmbulo de cada subficheiro (os pacotes são importados apenas uma vez); se for omitido, certifique-se de que tem todos os comandos necessários no preâmbulo do documento principal para que os subficheiros funcionem. É preciso ter cuidado devido a possíveis incompatibilidades entre os diferentes preâmbulos.

No corpo do documento principal, cada subficheiro é importado com `\import{}{}`. O comando padrão `\input{}` também pode ser usado, mas o usado neste exemplo é recomendado para [gerir projetos grandes](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md) porque evita erros em ficheiros aninhados.

[Abra um exemplo do `standalone` pacote no Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### Os subficheiros

Cada subficheiro tem de ter o seu próprio preâmbulo e importar todos os pacotes necessários para funcionar como documento autónomo.

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

\begin{document}
Uma figura TikZ será renderizada abaixo desta linha

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Um diagrama simples e agradável}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/66ef865d640e82e1fc656e1c850bfbf5e37288e6)

A primeira linha no subficheiro é

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

Isto declara que este é um ficheiro a ser usado com o **standalone** pacote, existem dois parâmetros opcionais entre parênteses retos.

* `class=article`. Define `article` como classe base, qualquer outra classe pode ser usada: book, report, etc. (exceto beamer).
* `crop=false`. Se esta opção for omitida, a saída será cortada para um tamanho mínimo.

O comando seguinte não é obrigatório

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

mas tem de ser usado neste exemplo porque há um ficheiro **standalone** aninhado aqui. Uma [imagem tikz](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/05-tikz-package.md) é inserida com [`\subimport{../}{diagram.tex}`](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md#importing-files), pode ver o conteúdo do ficheiro "diagram.tex" abaixo:

```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},
]
%Nós
\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};

%Linhas
\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}
```

[Abra este exemplo Standalone TikZ no 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/2515e0854ca717c67d48c0d107830b601948f389)

Esta é a principal funcionalidade em **standalone**, pode importar este ficheiro para qualquer outro documento e reutilizar o código. Por exemplo, este diagrama pode mais tarde ser usado numa apresentação sem alterações adicionais.

[Abra um exemplo do `standalone` pacote no Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Leitura adicional

Para mais informações, veja

* [Gestão num grande projeto](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.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)
* [Compilação de grandes projetos](/latex/overleaf-learn-latex-pt/base-de-conhecimento/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Inserção de imagens](/latex/overleaf-learn-latex-pt/mais-topicos/27-inserting-images.md)
* [Pacote TikZ](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/05-tikz-package.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)
* [O **subficheiros** documentação do pacote](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [O **standalone** documentação do pacote](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/overleaf-learn-latex-pt/estrutura-do-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.
