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

# \badness

#### Résumé

Chaque fois que TEX construit une boîte (par ex. explicitement via un `\\hbox` ou `\vbox`) il définit, ou calcule, la « badness » de cette boîte : une valeur numérique que l’on peut considérer comme une manière de mesurer, ou de classer, à quel point le contenu d’une boîte s’insère « bien » à l’intérieur de cette boîte. La valeur de badness de la boîte construite la plus récemment est enregistrée dans un registre en lecture seule (un emplacement mémoire) auquel on peut accéder par la commande `\badness`: par exemple avec `\the\badness`. Notez que TEX crée aussi des boîtes lors d’autres activités de composition (par ex. la césure des lignes), mais ici nous nous concentrerons sur les commandes explicites de construction de boîtes.

#### Explications et exemples

Lorsque TEX est invité à créer une boîte à l’aide des commandes de construction de boîtes suivantes :

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

vous pouvez choisir de fixer la taille de la boîte et demander à TEX d’essayer d’y faire tenir votre contenu ; par exemple `\hbox to 20pt{<stuff>}` demander à TEX d’essayer de faire tenir votre `<stuff>` dans une boîte de 20pt de largeur. TEX fera de son mieux pour faire `<stuff>` tenir le contenu en étirant ou en rétrécissant toute colle disponible.

Autrement, si vous *ne* fixez pas la taille d’une boîte, en écrivant `\hbox{<stuff>}`, TEX construira simplement une `\\hbox` boîte qui soit suffisamment large pour contenir `<stuff>` et, dans ce cas, TEX attribuera à cette boîte une valeur de badness de 0.

Lorsque TEX décide de calculer la valeur de badness d’une boîte, il compare la taille réelle de votre contenu avec la dimension appropriée de la boîte dans laquelle il doit tenir : votre contenu est-il trop large pour tenir dans la largeur spécifiée `\\hbox` ou trop haut pour tenir dans la hauteur désignée `\vbox` ou `\vtop`? Dans le cadre du calcul de la badness, TEX prend également en compte la *total* quantité de chaque type de colle à l’intérieur de la boîte — c’est-à-dire la quantité totale d’étirement ou de rétrécissement disponible pour aider à produire une boîte de la taille souhaitée.

En pratique, lorsque TEX doit calculer la valeur de badness d’une boîte, il utilise (une approximation de) la formule suivante :

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

où $$t$$ est l’« excès de largeur » souhaité à absorber et $$s$$ est la quantité de colle disponible pour l’étirement ou le rétrécissement.

La valeur de badness se situe généralement entre 0 et 10000, mais une valeur spéciale est réservée aux boîtes qui, même après prise en compte du rétrécissement de la colle, ne sont tout simplement pas assez grandes pour contenir le contenu : ces boîtes sont classées comme « trop pleines » et TEX leur attribue une valeur de badness « spéciale » de 1000000.

Très bien, assez de discussion/de théorie ; examinons maintenant quelques exemples. Nous allons créer 5 boîtes et utiliser 5 `\count` registres pour contenir la `\badness` valeur de la boîte que TEX vient de créer. Nous utilisons ensuite ces `\count` registres pour afficher la `\badness` valeur de la boîte pertinente.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %Nous ne fixons pas la taille de la boîte
\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}% mettre une bordure serrée autour de chaque boîte
\noindent Voici les résultats :\vskip5mm
\noindent la boîte 100 (\fbox{\copy100}) a une valeur de \verb|\badness| de \number\aval\par
\noindent la boîte 101 (\fbox{\copy101}) a une valeur de \verb|\badness| de \number\bval\par
\noindent la boîte 102 (\fbox{\copy102}) a une valeur de \verb|\badness| de \number\cval\par
\noindent la boîte 103 (\fbox{\copy103}) a une valeur de \verb|\badness| de \number\dval\par
\noindent la boîte 104 (\fbox{\copy104}) a une valeur de \verb|\badness| de \number\eval\par
```

Le graphique suivant montre le résultat :

![](/files/556a9011393a5277cb7cd9bbe2687b4868529766)

* boîte 100 : `\hbox{Hello \TeX}`. Cette boîte a `\badness` 0 parce que TEX n’a pas été invité à faire tenir le contenu dans une taille spécifique.
* boîte 101 : `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Cette boîte comporte deux colles : un espace intermot après le mot « Hello » et 5pt provenant de la `\hskip` colle. Cependant, la boîte souhaitée a une largeur de 25mm, ce qui laisse beaucoup d’espace à remplir avec peu de colle pour le faire. Cette combinaison d’espace excédentaire et de colle disponible donne une `\badness` valeur de 6396.
* boîte 102 : `\hbox to50mm{Hello \TeX}`. Cette boîte ne comporte qu’un seul élément de colle : un espace intermot après le mot « Hello » et contient beaucoup d’espace excédentaire à remplir. Cette combinaison d’espace excédentaire et de petite quantité de colle donne une `\badness` valeur très élevée — si élevée que TEX la « tronque » à la valeur maximale de 10000. De plus, l’espace intermot est considérablement étiré pour remplir la boîte, ce qui crée un énorme intervalle entre « Hello » et « TEX »
* boîte 103 : `\hbox to50mm{Hello \TeX\hfill}`. Cette boîte est similaire à la boîte 102, mais elle comporte deux colles : l’espace intermot après le mot « Hello », ainsi qu’une deuxième colle très flexible fournie par `\hfill`— une colle dite « infiniment flexible ». Par conséquent,`\hfill` peut s’étirer autant que nécessaire et se dilate pour absorber tout l’espace excédentaire. Grâce à la colle « infiniment flexible », la `\badness` obtenue est 0.
* boîte 104 : `\hbox to5mm{Overleaf}` Cette boîte chevauche le texte qui la suit ; elle a une `\badness` valeur de 1000000. La très grande valeur de badness (et le texte qui se chevauche) est due au fait que le texte « Overleaf » est trop grand pour tenir dans une `\\hbox` boîte `\badness` qui ne fait que 5mm de large — et, en plus, aucune colle disponible n’est capable d’absorber la largeur excédentaire. TEX classe la boîte 104 comme une boîte « trop pleine » et fixe

#### Commandes associées

TEX fournit un certain nombre de commandes liées au signalement et à l’affichage de la badness des boîtes :

* `[\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/fr/primitifs-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.
