> 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/cs/znalostni-baze/066-how-to-find-and-fix-errors-reported-in-generated-files.md).

# Jak najít a opravit chyby hlášené v generovaných souborech

## Úvod

Overleaf někdy hlásí chyby, které vznikají ze souborů s názvy jako `output.toc`, `output.bbl`, apod., ale tyto soubory *ve vašem projektu vůbec neexistují*. Odkud tedy takové soubory *pocházejí* a, což je ještě důležitější, jak *najděte* a *opravíte* tyto chyby?

> ![Gen-toc-error.png](/files/26c3bab6f108688c57f7a775595e96d0e1161244) „Ale já přece ani **uvádějí** tento `output.toc` soubor ve svém projektu nemám!“

Tyto „záhadné soubory“ jsou artefakty: pomocné soubory generované během procesu kompilace LaTeXu, ale mohou také vyvolat chyby, které obvykle pramení z problémů v kódu ve zdrojových souborech vašeho projektu. Tento článek používá [reálný příklad plný chyb](#playing-detective-locating-errors-in-generated-files) k ukázce, jak tyto chyby vystopovat zpět k jejich zdroji ve zdrojovém souboru či souborech vašeho projektu.

## Soubory generované během procesu kompilace LaTeXu

Kromě výstupního `.pdf` souboru generuje kompilace LaTeXu několik typů souborů, které obsahují informace o popiscích, křížových odkazech, číslech stran apod. Některé pomocné typy souborů nevytváří přímo kompilátor LaTeXu, ale jiné nástroje používané při sazbě: například formátované seznamy literatury a rejstříky. Tyto generované soubory musí kompilátor číst při dalších průchodech, aby byl výsledný `.pdf` soubor doplněn správnými seznamy, citacemi a křížovými odkazy.

To, že LaTeX a související zpracovatelské nástroje musí zapisovat a číst pomocné datové soubory, znamená, že před vytvořením konečného vysázeného (stabilního) `.pdf` souboru může být zapotřebí několik kroků kompilace/zpracování. Typický sazební cyklus může být:

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

V lokální instalaci LaTeXu možná budete muset každý mezikrok spouštět sami, nebo můžete použít nástroj pro sestavení, jako je [make](https://www.gnu.org/software/make/manual/), [latexmk](https://ctan.org/pkg/latexmk) nebo [arara](https://ctan.org/pkg/arara), který tuto posloupnost procesů automatizuje. [Overleaf používá latexmk](/latex/cs/znalostni-baze/064-how-does-overleaf-compile-my-project.md), a toto video ukazuje, co se stane při každém kliknutí na tlačítko „Rekompilovat“ ve vašem projektu na Overleafu.

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

Obvykle mají generované soubory stejný název jako `.tex` soubor, který se kompiluje; například pokud kompilujete `**main**.tex`, generované soubory se budou jmenovat `**main**.aux`, `**main**.toc`, `**main**.lof` apod. Nicméně *na Overleafu* kompilace `\jobname` je vždy nastavena na `**output**`, takže [generované soubory](/latex/cs/znalostni-baze/150-view-generated-files.md) ve vašem projektu na Overleafu jsou vždy pojmenované `**output**.aux`, `**output**.toc`, `**output**.lof` apod. Tyto generované soubory lze z vašeho projektu na Overleafu stáhnout, ale na Overleafu je nelze zobrazit ani upravovat.

## Chyby kompilace hlášené z generovaných souborů

Chyby v kódu v hlavním projektu `.tex` souboru se mohou přenést do generovaných souborů. Například neescapovaný `&` v `\section{Introduction & Background}` by se dostal do generovaného `.toc` souboru. Když se generovaný `.toc` soubor následně načte při dalším `pdflatex` průchodu kompilace, zobrazí se chybová zpráva jako „pocházející ze souboru .toc“. Současné logy LaTeXu a hlášení chyb však nespojují řádky v `.toc` souboru (a dalších generovaných souborech) s jejich původním místem ve zdrojovém `.tex` souboru: nemusí být hned zřejmé, kde má být původní chyba opravena.

Tady je příklad, jak jsou chyby prezentovány v jiném editoru LaTeXu: zatímco na chybovou zprávu lze kliknout a otevřít příslušný řádek v generovaném `.toc` nebo `.aux` souboru, neexistuje cesta, jak se z chyby dostat k původnímu místu ve `.tex` souboru. A i když chybu opravíte nahrazením `&` s `\&` ve `.toc` souboru, ve skutečnosti to problém neřeší: při příští kompilaci `.tex` souboru se `.toc` soubor znovu vygeneruje a stejná chyba bude znovu zapsána do `.toc` souboru.

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

Když je chyba hlášena jako pocházející z generovaných souborů, správný způsob řešení je najít skutečnou původní chybu ve zdrojových souborech a opravit je. Chybové zprávy obvykle obsahují kontextové informace, nějaký text nebo kód obklopující chybu, takže vyhledání textu ve zdrojových souborech pomůže chybu najít. Samotné chyby bývají často běžné: některé časté chyby můžete vyhledat na [tuto stránku nápovědy](/latex/cs/zaklady-latexu/05-errors.md)nebo v [seznamu častých otázek TeXu](https://texfaq.org/#errors).

## Nejprve zkuste vymazat generované soubory

Někdy jsou chyby v generovaných souborech zbytky z předchozí kompilace. I když jste chyby ve svém `.tex` souboru opravili a znovu zkompilovali, generované soubory, které chyby stále obsahují, může kompilátor stále číst, a tím vytvářet stejné chyby jako předtím. Můžete zkusit generované soubory před opětovnou kompilací smazat. Pokyny, jak to udělat na Overleafu, najdete [zde](/latex/cs/znalostni-baze/028-clearing-the-cache.md).

Jestliže i po smazání všech generovaných souborů a opětovné kompilaci stále vidíte stejné chyby, je pravděpodobné, že ve vašich zdrojových souborech jsou skutečné chyby.

## Pátrání jako detektiv: hledání chyb v generovaných souborech

Následující části nabízejí několik tipů, kde takové chyby hledat. Budeme používat následující *záměrně chybový* ukázkový projekt pro naše detektivní pátrání. Připraveni? Jdeme na to!

[Otevřete *chybový* projekt na Overleafu!](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Demo+of+LaTeX+compile+errors+reported+from+generated+files\&main_document=main.tex\&snip_uri=https%3A%2F%2Fassets.ctfassets.net%2Fnrgyaltdicpt%2F5qdEqgUidaYDHjOlBoKM7K%2F55395921a114edb36ed3d51d7b1c6edb%2Fdemoerrors.zip) Projekt by měl vypadat nějak takto 😲:

![Obrázek ukazující chyby v projektu LaTeXu](/files/9797f50aef74cead3eff503cd386f2b64fefbc59)

### Chyby ze souborů .aux

Ta `.aux` soubor obsahuje informace o použití `\label{...}` deklarací a `\cite{...}` ve `.tex` souboru, takže to jsou užitečné věci ke kontrole.

Podívejme se nejprve na tuto chybu z našeho ukázkového chybového projektu.

![ukázková chyba v souboru .aux kvůli chybné deklaraci \label](/files/88a3cd96a8aad08b4bca823ccffb051a05af8e73)

Chyba `Missing \endcsname inserted.` v `\alpha` může na první pohled působit dost záhadně a zdá se, že v našem ladění není moc užitečná. Z textu (kontextu) chybové zprávy ale vidíme, že vzniká někde poblíž kódu, který má `sec:\alpha`a je spojen s nějakým popiskem nebo čítačem očíslovaným 1.1. Proto bychom měli pečlivě hledat v jakýchkoli `\label{...}` v našem `.tex` souborech, které obsahují úryvek `sec:\alpha`.

Brzy byste měli najít řádek 37 našeho ukázkového projektu:

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

Argument předaný do `\label{...}` nesmí obsahovat žádné LaTeXové příkazy nebo řídicí sekvence, například `\alpha`. Proto oprava popisku na něco jako `\label{sec:alpha}`stejně jako všech odpovídajících `\ref{...}`chybu odstraní.

Tady je další chyba hlášená ze `.aux` souboru v našem ukázkovém projektu:

![ukázková chyba v souboru .aux kvůli mezeře v klíči \cite{...}](/files/d2c3987c86059491d97492346cf480f7b86b571f)

Tentokrát si kompilátor stěžuje na mezeru v `\citation`; kde klíč začíná „That“. Hledali bychom tedy `\cite{That ...}` v našem `.tex` v souboru... a najdeme to na řádku 23:

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

Klíče citací by neměly obsahovat mezery, takže mezery v tomto `\cite{...}`stejně jako odpovídající klíč BIBTeXu v `.bib` souboru, by měly být odstraněny.

### Chyby ze souborů .toc

Ta `.toc` soubor obsahuje záznamy pro `\tableofcontents`Ty jsou naplňovány z nadpisů oddílů v dokumentu LaTeX, např. `\chapter{...}`, `\section{...}`, apod. Pokud tedy vidíte chyby hlášené ze `.toc` souborů, bylo by užitečné zkontrolovat nadpisy oddílů, které obsahují text uvedený v chybové zprávě.

![ukázková chyba v souboru .toc kvůli neescapovanému & v \section{...}](/files/16c7c93c979b4faf056761ab9a6a64a6a7c46ea5)

To vypadá jako nadpis oddílu, který by byl očíslován „1“, a obsahuje text `Introduction & Welcome`. Rychlé hledání v `.tex` souboru nás zavede na řádek 12:

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

Ta `&` je zde neescapovaný, takže jej musíme změnit na `\&` ve `.tex` souboru.

Další podobný příklad:

![ukázková chyba v souboru .toc kvůli matematickému příkazu mimo matematický režim v klíči \section{...}](/files/04ce58f0fbab156bd5e02943bdb9d1198fc4d844)

Podobně bychom tipovali, že hledáme nadpis oddílu, který by byl očíslován „1.1“ a pravděpodobně obsahuje `Setting \alpha`. Náš tip se ukáže jako správný na řádku 36 `.tex` souboru:

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

`\alpha` je matematický příkaz, ale zapomněli jsme jej zde vložit do matematického režimu, takže to musíme opravit na

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

nebo

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

Někdy chyby vznikají v `.toc` souboru kvůli chybám v kódu použitém ke stylování položek v obsahu:

![ukázková chyba v souboru .toc kvůli nesprávnému kódu při stylování položky obsahu](/files/174c6b5e72441c3aef8bf6c00c7ec66741b54073)

Zde hledání pomocí `\itshae` nás dovede k překlepu na řádku 5 našeho ukázkového `.tex`: má tam být `\itshape` místo toho. V tomto případě lze chybu najít v preambuli našeho `.tex` souboru, takže ji můžeme rovnou opravit. Pokud ale používáte `.cls` nebo `.sty` soubor poskytnutý vaší institucí a domníváte se, že chyby jsou způsobeny chybnou konfigurací v dodaných souborech, měli byste kontaktovat autora nebo správce šablony či balíčku, aby mohli šablonu aktualizovat.

### Chyby ze souborů .lof a .lot

Ta `.lof` soubor obsahuje záznamy pro `\listoffigures`, a jsou naplňovány `\caption{...}` pro `figure` prostředími.

Podobně `.lot` soubor používá `\caption{...}` z `table` prostředí, aby generoval záznamy pro `\listoftables`.

Pokud tedy existují chyby LaTeXu ze `.lof` nebo `.lot` souborů, měli byste zkontrolovat `\caption{...}` který obsahuje příslušné textové úryvky.

Na základě chybové zprávy zde budeme hledat `Effects of \alpha and var_coeff` v našem `\caption{...}`s, zejména u `figure`s:

![ukázková chyba v souboru .lof kvůli matematickému příkazu mimo matematický režim v klíči popisku obrázku \caption{...}](/files/8e954e057e3a2be9587bde332ee9b165c655b03e)

a přejdeme na řádek 19 v našem `.tex` souboru:

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

Ta `\alpha` má být v matematickém režimu; a pokud `var_coeff` má být název proměnné, podtržítko musí být escapováno. Nepoužívejte `\verb|var_coeff|` protože to může být v `\caption{...}`docela katastrofální také!

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

Podobně bychom při pohledu na tuto chybu hledali `nějaká ukázková data s n^i` v `table` `\caption{...}`, s tušením, že jsme zapomněli dát `n^i` také do matematického režimu.

![ukázková chyba v souboru .lot kvůli hornímu indexu mimo matematický režim v klíči popisku tabulky \caption{...}](/files/c86ebf3191899576030a63c3096cc5cb7598db9c)

A tak opravíme řádek 31

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

na

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

### Chyby ze souborů .bbl

Ta `.bbl` soubor obsahuje záznamy pro seznam literatury (bibliografii) a je generován BIBTeXem po zpracování `.bib` souboru s využitím stylovacích informací ze `.bst` souboru. Chyby hlášené z `.bbl` obvykle pocházejí ze `.bib` souboru.

Tady je běžná chyba, kterou často vídáme v podpoře Overleafu:

![ukázková chyba v souboru .bbl kvůli neescapovanému & v souboru .bib](/files/4c60347c871fbbde23a1f90b178ae8f63f982073)

Hledání `This & that` ve `.bib` souboru ukázkového projektu nás zavede na řádek 13, kde si uvědomíme, že `&` má být escapováno jako `\&` nebo nahrazeno slovem `a`.

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

Autoři se často setkávají s chybami souvisejícími s znaky Unicode v `.bbl` (a tedy `.bib`) souborech — zejména pokud byly zdroje informací zkopírovány a vloženy odjinud:

![ukázková chyba v souboru .bbl kvůli nepodporovanému znaku Unicode v souboru .bib](/files/dcda792a42f94c1ee0d43dfa452004af4f14f5b1)

Kopírování znaku ♣ z chybové zprávy a jeho vyhledání v `.bib` souboru vás zavede na řádek 3:

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

Některé znaky Unicode nejsou podporovány `latex` a `pdflatex` kompilátory. Abyste se vyhnuli chybě, můžete zkusit [změnit kompilátor vašeho projektu](/latex/cs/znalostni-baze/026-changing-compiler.md) na `XeLaTeX` nebo `LuaLaTeX`. I tak ale musíte zajistit, aby byl váš projekt s těmito kompilátory kompatibilní, a že jste použili písmo, které obsahuje glyf pro znak ♣, aby byl správně vykreslen ve výsledném PDF. Proto by bylo lepší použít příslušné příkazy LaTeXu:

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

Někdy však může být znak mnohem hůř k nalezení:

![ukázková chyba v souboru .bbl kvůli nepodporovanému, netisknutelnému znaku Unicode v souboru .bib](/files/3ae8daf260c934953dc2284d768f01b96476466d)

Zde je U+3000 [znak Unicode `IDEOGRAPHIC SPACE`](https://www.fileformat.info/info/unicode/char/3000/index.htm)a tedy skutečně jde o mezeru. Může být obtížné tento přesný znak zkopírovat z chybové zprávy tak, abyste jej mohli vyhledat v `.bib` souboru. Budeme tedy muset zkusit jiný způsob, jak ho najít, a to pomocí `\DeclareUnicodeCharacter` k nahrazení `U+3000` něčím viditelnějším! Přidejte následující řádky do preambule svého projektu, před `\begin{document}`:

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

Po zkompilování projektu chyba zmizí; ale v PDF výstupu byste měli pozorně hledat BAD!!:

![výstupní PDF nahrazující U+3000 červeným BAD!!](/files/8a3071e758da326c70eab3ff91fa195ba602c94b)

Teď už víme, že špatný znak je mezi `pro` a `Wondrous`, u bibliografické položky od „An Author“. Na řádku 5 vypadá docela neškodně, protože je neviditelný: ale když ten `.bib` soubor `...of Wondrous...` přepíšete ručně normálním mezerníkem, chyba po opětovné kompilaci zmizí.

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

#### Poznámka k biblatex

Pokud používáte `biblatex` balíčku, pak by podobné chyby v `.bib` souborech byly pravděpodobně všechny hlášeny jako pocházející z `\printbibliography` řádku ve vašem `.tex` souboru. Proces ladění je podobný: použijte krátké textové úryvky v chybových zprávách k vyhledání v `.bib` souboru, abyste našli problematické řádky, a opravte je.

### Chyby ze souborů .bst

`.bst` soubory jsou bibliografické styly, které BIBTeX používá ke zpracování a formátování seznamu literatury. Pokud vidíte chyby ze `.bst` souborů, může to být způsobeno chybami v samotném `.bst` balíčku, zejména pokud jde o opravdu, opravdu starý stylový soubor, který už nemusí být kompatibilní s novějšími balíčky LaTeXu. Může to ale ve skutečnosti být také kvůli chybám v `.bib` souboru. Nejběžnější chyba v této kategorii vypadá takto:

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

Položka s klíčem BIBTeXu `Someone:etal:2008` má `autor` pole na řádku 12 v `.bib` souboru:

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

V `.bib` souboru [se seznam více jmen](/latex/cs/odkazy-a-citace/01-bibliography-management-with-bibtex.md#multiple-authors) má oddělovat `a`a, ne čárkami ani `&`. Proto by toto `autor` pole mělo být opraveno na

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

### Chyby ze souborů .ttt a .fff

Tyto typy souborů se generují jen tehdy, když načtete balíček [`endfloat` accents](https://www.ctan.org/pkg/endfloat), který slouží k vynucení přesunutí všech prostředí tabulek a obrázků na konec dokumentu podle požadavků některých akademických časopisů při odevzdávání článku.

Chcete-li vidět ukázkové chyby z těchto generovaných souborů, odkomentujte řádek 3 `\usepackage{endfloat}` toho `.tex` souboru v našem ukázkovém projektu.

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

Ta `.ttt` soubor obsahuje obsah ze všech `table` prostředí v dokumentu, takže bychom hledali `dummy & data` ve `.tex` v souboru, přičemž bychom věnovali pozornost tabulkám. Dostali bychom se na řádek 29 v `.tex` souboru, kde vidíme problém: máme tři sloupce, tedy o jeden více, než byly deklarovány dva. Takže možná je třeba jeden sloupec navíc smazat; nebo bychom měli vložit `\\` za `dummy` pro začátek nového řádku; nebo jsme možná chtěli nakonec deklarovat tři sloupce `c | c | c` !

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

Podobně `.fff` soubor obsahuje obsah ze všech `figure` prostředí a vyhledání té překlepnuté `\includegraphcs` by nás dovedlo na řádek 18 `.tex` souboru, kde to můžeme opravit na `\includegraphics`.

## Další čtení

* [Jak Overleaf kompiluje můj projekt?](/latex/cs/znalostni-baze/064-how-does-overleaf-compile-my-project.md)
* [Běžné chyby LaTeXu](/latex/cs/zaklady-latexu/05-errors.md)
* [seznamu častých otázek TeXu](https://texfaq.org/#errors)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/cs/znalostni-baze/066-how-to-find-and-fix-errors-reported-in-generated-files.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
