> 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/138-understanding-underfull-and-overfull-box-warnings.md).

# Pochopení varování o nedostatečně a nadměrně zaplněných boxech

## Úvod

Po vysázení dokumentu LaTeX Overleaf často zobrazí zprávy, které hlásí podplněný nebo přeplněný `\hbox` (nebo `\vbox`), spolu s takzvanými `badness` hodnotami pro podplněné boxy nebo o částkami, o které jsou boxy přeplněné. Především je důležité poznamenat, že tyto zprávy nejsou chyby—[viz níže pro více podrobností](#overfull-or-underfull-boxes-are-not-errors). Jsou to *varování* nebo přesněji „diagnostické zprávy“, které pocházejí zevnitř TeXového enginu používaného k sazbě vašeho dokumentu LaTeX.

V tomto článku nápovědy poskytneme úvodní přehled o zdroji a příčině těchto zpráv a uvedeme některé běžné problémy s navrženými řešeními. Pro čtenáře zajímající se o více podrobností jsme v galerii Overleaf zveřejnili doprovodný článek: [Prozkoumávání podplněných nebo přeplněných boxů a výpočtů badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv). Seznam dalších zdrojů lze také najít [na konci tohoto článku](#further-reading).

## Obsahuje můj projekt varování před přeplněnými nebo podplněnými boxy?

Chcete-li zjistit, zda váš projekt hlásí tato varování, budete muset kliknout na ikonu zobrazenou na snímku obrazovky níže. I když se váš dokument mohl zkompilovat bez chyby, je velmi běžné tyto zprávy vidět a kdokoli, kdo je v TeXu/LaTeXu poměrně nový, si může klást otázku, co znamenají a zda by se jimi měl znepokojovat.

![Snímek obrazovky zobrazující, jak Overleaf hlásí podplněné nebo přeplněné boxy](/files/5cfaa52b6fc1f13064f0b4271570d41397183a56)

Při sazbě dokumentu se LaTeX pokusí přizpůsobit části vašeho obsahu do hranic dané „velikosti“; například při sazbě odstavců a lámání řádků na určitou délku—nejlépe to lze ukázat pomocí příkazu jako `\parbox`. Pokud se pokusíme vysázet následující odstavec s šířkou řádku 50 pt:

```latex
\parbox{50pt}{Nějaký text vysázený pomocí \texttt{\string\parbox}}
```

Overleaf hlásí dvě `Podplněný \hbox...` varování:

![Snímek obrazovky zobrazující, jak Overleaf hlásí podplněné boxy](/files/82f310aec26bb08f01da7fb3547c9ac067429445)

Tato `Podplněný \hbox...` varování vznikají proto, že TeXový engine nedokáže vytvořit „hezké“ zlomy řádků v omezeních této \parbox. Uvnitř TeXových enginů se každý řádek vysázeného odstavce stává \hboxem, který engine následně zkontroluje a ohlásí, přičemž může generovat varování pro jakékoli řádky vysázeného textu, které TeXový engine klasifikuje jako „nežádoucí“.

Jak vidíte na následujících obrázcích, řádky textu jsou od sebe nesmírně vzdálené a TeXova `Podplněný \hbox...` varování vás na to upozorňují—i když v tomto příkladu je to zcela zřejmé.

![Snímek obrazovky zobrazující \parbox](/files/8cf2d8d9a8a0394cdfda6da73dd9a8c285c763dc)

Poznámka: v tomto příkladu se těmto varováním můžete vyhnout použitím \raggedright:

```latex
\parbox{50pt}{\raggedright Nějaký text vysázený pomocí \texttt{\string\parbox}}
```

![Snímek obrazovky zobrazující \parbox](/files/8322b8c58a12515bc7a03e84d5faef377a092515)

## Přeplněné a podplněné boxy

Ta `\parbox` Tento příklad ukazuje mnohem obecnější problém: při zpracování vašeho kódu LaTeX může TeXový engine používaný k sazbě vašeho dokumentu (pdfTeX, XeTeX nebo LuaTeX) usoudit, že požadavky LaTeXu vedou k vysázenému obsahu, který se do daného poskytnutého nebo požadovaného boxu nehodí „pěkně“. Pokud ano, TeXový engine vydá varování a váš materiál bude vysázen, ale výsledek nemusí být občas esteticky vhodný a pravděpodobně to budete muset opravit. Stojí za to porozumět významu těchto zpráv a rozpoznat, kdy je třeba jednat a řešit je.

Tato varování související s boxy mají podobu

```
Overfull \hbox (<hodnota> pt příliš široký) ... na řádku/řádcích ...
Overfull \vbox (<hodnota> pt příliš vysoký) ... na řádku/řádcích ...
Underfull \hbox (badness <hodnota> ) ... na řádku/řádcích ...
Underfull \vbox (badness <hodnota>) ... na řádku/řádcích ...
```

Jedna `\hbox` odkazuje na *vodorovný box* do něhož TeXový engine umisťuje seznam položek vedle sebe a `\vbox` odkazuje na *svislý box* do něhož TeXový engine skládá položky jednu na druhou.

Pokud je materiálu příliš málo, TeXový engine ohlásí `Podplněný \hbox` varování nebo `Podplněný \vbox` varování:

* **Podplněné boxy** nemají dostatek materiálu k vyplnění rozměrů (boxu) vyhrazených pro jejich obsah a TeXový engine musel obsah „natáhnout“, aby se pokusil tento prostor vyplnit. U podplněných boxů Overleaf také ohlásí takzvanou „badness“ TeXu (`badness <hodnota>`) která je mírou toho, jak moc musel TeX váš obsah „natáhnout“, aby vyplnil vyhrazený prostor. Hodnoty badness se obvykle pohybují od 0 do 10000.

Pokud je materiálu příliš mnoho, TeXový engine ohlásí varování \`Overfull \hbox\` nebo varování \`Overfull \vbox\`:

* **Přeplněné boxy** mají příliš mnoho obsahu, aby se vešel do rozměrů (boxu) vyhrazených pro jeho obsah, a TeX jej nemůže „vtěsnat“ do poskytnutého prostoru. TeXový engine uvádí částku (`<hodnota>`), v bodech, o kterou váš obsah přesahuje dostupný prostor—váš materiál je pro daný `\hbox` nebo je příliš vysoký pro daný `\vbox`.

## Přeplněné nebo podplněné boxy nejsou chyby

Jak bylo uvedeno, přeplněné/podplněné `\hbox` nebo `\vbox` zprávy nejsou chyby, ale „diagnostické varovné zprávy“ výstupem TeXového enginu (pdfTeX, XeTeX nebo LuaTeX) používaného k sazbě vašeho dokumentu LaTeX. Ačkoli *hlášené* vám Overleafem, tato varování nejsou *generovaný* od Overleafu: pocházejí zevnitř TeXových enginů. Během sazby jsou tyto zprávy zapisovány do `.log` souboru—textového souboru vytvářeného TeXovým enginem, aby zaznamenal řadu informací při zpracování vašeho kódu LaTeX. Overleaf zpracovává `.log` soubor, aby z něj extrahoval zprávy TeXového enginu o přeplněných/podplněných `\hbox` nebo `\vbox` varovných zprávách a zobrazuje je v rozhraní Overleaf. To vám pomůže najít a identifikovat části dokumentu, které mohou vyžadovat úpravy, aby poskytly co nejlepší vysázený výsledek.

## Mám se těchto varování obávat?

Uživatelé, kteří jsou v TeXu/LaTeXu noví, mohou být těmito varováními znepokojeni a přemýšlet, zda neukazují na vážný problém s jejich dokumentem, ale často je tomu tak, že většinu z nich lze bez obav ignorovat. Tato varování však někdy upozorňují na část dokumentu, kterou je třeba zkontrolovat a případně upravit, aby se zlepšil viditelný výsledek sazby.

Interpretace těchto zpráv může vyžadovat trochu praxe, takže pokud jste v TeXu/LaTeXu noví, stojí za to věnovat čas budování zkušeností nalezením místa ve zdrojovém kódu, které varování vyvolalo. Tím se brzy naučíte rozpoznávat varování, která skutečně upozorňují na problémy, jež možná budete muset řešit.

## Jak najdu zdroj varování?

1. V rozhraní Overleaf klikněte na varovnou zprávu a editor se posune na odpovídající místo ve vašem zdrojovém kódu LaTeX.
2. Vlevo od místa ve zdrojovém kódu bude malý žlutý trojúhelník s vykřičníkem (!).
3. Když najedete ukazatelem myši na trojúhelník, Overleaf zobrazí varovnou zprávu.

Tento krátký videoklip ukazuje výše uvedené kroky.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/1S1CW2vbVGRHnCXmsbjgAX/096e314caba0c1bafb762a528761e24d/findwarning.mp4>" %}

## Jak najdu místo v PDF odpovídající mému kódu LaTeX?

Poté, co najdete kód LaTeXu, který vyvolal konkrétní varování, můžete přejít na příslušné místo v PDF pomocí šipek umístěných na dělící liště oddělující panely s editorem a vysázeným PDF.

![Snímek obrazovky zobrazující \parbox](/files/9f358ab49d18be671908d89de0ebd092f64fd2d3)

Pokud tyto šipky nevidíte, náš článek nápovědy [Jak přejít ze sázeného PDF na zdrojový kód (SyncTeX)](/latex/cs/znalostni-baze/069-how-to-jump-to-the-source-code-from-the-typeset-pdf-synctex.md) ukazuje, jak je povolit.

## Běžné problémy a jak je opravit

* Můžete použít [balíček microtype](https://ctan.org/pkg/microtype?lang=en) který využívá mikrotypografická rozšíření zavedená pdfTeXem—produkuje kvalitnější sazbu, která může také vést k menšímu počtu špatných boxů.
* Pokud máte problémy s adresami URL a zalamováním řádků, můžete přidat volbu `breaklinks` do `hyperref` balíček: `\usepackage[breaklinks]{hyperref}`.
* Stejně jako `\parbox`, `minipage` prostředí mohou vyvolat varování o přeplněných nebo podplněných boxech, když se TeXový engine snaží rozdělit odstavce na řádky:

```latex

\begin{minipage}{width}
text...
\end{minipage}
```

Pokud je to možné, zvyšte hodnotu `width` abyste TeXovému enginu dali lepší šanci vytvořit dobré zlomy řádků—a/nebo použijte [balíček microtype](https://ctan.org/pkg/microtype?lang=en).

### Poznámky k používání \\\\

`\\` je makro (řídicí symbol), jehož přesná definice může záviset na kontextu, v němž je použito—výbornou diskusi/vysvětlení lze najít v této [odpovědi na tex.stackexchange](https://tex.stackexchange.com/a/55481).

* `\\` by neměl být používán k přidávání svislého prostoru mezi odstavci—považuje se to za velmi špatnou praxi.
* `\\` je určen pouze pro zalomení řádků (podobně jako Shift+Enter v Microsoft Wordu). Správný způsob, jak vytvořit nový odstavec v LaTeXu, je oddělit odstavce prázdnými řádky ve zdrojovém kódu.
* Místo používání `\\` (nebo `\newline`/`\vspace`) k napodobení zalomení odstavců nebo ke zvětšení mezery mezi odstavci je doporučeným řešením pro nastavení mezery mezi odstavci načíst [balíček parskip](https://ctan.org/pkg/parskip) balíček: vložte `\usepackage{parskip}` do preambule dokumentu.
* Používání `\\` napříč odstavci v dokumentu může narušovat algoritmy LaTeXu, které počítají optimální umístění plovoucích objektů, lámání stránek atd., a ve velkém dokumentu může způsobit chyby kompilace.
* Legitimní použití `\\` je vysvětleno v odpovědích na [tex.stackexchange](https://tex.stackexchange.com/). Například viz:
  * [Kdy používat `\par` a kdy `\\`, `\newline`, nebo prázdné řádky](https://tex.stackexchange.com/a/82666)
  * [Co dělá `\\*` ?](https://tex.stackexchange.com/a/55481)

## Řízení toho, které boxy vám TeX hlásí

TeXové enginy poskytují řadu nízkoúrovňových primitivních příkazů, které můžete použít k řízení heuristik TeXu a nastavení prahové hodnoty, jak „špatný“ musí box být, než jej TeX ohlásí. Zde je několik odkazů pro čtenáře zajímající se o tyto příkazy:

* [\hfuzz a \vfuzz](/latex/cs/primitiva-texu-latexu/06-hfuzz.md)
* [\hbadness a \vbadness](/latex/cs/primitiva-texu-latexu/05-hbadness.md)

## Další čtení

Pro další úvodní čtení o používání boxů a lepidla v TeXu je zájemce odkázán na tyto zdroje:

* Článek Overleafu [Jak TeX vypočítává nastavení lepidla v \hboxu](/latex/cs/clanky-do-hloubky/24-how-tex-calculates-glue-settings-in-an-hbox.md).
* Sedmnáctistránkový článek Overleafu napsaný jako doprovod k tomuto článku nápovědy: [Prozkoumávání podplněných nebo přeplněných boxů a výpočtů badness](https://www.overleaf.com/latex/examples/exploring-underfull-or-overfull-boxes-and-badness-calculations/wpfsjnbkrfhv). Tento článek také probírá TeXová primitiva `\hfuzz` a `\hbadness`.
* TeX FAQ na adrese <https://texfaq.org/FAQ-overfull.html>.
* [tex.stackexchange](https://tex.stackexchange.com/) obsahuje spoustu rad od předních odborníků na TeX/LaTeX.


---

# 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/138-understanding-underfull-and-overfull-box-warnings.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.
