> 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/prymitywy-tex-latex/02-badness.md).

# \badness

#### Podsumowanie

Za każdym razem, gdy TEX tworzy pudełko (np. jawnie za pomocą `\hbox` lub `\vbox`) ustawia lub oblicza „badness” tego pudełka: wartość liczbową, którą można traktować jako sposób pomiaru lub klasyfikacji tego, jak „dobrze” zawartość pudełka mieści się w jego wnętrzu. Wartość badness dla ostatnio utworzonego pudełka jest zapisywana w rejestrze tylko do odczytu (miejscu w pamięci), do którego można uzyskać dostęp za pomocą polecenia `\badness`: na przykład przez `\the\badness`. Zauważ, że TEX tworzy pudełka także podczas innych czynności składu (np. łamania wierszy), ale tutaj skupimy się na jawnych poleceniach tworzenia pudełek.

#### Wyjaśnienie i przykłady

Gdy TEX ma utworzyć pudełko za pomocą następujących poleceń tworzenia pudełek:

* `\hbox`
* `\vbox`
* `\vtop`

możesz wybrać ustawienie rozmiaru pudełka i poprosić TEX-a, aby spróbował dopasować do niego twoją treść; na przykład `\hbox to 20pt{<stuff>}` spowoduje, że TEX spróbuje dopasować twoje `<stuff>` do pudełka o szerokości 20pt. TEX zrobi wszystko, co w jego mocy, aby `<stuff>` dopasować je, rozciągając lub zmniejszając dostępne glue.

Alternatywnie, jeśli *nie* ustawiasz rozmiaru pudełka, zapisując `\hbox{<stuff>}`, TEX po prostu utworzy `\hbox` o takiej szerokości, aby pomieścić `<stuff>` a w takim przypadku TEX przypisze temu pudełku wartość badness równą 0.

Gdy TEX decyduje się obliczyć badness pudełka, porównuje rzeczywisty rozmiar twojej treści z odpowiednim wymiarem pudełka, w którym ma się ona zmieścić: czy twoja treść jest zbyt szeroka, aby zmieścić się w określonej `\hbox` lub zbyt wysoka, aby zmieścić się w wyznaczonej `\vbox` lub `\vtop`? W ramach obliczania badness TEX bierze również pod uwagę *całkowitego* ilość każdego rodzaju glue w pudełku — tzn. ile łącznego rozciągnięcia lub skurczu jest dostępne, aby pomóc uzyskać pudełko o żądanym rozmiarze.

W praktyce, gdy TEX musi obliczyć wartość badness pudełka, używa (przybliżenia) następującego wzoru:

$$\mathrm{badness}=100\left ({t \over s}\right )^3$$

gdzie $$t$$ to żądana „nadmiarowa szerokość”, którą trzeba pomieścić, a $$s$$ to ilość glue dostępna do rozciągania lub kurczenia.

Wartość badness zwykle mieści się między 0 a 10000, ale zarezerwowano specjalną wartość dla pudełek, które nawet po uwzględnieniu kurczenia glue po prostu nie są wystarczająco duże, aby pomieścić zawartość: takie pudełka są klasyfikowane jako „przepełnione”, a TEX przypisuje im „specjalną” wartość badness równą 1000000.

OK, skoro teoria już omówiona, spójrzmy teraz na kilka przykładów. Utworzymy 5 pudełek i użyjemy 5 `\count` rejestrów do przechowywania `\badness` wartości pudełka, które TEX właśnie utworzył. Później użyjemy tych `\count` rejestrów do wypisania `\badness` wartości odpowiedniego pudełka.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %We do not set the box size
\setbox101=\hbox to25mm{Hello \TeX\hskip0pt plus5pt}\bval=\the\badness
\setbox102=\hbox to50mm{Hello \TeX}\cval=\the\badness
\setbox103=\hbox to50mm{Hello \TeX\hfill}\dval=\the\badness
\setbox104=\hbox to5mm{Overleaf}\eval=\the\badness
\setlength{\fboxsep}{0pt}% put a tight border around each box
\noindent Oto wyniki:\vskip5mm
\noindent pudełko 100 (\fbox{\copy100}) ma wartość \verb|\badness| równą \number\aval\par
\noindent pudełko 101 (\fbox{\copy101}) ma wartość \verb|\badness| równą \number\bval\par
\noindent pudełko 102 (\fbox{\copy102}) ma wartość \verb|\badness| równą \number\cval\par
\noindent pudełko 103 (\fbox{\copy103}) ma wartość \verb|\badness| równą \number\dval\par
\noindent pudełko 104 (\fbox{\copy104}) ma wartość \verb|\badness| równą \number\eval\par
```

Poniższa grafika pokazuje wynik:

![](/files/ae20a0ad0d379499ee1241ec57643d11f05f2d9b)

* pudełko 100: `\hbox{Hello \TeX}`. Ma to `\badness` 0, ponieważ TEX nie został poproszony o dopasowanie treści do określonego rozmiaru.
* pudełko 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. To pudełko ma dwa elementy glue: odstęp międzywyrazowy po słowie „Hello” oraz 5pt pochodzące z `\hskip` glue. Jednak żądane pudełko ma szerokość 25mm, co oznacza dużo miejsca do wypełnienia i niewiele glue, aby to zrobić. To połączenie nadmiaru miejsca i dostępnego glue skutkuje `\badness` wartością 6396.
* pudełko 102: `\hbox to50mm{Hello \TeX}`. To pudełko ma tylko jeden element glue: odstęp międzywyrazowy po słowie „Hello” i ma dużo nadmiarowego miejsca do wypełnienia. To połączenie nadmiaru miejsca i małej ilości glue skutkuje bardzo dużą `\badness` wartością — tak wysoką, że TEX „przycina” ją do maksymalnej wartości 10000. Ponadto odstęp międzywyrazowy zostaje znacznie rozciągnięty, aby wypełnić pudełko, co powoduje pojawienie się ogromnej przerwy między „Hello” a „TEX”
* pudełko 103: `\hbox to50mm{Hello \TeX\hfill}`. To pudełko jest podobne do pudełka 102, ale ma dwa elementy glue: odstęp międzywyrazowy po słowie „Hello” oraz drugi, bardzo elastyczny glue dostarczany przez `\hfill`— tak zwany glue „nieskończenie elastyczny”. W konsekwencji,`\hfill` może rozciągać się tak daleko, jak trzeba, i rozszerza się, aby pochłonąć całe nadmiarowe miejsce. Dzięki glue „nieskończenie elastycznemu” wynikające `\badness` wynosi 0.
* pudełko 104: `\hbox to5mm{Overleaf}` To pudełko nachodzi na tekst po nim; ma `\badness` wartość 1000000. Ta bardzo duża wartość badness (i nachodzący tekst) wynika z tego, że tekst „Overleaf” jest zbyt duży, aby zmieścić się w `\hbox` którym ma tylko 5mm szerokości — a ponadto nie ma dostępnych glue, które mogłyby pochłonąć nadmiarową szerokość. TEX klasyfikuje pudełko 104 jako pudełko „przepełnione” i ustawia `\badness` na specjalną wartość 1000000.

#### Powiązane polecenia

TEX udostępnia szereg poleceń związanych z raportowaniem i wyświetlaniem badness pudełek:

* `[\overfullrule](./07-overfullrule.md)`
* `[\hfuzz](./06-hfuzz.md)`
* `[\vfuzz](./06-hfuzz.md)`
* `[\hbadness](./05-hbadness.md)`
* `[\vbadness](./05-hbadness.md)`


---

# 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/prymitywy-tex-latex/02-badness.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.
