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

# Puuttuva $ lisätty

## Kuinka tämä virhe korjataan

Tämä virhe voi laueta eri tavoin, ja erityisesti LaTeXiin vasta-alkaneille ei aina ole *välittömästi* ilmeistä, miksi se tapahtui, tai mikä tärkeämpää, miten se ratkaistaan. Aloitamme yleiskatsauksella *yleisiin* olosuhteisiin, jotka aiheuttavat tämän virheen, ja listaamme sitten joitakin tavallisimpia syitä ja miten ne korjataan.  [Tämän artikkelin loppuosat](#background-to-the-missing-inserted-error) tarjoavat syvällisempää materiaalia lukijoille, jotka haluavat laajentaa ymmärrystään.

**Huomaa**: Tässä artikkelissa käytämme termejä ”TeX”, ”LaTeX” ja ”TeX-moottori”, mutta jos et ole varma niiden eri merkityksistä, voit lukea Overleafin artikkelista [Mikä on nimessä: Opas TeX:n moniin muunnelmiin](/latex/fi/syvalliset-artikkelit/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md).

### Missing $ inserted -virheen pääasialliset syyt

On kolme pääsyytä, miksi (La)TeX tuottaa tämän virheen:

1. Olet tehnyt eksplisiittisen virheen matemaattisessa merkinnässäsi, kuten kirjoittanut `$y=f(x)$$`—tarkastelemme muita esimerkkejä myöhemmin tässä artikkelissa.
2. TeX on havainnut merkin tai komennon, joka on tarkoitettu käytettäväksi **vain** silloin, kun TeX lataa matemaattista sisältöä, mutta tätä merkkiä tai komentoa on käytetty silloin, kun TeX on ollut **sisällä** latooamassa matematiikkaa.
   * **Teknisesti ottaen**: TeX havaitsi merkin tai komennon, joka on tarkoitettu toimimaan *sisällä* [*matematiikkatilassa*](#math-mode) mutta olet yrittänyt käyttää sitä *ulkopuolelle* [*matematiikkatilassa*](#math-mode). Selventääksemme “merkkejä”, jotka on suunniteltu toimimaan [matematiikkatilassa](#math-mode)sanaamme oikeastaan tarkoittavan sellaisten merkkien käyttöä, joille on annettu tietyt [kategoriakoodit](/latex/fi/lisaa-aiheita/43-table-of-tex-category-codes.md) ja joiden on tarkoitus toimia matemaattisen aineiston sisällä.
3. TeX on havainnut komennon, joka on tarkoitettu käytettäväksi vain silloin, kun TeX on **sisällä** latooamassa matematiikkaa, mutta kyseinen komento havaittiin (ja sitä käytettiin) sillä aikaa, kun TeX **oli** latooamassa matemaattista aineistoa.
   * **Teknisesti ottaen**: TeX havaitsi komennon, joka on tarkoitettu toimimaan *ulkopuolelle* [*matematiikkatilassa*](#math-mode) mutta olet yrittänyt käyttää sitä *sisällä* [*matematiikkatilassa*](#math-mode).

### Esimerkkejä virheistä ja niiden ratkaisuista

Seuraavat esimerkit osoittavat joitakin tapoja, joilla `Puuttuva $ lisätty` virhe voi laueta, sekä tarjoavat ratkaisuja virheen korjaamiseksi.

#### Symbolikomennot täytyy käyttää matematiikkatilassa

Moniin math-symboleihin LaTeXissa päästään komennoilla, joita saa käyttää vain silloin, kun TeX lataa matematiikkaa; siis silloin, kun TeX on matematiikkatilassa.

Yleisesti käytettyjen symbolikomentojen esimerkkejä ovat kreikkalaiset kirjaimet: `\alpha` $$(\alpha)$$, `\beta` $$(\beta)$$, `\gamma` ($$\gamma)$$, `\delta` $$(\delta)$$, `\Delta` $$(\Delta)$$ ja niin edelleen. Monet muut LaTeX-komennot, kuten muokkainten komennot: `\vec{x}` $$(\vec{x})$$, `\tilde{x}` $$(\tilde{x})$$, `\hat{x}` $$(\hat{x})$$ jne., on myös tarkoitettu käytettäviksi matematiikkatilassa.

Muokkainten, symbolikomentojen — ja monien muiden matematiikkaan liittyvien komentojen — käyttäminen matemaattisen sisällön ladonnan ulkopuolella tuottaa `Puuttuva $ lisätty` virheen ja pakottaa kääntäjän siirtymään matematiikkatilaan.

Seuraava esimerkki näyttää, mitä tapahtuu, jos yrität käyttää komentoa `\alpha` $$(\alpha)$$ matematiikan ulkopuolella (tilassa):

```latex
Kirjoittamalla \verb|\alpha| matematiikkatilan ulkopuolella syntyy virhe: \alpha, joten tätä tekstiä ei ladota oikein...
```

[Avaa tämä ***virheen aiheuttava*** esimerkki Overleafissa](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)

Seuraava kuva näyttää osan yllä olevan LaTeX-koodin tuottamasta tuloksesta ja osoittaa virheen, jonka aiheuttaa `\alpha` matematiikkatilan ulkopuolella:

![\alpha matematiikkatilan ulkopuolella](/files/22531a66a9566da8d31e385849a7eaff6582b6da)

**LaTeX-symbolikomentojen aiheuttamien virheiden korjaaminen**

Kun muokkaimia tai kreikkalaisia matemaattisia symboleja käytetään lauseissa, ne täytyy aina ympäröidä yksittäisillä dollarimerkeillä `$...$`, tai LaTeXin `\(...\)` syntaksilla, jotta TeX käsittelee ne *rivinsisäisessä matematiikkatilassa*, kuten alla näkyy.

```latex
Kun kreikkalainen kirjain alfa kirjoitetaan lauseeseen, se on kirjoitettava muodossa \verb|$\alpha$|, jotta saadaan $\alpha$, tai muodossa \verb|\(\alpha\)|, joka tuottaa myös \(\alpha\).

Kun vektori x kirjoitetaan lauseeseen, se on kirjoitettava muodossa \verb|$\vec{x}$|, jotta saadaan $\vec{x}$, tai muodossa \verb|\(\vec{x}\)|, joka tuottaa myös \(\vec{x}\).
```

[Avaa tämä esimerkki Overleafissa](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)

**Luettelo LaTeX-symboleista**

Overleafin artikkeli [Luettelo kreikkalaisista kirjaimista ja matemaattisista symboleista](/latex/fi/matematiikka/11-list-of-greek-letters-and-math-symbols.md) tarjoaa luettelon symboleista, jotka ovat yksinomaan matematiikkatilaa varten, sekä linkkejä muihin hyödyllisiin resursseihin.

#### Matematiikkatilaa käyttävien merkkien käyttäminen matematiikkatilan ulkopuolella

Perinteisesti TeX/LaTeX varaa tietyt yleiset merkit käytettäväksi matematiikkatilassa:

* `^`: varattu yläindeksien luomiseen
* `_`: varattu alaindeksien luomiseen
* `$`: varattu matematiikkatilaan siirtymiseen/sieltä poistumiseen

Niiden suora käyttö matematiikkatilan ulkopuolella laukaisee virheitä.

* Kirjoittaaksesi `$` matematiikkatilan ulkopuolella käytä `\$`
* Kirjoittaaksesi `_` matematiikkatilan ulkopuolella käytä `\_`
* Useita tapoja kirjoittaa `^` matematiikkatilan ulkopuolella. Luettelo löytyy [tex.stackexchangeista](https://tex.stackexchange.com/a/77647)

**Alaviivojen käyttäminen matematiikkatilan ulkopuolella**

Yksi yleinen syy `Puuttuva $ lisätty` virheeseen on alaviivojen (`_`), matematiikkatilan merkin, käyttäminen matematiikkatilan ulkopuolella—kuten tiedostonimissä esiintyvät alaviivat: esimerkki tästä näkyy alla.

```latex
Matematiikkamerkin, kuten alaviivan, käyttäminen tiedostonimessä: math_example.tex.
```

[Avaa tämä ***virheen aiheuttava*** koodi Overleafissä](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)

Koska alaviivamerkille on annettu [kategoriakoodi 8](/latex/fi/lisaa-aiheita/43-table-of-tex-category-codes.md) se on varattu alaindeksien luomiseen silloin, kun TeX-moottori on matematiikkatilassa. Siksi, kun (La)TeX havaitsee merkin `_` tiedostonimessä `math_example.tex` se tekee niin matematiikkatilan ulkopuolella, mikä laukaisee virheen ja johtaa seuraavan tekstin virheelliseen ladontaan:

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

Se `_` merkki (teknisesti sen kategoriakoodi 8) laukaisee virheen ja saa TeX:n siirtymään matematiikkatilaan: kirjain `e` välittömästi sitä seuraava `_` tulkitaan merkiksi, joka ladotaan alaindeksinä. Tämän jälkeen käsittely jatkuu matematiikkatilassa, mistä seuraa kursivoitu teksti, ja lisäksi TeX:llä ei ole tässä keinoa poistua matematiikkatilasta siististi, mikä laukaisee lisää virheitä.

Tämän erityisen virheen välttämiseksi sinun täytyy aina käyttää `_` matematiikkatilassa — eli sisällä `$..$`, `$$...$$` tai mieluiten LaTeXin merkinnässä `\(...\)` ja `\[...\]`.

Matematiikkatilan ulkopuolella sinun täytyy kirjoittaa `\_` käyttääksesi tai ladotaksesi alaviivan, kuten esimerkin korjatussa versiossa näytetään:

```latex
Jos haluat käyttää matematiikkatilan alaviivamerkkiä tiedostonimessä, kirjoita se näin: math\_example.tex.
```

[Avaa tämä ***korjattu versio*** Overleafissa](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)

**Alaviivojen käyttäminen URL-osoitteissa**

Voit kohdata tämän virheen myös yrittäessäsi latoa URL-osoitteita, joissa on alaviivoja, esim. `[https://www.overleaf.com/learn/latex/Subscripts_and_superscripts](../02-mathematics/02-subscripts-and-superscripts.md)`. Sen sijaan, että eskapoisit jokaisen alaviivamerkin, voit haluta ladata `url` tai `hyperref` paketin ja sitten käyttää `\url` komentoa näin:

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

[Avaa tämä esimerkki Overleafissa](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)

**Alaviivat .bib-tiedoston URL-osoitteissa**

Jos tällaiset URL-osoitteet ovat lähdeluettelossasi `.bib` -tiedostossa ja aiheuttavat virheilmoituksia `.bbl` -tiedostosta, varmista että käytät `url` tai `doi` kenttiä näiden kenttien tallentamiseen `.bib` tiedosto:

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

ja lataa `url` tai `hyperref` paketti esipuheessasi, jos tarpeen. Useimmat bibliografiatyylitiedostot pystyvät sitten automaattisesti ympäröimään nämä arvot `\url{...}` komento.

#### Komennot, joita ei saa käyttää matematiikkatilassa

Useita matalan tason sisäisiä TeX-komentoja (joita kutsutaan *primitiiveistä*) ei saa käyttää matematiikkatilassa, ja niiden käyttö matematiikkatilassa laukaisee `Puuttuva $ lisätty` virheen. Vaikka useimmat käyttäjät tuskin käyttävät näitä komentoja arkisessa LaTeX-koodissa, mainitsemme tämän tässä, koska ne saattavat sisältyä LaTeX-komentoihin (makroihin), joita käytetään matematiikkatilassa.

Seuraava esimerkki yrittää käyttää TeX-komentoa `\vskip` matemaattisen aineiston sisällä. Tätä ei sallita ja se tuottaa virheen.

```latex
\documentclass{article}
\begin{document}
Haluan lisätä hieman väliä, mutta tämä ei ole tapa tehdä sitä...
\[y=f(x) \vskip5pt z=f(y)\]
$y=f(x) \vskip5pt z=f(y)$
\end{document}
```

[Avaa tämä ***virheen aiheuttava*** koodi Overleafissä](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)

Muita TeXin (primitiivi)komentoja, joita ei sallita silloin, kun TeX on matematiikkatilassa, ovat `\par`, `\hrule`, `\unvbox`, `\unvcopy` ja `\valign`.

#### Tyhjät rivit matematiikassa

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

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

[Avaa tämä ***virheen aiheuttava*** koodi Overleafissä](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)

**Syy**: Kaavojen välinen tyhjä rivi muunnetaan `\par` komennoksi, jota ei sallita matematiikkatilassa. Voit nähdä tämän myös kirjoittamalla

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

[Avaa tämä ***virheen aiheuttava*** koodi Overleafissä](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)

Korjaa tämä joko poistamalla tyhjät rivit tai kommentoimalla ne pois:

```latex
\documentclass{article}
\begin{document}
\begin{equation}
y=x^3,
% Tämä poistaa tyhjän rivin
z=x^3
\end{equation}
\end{document}
```

[Avaa tämä ***korjattu versio*** Overleafissa](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)

#### Dollarimerkin $ käyttäminen matematiikka-ympäristöissä

Jotkin LaTeX-ympäristöt, kuten `align-ympäristöllä` ja `equation` ympäristöt, eivät vaadi matematiikan ympäröimistä `$` merkeillä tai LaTeXin matematiikkasyntaksin käyttöä: `\(...\)` tai `\[...\]`. Näitä ympäristöjä toteuttava LaTeX-koodi huolehtii matematiikkatilaan siirtymisestä ja sieltä poistumisesta.

Seuraava esimerkki näyttää dollarimerkin `$` käyttämisen `amsmath` `align-ympäristöllä` ympäristössä, mikä laukaisee `Puuttuva $ lisätty` virheen, muun monen muun ohella....

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

[Avaa tämä ***virheen aiheuttava*** koodi Overleafissä](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)

Oikea tapa kirjoittaa nämä yhtälöt on:

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

[Avaa tämä ***korjattu versio*** Overleafissa](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)

## Taustaa Missing $ inserted -virheelle

Seuraava osio on lukijoille, jotka haluavat ymmärtää paremmin virheen taustalla olevia syitä `Puuttuva $ lisätty`. Se ei ole *välttämätöntä* luettavaa, mutta se voi auttaa virheiden löytämisessä ja korjaamisessa.

### Dollarinmerkkejä ei puutu, mutta saan silti virheen

Joissakin tilanteissa `Puuttuva $ lisätty` virhe voi olla hyvin hämmentävä, koska LaTeX-koodissasi ei ehkä itse asiassa ole mitään ongelmia *näkyvästi* `$` puuttuvien merkkien kanssa. Esimerkiksi LaTeX-pätkä $$\verb|$$y=f(x)\par$$|$$ näyttää pinnalta katsottuna oikealta:  $$\verb|$$|$$-parit ovat tasapainossa, mutta se laukaisee “`puuttuva $`” -virheen. Tässä syynä on `\par` komento, jota ei sallita matematiikkatilassa:

```latex
\documentclass{article}
\begin{document}
Tämä esimerkki tuottaa virheen \verb|Missing $ inserted|:
$$y=f(x)\par$$
\end{document}
```

[Avaa tämä nähdäksesi Missing $ inserted -virheen](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)

Yllä oleva LaTeX-koodi laukaisee itse asiassa *ketjureaktion* virheitä, kuten alla näkyy, joten selvästi sinun ei pitäisi käyttää `\par` matematiikassa!

```
! Missing $ inserted.
<inserted text>
                $
l.12 $$y=f(x)\par
                 $$
Olen lisännyt begin-math/end-math-symbolin, koska luulen
että jätit yhden pois. Jatka, risti sormesi.

! Näyttömatematiikan pitäisi päättyä $$-merkkeihin.
<luetaan uudelleen>
                   \par
l.12 $$y=f(x)\par
                 $$
Juuri näkemäni `$' näyttää kuulemma vastaavan aiempaa `$$':a.
Oletan siis, että kirjoitit `$$' molemmilla kerroilla.

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

Olen lisännyt begin-math/end-math-symbolin, koska luulen
että jätit yhden pois. Jatka, risti sormesi.

! Näyttömatematiikan pitäisi päättyä $$-merkkeihin.
<luetaan uudelleen>
                   \par
l.13 \end{document}

Juuri näkemäni `$' näyttää kuulemma vastaavan aiempaa `$$':a.
Oletan siis, että kirjoitit `$$' molemmilla kerroilla.
```

Kun `Puuttuva $ lisätty` virhe tapahtuu, TeX-moottoriohjelmisto yrittää toipua ja “päästä takaisin raiteille”, jotta se voi jatkaa käsittelyä virheen kohdan jälkeen. Osio [Edistynyt: Selitys TeXin virheenkäsittelymekanismista](#advanced-an-explanation-of-texs-error-recovery-mechanism) auttaa sinua ymmärtämään, miksi tämä virheiden ketju syntyy TeXin yrityksistä korjata alkuperäinen virhe.

### Tilojen ja milloin

Sisäisesti TeX-moottorit toimivat kolmella “mielentilalla”, joita kutsutaan *tiloiksi*, ja jotka riippuvat siitä, millaista aineistoa TeX-moottori *tällä hetkellä* latoa. Tila, jossa TeX-moottori on millä tahansa hetkellä ladonnan aikana, kutsutaan sen *nykyiseen* tilaksi, ja se vaihtuu koko LaTeX-dokumenttisi sisällön ladonnan aikana.

Jokaiselle TeX-moottorin tilalle on tiettyjä komentoja ja merkkejä (tai, tarkemmin sanottuna, kategoriakoodeja), jotka ovat “yhteensopimattomia” TeXin nykyisen tilan kanssa: niitä ei pitäisi käyttää silloin, kun TeX on kyseisessä tilassa. Jos yrität käyttää näitä sopimattomia merkkejä tai komentoja, TeX antaa virheen kuten `Puuttuva $ lisätty` ilmoittaakseen, että jokin on vialla.

#### Matematiikkatila

Tämä virhe `Puuttuva $ lisätty` liittyy TeXin *matematiikkatilassa*— eli tilaan, jossa TeX-moottori on silloin, kun pyydät LaTeXia latomaan joitakin matemaattisia asioita.

Täydellisyyden vuoksi huomautamme, että on *kahta* erilaista matematiikkatilaa, jotka heijastavat rivinsisäisen tai näyttömatematiikan luomista:

* rivinsisäisessä matematiikkatilassa
* näyttömatematiikkatila

TeX tarvitsee nämä kaksi eri matematiikkatilaa, koska se soveltaa erilaisia väli-, symbolikoko- jne. sääntöjä ladottaessaan matematiikkaa, joka on tarkoitettu rivi- tai näyttömuotoon.

#### TeX:n matematiikkatilojen käynnistäminen

TeX-moottorin saa siirtymään *sisään* ja sitten *ulos* matematiikkatilasta useilla tavoilla.

* Voit käyttää eksplisiittistä merkintää, kuten:
  * LaTeX-syntaksi: `\(...\)` kohteeseen *sisään* `\(` sitten *ulos* `\)` rivinsisäiseen matematiikkatilaan tai `\[...\]` kohteeseen *sisään* `\[` sitten poistu `\]` näyttömatematiikkatilasta;
  * (historiallinen) TeX-syntaksi: `$...$` siirtyäksesi sisään (ensin `$`) ja sitten ulos (toinen `$`) rivinsisäisestä matematiikkatilasta tai `$$...$$` siirtyäksesi sisään (ensin `$$` *pari*) ja sitten ulos (toinen `$$` *pari*) näyttömatematiikkatilasta;
* tai mitä tahansa LaTeXin matematiikka-ympäristöistä:
  * `\begin{align}...\end{align}` jne. Näissä ympäristöissä huolehditaan kulissien takana matematiikkatilaan siirtymisestä ja siitä poistumisesta.

Viestin todellinen *teksti* osa `Puuttuva $ lisätty` on *sisäänrakennettuina* (”kovakoodattu” TeX-moottoriohjelmistoon), minkä vuoksi näet yhä `Missing $` vaikka et käyttäisikään `$` merkkejä matematiikan ladontaan ja käyttäisit pelkästään LaTeXin syntaksia dokumenttisi matematiikan merkintään. Tämä voi olla hämmentävää uusille LaTeX-käyttäjille, mutta tälle virheilmoitustekstille ei juuri voi tehdä mitään muuttamatta TeX-moottorien lähdekoodia!

#### Makrot: matematiikkatilan testaus

On mahdollista testata, onko TeX tällä hetkellä matematiikkatilassa, käyttämällä primitiivistä komentoa `\ifmmode`; näin voit kirjoittaa makroja, joiden käyttäytyminen voi mukautua välttämään tilaan liittyviä virheitä. Tässä on hyvin yksinkertainen esimerkki periaatteen havainnollistamiseksi; se tulostaa `Kyllä.` tai `Ei.` sen mukaan, onko TeX matematiikkatilassa makron “suoritushetkellä” vai ei.

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

Käytetäänkö makroa matematiikkatilassa? $\mytest$

Käytetäänkö makroa matematiikkatilassa? $$\mytest$$

Käytetäänkö makroa matematiikkatilassa? \(\mytest\)

Käytetäänkö makroa matematiikkatilassa? \[\mytest\]

Käytetäänkö makroa matematiikkatilassa? \mytest
\end{document}
```

[Avaa tämä esimerkki Overleafissa](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)

Seuraava kuva näyttää yllä olevan esimerkin tuottaman tulosteen:

![LaTeX-makro matematiikkatilan testaamiseen](/files/460ff37028e51206844e69456e65e026d5773583)

## Edistynyt: Selitys TeXin virheenkäsittelymekanismista

Virheilmoitus `Puuttuva $ lisätty` ei ole Overleafin, LaTeXin tai LaTeX-pakettien tuottama; se on itse asiassa peräisin *sijaitsevan suoritettavan ohjelman sisältä* joka vastaa LaTeX-dokumenttisi ladonnasta: kyseistä suoritettavaa ohjelmaa kutsutaan TeX *engine*— voit ajatella sitä ladontaprosessin “ohjaajana”.

TeX-ohjelmiston lähdekoodissa sen kirjoittaja (Donald Knuth) tekee tämän huomion koodista, joka vastaa `Puuttuva $ lisätty` virheen tuottamisesta:

> Tässä on luettelo tapauksista, joissa käyttäjä on todennäköisesti vahingossa joutunut matematiikkatilaan tai pois siitä. TeX lisää dollarimerkin ja lukee nykyisen tokenin uudelleen.

Tämän `Puuttuva $ lisätty` virheen ytimessä on, että TeX havaitsee “jotakin”, jota ei olisi pitänyt käyttää matematiikkatilassa, tai “jotakin”, joka on nimenomaan suunniteltu matematiikan ladontaan, mutta jota käytetään matematiikkatilan ulkopuolella.

TeXin tehtävä on: Miten toivun tästä? TeX tekee täsmälleen sen, mitä Knuth kirjoittaa: se lisää dollarimerkin ja lukee nykyisen tokenin uudelleen — [“token”](/latex/fi/syvalliset-artikkelit/53-what-is-a-tex-token.md) on TeXin sisäinen numeerinen (kokonaislukuarvoinen) arvo, joka edustaa merkkiä tai komentoa, jonka se on juuri lukenut. Tarkasta asiayhteydestä johtuen tämä strategia voi joko onnistua tai epäonnistua — kuten virheteksti jatkaa: “Jatka, risti sormesi.”!

### Työstetty esimerkki

Tarkastellaan Knuthin kommentteja lähemmin käymällä seuraava esimerkki läpi: $$\verb|$y=f(x)$$\vskip3pt|$$. Jos avaat alla olevan koodin, näet sen laukaisevan virheen `Puuttuva $ lisätty`.

```latex
Kirjoittamalla \verb|$y=f(x)$$\vskip3pt| syntyy...$y=f(x)$$\vskip3pt Aloita uusi rivi...
```

[Avaa tämä esimerkki Overleafissa](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)

Jotta ymmärtäisimme, miksi tämä laukaisee virheen, merkitään alaindeksein kukin $$\verb|$|$$ lausekkeessa, jotta saadaan $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}\verb|$|*{\mathtt3}\verb|\vskip3pt|$$. TeX pystyy käsittelemään oikein ensimmäisen osan $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}$$ jota käsitellään oikein muotoiltuna rivinsisäisen matematiikan osana, jolloin saadaan $$y=f(x)$$. Heti käsiteltyään $$\verb|$|*{\mathtt2}$$ TeX poistuu hetkeksi rivinsisäisestä matematiikkatilasta — esimerkissämme luomme rivinsisäistä matematiikkaa kappaleeseen, joten se siirtyy hetkeksi niin sanottuun *horisontaalitilaan*.

Seuraava tapahtuma laukaisee virheen. TeX jatkaa käsittelyä $$\verb|$|\_{\mathtt3}$$ mikä saa TeX:n palaamaan rivinsisäiseen matematiikkatilaan. TeX lukee nyt seuraavan tokenin, joka on $$\verb|\vskip|$$ komento — se ei ole vielä lukenut $$\verb|3pt|$$. Tässä vaiheessa TeX näkee $$\verb|\vskip|$$ mutta se on rivinsisäisessä matematiikkatilassa: $$\verb|\vskip|$$ ei ole siellä sallittu, joten se laukaisee Knuthin kuvaaman virheenkäsittelyprosessin:

> TeX lisää dollarimerkin ja lukee nykyisen tokenin uudelleen.

Tässä nykyinen token on $$\verb|\vskip|$$ komento, joten TeX tekee niin, että se sijoittaa *uuden* `$` syötteeseensä; kutsukaamme sitä $$\verb|$|*{\mathtt4}$$. Tässä vaiheessa TeX on yhä rivinsisäisessä matematiikkatilassa, mutta nyt se palaa lukemaan vastineen $$\verb|$|*{\mathtt4}\verb|\vskip|$$ joka luetaan rivinsisäisessä matematiikkatilassa. TeX:n itse lisäämä $$\verb|$|\_{\mathtt4}$$, nyt *sulkee* nykyisen rivinsisäisen matematiikkatilan, ja TeX jatkaa $$\verb|\vskip|$$ komento *ulkopuolelle* rivinsisäisestä matematiikkatilasta — tässä TeX on kappaleessa, joten $$\verb|\vskip3pt|$$ saa nykyisen kappaleen päättymään ja $$\verb|3pt|$$ lisättävän välin jälkeen.


---

# 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/fi/latex-virheet/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.
