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

# \badness

#### Sammendrag

Hver gang TEX konstruerer en boks (f.eks. eksplisitt via en `\hbox` eller `\vbox`) setter, eller beregner, den boksens «badness»: en numerisk verdi som kan oppfattes som en måte å måle eller klassifisere hvor «godt» innholdet i en boks passer inni den boksen. Badness-verdien for den sist konstruerte boksen lagres i et skrivebeskyttet register (en minneplassering) som kan nås med kommandoen `\badness`: for eksempel ved `\the\badness`. Merk at TEX også lager bokser under andre typografiske operasjoner (f.eks. linjebrytning), men her vil vi fokusere på eksplisitte boks-konstruksjonskommandoer.

#### Forklaring og eksempler

Når TEX blir bedt om å opprette en boks ved hjelp av følgende boks-konstruksjonskommandoer:

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

kan du velge å angi størrelsen på boksen og be TEX prøve å få innholdet ditt til å passe inni den; for eksempel `\hbox to 20pt{<stuff>}` vil be TEX prøve å få `<stuff>` inn i en boks som er 20pt bred. TEX vil gjøre sitt beste for å få `<stuff>` det til å passe ved å strekke eller krympe eventuell tilgjengelig glue.

Alternativt, hvis du *ikke* fester størrelsen på en boks ved å skrive `\hbox{<stuff>}`, vil TEX ganske enkelt konstruere en `\hbox` som er tilstrekkelig bred til å romme `<stuff>` og i så fall vil TEX tilordne den boksen en badness-verdi på 0.

Når TEX bestemmer seg for å beregne badness-verdien til en boks, sammenligner den den faktiske størrelsen på innholdet ditt med den relevante dimensjonen til boksen det må passe inn i: er innholdet ditt for bredt til å passe den angitte `\hbox` eller for høyt til å passe den angitte `\vbox` eller `\vtop`? Som en del av badness-beregningen tar TEX også hensyn til *totale* mengden av hver type glue i boksen—altså hvor mye total strekk eller krymp som er tilgjengelig for å bidra til å lage en boks i ønsket størrelse.

I praksis, når TEX trenger å beregne en boks’ badness-verdi, bruker den (en tilnærming til) følgende formel:

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

der $$t$$ er den ønskede «ekstra bredden» som skal håndteres, og $$s$$ er mengden glue som er tilgjengelig for strekk eller krymping.

Badness-verdien ligger vanligvis mellom 0 og 10000, men en spesiell verdi er reservert for bokser som, selv etter at man tar hensyn til krymping av glue, rett og slett ikke er store nok til å holde innholdet: disse boksene klassifiseres som «overfull», og TEX tildeler dem en «spesiell» badness-verdi på 1000000.

OK, nok om diskusjon/teori – nå skal vi se på noen eksempler. Vi skal lage 5 bokser og bruke 5 `\count` registre til å holde `\badness` verdien til boksen som TEX nettopp har laget. Senere bruker vi disse `\count` registrene til å skrive ut `\badness` verdien til den aktuelle boksen.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %Vi setter ikke boksstørrelsen
\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}% sett en tett ramme rundt hver boks
\noindent Her er resultatene:\vskip5mm
\noindent boks 100 (\fbox{\copy100}) har en \verb|\badness|-verdi på \number\aval\par
\noindent boks 101 (\fbox{\copy101}) har en \verb|\badness|-verdi på \number\bval\par
\noindent boks 102 (\fbox{\copy102}) har en \verb|\badness|-verdi på \number\cval\par
\noindent boks 103 (\fbox{\copy103}) har en \verb|\badness|-verdi på \number\dval\par
\noindent boks 104 (\fbox{\copy104}) har en \verb|\badness|-verdi på \number\eval\par
```

Følgende grafikk viser resultatet:

![](/files/722e6453b948b94c5a7448168229e9306947b93b)

* boks 100: `\hbox{Hello \TeX}`. Denne har `\badness` 0 fordi TEX ikke ble bedt om å få innholdet til å passe i en spesifikk størrelse.
* boks 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Denne boksen har to glue-elementer: et mellomrom mellom ordene etter ordet «Hello» og 5pt som kommer fra `\hskip` glue. Men den ønskede boksen er 25mm bred, noe som gir mye plass å fylle, men ikke mye glue til å gjøre det med. Denne kombinasjonen av overskuddsplass og tilgjengelig glue resulterer i `\badness` verdien 6396.
* boks 102: `\hbox to50mm{Hello \TeX}`. Denne boksen har bare ett glue-element: et mellomrom mellom ordene etter ordet «Hello», og har mye overskuddsplass å fylle. Denne kombinasjonen av overskuddsplass og liten mengde glue resulterer i en svært stor `\badness` verdi – så høy at TEX «klipper» den til maksimumsverdien 10000. I tillegg strekkes mellomrommet mellom ordene betydelig for å fylle boksen, noe som fører til at det oppstår et stort gap mellom «Hello» og «TEX»
* boks 103: `\hbox to50mm{Hello \TeX\hfill}`. Denne boksen ligner på boks 102, men den har to glue-elementer: mellomrommet mellom ordene etter ordet «Hello», men den har også et andre svært fleksibelt glue-element som leveres av `\hfill`– et såkalt «uendelig fleksibelt» glue-element. Følgelig,`\hfill` kan strekkes så langt som nødvendig og utvider seg for å absorbere all overskuddsplassen. På grunn av det «uendelig fleksible» glue-elementet blir den resulterende `\badness` verdien 0.
* boks 104: `\hbox to5mm{Overleaf}` Denne boksen overlapper teksten som følger etter; den har en `\badness` verdien 1000000. Den svært store badness-verdien (og den overlappende teksten) skyldes at teksten «Overleaf» er for stor til å passe i en `\hbox` som bare er 5mm bred – og i tillegg finnes det ingen tilgjengelige glue-elementer som kan absorbere overskuddsbredden. TEX klassifiserer boks 104 som en «overfull» boks og setter `\badness` til den spesielle verdien 1000000.

#### Relaterte kommandoer

TEX tilbyr en rekke kommandoer knyttet til å rapportere og vise badness-verdien til bokser:

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