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

# \badness

#### Yhteenveto

Joka kerta, kun TEX rakentaa laatikon (esim. nimenomaisesti käyttämällä `\hbox` tai `\vbox`) se asettaa tai laskee kyseisen laatikon “huonouden”: numeerisen arvon, jota voi ajatella tapana mitata tai luokitella sitä, kuinka hyvin laatikon sisältö sopii sen sisään. Viimeksi rakennetun laatikon huonouden arvo tallennetaan vain luku -rekisteriin (muistipaikkaan), johon voidaan viitata komennolla `\badness`: esimerkiksi komennolla `\the\badness`. Huomaa, että TEX luo laatikoita myös muun tyyppisten ladontatoimien aikana (esim. rivinvaihdossa), mutta tässä keskitymme nimenomaisiin laatikonrakennuskomentoihin.

#### Selitys ja esimerkit

Kun TEXiltä pyydetään laatikon luomista seuraavilla laatikonrakennuskomennoilla:

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

voit valita laatikon koon ja pyytää TEXiä yrittämään sovittaa sisältösi siihen; esimerkiksi `\hbox to 20pt{<stuff>}` pyytää TEXiä yrittämään sovittaa `<stuff>` laatikkoon, joka on 20pt leveä. TEX tekee parhaansa saadakseen `<stuff>` sopimaan venyttämällä tai kutistamalla käytettävissä olevaa liimaa.

Vaihtoehtoisesti, jos sinä *et* kiinnitä laatikon kokoa kirjoittamalla `\hbox{<stuff>}`, TEX rakentaa yksinkertaisesti `\hbox` laatikon, joka on riittävän leveä majoittamaan `<stuff>` ja siinä tapauksessa TEX antaa tälle laatikolle huonousarvon 0.

Kun TEX päättää laskea laatikon huonouden se vertaa sisältösi todellista kokoa laatikon sopivaan ulottuvuuteen, johon sen on mahduttava: onko sisältösi liian leveä mahtuakseen määritettyyn `\hbox` vai liian korkea mahtuakseen määrättyyn `\vbox` tai `\vtop`? Osana huonouden laskentaa TEX ottaa huomioon myös *kokonais* kutakin liimatyyppiä olevan määrän laatikon sisällä — eli kuinka paljon venymää tai kutistumista on yhteensä käytettävissä halutun kokoisen laatikon aikaansaamiseksi.

Käytännössä, kun TEXin tarvitsee laskea laatikon huonousarvo, se käyttää (likimääräistä) seuraavaa kaavaa:

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

jossa $$t$$ on haluttu “ylimääräinen leveys”, joka on sovitettava, ja $$s$$ on liiman määrä, joka on käytettävissä venyttämiseen tai kutistamiseen.

Huonouden arvo on yleensä välillä 0 ja 10000, mutta erityisarvo on varattu laatikoille, jotka eivät liiman kutistumisen sallimisen jälkeenkään yksinkertaisesti ole tarpeeksi suuria sisällön pitämiseen: ne laatikot luokitellaan “ylitäysiksi”, ja TEX antaa niille “erityisen” huonousarvon 1000000.

Okei, teoriasta/selityksestä siinä kaikki; nyt katsomme joitakin esimerkkejä. Luomme 5 laatikkoa ja käytämme 5 `\count` rekisteriä pitämään `\badness` arvoa siitä laatikosta, jonka TEX on juuri luonut. Käytämme myöhemmin näitä `\count` rekistereitä tulostaaksemme `\badness` kyseisen laatikon arvon.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %Emme aseta laatikon kokoa
\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}% laita tiukka reunus jokaisen laatikon ympärille
\noindent Tässä ovat tulokset:\vskip5mm
\noindent laatikolla 100 (\fbox{\copy100}) on \verb|\badness|-arvo \number\aval\par
\noindent laatikolla 101 (\fbox{\copy101}) on \verb|\badness|-arvo \number\bval\par
\noindent laatikolla 102 (\fbox{\copy102}) on \verb|\badness|-arvo \number\cval\par
\noindent laatikolla 103 (\fbox{\copy103}) on \verb|\badness|-arvo \number\dval\par
\noindent laatikolla 104 (\fbox{\copy104}) on \verb|\badness|-arvo \number\eval\par
```

Seuraava kuva näyttää tuloksen:

![](/files/723e3ed3040634f8b83f999006a60f125c17cca1)

* laatikko 100: `\hbox{Hello \TeX}`. Tällä on `\badness` 0, koska TEXiä ei pyydetty sovittamaan sisältöä tiettyyn kokoon.
* laatikko 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Tässä laatikossa on kaksi liimaa: sanan “Hello” jälkeinen sanaväli ja 5pt, joka tulee `\hskip` liimasta. Haluttu laatikko on kuitenkin 25mm leveä, mikä johtaa siihen, että täytettävää tilaa on paljon eikä liimaa juuri lainkaan. Tämä ylimääräisen tilan ja käytettävissä olevan liiman yhdistelmä johtaa `\badness` arvoon 6396.
* laatikko 102: `\hbox to50mm{Hello \TeX}`. Tässä laatikossa on vain yksi liimaelementti: sanan “Hello” jälkeinen sanaväli, ja täytettävää ylimääräistä tilaa on paljon. Tämä ylimääräisen tilan ja vähäisen liiman yhdistelmä johtaa hyvin suureen `\badness` arvoon — niin suureen, että TEX “leikkaa” sen enimmäisarvoon 10000. Lisäksi sanaväliä venytetään huomattavasti laatikon täyttämiseksi, mikä saa aikaan valtavan välin “Hello” ja “TEX” välille
* laatikko 103: `\hbox to50mm{Hello \TeX\hfill}`. Tämä laatikko on samanlainen kuin laatikko 102, mutta siinä on kaksi liimaa: sanan “Hello” jälkeinen sanaväli, ja lisäksi siinä on toinen hyvin joustava liima, jonka tarjoaa `\hfill`— niin sanottu “äärettömän joustava” liima. Tämän seurauksena,`\hfill` voi venyä niin paljon kuin tarvitaan ja laajenee imemään kaiken ylimääräisen tilan. “äärettömän joustavan” liiman vuoksi siitä seuraava `\badness` on 0.
* laatikko 104: `\hbox to5mm{Overleaf}` Tämä laatikko menee päällekkäin sitä seuraavan tekstin kanssa; sillä on `\badness` arvo on 1000000. Hyvin suuri huonousarvo (ja päällekkäinen teksti) johtuu siitä, että teksti “Overleaf” on liian suuri mahtuakseen `\hbox` laatikkoon, joka on vain 5mm leveä — ja lisäksi käytettävissä ei ole liimoja, jotka pystyisivät absorboimaan ylimääräisen leveyden. TEX luokittelee laatikon 104 “ylitäydeksi” laatikoksi ja asettaa `\badness` sen erityisarvoon 1000000.

#### Liittyvät komennot

TEX tarjoaa useita komentoja, jotka liittyvät laatikoiden huonouden raportointiin ja näyttämiseen:

* `[\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/fi/tex-latex-primitiivit/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.
