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

# Saknar $ infogat

## Hur du åtgärdar detta fel

Detta fel kan utlösas på olika sätt och, särskilt för dem som är nya inom LaTeX, är det inte alltid *direkt* uppenbart varför det inträffade, eller, ännu viktigare, hur man löser det. Vi börjar med en översikt över de *allmänna* omständigheter som utlöser detta fel och listar sedan några av de vanligaste orsakerna och hur man åtgärdar dem. De [senare delarna av denna artikel](#background-to-the-missing-inserted-error) ger mer fördjupat material för läsare som vill bredda sin förståelse.

**Obs**: I denna artikel använder vi termerna “TeX”, “LaTeX” och “TeX-motor”, men om du inte är säker på deras olika betydelser kan du läsa mer i Overleaf-artikeln [Vad finns i ett namn: En guide till TeX:s många varianter](/latex/sv/fordjupade-artiklar/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md).

### De främsta orsakerna till Missing $ inserted

Det finns tre huvudorsaker till att (La)TeX genererar detta fel:

1. Du har gjort ett explicit fel i din matematiska markering, till exempel genom att skriva `$y=f(x)$$`—vi tittar på andra exempel senare i artikeln.
2. TeX har upptäckt ett tecken eller ett kommando som är avsett att användas **endast** när TeX sätter matematiskt material, men det tecknet eller kommandot har använts när TeX var **inte** i färd med att sätta matematiskt material.
   * **Tekniskt sett**: TeX upptäckte ett tecken eller ett kommando som är avsett att fungera *inne i* [*matematikläge*](#math-mode) men du har försökt använda det *utanför* [*matematikläge*](#math-mode). För att förtydliga problemet med “tecken” som är avsedda att fungera i [matematikläge](#math-mode), men det vi egentligen menar är att använda tecken som tilldelats vissa [kategorikoder](/latex/sv/fler-amnen/43-table-of-tex-category-codes.md) som är avsedda att användas inne i matematiskt material.
3. TeX har upptäckt ett kommando som är avsett att användas endast när TeX är **inte** sätter matematik, men det kommandot upptäcktes (användes) medan TeX **var** satte matematiskt material.
   * **Tekniskt sett**: TeX upptäckte ett kommando som är avsett att fungera *utanför* [*matematikläge*](#math-mode) men du har försökt använda det *inne i* [*matematikläge*](#math-mode).

### Exempel på fel och deras lösningar

Följande exempel visar några sätt på vilka `Saknat $ infogat` felet kan utlösas, tillsammans med lösningar för att åtgärda felet.

#### Symbolkommandon måste användas i matematikläge

Många matematiska symboler i LaTeX nås via kommandon som endast får användas när TeX sätter matematik; det vill säga när TeX är i matematikläge.

Exempel på vanliga symbolkommandon är de för grekiska bokstäver: `\alpha` $$(\alpha)$$, `\beta` $$(\beta)$$, `\gamma` ($$\gamma)$$, `\delta` $$(\delta)$$, `\Delta` $$(\Delta)$$ och så vidare. Många andra LaTeX-kommandon, såsom de för modifierare: `\vec{x}` $$(\vec{x})$$, `\tilde{x}` $$(\tilde{x})$$, `\hat{x}` $$(\hat{x})$$ osv., är också avsedda för användning i matematikläge.

Att använda modifierare, symbolkommandon — och många andra matematikrelaterade kommandon — utanför sättning av matematiskt innehåll kommer att generera ett `Saknat $ infogat` fel och tvinga kompilatorn att gå in i matematikläge.

Följande exempel visar vad som händer om du försöker använda kommandot `\alpha` $$(\alpha)$$ utanför matematikläge:

```latex
Att skriva \verb|\alpha| utanför matematikläge kommer att generera ett fel: \alpha och därför kommer denna text inte att sättas korrekt...
```

[Öppna detta ***felalstrande*** exempel i 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)

Följande bild visar en del av utmatningen som produceras av LaTeX-koden ovan, och demonstrerar felet som `\alpha` orsakas av att använda

![\alpha utanför matematikläge](/files/be7ca4588c34f0cc6f24e06fb94197faf2a62507)

**Åtgärda fel som orsakas av LaTeX-symbolkommandon**

För att använda modifierare eller grekiska matematiksymboler i meningar måste de alltid omslutas av enkla dollartecken `$...$`, eller LaTeX:s `\(...\)` syntax, för att TeX ska behandla dem i *inline matematikläge*, som visas nedan.

```latex
När du skriver den grekiska bokstaven alfa i en mening måste den skrivas som \verb|$\alpha$| för att ge $\alpha$,  eller som \verb|\(\alpha\)| vilket också ger \(\alpha\).

När du skriver en vektor x i en mening måste den skrivas som \verb|$\vec{x}$| för att ge $\vec{x}$ eller som \verb|\(\vec{x}\)| vilket också ger \(\vec{x}\).
```

[Öppna detta exempel i 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)

**En lista över LaTeX-symboler**

Overleaf-artikeln [Lista över grekiska bokstäver och matematiska symboler](/latex/sv/matematik/11-list-of-greek-letters-and-math-symbols.md) innehåller en lista över symboler som endast används i matematikläge, tillsammans med länkar till fler användbara resurser.

#### Att använda tecken som endast får användas i matematikläge utanför matematikläge

Traditionellt reserverar TeX/LaTeX vissa vanliga tecken för användning i matematikläge:

* `^`: reserverad för att skapa exponenter
* `_`: reserverad för att skapa nedsänkningar
* `$`: reserverad för att starta/avsluta matematikläge

Att använda dem direkt utanför matematikläge utlöser fel.

* För att skriva `$` utanför matematikläge använd `\$`
* För att skriva `_` utanför matematikläge använd `\_`
* Flera sätt att skriva `^` utanför matematikläge. En lista finns på [tex.stackexchange](https://tex.stackexchange.com/a/77647)

**Att använda understreck utanför matematikläge**

En vanlig orsak till `Saknat $ infogat` felet är att använda understreck (`_`), ett tecken för matematikläge, utanför matematikläge — till exempel understreck i filnamn: ett exempel på detta visas nedan.

```latex
Att använda ett matematiskt tecken, såsom ett understreck, i ett filnamn: math_example.tex.
```

[Öppna detta ***felgenererande*** kod på 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)

Eftersom understreckstecknet tilldelas [kategorikod 8](/latex/sv/fler-amnen/43-table-of-tex-category-codes.md) är det reserverat för att skapa nedsänkningar när TeX-motorn är i matematikläge. Följaktligen, när (La)TeX upptäcker `_` i filnamnet `math_example.tex` gör den det utanför matematikläge, vilket utlöser ett fel och leder till felaktig sättning av efterföljande text:

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

Den `_` tecken (tekniskt sett dess kategorikod 8) utlöser ett fel och får TeX att gå in i matematikläge: bokstaven `e` som följer direkt efter `_` behandlas som ett tecken som ska sättas som en nedsänkning. Bearbetningen fortsätter sedan i matematikläge, vilket resulterar i den kursiverade texten och dessutom finns det här inget sätt för TeX att på ett smidigt sätt lämna matematikläge, vilket kommer att utlösa ytterligare fel.

För att undvika just detta fel måste du alltid använda `_` i matematikläge — det vill säga inne i `$..$`, `$$...$$` eller, helst, inne i LaTeX:s notation `\(...\)` och `\[...\]`.

Utanför matematikläge måste du skriva `\_` för att använda eller sätta ett understreck, som visas i den korrigerade versionen av exemplet:

```latex
För att använda understreckstecknet för matematikläge i ett filnamn, skriv det så här: math\_example.tex.
```

[Öppna detta ***korrigerad version*** i 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)

**Att använda understreck i URL:er**

Du kan också stöta på detta fel när du försöker sätta URL:er med understreck, t.ex. `[https://www.overleaf.com/learn/latex/Subscripts_and_superscripts](../02-mathematics/02-subscripts-and-superscripts.md)`. Istället för att maskera varje understreckstecken kanske du vill ladda `url` eller `hyperref` paketet och sedan använda `\url` kommandot så här:

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

[Öppna detta exempel i 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)

**Understreck i URL:er i .bib-filer**

Om sådana URL:er finns i din bibliografi `.bib` fil, vilket gör att fel rapporteras från `.bbl` filen, se då till att du använder `url` eller `doi` fälten för att registrera dessa fält i `.bib` fil:

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

och ladda `url` eller `hyperref` paketet i din preambel, om det behövs. De flesta bibliografistilfiler kommer då att kunna omsluta dessa värden automatiskt i en `\url{...}` kommandot.

#### Att använda kommandon som inte är tillåtna i matematikläge

Ett antal inbyggda TeX-kommandon på låg nivå (kallade *primitiver*) är inte tillåtna i matematikläge och deras användning i matematikläge kommer att utlösa `Saknat $ infogat` felet. Även om de flesta användare sannolikt inte använder dessa kommandon i vardaglig LaTeX-kod, noterar vi detta här eftersom det är möjligt att de kan ingå i LaTeX-kommandon (makron) som används i matematikläge.

Följande exempel försöker använda TeX-kommandot `\\vskip` inne i matematiskt material. Detta är inte tillåtet och genererar ett fel.

```latex
\documentclass{article}
\begin{document}
Jag vill lägga till lite mellanrum, men det här är inte sättet att göra det...
\[y=f(x) \vskip5pt z=f(y)\]
$y=f(x) \vskip5pt z=f(y)$
\end{document}
```

[Öppna detta ***felgenererande*** kod på 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)

Andra TeX-kommandon (primtiva) som inte är tillåtna när TeX är i matematikläge inkluderar `\par`, `\hrule`, `\unvbox`, `\unvcopy` och `\valign`.

#### Tomma rader i matematik

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

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

[Öppna detta ***felgenererande*** kod på 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)

**Orsak**: Den tomma raden mellan formlerna omvandlas till ett `\par` kommando som inte är tillåtet i matematikläge. Du kan också se detta genom att skriva

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

[Öppna detta ***felgenererande*** kod på 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)

För att åtgärda detta, ta antingen bort de tomma raderna eller kommentera ut dem:

```latex
\documentclass{article}
\begin{document}
\begin{equation}
y=x^3,
% Detta kommer att undertrycka den tomma raden
z=x^3
\end{equation}
\end{document}
```

[Öppna detta ***korrigerad version*** i 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)

#### Att använda $ inne i matematikmiljöer

Vissa LaTeX-miljöer, såsom `align` och `equation` miljöerna, kräver inte att matematik omsluts av `$` tecken, eller användning av LaTeX:s matematiska syntax: `\(...\)` eller `\[...\]`. LaTeX-koden som implementerar dessa miljöer sköter själv att gå in i och lämna matematikläge.

Följande exempel visar användning av `$` tecknet inne i en `amsmath` `align` miljö, vilket utlöser ett `Saknat $ infogat` fel, bland många andra....

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

[Öppna detta ***felgenererande*** kod på 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)

Det korrekta sättet att skriva dessa ekvationer är:

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

[Öppna detta ***korrigerad version*** i 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)

## Bakgrund till felet Missing $ inserted

Följande avsnitt är för läsare som vill förstå orsakerna bakom felet bättre `Saknat $ infogat`. Det är inte *nödvändig* läsning, men det kan hjälpa dig att hitta och åtgärda fel.

### Det saknas inga $-tecken men jag får ändå felet

I vissa situationer kan `Saknat $ infogat` felet vara mycket förvirrande eftersom din LaTeX-kod kanske inte faktiskt har några problem med *synligt saknade* `$` tecken. Till exempel LaTeX-fragmentet $$\verb|$$y=f(x)\par$$|$$ ser ytligt sett korrekt ut:  $$\verb|$$|$$-paren är balanserade men det kommer att utlösa “`saknat $`”-felet. Här beror det på `\par` kommandot som inte är tillåtet i matematikläge:

```latex
\documentclass{article}
\begin{document}
Detta exempel genererar felet \verb|Missing $ inserted|:
$$y=f(x)\par$$
\end{document}
```

[Öppna detta för att se ett Missing $ inserted-fel](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)

Ovanstående LaTeX-kod utlöser faktiskt en *kaskad* av fel, som visas nedan, så du bör helt klart inte använda `\par` inne i matematik!

```
! Saknat $ infogat.
<infogat text>
                $
l.12 $$y=f(x)\par
                 $$
Jag har infogat en börja-matematik/sluta-matematik-symbol eftersom jag tror
att du glömde en. Fortsätt, med tummarna i kors.

! Visad matematik bör sluta med $$.
<to be read again>
                   \par
l.12 $$y=f(x)\par
                 $$
`$' som jag just såg ska tydligen matcha ett tidigare `$$'.
Så jag antar att du skrev `$$' båda gångerna.

! Saknat $ infogat.
<infogat text>
                $
l.13 \end{document}

Jag har infogat en börja-matematik/sluta-matematik-symbol eftersom jag tror
att du glömde en. Fortsätt, med tummarna i kors.

! Visad matematik bör sluta med $$.
<to be read again>
                   \par
l.13 \end{document}

`$' som jag just såg ska tydligen matcha ett tidigare `$$'.
Så jag antar att du skrev `$$' båda gångerna.
```

När `Saknat $ infogat` när felet inträffar försöker TeX-mjukvaran återhämta sig och “komma tillbaka på rätt spår” så att den kan fortsätta bearbetningen efter den punkt där felet inträffade. Avsnittet [Avancerat: En förklaring av TeX:s mekanism för felåterställning](#advanced-an-explanation-of-texs-error-recovery-mechanism) hjälper dig att förstå varför denna kaskad av fel uppstår på grund av TeX:s försök att försöka åtgärda det ursprungliga felet.

### Om lägen, och när

Internt arbetar TeX-motorer med tre “sinnestillstånd”, kallade *lägen*, som beror på vilken typ av material en TeX-motor är *för närvarande* sätter. Det läge som en TeX-motor befinner sig i vid en given tidpunkt under sättningen kallas dess *aktuella* läge, vilket ändras under processen när innehållet i ditt LaTeX-dokument sätts.

För vart och ett av en TeX-motors lägen finns vissa kommandon och tecken (eller, mer korrekt, kategorikoder) som är “oförenliga” med TeX:s aktuella läge: de bör inte användas medan TeX är i just det läget. Om du försöker använda dessa olämpliga tecken eller kommandon kommer TeX att ge ett fel som `Saknat $ infogat` för att tala om att något är fel.

#### Matematikläge

Detta fel `Saknat $ infogat` är relaterat till TeX:s *matematikläge*—det vill säga det läge en TeX-motor befinner sig i när du ber LaTeX att sätta lite matematik.

För fullständighetens skull noterar vi att det finns *två* typer av matematikläge, som motsvarar skapandet av inline- eller visad matematik:

* inline matematikläge
* visat matematikläge

TeX behöver dessa två olika matematiklägen eftersom det tillämpar olika regler för avstånd, symbols storlekar osv. när det sätter matematik avsedd för inline eller visning.

#### Utlösa TeX:s matematiklägen

Det finns flera sätt att få en TeX-motor att *gå in i* och sedan *lämna* matematikläge.

* Du kan använda explicit markering såsom:
  * LaTeX-syntax: `\(...\)` till *gå in i* `\(` sedan *lämna* `\)` inline matematikläge eller `\[...\]` till *gå in i* `\[` sedan lämna `\]` visat matematikläge;
  * (historisk) TeX-syntax: `$...$` för att gå in (först `$`) sedan lämna (andra `$`) inline matematikläge eller `$$...$$` för att gå in (först `$$` *par*) sedan lämna (andra `$$` *par*) visat matematikläge;
* eller någon av LaTeX:s matematikmiljöer:
  * `\begin{align}...\end{align}` etc. I bakgrunden sköter dessa miljöer att gå in i och lämna matematikläge.

Det faktiska *text* i meddelandet `Saknat $ infogat` är *inbyggda i* (“hårdkodat” i) TeX-motorprogramvaran, vilket är anledningen till att du fortfarande kommer att se `Missing $` även om du inte använder `$` tecken för att sätta matematik och använder enbart LaTeX-syntax för att markera matematiken i ditt dokument. Detta kan vara förvirrande för nya användare av LaTeX, men det finns inte mycket man kan göra för att ändra texten i detta felmeddelande utan att modifiera källkoden till TeX-motorerna!

#### Makron: att testa för matematikläge

Det går att testa om TeX för närvarande är i matematikläge med hjälp av det primitiva kommandot `\ifmmode`; på så sätt kan du skriva makron vars beteende kan anpassas för att undvika att generera lägesrelaterade fel. Här är ett mycket grundläggande exempel som visar principen, vilket skriver ut `Ja.` eller `Nej.` beroende på om TeX är i matematikläge eller inte vid tidpunkten då makrot “körs”.

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

Används makrot i matematikläge? $\mytest$

Används makrot i matematikläge? $$\mytest$$

Används makrot i matematikläge? \(\mytest\)

Används makrot i matematikläge? \[\mytest\]

Används makrot i matematikläge? \mytest
\end{document}
```

[Öppna detta exempel i 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)

Följande grafik visar utmatningen som produceras av exemplet ovan:

![LaTeX-makro för att testa matematikläge](/files/9b32188e26cd88dc064c7696c642dc0c9801a944)

## Avancerat: En förklaring av TeX:s mekanism för felåterställning

Felmeddelandet `Saknat $ infogat` genereras inte av Overleaf, LaTeX eller LaTeX-paket; det kommer faktiskt från *inuti det körbara programmet* som ansvarar för att sätta ditt LaTeX-dokument: det körbara programmet kallas en TeX *engine*—du kan se det som att det “driver” sättningsprocessen.

I källkoden till TeX-programvaran gör dess upphovsman (Donald Knuth) denna iakttagelse om koden som ansvarar för att generera `Saknat $ infogat` felet:

> Här är en lista över fall där användaren sannolikt av misstag har hamnat i eller lämnat matematikläge. TeX kommer att infoga ett dollartecken och läsa om den aktuella tokenen.

I kärnan av `Saknat $ infogat` felet ligger att TeX upptäcker “något” som inte borde ha använts i matematikläge, eller “något” som uttryckligen är avsett för matematisk sättning men används utanför matematikläge.

Uppgiften som TeX står inför är: Hur återhämtar jag mig från detta? TeX gör exakt det Knuth skriver: det infogar ett dollartecken och läser om den aktuella tokenen — en [“token”](/latex/sv/fordjupade-artiklar/53-what-is-a-tex-token.md) är TeX:s interna numeriska (heltals-)värde som representerar det tecken eller kommando som den just har läst in. Men på grund av det exakta sammanhanget för felet kan denna strategi kanske, eller kanske inte, lyckas — som feltexten fortsätter med att säga “Fortsätt, med tummarna i kors.”!

### Genomräknat exempel

Låt oss utforska Knuths kommentarer genom att titta närmare på följande exempel: $$\verb|$y=f(x)$$\vskip3pt|$$. Om du öppnar koden nedan ser du att den utlöser felet `Saknat $ infogat`.

```latex
Att skriva \verb|$y=f(x)$$\vskip3pt| ger...$y=f(x)$$\vskip3pt Börja ny rad...
```

[Öppna detta exempel i 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)

För att gå igenom varför detta utlöser ett fel, låt oss skriva nedsänkningar för att identifiera varje $$\verb|$|$$ i uttrycket för att få $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}\verb|$|*{\mathtt3}\verb|\vskip3pt|$$. TeX kan korrekt behandla den första delen $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}$$ som behandlas som ett korrekt formaterat stycke inline-matematik och ger $$y=f(x)$$. Omedelbart efter att ha behandlat $$\verb|$|*{\mathtt2}$$ lämnar TeX tillfälligt inline-matematikläge — i vårt exempel skapar vi inline-matematik i ett stycke så den går kortvarigt in i så kallat *horisontellt läge*.

Det är det som händer härnäst som utlöser felet. TeX fortsätter att behandla $$\verb|$|\_{\mathtt3}$$ vilket får TeX att åter gå in i inline-matematikläge. TeX läser nu nästa token, som är $$\verb|\vskip|$$ kommandot — det har ännu inte läst $$\verb|3pt|$$. Vid denna punkt ser TeX $$\verb|\vskip|$$ men det är i inline-matematikläge: $$\verb|\vskip|$$ är inte tillåtet där, så det utlöser TeX:s felhanteringsprocess som Knuth beskriver:

> TeX kommer att infoga ett dollartecken och läsa om den aktuella tokenen.

Här är den aktuella tokenen $$\verb|\vskip|$$ kommandot, så det TeX gör är att placera ett *nytt* `$` i sin indata, låt oss kalla det $$\verb|$|*{\mathtt4}$$. Vid denna punkt är TeX fortfarande i inline-matematikläge men nu går det tillbaka för att läsa motsvarigheten till $$\verb|$|*{\mathtt4}\verb|\vskip|$$ som läses i inline-matematikläge. Det $$\verb|$|\_{\mathtt4}$$, infogat av TeX själv, nu *stänger* det aktuella inline-matematikläget och TeX fortsätter att läsa $$\verb|\vskip|$$ kommandot *utanför* inline-matematikläge — här är TeX i ett stycke så $$\verb|\vskip3pt|$$ orsakar att det aktuella stycket avslutas och $$\verb|3pt|$$ av ett mellanslag placeras efter det.


---

# 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/sv/latex-fel/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.
