> 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/erros-do-latex/25-missing-inserted.md).

# Falta $ inserido

## Como corrigir este erro

Este erro pode ser desencadeado de várias maneiras e, especialmente para quem é novo no LaTeX, nem sempre é *imediatamente* óbvio por que aconteceu ou, mais importante, como resolvê-lo. Começaremos com uma visão geral das *gerais* condições que desencadeiam este erro e depois listar algumas das causas mais comuns e como corrigi-las. As [partes posteriores deste artigo](#background-to-the-missing-inserted-error) oferecem material mais aprofundado para leitores que desejem ampliar sua compreensão.

**Nota**: Neste artigo usamos os termos “TeX”, “LaTeX” e “motor TeX”, mas se não tiver a certeza dos seus diferentes significados, pode descobrir no artigo do Overleaf [O que há num nome: um guia para as muitas variantes de TeX](/latex/overleaf-learn-latex-pt/artigos-aprofundados/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md).

### As principais causas de Missing $ inserted

Há três razões principais pelas quais (La)TeX gera este erro:

1. Você cometeu um erro explícito na sua marcação matemática, como escrever `$y=f(x)$$`—veremos outros exemplos mais adiante neste artigo.
2. TeX detectou um caractere ou comando projetado para ser usado **apenas** quando o TeX está a compor matemática, mas esse caractere ou comando foi usado quando o TeX estava **contém** a compor matemática.
   * **Tecnicamente falando**: TeX detectou um caractere ou comando projetado para funcionar *dentro* [*do modo matemático*](#math-mode) mas você tentou usá-lo *fora* [*do modo matemático*](#math-mode). Para esclarecer a questão com “caracteres” projetados para funcionar em [do modo matemático](#math-mode), o que realmente queremos dizer é usar caracteres atribuídos a certos [códigos de categoria](/latex/overleaf-learn-latex-pt/mais-topicos/43-table-of-tex-category-codes.md) projetados para operar dentro de material matemático.
3. TeX detectou um comando projetado para ser usado apenas quando o TeX está **contém** a compor matemática, mas esse comando foi detectado (usado) enquanto o TeX **estava** a compor material matemático.
   * **Tecnicamente falando**: TeX detectou um comando projetado para funcionar *fora* [*do modo matemático*](#math-mode) mas você tentou usá-lo *dentro* [*do modo matemático*](#math-mode).

### Exemplos de erros e suas soluções

Os exemplos a seguir demonstram algumas formas pelas quais o `Faltou inserir $` erro pode ser desencadeado, além de fornecer soluções para resolvê-lo.

#### Comandos de símbolos devem ser usados no modo matemático

Muitos símbolos matemáticos no LaTeX são acessados usando comandos que só devem ser usados quando o TeX está a compor matemática; isto é, quando o TeX está no modo matemático.

Exemplos de comandos de símbolos comumente usados incluem os de letras gregas: `\alpha` $$(\alpha)$$, `\beta` $$(\beta)$$, `\gamma` ($$\gamma)$$, `\delta` $$(\delta)$$, `\Delta` $$(\Delta)$$ e assim por diante. Muitos outros comandos do LaTeX, como os de modificadores: `\vec{x}` $$(\vec{x})$$, `\tilde{x}` $$(\tilde{x})$$, `\hat{x}` $$(\hat{x})$$ etc., também são projetados para uso no modo matemático.

Usar modificadores, comandos de símbolos — e muitos outros comandos relacionados com matemática — fora da composição de conteúdo matemático gerará um `Faltou inserir $` erro e forçará o compilador a entrar no modo matemático.

O exemplo a seguir mostra o que acontece se você tentar usar o comando `\alpha` $$(\alpha)$$ fora do modo matemático:

```latex
Escrever \verb|\alpha| fora do modo matemático gerará um erro: \alpha e, portanto, este texto não será composto corretamente...
```

[Abra este ***gerador de erro*** exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Incorrect+use+of+LaTeX+symbols\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AWriting+%5Cverb%7C%5Calpha%7C+outside+math+mode+will+generate+an+error%3A+%5Calpha+and+so+this+text+will+not+be+typeset+correctly...%0A%5Cend%7Bdocument%7D)

A imagem a seguir mostra parte da saída produzida pelo código LaTeX acima, demonstrando o erro causado por usar `\alpha` fora do modo matemático:

![\alpha fora do modo matemático](/files/483941c411c330fdd3805662a4fab37174f0e8b4)

**Corrigindo erros causados por comandos de símbolos do LaTeX**

Para usar modificadores ou símbolos matemáticos gregos dentro de frases, eles devem sempre ser envoltos em sinais de dólar simples `$...$`, ou `\(...\)` sintaxe do LaTeX, para que o TeX os processe no *modo matemático em linha*, como mostrado abaixo.

```latex
Ao escrever a letra grega alfa numa frase, ela deve ser escrita como \verb|$\alpha$| para gerar $\alpha$, ou como \verb|\(\alpha\)|, que também gera \(\alpha\).

Ao escrever um vetor x numa frase, ele deve ser escrito como \verb|$\vec{x}$| para produzir $\vec{x}$ ou como \verb|\(\vec{x}\)|, que também produz \(\vec{x}\).
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Using+LaTeX+symbols\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AWhen+writing+the+Greek+letter+alpha+in+a+sentence%2C+it+must+be+written+as+%5Cverb%7C%24%5Calpha%24%7C+to+generate+%24%5Calpha%24%2C++or+as+%5Cverb%7C%5C%28%5Calpha%5C%29%7C+which+also+generates+%5C%28%5Calpha%5C%29.%0A+%0AWhen+writing+a+vector+x+in+a+sentence%2C+it+must+be+written+as+%5Cverb%7C%24%5Cvec%7Bx%7D%24%7C+to+produce+%24%5Cvec%7Bx%7D%24+or+as+%5Cverb%7C%5C%28%5Cvec%7Bx%7D%5C%29%7C+which+also+yields+%5C%28%5Cvec%7Bx%7D%5C%29.%0A%5Cend%7Bdocument%7D)

**Uma lista de símbolos do LaTeX**

O artigo do Overleaf [Lista de letras gregas e símbolos matemáticos](/latex/overleaf-learn-latex-pt/matematica/11-list-of-greek-letters-and-math-symbols.md) fornece uma lista de símbolos exclusivos do modo matemático, juntamente com links para outros recursos úteis.

#### Usar caracteres apenas do modo matemático fora do modo matemático

Tradicionalmente, o TeX/LaTeX reserva certos caracteres comuns para uso dentro do modo matemático:

* `^`: reservado para criar expoentes
* `_`: reservado para criar subscritos
* `$`: reservado para iniciar/parar o modo matemático

Usá-los diretamente fora do modo matemático gera erros.

* Para digitar `$` fora do modo matemático use `\$`
* Para digitar `_` fora do modo matemático use `\_`
* Várias maneiras de digitar `^` fora do modo matemático. Uma lista é fornecida em [tex.stackexchange](https://tex.stackexchange.com/a/77647)

**Usar sublinhados fora do modo matemático**

Uma causa comum do `Faltou inserir $` erro é usar sublinhados (`_`), um caractere do modo matemático, fora do modo matemático — como sublinhados presentes em nomes de ficheiros: um exemplo disso é mostrado abaixo.

```latex
Usar um caractere matemático, como um sublinhado, num nome de ficheiro: math_example.tex.
```

[Abra este ***gerador de erros*** código no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+code+error\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AUsing+a+math+character%2C+such+as+an+underscore%2C+in+a+file+name%3A+math_example.tex.%0A%5Cend%7Bdocument%7D)

Como o caractere sublinhado é atribuído [código de categoria 8](/latex/overleaf-learn-latex-pt/mais-topicos/43-table-of-tex-category-codes.md) ele é reservado para criar subscritos quando o motor TeX está no modo matemático. Consequentemente, quando (La)TeX detecta o `_` no nome do ficheiro `math_example.tex` ele faz isso fora do modo matemático, o que desencadeia um erro e resulta numa composição incorreta do texto subsequente:

$$\text{Using a math character, such as an underscore, in a file name: math}\_example.tex.$$

O `_` caractere (tecnicamente, o seu código de categoria 8) desencadeia um erro e faz o TeX entrar no modo matemático: a letra `e` que vem imediatamente após o `_` é tratada como um caractere a ser composto como subscrito. O processamento então continua no modo matemático, resultando no texto em itálico e, além disso, não há aqui maneira de o TeX sair graciosamente do modo matemático, o que desencadeará erros adicionais.

Para evitar este erro específico, você deve sempre usar `_` no modo matemático — isto é, dentro `$..$`, `$$...$$` ou, preferencialmente, dentro da notação do LaTeX `\(...\)` e `\[...\]`.

Fora do modo matemático, você precisa escrever `\_` para usar ou compor um sublinhado, como mostrado na versão corrigida do exemplo:

```latex
Para usar o caractere sublinhado do modo matemático num nome de ficheiro, escreva-o assim: math\_example.tex.
```

[Abra este ***versão corrigida*** no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Fixed+math+code+error\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0ATo+use+the+math-mode+underscore+character+in+a+file+name%2C+write+it+like+this%3A+math%5C_example.tex.%0A%5Cend%7Bdocument%7D)

**Usar sublinhados em URLs**

Você também pode encontrar este erro ao tentar compor URLs com sublinhados, por ex. `[https://www.overleaf.com/learn/latex/Subscripts_and_superscripts](../02-mathematics/02-subscripts-and-superscripts.md)`. Em vez de escapar cada caractere sublinhado, talvez queira carregar o `url` ou `hyperref` pacote, e depois usar o `\url` comando assim:

```latex
\documentclass{article}
\usepackage{url}
\begin{document}
\url{https://www.overleaf.com/learn/latex/Subscripts_and_superscripts}
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=URL+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Burl%7D+%0A%5Cbegin%7Bdocument%7D%0A%5Curl%7Bhttps%3A%2F%2Fwww.overleaf.com%2Flearn%2Flatex%2FSubscripts_and_superscripts%7D%0A%5Cend%7Bdocument%7D)

**Sublinhados em URLs de ficheiros .bib**

Se tais URLs estiverem no seu arquivo bibliográfico `.bib` arquivo, fazendo com que erros sejam relatados a partir do `.bbl` arquivo, então certifique-se de usar os `url` ou `doi` campos para registrar esses campos no `.bib` ficheiro:

```
doi = {10.1007/978-94-015-6859-3_4},
url = {https://abc.com/latest_news_1.html}
```

e carregue o `url` ou `hyperref` pacote no preâmbulo, se necessário. A maioria dos arquivos de estilo bibliográfico então poderá envolver automaticamente esses valores em um `\url{...}` comando.

#### Usar comandos não permitidos no modo matemático

Vários comandos TeX integrados de baixo nível (chamados *primitivos*) não são permitidos no modo matemático e o seu uso no modo matemático acionará o `Faltou inserir $` erro. Embora a maioria dos usuários provavelmente não use esses comandos no código diário do LaTeX, fazemos uma observação aqui porque é possível que eles estejam contidos em comandos do LaTeX (macros) que sejam usados no modo matemático.

O exemplo a seguir tenta usar o comando TeX `\vskip` dentro de material matemático. Isto não é permitido e gera um erro.

```latex
\documentclass{article}
\begin{document}
Quero adicionar algum espaço, mas esta não é a maneira de o fazer...
\[y=f(x) \vskip5pt z=f(y)\]
$y=f(x) \vskip5pt z=f(y)$
\end{document}
```

[Abra este ***gerador de erros*** código no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+demo+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AI+want+to+add+some+space%2C+but+this+is+not+the+way+to+do+it...%0A%5C%5By%3Df%28x%29+%5Cvskip5pt+z%3Df%28y%29%5C%5D%0A%24y%3Df%28x%29+%5Cvskip5pt+z%3Df%28y%29%24%0A%5Cend%7Bdocument%7D)

Outros comandos TeX (primitivos) não permitidos quando o TeX está no modo matemático incluem `\par`, `\hrule`, `\unvbox`, `\unvcopy` e `\valign`.

#### Linhas em branco na matemática

```latex
\documentclass{article}
\begin{document}
\begin{equation}
y=x^3,

z=x^3
\end{equation}
\end{document}
```

[Abra este ***gerador de erros*** código no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+demo+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bequation%7D%0Ay%3Dx%5E3%2C%0A%0Az%3Dx%5E3%0A%5Cend%7Bequation%7D%0A%5Cend%7Bdocument%7D)

**Causa**: A linha em branco entre as fórmulas é convertida num `\par` comando que não é permitido no modo matemático. Você também pode ver isso escrevendo

```latex
\documentclass{article}
\begin{document}
\[y=x^3,\par z=x^3\]
\end{document}
```

[Abra este ***gerador de erros*** código no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+demo+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5C%5By%3Dx%5E3%2C%5Cpar+z%3Dx%5E3%5C%5D%0A%5Cend%7Bdocument%7D)

Para corrigir isto, apague as linhas em branco ou comente-as:

```latex
\documentclass{article}
\begin{document}
\begin{equation}
y=x^3,
% Isto suprimirá a linha em branco
z=x^3
\end{equation}
\end{document}
```

[Abra este ***versão corrigida*** no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+demo+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Bequation%7D%0Ay%3Dx%5E3%2C%0A%25+This+will+suppress+the+blank+line%0Az%3Dx%5E3%0A%5Cend%7Bequation%7D%0A%5Cend%7Bdocument%7D)

#### Usar $ dentro de ambientes matemáticos

Alguns ambientes do LaTeX, como os `align` e `equation` ambientes, não exigem que a matemática seja envolta em `$` sinais de dólar, ou o uso da sintaxe matemática do LaTeX: `\(...\)` ou `\[...\]`. O código LaTeX que implementa esses ambientes trata de entrar e sair do modo matemático.

O exemplo a seguir mostra o uso do `$` sinal de dólar dentro de um ambiente `amsmath` `align` ambiente, o que desencadeia um `Faltou inserir $` erro, entre muitos outros....

```latex
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
$2x - 5y &=  8 \\
3x + 9y &=  -12$
\end{align*}
\end{document}
```

[Abra este ***gerador de erros*** código no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+demo+4\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamsmath%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Balign%2A%7D%0A%242x+-+5y+%26%3D++8+%5C%5C+%0A3x+%2B+9y+%26%3D++-12%24%0A%5Cend%7Balign%2A%7D%0A%5Cend%7Bdocument%7D)

A forma correta de escrever estas equações é:

```latex
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
2x - 5y &=  8 \\
3x + 9y &=  -12
\end{align*}
\end{document}
```

[Abra este ***versão corrigida*** no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+demo+5\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%7Bamsmath%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Balign%2A%7D%0A2x+-+5y+%26%3D++8+%5C%5C+%0A3x+%2B+9y+%26%3D++-12%0A%5Cend%7Balign%2A%7D%0A%5Cend%7Bdocument%7D)

## Contexto do erro Missing $ inserted

A secção seguinte é para leitores que desejam compreender melhor as razões por trás do erro `Faltou inserir $`. Não é *essencial* leitura, mas pode ajudá-lo a encontrar e corrigir erros.

### Não há sinais de $ em falta, mas ainda assim obtenho o erro

Em algumas circunstâncias, o `Faltou inserir $` erro pode ser muito confuso porque o seu código LaTeX pode não ter realmente nenhum problema com *caracteres visivelmente em falta* `$` . Por exemplo, o fragmento LaTeX $$\verb|$$y=f(x)\par$$|$$ superficialmente parece correto: os $$\verb|$$pares |$$ estão equilibrados, mas irá desencadear o “`$ em falta`”. Aqui, isso deve-se ao `\par` comando que não é permitido no modo matemático:

```latex
\documentclass{article}
\begin{document}
Este exemplo gera o erro \verb|Missing $ inserted|:
$$y=f(x)\par$$
\end{document}
```

[Abra isto para ver um erro Missing $ inserted](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Math+error+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AThis+example+generates+the+error+%5Cverb%7CMissing+%24+inserted%7C%3A+%0A%24%24y%3Df%28x%29%5Cpar%24%24%0A%5Cend%7Bdocument%7D)

O código LaTeX acima, na verdade, desencadeia uma *cascata* de erros, como mostrado abaixo, portanto claramente você não deve usar `\par` dentro da matemática!

```
! Missing $ inserted.
<inserted text>
                $
l.12 $$y=f(x)\par
                 $$
Inseri um símbolo de início/fim de matemática porque penso
que você se esqueceu de um. Prossiga, de dedos cruzados.

! A matemática em exibição deve terminar com $$.
<para ser lido de novo>
                   \par
l.12 $$y=f(x)\par
                 $$
O `$' que acabei de ver supostamente corresponde a um `$$' anterior.
Portanto, vou presumir que você digitou `$$' nas duas vezes.

! Missing $ inserted.
<inserted text>
                $
l.13 \end{document}

Inseri um símbolo de início/fim de matemática porque penso
que você se esqueceu de um. Prossiga, de dedos cruzados.

! A matemática em exibição deve terminar com $$.
<para ser lido de novo>
                   \par
l.13 \end{document}

O `$' que acabei de ver supostamente corresponde a um `$$' anterior.
Portanto, vou presumir que você digitou `$$' nas duas vezes.
```

Quando o `Faltou inserir $` quando ocorre o erro, o software do motor TeX está a tentar recuperar e “voltar aos trilhos” para poder continuar a processar após o ponto em que o erro ocorreu. A secção [Avançado: uma explicação do mecanismo de recuperação de erros do TeX](#advanced-an-explanation-of-texs-error-recovery-mechanism) ajudará você a entender por que essa cascata de erros surge devido às tentativas do TeX de corrigir o erro inicial.

### Sobre os modos, e quando

Internamente, os motores TeX operam usando três “estados de espírito”, chamados *modos*, que dependem do tipo de material que um motor TeX está *atualmente* a compor. O modo em que um motor TeX se encontra em qualquer momento durante a composição é chamado seu *atual* modo, que muda ao longo do processo de composição do conteúdo do seu documento LaTeX.

Para cada um dos modos de um motor TeX há certos comandos e caracteres (ou, mais corretamente, códigos de categoria) que são “incompatíveis” com o modo atual do TeX: eles não devem ser usados enquanto o TeX estiver nesse modo específico. Se você tentar usar esses caracteres ou comandos inadequados, o TeX emitirá um erro como `Faltou inserir $` para lhe dizer que algo está errado.

#### Modo matemático

Este erro `Faltou inserir $` está relacionado ao *do modo matemático*—isto é, o modo em que um motor TeX está quando você pede ao LaTeX para compor alguma matemática.

Só para completar, observaremos que há *dois* tipos de modo matemático, refletindo a criação de matemática em linha ou em exibição:

* modo matemático em linha
* modo matemático em exibição

O TeX precisa desses dois modos matemáticos diferentes porque aplica regras diferentes de espaçamento, tamanhos de símbolos etc. ao compor matemática destinada a linha ou a exibição.

#### Acionando os modos matemáticos do TeX

Há várias maneiras de fazer um motor TeX *entrar* e depois *sair de* modo matemático.

* Você pode usar marcação explícita como:
  * Sintaxe do LaTeX: `\(...\)` para *entrar* `\(` então *sair de* `\)` modo matemático em linha ou `\[...\]` para *entrar* `\[` depois sair de `\]` modo matemático em exibição;
  * sintaxe (histórica) do TeX: `$...$` para entrar (primeiro `$`) depois sair (segundo `$`) modo matemático em linha ou `$$...$$` para entrar (primeiro `$$` *par*) depois sair (segundo `$$` *par*) modo matemático em exibição;
* ou qualquer um dos ambientes matemáticos do LaTeX:
  * `\begin{align}...\end{align}` etc. Nos bastidores, esses ambientes cuidam de entrar e sair do modo matemático.

A própria *texto* da mensagem `Faltou inserir $` é *incorporados no* (codificada “à força” no) software do motor TeX, é por isso que você ainda verá `Missing $` mesmo que você não esteja usando `$` caracteres para compor matemática e use apenas sintaxe do LaTeX para marcar a matemática no seu documento. Isso pode ser confuso para novos usuários do LaTeX, mas há pouco que possa ser feito para alterar o texto desta mensagem de erro sem modificar o código-fonte dos motores TeX!

#### Macros: testando o modo matemático

É possível testar se o TeX está atualmente no modo matemático usando o comando primitivo `\ifmmode`; dessa forma você pode escrever macros cujo comportamento pode se adaptar para evitar gerar erros relacionados ao modo. Aqui está um exemplo muito básico para demonstrar o princípio, que imprime `Sim.` ou `Não.` dependendo de o TeX estar ou não no modo matemático no momento de “executar” a macro.

```latex
\documentclass{article}
\begin{document}
\newcommand{\mytest}{\ifmmode \mathrm{Yes}\else No\fi.}

A macro está sendo usada no modo matemático? $\mytest$

A macro está sendo usada no modo matemático? $$\mytest$$

A macro está sendo usada no modo matemático? \(\mytest\)

A macro está sendo usada no modo matemático? \[\mytest\]

A macro está sendo usada no modo matemático? \mytest
\end{document}
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Testing+for+math+mode\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cnewcommand%7B%5Cmytest%7D%7B%5Cifmmode+%5Cmathrm%7BYes%7D%5Celse+No%5Cfi.%7D%0A%0AIs+the+macro+being+used+in+math+mode%3F+%24%5Cmytest%24%0A%0AIs+the+macro+being+used+in+math+mode%3F+%24%24%5Cmytest%24%24%0A%0AIs+the+macro+being+used+in+math+mode%3F+%5C%28%5Cmytest%5C%29+%0A%0AIs+the+macro+being+used+in+math+mode%3F+%5C%5B%5Cmytest%5C%5D%0A%0AIs+the+macro+being+used+in+math+mode%3F+%5Cmytest%0A%5Cend%7Bdocument%7D)

O gráfico a seguir mostra a saída produzida pelo exemplo acima:

![Macro LaTeX para testar o modo matemático](/files/44009a2c4983b00edcac7e43b6229908669db271)

## Avançado: uma explicação do mecanismo de recuperação de erros do TeX

A mensagem de erro `Faltou inserir $` não é gerada pelo Overleaf, pelo LaTeX ou pelos pacotes LaTeX; na verdade, ela tem origem *no programa executável* responsável por compor o seu documento LaTeX: esse programa executável é chamado de TeX *engine*—você pode pensar nele como “conduzindo” o processo de composição.

No código-fonte do software TeX, o seu autor (Donald Knuth) faz esta observação sobre o código responsável por gerar o `Faltou inserir $` erro:

> Aqui está uma lista de casos em que o usuário provavelmente entrou ou saiu do modo matemático por engano. O TeX inserirá um sinal de dólar e fará uma nova leitura do token atual.

No cerne do `Faltou inserir $` erro está o TeX a detetar “algo” que não deveria ter sido usado dentro do modo matemático, ou “algo” expressamente projetado para composição matemática sendo usado fora do modo matemático.

A tarefa diante do TeX é: Como recupero disto? O TeX faz exatamente o que Knuth escreve: insere um sinal de dólar e faz nova leitura do token atual — um [“token”](/latex/overleaf-learn-latex-pt/artigos-aprofundados/53-what-is-a-tex-token.md) é o valor numérico interno (inteiro) do TeX que representa o caractere ou comando que acabou de ler. No entanto, devido ao contexto preciso do erro, essa estratégia pode ou não ser bem-sucedida — como o texto do erro continua a dizer: “Prossiga, de dedos cruzados.”!

### Exemplo prático

Vamos explorar os comentários de Knuth observando mais de perto o exemplo a seguir: $$\verb|$y=f(x)$$\vskip3pt|$$. Se você abrir o código abaixo, verá que ele desencadeia o erro `Faltou inserir $`.

```latex
Escrever \verb|$y=f(x)$$\vskip3pt| produz...$y=f(x)$$\vskip3pt Começar nova linha...
```

[Abra este exemplo no Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=A+missing+%24+inserted+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cbegin%7Bdocument%7D%0AWriting+%5Cverb%7C%24y%3Df%28x%29%24%24%5Cvskip3pt%7C+produces...%24y%3Df%28x%29%24%24%5Cvskip3pt+Start+new+line...%0A%5Cend%7Bdocument%7D)

Para revisar por que isso desencadeia um erro, vamos escrever subscritos para identificar cada $$\verb|$|$$ na expressão para obter $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}\verb|$|*{\mathtt3}\verb|\vskip3pt|$$. O TeX é capaz de processar corretamente a primeira parte $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}$$ que é tratada como um trecho de matemática em linha formatado corretamente, produzindo $$y=f(x)$$. Imediatamente após processar $$\verb|$|*{\mathtt2}$$ o TeX sai temporariamente do modo matemático em linha — no nosso exemplo, estamos criando matemática em linha num parágrafo, então ele entra brevemente no chamado *modo horizontal*.

É o que acontece em seguida que desencadeia o erro. O TeX continua a processar o $$\verb|$|\_{\mathtt3}$$ o que faz o TeX reentrar no modo matemático em linha. O TeX agora lê o próximo token, que é o $$\verb|\vskip|$$ comando — ainda não leu o $$\verb|3pt|$$. Neste ponto, o TeX vê $$\verb|\vskip|$$ mas está no modo matemático em linha: $$\verb|\vskip|$$ não é permitido ali, então aciona o processo de tratamento de erros do TeX, conforme descrito por Knuth:

> O TeX inserirá um sinal de dólar e fará nova leitura do token atual.

Aqui, o token atual é o $$\verb|\vskip|$$ comando, então o que o TeX faz é colocar um *novo* `$` em sua entrada; vamos chamá-lo de $$\verb|$|*{\mathtt4}$$. Neste ponto, o TeX ainda está no modo matemático em linha, mas agora volta a ler o equivalente a $$\verb|$|*{\mathtt4}\verb|\vskip|$$ que é lido no modo matemático em linha. O $$\verb|$|\_{\mathtt4}$$, inserido pelo próprio TeX, agora *fecha* o modo matemático em linha atual e o TeX prossegue para ler o $$\verb|\vskip|$$ comando *fora* modo matemático em linha — aqui, o TeX está num parágrafo, então o $$\verb|\vskip3pt|$$ faz com que o parágrafo atual termine e $$\verb|3pt|$$ o espaço colocado depois dele.


---

# 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/erros-do-latex/25-missing-inserted.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.
