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

# Wstawiono brakujące $

## Jak naprawić ten błąd

Ten błąd może zostać wywołany na różne sposoby i, zwłaszcza dla osób nowych w LaTeX-u, nie zawsze *od razu* oczywiste jest, dlaczego się pojawił, a co ważniejsze, jak go rozwiązać. Zaczniemy od omówienia *ogólnych* warunków wywołujących ten błąd, a następnie wymienimy kilka częstszych przyczyn i sposoby ich naprawy. Późniejsze [części tego artykułu](#background-to-the-missing-inserted-error) zawierają bardziej szczegółowe materiały dla czytelników, którzy chcą pogłębić swoją wiedzę.

**Uwaga**: W tym artykule używamy terminów „TeX”, „LaTeX” i „silnik TeX”, ale jeśli nie masz pewności co do ich różnych znaczeń, możesz się tego dowiedzieć w artykule Overleaf [Co kryje się w nazwie: przewodnik po wielu odmianach TeX-a](/latex/pl/artykuly-szczegolowe/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md).

### Główne przyczyny błędu Missing $ inserted

Istnieją trzy główne powody, dla których (La)TeX generuje ten błąd:

1. Popełniłeś jawny błąd w zapisie matematycznym, na przykład pisząc `$y=f(x)$$`—inne przykłady omówimy później w tym artykule.
2. TeX wykrył znak lub polecenie przeznaczone do użycia **tylko** gdy TeX składa zapis matematyczny, ale ten znak lub polecenie zostały użyte wtedy, gdy TeX **nie** składał zapis matematyczny.
   * **Technicznie rzecz biorąc**: TeX wykrył znak lub polecenie przeznaczone do działania *wewnątrz* [*trybu matematycznego*](#math-mode) ale próbowałeś go użyć *poza* [*trybu matematycznego*](#math-mode). Aby doprecyzować problem ze „znakami” przeznaczonymi do działania w [trybu matematycznego](#math-mode), mamy na myśli użycie znaków, którym przypisano określone [kody kategorii](/latex/pl/wiecej-tematow/43-table-of-tex-category-codes.md) zaprojektowane do działania wewnątrz treści matematycznej.
3. TeX wykrył polecenie przeznaczone do użycia wyłącznie wtedy, gdy TeX **nie** składa zapis matematyczny, ale to polecenie zostało wykryte (użyte), gdy TeX **był** składał materiał matematyczny.
   * **Technicznie rzecz biorąc**: TeX wykrył polecenie przeznaczone do działania *poza* [*trybu matematycznego*](#math-mode) ale próbowałeś go użyć *wewnątrz* [*trybu matematycznego*](#math-mode).

### Przykłady błędów i ich rozwiązania

Poniższe przykłady pokazują kilka sposobów, w jakie `Wstawiono brakujący znak $` błąd może zostać wywołany, a także przedstawiają rozwiązania pozwalające go naprawić.

#### Polecenia symboli muszą być używane w trybie matematycznym

Do wielu symboli matematycznych w LaTeX-u uzyskuje się dostęp za pomocą poleceń, których wolno używać tylko wtedy, gdy TeX składa zapis matematyczny; tzn. w momencie, gdy TeX jest w trybie matematycznym.

Przykłady często używanych poleceń symboli obejmują te dla liter greckich: `\alpha` $$(\alpha)$$, `\beta` $$(\beta)$$, `\gamma` ($$\gamma)$$, `\\delta` $$(\delta)$$, `\\Delta` $$(\Delta)$$ i tak dalej. Wiele innych poleceń LaTeX-a, takich jak te do modyfikatorów: `\\vec{x}` $$(\vec{x})$$, `\\tilde{x}` $$(\tilde{x})$$, `\\hat{x}` $$(\hat{x})$$ itd., jest również przeznaczonych do użycia w trybie matematycznym.

Używanie modyfikatorów, poleceń symboli — i wielu innych poleceń związanych z matematyką — poza składem treści matematycznej spowoduje `Wstawiono brakujący znak $` błąd i zmusi kompilator do przejścia do trybu matematycznego.

Poniższy przykład pokazuje, co się stanie, jeśli spróbujesz użyć polecenia `\alpha` $$(\alpha)$$ poza trybem matematycznym):

```latex
Zapisanie \\verb|\\alpha| poza trybem matematycznym spowoduje błąd: \\alpha, więc ten tekst nie zostanie poprawnie złożony...
```

[Otwórz ten ***powodującego błąd*** przykład w 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)

Poniższy obraz pokazuje fragment wyniku wygenerowanego przez powyższy kod LaTeX, demonstrując błąd spowodowany użyciem `\alpha` poza trybem matematycznym:

![\\\alpha poza trybem matematycznym](/files/077b6047a8bec59cb8f9b2cf551a0a1e278bc7c1)

**Naprawianie błędów spowodowanych poleceniami symboli LaTeX-a**

Aby używać modyfikatorów lub greckich symboli matematycznych w zdaniach, zawsze muszą one być ujęte w pojedyncze znaki dolara `$...$`, albo w składnię LaTeX-a `\(...\)` , aby TeX mógł je przetworzyć w *liniowym trybie matematycznym*, jak pokazano poniżej.

```latex
Pisząc w zdaniu grecką literę alfa, należy zapisać ją jako \\verb|$\\alpha$|, aby wygenerować $\\alpha$, albo jako \\verb|\\(\\alpha\\)|, co również generuje \\(\\alpha\\).

Pisząc w zdaniu wektor x, należy zapisać go jako \\verb|$\\vec{x}$|, aby otrzymać $\\vec{x}$, albo jako \\verb|\\(\\vec{x}\\)|, co również daje \\(\\vec{x}\\).
```

[Otwórz ten przykład w 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)

**Lista symboli LaTeX-a**

Artykuł Overleaf [Lista greckich liter i symboli matematycznych](/latex/pl/matematyka/11-list-of-greek-letters-and-math-symbols.md) zawiera listę symboli dostępnych wyłącznie w trybie matematycznym, wraz z linkami do innych przydatnych zasobów.

#### Używanie znaków dostępnych tylko w trybie matematycznym poza trybem matematycznym

Tradycyjnie TeX/LaTeX rezerwują pewne popularne znaki do użycia w trybie matematycznym:

* `^`: zarezerwowany do tworzenia indeksów górnych
* `_`: zarezerwowany do tworzenia indeksów dolnych
* `$`: zarezerwowany do rozpoczynania/zamykania trybu matematycznego

Używanie ich bezpośrednio poza trybem matematycznym wywołuje błędy.

* Aby wpisać `$` poza trybem matematycznym użyj `\\$`
* Aby wpisać `_` poza trybem matematycznym użyj `\\_`
* Wiele sposobów wpisania `^` poza trybem matematycznym. Lista jest podana na [tex.stackexchange](https://tex.stackexchange.com/a/77647)

**Używanie podkreśleń poza trybem matematycznym**

Częstą przyczyną `Wstawiono brakujący znak $` błędu jest używanie podkreśleń (`_`), znaku z trybu matematycznego, poza trybem matematycznym — na przykład podkreśleń występujących w nazwach plików: przykład pokazano poniżej.

```latex
Użycie znaku matematycznego, takiego jak podkreślenie, w nazwie pliku: math_example.tex.
```

[Otwórz ten ***generujący błąd*** kod na 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)

Ponieważ znak podkreślenia ma przypisany [kod kategorii 8](/latex/pl/wiecej-tematow/43-table-of-tex-category-codes.md) jest zarezerwowany do tworzenia indeksów dolnych, gdy silnik TeX jest w trybie matematycznym. W konsekwencji, gdy (La)TeX wykrywa `_` w nazwie pliku `math_example.tex` robi to poza trybem matematycznym, co wywołuje błąd i skutkuje niepoprawnym składem kolejnego tekstu:

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

Ta `_` znak (technicznie jego kod kategorii 8) wywołuje błąd i powoduje, że TeX przechodzi do trybu matematycznego: litera `e` następująca bezpośrednio po `_` jest traktowana jako znak przeznaczony do złożenia jako indeks dolny. Przetwarzanie następnie trwa w trybie matematycznym, co skutkuje kursywą tekstu, a dodatkowo nie ma tu sposobu, aby TeX mógł płynnie wyjść z trybu matematycznego, co spowoduje kolejne błędy.

Aby uniknąć tego konkretnego błędu, zawsze musisz używać `_` w trybie matematycznym — tj. wewnątrz `$..$`, `$$...$$` albo, najlepiej, wewnątrz notacji LaTeX-a `\(...\)` i `\\[...\\]`.

Poza trybem matematycznym musisz napisać `\\_` aby użyć lub złożyć znak podkreślenia, jak pokazano w poprawionej wersji przykładu:

```latex
Aby użyć znaku podkreślenia z trybu matematycznego w nazwie pliku, zapisz go tak: math\\_example.tex.
```

[Otwórz ten ***poprawiona wersja*** w 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)

**Używanie podkreśleń w adresach URL**

Możesz również napotkać ten błąd, próbując złożyć adresy URL zawierające podkreślenia, np. `[https://www.overleaf.com/learn/latex/Subscripts_and_superscripts](../02-mathematics/02-subscripts-and-superscripts.md)`. Zamiast uciekać każdy znak podkreślenia, możesz chcieć załadować `url` lub `hyperref` pakiet, a następnie użyć `\\url` polecenia w ten sposób:

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

[Otwórz ten przykład w 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)

**Znaki podkreślenia w adresach URL w plikach .bib**

Jeśli takie adresy URL znajdują się w twojej bibliografii `.bib` plik, powodując zgłaszanie błędów z `.bbl` plik, upewnij się, że używasz `url` lub `doi` pól, aby zapisać te pola w `.bib` plik:

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

i w razie potrzeby załaduj `url` lub `hyperref` pakiet w preambule. Większość plików stylu bibliografii będzie wtedy mogła automatycznie ująć te wartości w `\\url{...}` polecenie.

#### Używanie poleceń niedozwolonych w trybie matematycznym

Niektóre niskopoziomowe wbudowane polecenia TeX-a (zwane *prymitywów*) nie są dozwolone w trybie matematycznym i ich użycie w tym trybie wywoła `Wstawiono brakujący znak $` błąd. Chociaż większość użytkowników raczej nie używa tych poleceń w codziennym kodzie LaTeX-a, odnotowujemy to tutaj, ponieważ mogą one znajdować się w poleceniach LaTeX-a (makrach) używanych w trybie matematycznym.

Poniższy przykład próbuje użyć polecenia TeX-a `\vskip` wewnątrz materiału matematycznego. Jest to niedozwolone i generuje błąd.

```latex
\documentclass{article}
\begin{document}
Chcę dodać trochę odstępu, ale to nie jest właściwy sposób, aby to zrobić...
\\[y=f(x) \\vskip5pt z=f(y)\\]
$y=f(x) \\vskip5pt z=f(y)$
\end{document}
```

[Otwórz ten ***generujący błąd*** kod na 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)

Inne (prymitywne) polecenia TeX-a, których nie wolno używać, gdy TeX jest w trybie matematycznym, obejmują `\par`, `\hrule`, `\unvbox`, `\unvcopy` i `\valign`.

#### Puste wiersze w matematyce

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

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

[Otwórz ten ***generujący błąd*** kod na 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)

**Przyczyna**: Pusty wiersz między wzorami zostaje zamieniony na `\par` polecenie, które nie jest dozwolone w trybie matematycznym. Możesz to także zobaczyć, zapisując

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

[Otwórz ten ***generujący błąd*** kod na 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)

Aby to naprawić, usuń puste wiersze albo zakomentuj je:

```latex
\documentclass{article}
\begin{document}
\begin{equation}
y=x^3,
% To ukryje pusty wiersz
z=x^3
\end{equation}
\end{document}
```

[Otwórz ten ***poprawiona wersja*** w 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)

#### Używanie $ wewnątrz środowisk matematycznych

Niektóre środowiska LaTeX-a, takie jak `align` i `equation` środowiska, nie wymagają ujmowania matematyki w `$` znaki dolarów ani używania składni matematycznej LaTeX-a: `\(...\)` lub `\\[...\\]`. Kod LaTeX implementujący te środowiska sam dba o wejście do trybu matematycznego i wyjście z niego.

Poniższy przykład pokazuje użycie znaku `$` w środowisku `amsmath` `align` , co wywołuje `Wstawiono brakujący znak $` błąd, między wieloma innymi....

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

[Otwórz ten ***generujący błąd*** kod na 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)

Poprawny sposób zapisania tych równań to:

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

[Otwórz ten ***poprawiona wersja*** w 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)

## Tło błędu Missing $ inserted

Poniższa sekcja jest dla czytelników, którzy chcą lepiej zrozumieć przyczyny tego błędu `Wstawiono brakujący znak $`. To nie jest *niezbędna* lektura, ale może pomóc w znajdowaniu i naprawianiu błędów.

### Nie ma żadnych brakujących znaków $, a mimo to nadal otrzymuję błąd

W niektórych sytuacjach `Wstawiono brakujący znak $` błąd może być bardzo mylący, ponieważ w twoim kodzie LaTeX-a mogą nie występować żadne problemy z *widocznie brakującymi* `$` znakami. Na przykład fragment LaTeX-a $$\verb|$$y=f(x)\par$$|$$ na pierwszy rzut oka wygląda poprawnie: para $$\verb|$$|$$ jest zbilansowana, ale wywoła błąd „`brakujący $`”. Tutaj dzieje się tak z powodu `\par` polecenia, które nie jest dozwolone w trybie matematycznym:

```latex
\documentclass{article}
\begin{document}
Ten przykład generuje błąd \\verb|Missing $ inserted|:
$$y=f(x)\par$$
\end{document}
```

[Otwórz to, aby zobaczyć błąd 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)

Powyższy kod LaTeX-a faktycznie wywołuje *lawinę* błędów, jak pokazano poniżej, więc oczywiście nie powinieneś używać `\par` wewnątrz matematyki!

```
! Wstawiono brakujący $.
<wstawiony tekst>
                $
l.12 $$y=f(x)\par
                 $$
Wstawiłem symbol rozpoczęcia/zakończenia matematyki, ponieważ sądzę
że pominąłeś jeden. Kontynuuj, ze skrzyżowanymi palcami.

! Matematyka wyświetlana powinna kończyć się symbolem $$.
<do ponownego odczytania>
                   \par
l.12 $$y=f(x)\par
                 $$
Znak `$', który właśnie zobaczyłem, rzekomo odpowiada wcześniejszemu `$$'.
Założę więc, że za każdym razem wpisałeś `$$'.

! Wstawiono brakujący $.
<wstawiony tekst>
                $
l.13 \end{document}

Wstawiłem symbol rozpoczęcia/zakończenia matematyki, ponieważ sądzę
że pominąłeś jeden. Kontynuuj, ze skrzyżowanymi palcami.

! Matematyka wyświetlana powinna kończyć się symbolem $$.
<do ponownego odczytania>
                   \par
l.13 \end{document}

Znak `$', który właśnie zobaczyłem, rzekomo odpowiada wcześniejszemu `$$'.
Założę więc, że za każdym razem wpisałeś `$$'.
```

Gdy `Wstawiono brakujący znak $` gdy występuje błąd, oprogramowanie silnika TeX próbuje się z niego odzyskać i „wrócić na właściwy tor”, aby móc kontynuować przetwarzanie od miejsca, w którym błąd wystąpił. Sekcja [Zaawansowane: Wyjaśnienie mechanizmu odzyskiwania po błędach w TeX-ie](#advanced-an-explanation-of-texs-error-recovery-mechanism) pomoże ci zrozumieć, dlaczego ta lawina błędów pojawia się wskutek prób TeX-a naprawienia początkowego błędu.

### O trybach i kiedy

Wewnętrznie silniki TeX-a działają, używając trzech „stanów umysłu”, zwanych *trybami*, które zależą od rodzaju materiału, jaki silnik TeX *aktualnie* składa. Tryb, w którym silnik TeX znajduje się w danym momencie składania, nazywa się jego *bieżącego* trybem, który zmienia się w trakcie składu treści twojego dokumentu LaTeX.

Dla każdego z trybów silnika TeX istnieją pewne polecenia i znaki (a dokładniej kody kategorii), które są „niezgodne” z bieżącym trybem TeX-a: nie powinny być używane, gdy TeX jest w tym konkretnym trybie. Jeśli spróbujesz użyć tych nieodpowiednich znaków lub poleceń, TeX wyświetli błąd taki jak `Wstawiono brakujący znak $` aby dać ci znać, że coś jest nie tak.

#### Tryb matematyczny

Ten błąd `Wstawiono brakujący znak $` jest związany z *trybu matematycznego*—tj. trybem, w którym znajduje się silnik TeX, gdy prosisz LaTeX o złożenie matematyki.

Dla pełności odnotujemy, że istnieją *dwa* rodzaje trybu matematycznego, odzwierciedlające tworzenie matematyki w tekście lub wyświetlanej:

* liniowym trybie matematycznym
* tryb matematyki wyświetlanej

TeX potrzebuje tych dwóch różnych trybów matematycznych, ponieważ stosuje różne zasady dotyczące odstępów, rozmiarów symboli itp. przy składaniu matematyki przeznaczonej do tekstu lub do wyświetlenia.

#### Wywoływanie trybów matematycznych TeX-a

Istnieje wiele sposobów, aby skłonić silnik TeX do *wejścia* a następnie *wyjścia z* trybu matematycznego.

* Możesz użyć jawnego oznaczenia, takiego jak:
  * Składnia LaTeX-a: `\(...\)` na *wejścia* `\\(` następnie *wyjścia z* `\\)` tryb matematyczny liniowy lub `\\[...\\]` na *wejścia* `\[` następnie wyjścia z `\]` tryb matematyki wyświetlanej;
  * składnia TeX-a (historyczna): `$...$` aby wejść (pierwszy `$`) a następnie wyjść (drugi `$`) tryb matematyczny liniowy lub `$$...$$` aby wejść (pierwszy `$$` *pair*) a następnie wyjść (drugi `$$` *pair*) tryb matematyki wyświetlanej;
* albo dowolne ze środowisk matematycznych LaTeX-a:
  * `\\begin{align}...\\end{align}` itd. W tle te środowiska dbają o wejście i wyjście z trybu matematycznego.

Rzeczywiste *tekst* brzmienie `Wstawiono brakujący znak $` to *wbudowanych w* („na sztywno” zakodowane w) oprogramowaniu silnika TeX, dlatego nadal zobaczysz `Missing $` nawet jeśli nie używasz `$` znaków do składu matematyki i używasz wyłącznie składni LaTeX-a do oznaczania matematyki w swoim dokumencie. Może to być mylące dla nowych użytkowników LaTeX-a, ale niewiele da się zrobić, aby zmienić treść tego komunikatu bez modyfikacji kodu źródłowego silników TeX!

#### Makra: testowanie trybu matematycznego

Można sprawdzić, czy TeX jest obecnie w trybie matematycznym, używając prymitywnego polecenia `\ifmmode`; w ten sposób możesz pisać makra, których zachowanie może się dostosować, aby uniknąć generowania błędów związanych z trybem. Oto bardzo podstawowy przykład ilustrujący zasadę, który wyświetla `Tak.` lub `Nie.` w zależności od tego, czy TeX jest w trybie matematycznym w momencie „wykonywania” makra.

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

Czy makro jest używane w trybie matematycznym? $\\mytest$

Czy makro jest używane w trybie matematycznym? $$\\mytest$$

Czy makro jest używane w trybie matematycznym? \\(\\mytest\\)

Czy makro jest używane w trybie matematycznym? \\[\\mytest\\]

Czy makro jest używane w trybie matematycznym? \\mytest
\end{document}
```

[Otwórz ten przykład w 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)

Poniższa grafika pokazuje wynik wygenerowany przez powyższy przykład:

![Makro LaTeX do testowania trybu matematycznego](/files/52fc69a55f7bb98b73427cf3176f7a0372ad830b)

## Zaawansowane: Wyjaśnienie mechanizmu odzyskiwania po błędach w TeX-ie

Komunikat błędu `Wstawiono brakujący znak $` nie jest generowany przez Overleaf, LaTeX ani pakiety LaTeX-a; faktycznie pochodzi z *wewnątrz programu wykonywalnego* odpowiedzialnego za skład twojego dokumentu LaTeX: ten program wykonywalny nazywa się silnikiem TeX *silnik*—można o nim myśleć jak o „prowadzącym” proces składu.

W kodzie źródłowym oprogramowania TeX jego autor (Donald Knuth) zamieszcza tę uwagę dotyczącą kodu odpowiedzialnego za generowanie `Wstawiono brakujący znak $` błędu:

> Oto lista przypadków, w których użytkownik prawdopodobnie omyłkowo wszedł do trybu matematycznego albo z niego wyszedł. TeX wstawi znak dolara i ponownie zeskanuje bieżący token.

U podstaw `Wstawiono brakujący znak $` błędu leży wykrycie przez TeX „czegoś”, co nie powinno zostać użyte w trybie matematycznym, albo „czegoś” wyraźnie przeznaczonego do składu matematycznego, użytego poza trybem matematycznym.

Zadanie stojące przed TeX-em brzmi: Jak mam się z tego wycofać? TeX robi dokładnie to, co pisze Knuth: wstawia znak dolara i ponownie skanuje bieżący token — [„token”](/latex/pl/artykuly-szczegolowe/53-what-is-a-tex-token.md) to wewnętrzna numeryczna (całkowita) wartość TeX-a, która reprezentuje znak lub polecenie, które właśnie odczytał. Jednak ze względu na dokładny kontekst błędu ta strategia może, ale nie musi, zakończyć się sukcesem — jak mówi tekst błędu: „Kontynuuj, ze skrzyżowanymi palcami.”!

### Przykład roboczy

Przyjrzyjmy się uwagom Knutha bliżej, analizując następujący przykład: $$\verb|$y=f(x)$$\\\vskip3pt|$$. Jeśli otworzysz poniższy kod, zobaczysz, że wywołuje błąd `Wstawiono brakujący znak $`.

```latex
Zapisanie \\verb|$y=f(x)$$\\vskip3pt| daje...$y=f(x)$$\\vskip3pt Nowa linia...
```

[Otwórz ten przykład w 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)

Aby prześledzić, dlaczego wywołuje to błąd, oznaczmy poszczególne $$\verb|$|$$ w wyrażeniu, aby otrzymać $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}\verb|$|*{\mathtt3}\verb|\vskip3pt|$$. TeX potrafi poprawnie przetworzyć pierwszą część $$\verb|$|*{\mathtt1}\verb|y=f(x)|\verb|$|*{\mathtt2}$$ która jest traktowana jako poprawnie sformatowany fragment matematyki liniowej, dając $$y=f(x)$$. Zaraz po przetworzeniu $$\verb|$|*{\mathtt2}$$ TeX tymczasowo wychodzi z trybu matematyki liniowej — w naszym przykładzie tworzymy matematykę liniową w akapicie, więc na krótko wchodzi do tak zwanego *trybu poziomego*.

To, co dzieje się potem, wywołuje błąd. TeX kontynuuje przetwarzanie $$\verb|$|\_{\mathtt3}$$ co powoduje, że TeX ponownie wchodzi do trybu matematyki liniowej. Teraz TeX odczytuje następny token, którym jest $$\verb|\vskip|$$ polecenie — nie odczytał jeszcze $$\verb|3pt|$$. W tym momencie TeX widzi $$\verb|\vskip|$$ ale znajduje się w trybie matematyki liniowej: $$\verb|\vskip|$$ nie jest tam dozwolone, więc uruchamia proces obsługi błędu opisany przez Knutha:

> TeX wstawi znak dolara i ponownie zeskanuje bieżący token.

Tutaj bieżącym tokenem jest $$\verb|\vskip|$$ polecenie, więc TeX umieszcza *nowy* `$` w swoim wejściu, nazwijmy go $$\verb|$|*{\mathtt4}$$. W tym momencie TeX nadal jest w trybie matematyki liniowej, ale teraz wraca, aby odczytać odpowiednik $$\verb|$|*{\mathtt4}\verb|\vskip|$$ który jest odczytywany w trybie matematyki liniowej. Wstawiony przez samego TeX-a $$\verb|$|\_{\mathtt4}$$, teraz *zamyka* bieżący tryb matematyki liniowej i TeX przechodzi do odczytu $$\verb|\vskip|$$ polecenie *poza* trybie matematyki liniowej — tutaj TeX znajduje się w akapicie, więc $$\verb|\vskip3pt|$$ powoduje zakończenie bieżącego akapitu i $$\verb|3pt|$$ odstęp po nim.


---

# 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/pl/bledy-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.
