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

# \badness

#### Sammanfattning

Varje gång TEX konstruerar en låda (t.ex. uttryckligen via en `\hbox` eller `\vbox`) sätter eller beräknar det lådans ”badness”: ett numeriskt värde som kan ses som ett sätt att mäta eller klassificera hur ”väl” innehållet i en låda passar in i den lådan. Badness-värdet för den senast konstruerade lådan sparas i ett skrivskyddat register (en minnesplats) som kan nås med kommandot `\badness`: till exempel med `\the\badness`. Observera att TEX också skapar lådor under andra sättningsaktiviteter (t.ex. radbrytning) men här fokuserar vi på explicita kommandon för lådkonstruktion.

#### Förklaring och exempel

När TEX ombeds att skapa en låda med följande kommandon för lådkonstruktion:

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

kan du välja att ange lådans storlek och be TEX försöka få ditt innehåll att passa in i den; till exempel `\hbox to 20pt{<stuff>}` kommer att be TEX försöka få ditt `<stuff>` att passa i en låda som är 20pt bred. TEX kommer att göra sitt bästa för att få `<stuff>` att passa genom att sträcka ut eller krympa eventuellt tillgängligt lim.

Alternativt, om du *inte* låser lådans storlek, genom att skriva `\hbox{<stuff>}`, kommer TEX helt enkelt att konstruera en `\hbox` som är tillräckligt bred för att rymma `<stuff>` och i så fall kommer TEX att tilldela lådan ett badness-värde på 0.

När TEX bestämmer sig för att beräkna en lådas badness jämför det den faktiska storleken på ditt innehåll med lämplig dimension hos den låda i vilken det måste passa: är ditt innehåll för brett för att passa den angivna `\hbox` eller för högt för att passa den avsedda `\vbox` eller `\vtop`? Som en del av badness-beräkningen tar TEX också hänsyn till *totala* mängden av varje typ av lim i lådan—dvs. hur mycket total sträckning eller krympning som finns tillgänglig för att hjälpa till att skapa en låda av önskad storlek.

I praktiken, när TEX behöver beräkna en lådas badness-värde använder det (en approximation av) följande formel:

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

där $$t$$ är den önskade ”överskottsbredden” som ska rymmas och $$s$$ är mängden lim som finns tillgängligt för att sträckas eller krympas.

Värdet på badness ligger vanligtvis mellan 0 och 10000 men ett särskilt värde är reserverat för lådor som, även efter att krympning av lim har tillåtits, helt enkelt inte är tillräckligt stora för att rymma innehållet: dessa lådor klassificeras som ”överfulla” och TEX tilldelar dem ett ”särskilt” badness-värde på 1000000.

Okej, så mycket för diskussion/teori; nu ska vi titta på några exempel. Vi ska skapa 5 lådor och använda 5 `\count` register för att hålla `\badness` värdet för den låda som TEX just har skapat. Vi använder senare dessa `\count` register för att skriva ut `\badness` värdet för den relevanta lådan.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %Vi anger inte lådans storlek
\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}% sätt en tät ram runt varje låda
\noindent Här är resultaten:\vskip5mm
\noindent låda 100 (\fbox{\copy100}) har ett \verb|\badness|-värde på \number\aval\par
\noindent låda 101 (\fbox{\copy101}) har ett \verb|\badness|-värde på \number\bval\par
\noindent låda 102 (\fbox{\copy102}) har ett \verb|\badness|-värde på \number\cval\par
\noindent låda 103 (\fbox{\copy103}) har ett \verb|\badness|-värde på \number\dval\par
\noindent låda 104 (\fbox{\copy104}) har ett \verb|\badness|-värde på \number\eval\par
```

Följande bild visar resultatet:

![](/files/46bbef7f38e9b58c11daa8ba64d536a0ec7313b0)

* låda 100: `\hbox{Hello \TeX}`. Denna har `\badness` 0 eftersom TEX inte ombads att anpassa innehållet till en specifik storlek.
* låda 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Denna låda har två lim: ett ordmellanrum efter ordet ”Hello” och 5pt som kommer från `\hskip` limmet. Men den önskade lådan är 25mm bred, vilket ger mycket utrymme att fylla men inte mycket lim att göra det med. Den kombinationen av överskottsutrymme och tillgängligt lim resulterar i `\badness` värdet 6396.
* låda 102: `\hbox to50mm{Hello \TeX}`. Denna låda har bara ett lim: ett ordmellanrum efter ordet ”Hello” och har mycket överskottsutrymme att fylla. Den kombinationen av överskottsutrymme och liten mängd lim resulterar i ett mycket stort `\badness` värde—så stort att TEX ”klipper” det till maximivärdet 10000. Dessutom sträcks ordmellanrummet avsevärt för att fylla lådan, vilket resulterar i ett enormt gap mellan ”Hello” och ”TEX”
* låda 103: `\hbox to50mm{Hello \TeX\hfill}`. Denna låda liknar låda 102 men den har två lim: ordmellanrummet efter ordet ”Hello” men den har ett andra mycket flexibelt lim som tillhandahålls av `\hfill`– ett så kallat ”oändligt flexibelt” lim. Följaktligen,`\hfill` kan sträckas hur långt som helst och expanderar för att absorbera allt överskottsutrymme. På grund av det ”oändligt flexibla” limmet blir det resulterande `\badness` 0.
* låda 104: `\hbox to5mm{Overleaf}` Denna låda överlappar texten som följer efter den och har ett `\badness` värde på 1000000. Det mycket stora badness-värdet (och den överlappande texten) beror på att texten ”Overleaf” är för stor för att få plats i en `\hbox` som bara är 5mm bred — och dessutom finns det inga tillgängliga lim som kan absorbera överskottsbredden. TEX klassificerar låda 104 som en ”överfull” låda och sätter `\badness` till det särskilda värdet 1000000.

#### Relaterade kommandon

TEX tillhandahåller ett antal kommandon relaterade till att rapportera och visa lådors badness:

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