> 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/overleaf-learn-latex-pt/primitivas-tex-latex/02-badness.md).

# \badness

#### Resumo

Cada vez que o TEX constrói uma caixa (por exemplo, explicitamente através de um `\hbox` ou `\vbox`) ele define, ou calcula, a “badness” dessa caixa: um valor numérico que pode ser visto como uma forma de medir, ou classificar, quão “bem” o conteúdo de uma caixa se ajusta dentro dessa caixa. O valor de badness da caixa construída mais recentemente é guardado numa registo de leitura apenas (uma localização de memória) que pode ser acedida pelo comando `\badness`: por exemplo por `\the\badness`. Note que o TEX também cria caixas durante outras atividades de composição tipográfica (por exemplo, quebra de linha), mas aqui vamos focar-nos em comandos explícitos de construção de caixas.

#### Explicação e exemplos

Quando o TEX é solicitado a criar uma caixa usando os seguintes comandos de construção de caixas:

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

pode escolher definir o tamanho da caixa e pedir ao TEX para tentar ajustar o seu conteúdo dentro dela; por exemplo `\hbox to 20pt{<stuff>}` pedirá ao TEX para tentar ajustar o seu `<stuff>` dentro de uma caixa com 20pt de largura. O TEX fará o melhor possível para `<stuff>` encaixar, esticando ou encolhendo qualquer cola disponível.

Em alternativa, se você *não* fixar o tamanho de uma caixa, escrevendo `\hbox{<stuff>}`, o TEX simplesmente construirá uma `\hbox` que seja suficientemente larga para acomodar `<stuff>` e, nesse caso, o TEX atribuirá a essa caixa um valor de badness 0.

Quando o TEX decide calcular o valor de badness de uma caixa, compara o tamanho real do seu conteúdo com a dimensão apropriada da caixa em que ele tem de caber: o seu conteúdo é demasiado largo para caber na `\hbox` especificada ou demasiado alto para caber na `\vbox` ou `\vtop`? Como parte do cálculo da badness, o TEX também leva em conta a *total* quantidade de cada tipo de cola dentro da caixa — isto é, quanta extensão ou encolhimento total está disponível para ajudar a produzir uma caixa do tamanho desejado.

Na prática, quando o TEX precisa calcular o valor de badness de uma caixa, usa (uma aproximação da) seguinte fórmula:

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

onde $$t$$ é o “excesso de largura” desejado que deve ser acomodado e $$s$$ é a quantidade de cola disponível para esticar ou encolher.

O valor de badness normalmente situa-se entre 0 e 10000, mas um valor especial é reservado para caixas que, mesmo após permitir o encolhimento da cola, simplesmente não são suficientemente grandes para conter o conteúdo: essas caixas são classificadas como “overfull” e o TEX atribui-lhes um valor “especial” de badness 1000000.

OK, portanto, quanto à discussão/teoria, agora vamos ver alguns exemplos. Vamos criar 5 caixas e usar 5 `\count` registos para guardar o `\badness` valor da caixa que o TEX acabou de criar. Depois usamos esses `\count` registos para apresentar o `\badness` valor da caixa relevante.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %Não definimos o tamanho da caixa
\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}% coloque uma moldura justa em torno de cada caixa
\noindent Aqui estão os resultados:\vskip5mm
\noindent caixa 100 (\fbox{\copy100}) tem um valor de \verb|\badness| de \number\aval\par
\noindent caixa 101 (\fbox{\copy101}) tem um valor de \verb|\badness| de \number\bval\par
\noindent caixa 102 (\fbox{\copy102}) tem um valor de \verb|\badness| de \number\cval\par
\noindent caixa 103 (\fbox{\copy103}) tem um valor de \verb|\badness| de \number\dval\par
\noindent caixa 104 (\fbox{\copy104}) tem um valor de \verb|\badness| de \number\eval\par
```

O gráfico seguinte mostra a saída:

![](/files/69fa50b9d77236ed5751bafd3a73b07e97c7ddc9)

* caixa 100: `\hbox{Hello \TeX}`. Isto tem `\badness` 0 porque não foi pedido ao TEX para ajustar o conteúdo a um tamanho específico.
* caixa 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Esta caixa tem duas colas: um espaço entre palavras após a palavra “Hello” e 5pt provenientes da `\hskip` cola. No entanto, a caixa desejada tem 25mm de largura, o que resulta em muito espaço a preencher e pouca cola para o fazer. Essa combinação de espaço em excesso e cola disponível resulta no `\badness` valor de 6396.
* caixa 102: `\hbox to50mm{Hello \TeX}`. Esta caixa tem apenas um item de cola: um espaço entre palavras após a palavra “Hello” e tem muito espaço em excesso para preencher. Essa combinação de espaço em excesso e pequena quantidade de cola resulta num valor muito grande `\badness` —tão alto que o TEX o “corta” para o valor máximo de 10000. Além disso, o espaço entre palavras é bastante esticado para preencher a caixa, resultando num enorme intervalo entre “Hello” e “TEX”
* caixa 103: `\hbox to50mm{Hello \TeX\hfill}`. Esta caixa é semelhante à caixa 102, mas tem duas colas: o espaço entre palavras após a palavra “Hello”, mas tem uma segunda cola muito flexível fornecida por `\hfill`—a chamada cola “infinitamente flexível”. Consequentemente,`\hfill` pode esticar-se o quanto for necessário e expande-se para absorver todo o espaço em excesso. Devido à cola “infinitamente flexível”, a `\badness` é 0.
* caixa 104: `\hbox to5mm{Overleaf}` Esta caixa sobrepõe-se ao texto que se lhe segue e tem um `\badness` valor de 1000000. O valor de badness muito elevado (e o texto sobreposto) deve-se ao facto de o texto “Overleaf” ser demasiado grande para caber numa `\hbox` que tem apenas 5mm de largura — e, além disso, não há colas disponíveis capazes de absorver a largura em excesso. O TEX classifica a caixa 104 como uma caixa “overfull” e define `\badness` o valor especial de 1000000.

#### Comandos relacionados

O TEX fornece vários comandos relacionados com a apresentação e a exibição da badness das caixas:

* `[\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/overleaf-learn-latex-pt/primitivas-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.
