> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/it/primitivi-tex-latex/02-badness.md).

# \badness

#### Sommario

Ogni volta che TEX costruisce una box (ad es., esplicitamente tramite un `\hbox` o `\vbox`) imposta, o calcola, la “badness” di quella box: un valore numerico che si può considerare come un modo per misurare o classificare quanto “bene” il contenuto di una box si adatti all’interno di quella box. Il valore di badness della box costruita più di recente viene salvato in un registro di sola lettura (una locazione di memoria) a cui si può accedere con il comando `\badness`: per esempio con `\the\badness`. Nota che TEX crea anche box durante altre attività di composizione tipografica (ad es. l'andata a capo), ma qui ci concentreremo sui comandi espliciti di costruzione delle box.

#### Spiegazione ed esempi

Quando a TEX viene chiesto di creare una box usando i seguenti comandi di costruzione di box:

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

puoi scegliere di impostare la dimensione della box e chiedere a TEX di cercare di adattarvi il tuo contenuto; per esempio `\hbox to 20pt{<stuff>}` chiederà a TEX di cercare di adattare il tuo `<stuff>` in una box larga 20pt. TEX farà del suo meglio per far `<stuff>` combaciare il contenuto allungando o restringendo qualsiasi glue disponibile.

In alternativa, se non *non* fissi la dimensione di una box, scrivendo `\hbox{<stuff>}`, TEX costruirà semplicemente una `\hbox` abbastanza larga da contenere `<stuff>` e in tal caso TEX assegnerà a quella box un valore di badness pari a 0.

Quando TEX decide di calcolare la badness di una box confronta la dimensione reale del tuo contenuto con la dimensione appropriata della box in cui deve entrare: il tuo contenuto è troppo largo per entrare nella `\hbox` o troppo alto per entrare nella `\vbox` o `\vtop`? Come parte del calcolo della badness TEX tiene conto anche della *totale* quantità di ogni tipo di glue presente nella box—cioè quanto allungamento o restringimento totale è disponibile per aiutare a ottenere una box della dimensione desiderata.

In pratica, quando TEX deve calcolare il valore di badness di una box usa (un'approssimazione della) seguente formula:

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

dove $$t$$ è la desiderata “larghezza in eccesso” da assorbire e $$s$$ è la quantità di glue disponibile per allungarsi o restringersi.

Il valore di badness di solito è compreso tra 0 e 10000, ma è riservato un valore speciale per le box che, anche consentendo il restringimento della glue, semplicemente non sono abbastanza grandi da contenere il contenuto: queste box sono classificate come “overfull” e TEX assegna loro un valore speciale di badness pari a 1000000.

OK, basta con discussione/teoria: ora guarderemo alcuni esempi. Creeremo 5 box e useremo 5 `\count` registri per memorizzare il `\badness` valore della box che TEX ha appena creato. In seguito useremo quei `\count` registri per stampare il `\badness` valore della box corrispondente.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %Non impostiamo la dimensione della box
\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}% metti un bordo aderente attorno a ciascuna box
\noindent Ecco i risultati:\vskip5mm
\noindent box 100 (\fbox{\copy100}) ha un valore di \verb|\badness| pari a \number\aval\par
\noindent box 101 (\fbox{\copy101}) ha un valore di \verb|\badness| pari a \number\bval\par
\noindent box 102 (\fbox{\copy102}) ha un valore di \verb|\badness| pari a \number\cval\par
\noindent box 103 (\fbox{\copy103}) ha un valore di \verb|\badness| pari a \number\dval\par
\noindent box 104 (\fbox{\copy104}) ha un valore di \verb|\badness| pari a \number\eval\par
```

La grafica seguente mostra l'output:

![](/files/0a354dc8159d63d422182a3e0adf975db1da0f66)

* box 100: `\hbox{Hello \TeX}`. Questo ha `\badness` 0 perché non è stato chiesto a TEX di adattare il contenuto a una dimensione specifica.
* box 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Questa box ha due glue: uno spazio tra le parole dopo la parola “Hello” e 5pt provenienti dalla `\hskip` glue. Tuttavia, la box desiderata è larga 25mm, il che lascia molto spazio da riempire e non molta glue per farlo. Questa combinazione di spazio in eccesso e glue disponibile comporta un `\badness` valore di 6396.
* box 102: `\hbox to50mm{Hello \TeX}`. Questa box ha un solo elemento di glue: uno spazio tra le parole dopo la parola “Hello” e ha molto spazio in eccesso da riempire. Questa combinazione di spazio in eccesso e piccola quantità di glue produce un valore di badness molto grande `\badness` —così alto che TEX lo tronca al valore massimo di 10000. Inoltre, lo spazio tra le parole viene allungato considerevolmente per riempire la box, producendo un enorme spazio tra “Hello” e “TEX”
* box 103: `\hbox to50mm{Hello \TeX\hfill}`. Questa box è simile alla box 102 ma ha due glue: lo spazio tra le parole dopo la parola “Hello”, ma ha un secondo glue molto flessibile fornito da `\hfill`—un cosiddetto glue “infinitamente flessibile”. Di conseguenza,`\hfill` può allungarsi quanto necessario ed espandersi per assorbire tutto lo spazio in eccesso. Grazie al glue “infinitamente flessibile” il risultato `\badness` è 0.
* box 104: `\hbox to5mm{Overleaf}` Questa box si sovrappone al testo che la segue e ha un `\badness` valore pari a 1000000. Il valore di badness molto grande (e la sovrapposizione del testo) è dovuto al fatto che il testo “Overleaf” è troppo grande per entrare in una `\hbox` larga solo 5mm e, inoltre, non ci sono glue disponibili in grado di assorbire la larghezza in eccesso. TEX classifica la box 104 come una box “overfull” e imposta `\badness` al valore speciale di 1000000.

#### Comandi correlati

TEX fornisce diversi comandi relativi alla segnalazione e alla visualizzazione della badness delle box:

* `[\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://ayakaleaf-pro.ayaka.space/latex/it/primitivi-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.
