> 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/base-de-conhecimento/066-how-to-find-and-fix-errors-reported-in-generated-files.md).

# Como encontrar e corrigir erros reportados em ficheiros gerados

## Introdução

Por vezes, o Overleaf irá indicar erros que surgem de ficheiros com nomes como `output.toc`, `output.bbl`, etc., mas esses ficheiros *nem sequer existem no seu projeto*. Então, de onde vêm esses ficheiros *provenientes* e, mais importante, como é que os pode *localize* e *corrigir* os erros?

> ![Gen-toc-error.png](/files/2da18d4ac63395c515d65e90b2ed0f338605060c) “Mas eu nem sequer **têm** este `output.toc` ficheiro no meu projeto!”

Estes “ficheiros misteriosos” são artefactos: ficheiros auxiliares gerados durante o processo de compilação do LaTeX, mas também podem desencadear erros que normalmente têm origem em problemas de programação nos ficheiros-fonte do seu projeto. Este artigo de ajuda usa um [exemplo real cheio de erros](#playing-detective-locating-errors-in-generated-files) para mostrar como localizar esses erros até ao seu ponto de origem nos ficheiros-fonte do seu projeto.

## Ficheiros gerados durante o processo de compilação do LaTeX

Além do ficheiro de saída `.pdf` ficheiro, o processo de compilação do LaTeX gera vários tipos de ficheiro que contêm informação sobre etiquetas, referências cruzadas, números de página, etc. Alguns tipos de ficheiros auxiliares não são criados diretamente pelo compilador LaTeX, mas por outras ferramentas de processamento usadas durante a composição tipográfica: por exemplo, listas de referências e índices formatados. Estes ficheiros gerados têm de ser lidos pelo compilador em execuções subsequentes, para que o `.pdf` ficheiro final fique preenchido com as listas, citações e referências cruzadas corretas.

A necessidade de o LaTeX, e as ferramentas de processamento associadas, escreverem e lerem ficheiros de dados auxiliares significa que podem ser necessários vários passos de compilação/processamento antes de o conjunto total de dados dos ficheiros convergir (estabilizar) para produzir a composição final (estável) `.pdf` do ficheiro. Um ciclo típico de composição tipográfica pode ser:

`pdflatex`$$\mapsto$$`bibtex`$$\mapsto$$`pdflatex`$$\mapsto$$`pdflatex`

Numa instalação local do LaTeX, poderá ter de executar você mesmo cada passo intermédio, ou poderá usar uma ferramenta de compilação como [make](https://www.gnu.org/software/make/manual/), [latexmk](https://ctan.org/pkg/latexmk) ou [arara](https://ctan.org/pkg/arara), para automatizar esta cadeia de processos. [O Overleaf usa latexmk](/latex/overleaf-learn-latex-pt/base-de-conhecimento/064-how-does-overleaf-compile-my-project.md), e este vídeo mostra o que acontece sempre que clica no botão “Recompilar” no seu projeto Overleaf.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/Uo3I2FXEI8H6aFPBZq171/e2139f9575a4db6955dc2278dc08283c/latexmk-ol.mp4>" %}

Normalmente, os ficheiros gerados têm o mesmo nome de ficheiro que o `.tex` ficheiro a ser compilado; por exemplo, se estiver a compilar `**main**.tex`, os ficheiros gerados teriam nomes como `**main**.aux`, `**main**.toc`, `**main**.lof` etc. No entanto, *no Overleaf* a compilação `\jobname` é sempre definida para `**output**`, por isso os [ficheiros gerados](/latex/overleaf-learn-latex-pt/base-de-conhecimento/150-view-generated-files.md) do seu projeto Overleaf são sempre chamados `**output**.aux`, `**output**.toc`, `**output**.lof` etc. Estes ficheiros gerados podem ser transferidos do seu projeto Overleaf, mas não podem ser vistos nem editados no Overleaf.

## Erros de compilação reportados a partir de ficheiros gerados

Erros de codificação no projeto principal `.tex` ficheiro pode ser transmitido para os ficheiros gerados. Por exemplo, um `&` em `\section{Introduction & Background}` sem escape chegaria ao ficheiro gerado `.toc` ficheiro. Quando o `.toc` ficheiro gerado é posteriormente lido na execução seguinte de `pdflatex` compilação, é então apresentada uma mensagem de erro como “proveniente do ficheiro .toc”. No entanto, os registos atuais do LaTeX e a apresentação de erros não estabelecem qualquer ligação entre linhas no `.toc` ficheiro (e noutros ficheiros gerados) e a respetiva localização de origem no ficheiro-fonte `.tex` ficheiro: poderá não ser imediatamente óbvio onde o erro original deve ser corrigido.

Aqui está um exemplo de como os erros são apresentados noutro editor LaTeX: embora possa clicar na mensagem de erro para abrir a linha relacionada no ficheiro gerado `.toc` ou `.aux` ficheiro, não existe um caminho para ir do erro até à localização de origem no `.tex` ficheiro. E mesmo que corrija o erro substituindo `&` com `\&` na `.toc` ficheiro, isso não resolve realmente o problema: da próxima vez que compilar o `.tex` ficheiro, o `.toc` ficheiro é regenerado e o mesmo erro será reescrito no `.toc` ficheiro.

![Texstudio-errors-generated-files.gif](/files/bc739450a3fa43db1ab378b7b3b8fae9776dd3d5)

Quando um erro é indicado como proveniente de ficheiros gerados, a forma correta de o resolver é localizar o erro real de origem nos ficheiros-fonte e corrigi-lo aí. As mensagens de erro normalmente incluem informação contextual, algum texto ou código que rodeia o erro, pelo que fazer uma pesquisa textual nos ficheiros-fonte ajudará a localizá-lo. Os próprios erros são muitas vezes comuns: pode procurar alguns erros comuns em [esta página de ajuda](/latex/overleaf-learn-latex-pt/nocoes-basicas-de-latex/05-errors.md), ou na [lista de FAQ do TeX](https://texfaq.org/#errors).

## Primeiro, tente limpar os ficheiros gerados

Por vezes, os erros nos ficheiros gerados são resíduos de uma compilação anterior. Mesmo que tivesse corrigido os erros no seu `.tex` ficheiro e recompilado, os ficheiros gerados, ainda contendo os erros, poderão continuar a ser lidos pelo compilador, produzindo os mesmos erros de antes. Pode tentar eliminar os ficheiros gerados antes de recompilar. Instruções sobre como fazer isto no Overleaf podem ser encontradas [aqui](/latex/overleaf-learn-latex-pt/base-de-conhecimento/028-clearing-the-cache.md).

Se continuar a ver os mesmos erros mesmo depois de eliminar todos os ficheiros gerados e recompilar, é provável que existam erros reais nos seus ficheiros-fonte.

## Fazer de detetive: localizar erros em ficheiros gerados

As secções seguintes oferecem algumas dicas sobre onde procurar esses erros. Vamos usar o seguinte *propositadamente cheio de erros* projeto de exemplo para praticarmos a investigação. Pronto? Vamos lá!

[Abra um *cheio de erros* projeto Overleaf!](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demo+of+LaTeX+compile+errors+reported+from+generated+files\&main_document=main.tex\&snip_uri=https%3A%2F%2Fassets.ctfassets.net%2Fnrgyaltdicpt%2F5qdEqgUidaYDHjOlBoKM7K%2F55395921a114edb36ed3d51d7b1c6edb%2Fdemoerrors.zip) O projeto deverá ter um aspeto semelhante a este 😲:

![Imagem a mostrar erros de um projeto LaTeX](/files/cb526e9bfc874fab7ce9aa29c1e2163ae4aac812)

### Erros de ficheiros .aux

O `.aux` ficheiro contém informação sobre a utilização de `\label{...}` declarações e `\cite{...}` na `.tex` ficheiro, por isso são coisas úteis a verificar.

Vejamos este primeiro erro do nosso projeto de exemplo cheio de erros.

![exemplo de erro num ficheiro .aux devido a uma declaração \label incorreta](/files/946d92dffbcb8859f0169b26cc05e18b78ac45b4)

O erro `Foi inserido \endcsname em falta.` num `\alpha` pode parecer bastante enigmático à primeira vista e parece não ser muito útil na nossa depuração. Mas vemos pelo texto (contexto) da mensagem de erro que está a ocorrer algures perto de algum código que tem `sec:\alpha`, que está associado a alguma etiqueta ou contador numerado 1.1. Portanto, poderemos querer examinar cuidadosamente quaisquer `\label{...}` no nosso `.tex` ficheiros que contenham o excerto `sec:\alpha`.

Deverá em breve chegar à linha 37 do nosso projeto de exemplo:

```latex
\label{sec:\alpha}
```

O argumento passado a `\label{...}` não deve conter quaisquer comandos LaTeX ou sequências de controlo, tais como `\alpha`. Portanto, corrigir a etiqueta para algo como `\label{sec:alpha}`, bem como quaisquer correspondentes `\ref{...}`, irá eliminar este erro.

Aqui está outro erro reportado pelo `.aux` ficheiro, no nosso projeto de exemplo:

![exemplo de erro num ficheiro .aux devido a espaço na chave \cite{...}](/files/2394556a86061243aec7e85e82a0e9b6c8a83b19)

Desta vez o compilador queixa-se de um espaço em branco numa `\citation`; em que a chave começa com “That”. Portanto, quereríamos procurar `\cite{That ...}` no nosso `.tex` ficheiro... e encontramo-la na linha 23:

```latex
... justo \cite{That mandatory talk} eget magna ...
```

As chaves de citação não devem conter caracteres de espaço, por isso os espaços nesta `\cite{...}`, bem como a chave BIBTeX correspondente no `.bib` ficheiro, devem ser removidos.

### Erros de ficheiros .toc

O `.toc` ficheiro contém entradas para `\tableofcontents`. Estas são preenchidas a partir de títulos de secções num documento LaTeX, por exemplo, `\chapter{...}`, `\section{...}`, etc. Portanto, se vir erros reportados a partir de `.toc` ficheiros, seria útil verificar os títulos de secção que contêm texto mencionado na mensagem de erro.

![exemplo de erro num ficheiro .toc devido a & sem escape em \section{...}](/files/e37dda21c46aad19ed7d9ec04ee0e5ad4a3aa2bf)

Isto parece um título de secção que seria numerado “1” e contém o texto `Introdução & Boas-vindas`. Uma pesquisa rápida no `.tex` ficheiro levar-nos-á à linha 12:

```latex
\section{Introduction & Welcome}
```

O `&` não tem escape aqui, por isso precisamos de o alterar para `\&` na `.tex` ficheiro.

Outro exemplo semelhante:

![exemplo de erro num ficheiro .toc devido a comando matemático não estar em modo matemático na chave \section{...}](/files/ba9837c67496701999a95ee7531a71219ec51cf9)

Do mesmo modo, o nosso palpite seria procurar um título de secção que fosse numerado “1.1” e que provavelmente contenha `Definir \alpha`. O nosso palpite acaba por estar correto, na linha 36 do `.tex` ficheiro:

```latex
\subsection{Setting \alpha}
```

`\alpha` é um comando matemático, mas esquecemo-nos de o colocar em modo matemático aqui, por isso precisamos de o corrigir para

```latex
\subsection{Setting $\alpha$}
```

ou

```latex
\subsection{Setting \(\alpha\)}
```

Por vezes, os erros surgem no `.toc` ficheiro devido a erros no código usado para estilizar as entradas no índice:

![exemplo de erro num ficheiro .toc devido a código incorreto ao estilizar a entrada do índice](/files/cd63e5d970bd308e20c7074a25ad216a6b11be72)

Aqui, procurar com `\itshae` levar-nos-á a um erro de escrita na linha 5 do nosso exemplo `.tex`: deveria ser `\itshape` em vez disso. Neste caso, o erro pode ser localizado no preâmbulo do nosso `.tex` ficheiro, por isso podemos prosseguir e corrigi-lo. Mas se estiver a usar um `.cls` ou `.sty` ficheiro fornecido pela sua instituição e suspeitar que os erros se devem a uma configuração incorreta nos ficheiros fornecidos, deverá contactar o autor ou mantenedor do modelo ou pacote para que possam atualizar o modelo.

### Erros de ficheiros .lof e .lot

O `.lof` ficheiro contém entradas para `\listoffigures`, e são preenchidos por `\caption{...}` de `figure` ambientes.

Da mesma forma, o `.lot` ficheiro usa `\caption{...}` de `table` ambientes, para gerar entradas para `\listoftables`.

Portanto, se houver erros LaTeX de `.lof` ou `.lot` ficheiros, deverá verificar o `\caption{...}` que contém os excertos de texto relevantes.

Com base na mensagem de erro aqui, vamos procurar `Efeitos de \alpha e var_coeff` no nosso `\caption{...}`s, especialmente para `figure`s:

![exemplo de erro num ficheiro .lof devido a comando matemático não estar em modo matemático na chave da figura \caption{...}](/files/79a5f71355fb08bd15a32028af0fd6ebb566b197)

e chegamos à linha 19 no nosso `.tex` ficheiro:

```latex
\caption{Effects of \alpha and var_coeff}
```

O `\alpha` deveria ser colocado em modo matemático; e se `var_coeff` se pretende ser um nome de variável, o sublinhado tem de ter escape. Não use `\verb|var_coeff|` porque isto pode ser bastante desastroso em `\caption{...}`também!

```latex
\caption{Effects of $\alpha$ and \texttt{var\_coeff}}
```

Da mesma forma, ao ver este erro, procuraríamos `alguns dados de exemplo com n^i` em `table` `\caption{...}`, com a suspeita de que nos esquecemos de colocar o `n^i` n^i também em modo matemático.

![exemplo de erro num ficheiro .lot devido a expoente não estar em modo matemático na chave da tabela \caption{...}](/files/13550cef0e90d96815f97f85721366ab0396be36)

E assim corrigimos a linha 31

```latex
\caption{Some sample data with n^i}
```

para

```latex
\caption{Some sample data with $n^i$}
```

### Erros de ficheiros .bbl

O `.bbl` ficheiro contém entradas para a lista de referências (bibliografia) e é gerado pelo BIBTeX após processar o `.bib` ficheiro, usando informação de estilo do `.bst` ficheiro. Erros reportados a partir de `.bbl` normalmente têm origem no `.bib` ficheiro.

Aqui está um erro comum que vemos frequentemente no suporte do Overleaf:

![exemplo de erro num ficheiro .bbl devido a & sem escape num ficheiro .bib](/files/e985d689f45f53944c2b08cb0d23bb81ebabfc58)

Procurando `Isto & aquilo` na `.bib` ficheiro do projeto de exemplo levar-nos-á à linha 13, onde percebemos que o `&` deveria ter escape como `\&` ou ser substituído pela palavra `e`.

```bibtex
    title   = {This & That},
```

Os autores encontram frequentemente erros relacionados com caracteres Unicode em `.bbl` (e, por isso, `.bib`) ficheiros—especialmente se as fontes de informação tiverem sido copiadas e coladas de outro lugar:

![exemplo de erro num ficheiro .bbl devido a carácter Unicode não suportado num ficheiro .bib](/files/3c2772f3afdae0be1478d374daa7fa44200c0145)

Copiar e colar o carácter ♣ da mensagem de erro e procurá-lo dentro do `.bib` ficheiro levará à linha 3:

```bibtex
    title   = {Research ♣ Development},
```

Alguns caracteres Unicode não são suportados pelos `latex` e `pdflatex` compiladores. Para evitar o erro, pode tentar [alterar o compilador do seu projeto](/latex/overleaf-learn-latex-pt/base-de-conhecimento/026-changing-compiler.md) para `XeLaTeX` ou `LuaLaTeX`. Mas mesmo assim teria de garantir que o seu projeto é compatível com esses compiladores e que usou um tipo de letra que contenha um glifo para representar ♣, para que seja renderizado corretamente no PDF de saída. Portanto, seria melhor usar os comandos LaTeX relevantes:

```bibtex
    title   = {Research $\clubsuit$ Development},
```

Por vezes, porém, o carácter pode ser muito mais difícil de detetar:

![exemplo de erro num ficheiro .bbl devido a carácter Unicode não suportado e não imprimível num ficheiro .bib](/files/5cf60334a31e943a0b8c211bec64e6ebf837cdad)

Aqui, U+3000 é um [Carácter Unicode `ESPAÇO IDEOGRÁFICO`](https://www.fileformat.info/info/unicode/char/3000/index.htm), e por isso é de facto um espaço em branco. Pode ser difícil copiar este carácter exato da mensagem de erro para o poder procurar no `.bib` ficheiro. Por isso, teremos de tentar outra forma de o localizar, usando uma `\DeclareUnicodeCharacter` para substituir `U+3000` por algo mais visível! Adicione as seguintes linhas no preâmbulo do seu projeto, antes de `\begin{document}`:

```latex
\usepackage{xcolor}
\DeclareUnicodeCharacter{3000}{\textcolor{red}{BAD!!}}
```

Compilar o seu projeto fará então desaparecer o erro; mas deverá procurar cuidadosamente o BAD!! no PDF de saída:

![PDF de saída a substituir U+3000 por BAD!! em vermelho](/files/eb979970a143ae18a96bf991b538f36113e57dca)

Portanto, agora sabemos que o carácter incorreto está entre `de` e `Wondrous`, para o item bibliográfico de “An Author”. Parece bastante inofensivo na linha 5 do `.bib` ficheiro, porque é invisível: mas se voltar a escrever isso `...of Wondrous...` manualmente com a barra de espaços normal, o erro desaparecerá após uma recompilação.

```bibtex
    journal = {Journal of　Wondrous Musings},
```

#### Uma nota sobre biblatex

Se estiver a usar a `biblatex` pacote, então erros semelhantes nos `.bib` ficheiros seriam provavelmente todos reportados como provenientes da `\printbibliography` linha no seu `.tex` ficheiro. O processo de depuração é semelhante: use os pequenos excertos de texto nas mensagens de erro para procurar no seu `.bib` ficheiro para localizar as linhas problemáticas e corrigi-las.

### Erros de ficheiros .bst

`.bst` ficheiros são estilos bibliográficos que o BIBTeX usa para processar e formatar a lista de referências. Se vir erros de `.bst` ficheiros, isso poderá dever-se a erros no `.bst` em si, especialmente se for um ficheiro de estilo muito, muito antigo que já possa não ser compatível com pacotes LaTeX recentes. Mas pode, na realidade, dever-se também a erros no `.bib` ficheiro. O erro mais comum nesta categoria parece-se com isto:

![Bst-error-example-01.png](/files/a2eab95750af1df0b3eafc9f8799cac49a8589da)

A entrada com a chave BIBTeX `Someone:etal:2008` tem o `autor` campo na linha 12 do `.bib` ficheiro:

```bibtex
    author  = {Strange Someone, Night Stranger, and Random Person},
```

Num `.bib` ficheiro, [uma lista de vários nomes](/latex/overleaf-learn-latex-pt/referencias-e-citacoes/01-bibliography-management-with-bibtex.md#multiple-authors) deve ser separada por `e`, e não por vírgulas nem `&`. Portanto, este `autor` campo deve ser corrigido para

```bibtex
    author  = {Strange Someone and Night Stranger and Random Person},
```

### Erros de ficheiros .ttt e .fff

Estes tipos de ficheiro só são gerados se carregar o [`endfloat` pacote](https://www.ctan.org/pkg/endfloat), que é usado para obrigar todos os ambientes de tabelas e figuras a serem movidos para o fim do documento, de acordo com os requisitos de algumas revistas académicas durante a submissão de artigos.

Para ver exemplos de erros destes ficheiros gerados, descomente a linha 3 `\usepackage{endfloat}` do `.tex` ficheiro no nosso projeto de exemplo.

![Ttt-error-example-01.png](/files/2b094f27e9cd18ac7e48d6c1a130c232abe7f11a)

O `.ttt` ficheiro contém conteúdo de todos os `table` ambientes no documento, por isso procuraríamos `dummy & data` na `.tex` ficheiro, prestando atenção às tabelas. Chegaríamos à linha 29 no `.tex` ficheiro, onde vemos o problema: temos três colunas, uma a mais do que as duas declaradas. Portanto, talvez seja necessário eliminar uma coluna extra; ou deveríamos inserir `\\` depois de `dummy` para iniciar uma nova linha; ou talvez tivéssemos a intenção de declarar três colunas `c | c | c` de facto!

![Fff-error-example-01.png](/files/2351e94df3d397a3360e3b594b30650257aa5360)

Da mesma forma, o `.fff` ficheiro contém conteúdo de todos os `figure` ambientes, e procurar esse erro de escrita `\includegraphcs` levar-nos-ia à linha 18 do `.tex` ficheiro, onde o podemos corrigir para `\includegraphics`.

## Leitura adicional

* [Como é que o Overleaf compila o meu projeto?](/latex/overleaf-learn-latex-pt/base-de-conhecimento/064-how-does-overleaf-compile-my-project.md)
* [Erros comuns do LaTeX](/latex/overleaf-learn-latex-pt/nocoes-basicas-de-latex/05-errors.md)
* [lista de FAQ do TeX](https://texfaq.org/#errors)


---

# 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/base-de-conhecimento/066-how-to-find-and-fix-errors-reported-in-generated-files.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.
