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

# \badness

#### 요약

TEX이 상자를 구성할 때마다(예: 명시적으로 하나의 `\hbox` 또는 `\vbox`) 그 상자의 “badness”를 설정하거나 계산합니다: 이는 상자 내용이 그 상자 안에 얼마나 “잘” 들어맞는지를 측정하거나 분류하는 방법으로 생각할 수 있는 수치 값입니다. 가장 최근에 구성된 상자의 badness 값은 읽기 전용 레지스터(메모리 위치)에 저장되며, 다음 명령으로 접근할 수 있습니다 `\badness`: 예를 들어 다음으로 `\the\badness`. 참고로 TEX은 줄바꿈(linebreaking) 같은 다른 조판 작업 중에도 상자를 만들지만, 여기서는 명시적인 상자 구성 명령에 집중하겠습니다.

#### 설명과 예시

다음 상자 구성 명령을 사용해 TEX에 상자 생성을 요청하면:

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

상자의 크기를 지정하고 TEX이 내용을 그 안에 맞추도록 요청할 수 있습니다. 예를 들어 `\hbox to 20pt{<stuff>}` 는 TEX이 당신의 `<stuff>` 을 너비 20pt인 상자에 맞추도록 요청합니다. TEX은 최선을 다해 `<stuff>` 사용 가능한 모든 glue를 늘리거나 줄여서 맞춥니다.

반대로, 만약 *지정하지* 상자의 크기를 고정하려면 다음과 같이 작성하여 `\hbox{<stuff>}`, TEX은 단순히 하나의 `\hbox` 충분히 넓은 상자를 구성할 것이며, 이는 다음을 수용할 수 있을 만큼 충분히 넓습니다 `<stuff>` 그리고 그 경우 TEX은 그 상자에 badness 값 0을 할당합니다.

TEX이 상자의 badness를 계산하기로 결정하면, 실제 내용의 크기를 그 내용이 들어가야 하는 상자의 적절한 치수와 비교합니다: 내용이 지정된 `\hbox` 너무 넓거나, 지정된 `\vbox` 또는 `\vtop`높이에 맞지 않습니까? badness 계산의 일부로 TEX은 또한 *총* 상자 안의 각 종류의 glue 양, 즉 원하는 크기의 상자를 만드는 데 사용할 수 있는 총 늘어남 또는 줄어듦의 양도 고려합니다.

실제로 TEX이 상자의 badness 값을 계산해야 할 때는 다음 공식을(근사하여) 사용합니다:

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

여기서 $$t$$ 는 수용해야 할 원하는 “초과 너비”이며 $$s$$ 는 늘리거나 줄이는 데 사용할 수 있는 glue의 양입니다.

badness 값은 보통 0에서 10000 사이이지만, glue를 줄이는 것을 고려해도 내용을 담기에 충분히 크지 않은 상자에는 특별한 값이 예약되어 있습니다. 그런 상자는 “overfull”로 분류되며 TEX은 그 상자에 “특수” badness 값 1000000을 할당합니다.

좋습니다. 토론/이론은 이쯤에서 마치고 이제 몇 가지 예를 살펴보겠습니다. 5개의 상자를 만들고 5개의 `\count` 레지스터를 사용해 `\badness` TEX이 방금 만든 상자의 값을 저장합니다. 나중에 우리는 그 `\count` 레지스터들을 사용해 `\badness` 해당 상자의 값을 출력합니다.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %상자의 크기는 지정하지 않습니다
\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}% 각 상자 주위에 딱 맞는 테두리를 둡니다
\noindent 결과는 다음과 같습니다:\vskip5mm
\noindent 상자 100 (\fbox{\copy100})의 \verb|\badness| 값은 \number\aval\par
\noindent 상자 101 (\fbox{\copy101})의 \verb|\badness| 값은 \number\bval\par
\noindent 상자 102 (\fbox{\copy102})의 \verb|\badness| 값은 \number\cval\par
\noindent 상자 103 (\fbox{\copy103})의 \verb|\badness| 값은 \number\dval\par
\noindent 상자 104 (\fbox{\copy104})의 \verb|\badness| 값은 \number\eval\par
```

다음 그림은 출력 결과를 보여 줍니다:

![](/files/77adc23920ced925e6c9b18ab1148d862e3a1dbc)

* 상자 100: `\hbox{Hello \TeX}`. 이것은 `\badness` 0입니다. TEX에 내용을 특정 크기에 맞추도록 요청하지 않았기 때문입니다.
* 상자 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. 이 상자에는 두 개의 glue가 있습니다: “Hello” 뒤의 단어 사이 공백과 다음에서 오는 5pt `\hskip` glue입니다. 하지만 원하는 상자는 너비가 25mm이므로 채워야 할 공간은 많은데 이를 채울 glue는 많지 않습니다. 이 초과 공간과 사용 가능한 glue의 조합은 `\badness` 값 6396을 낳습니다.
* 상자 102: `\hbox to50mm{Hello \TeX}`. 이 상자에는 glue 항목이 하나뿐입니다: “Hello” 뒤의 단어 사이 공백이며, 채워야 할 초과 공간이 매우 많습니다. 이 초과 공간과 적은 양의 glue의 조합은 매우 큰 `\badness` 값을 만들어냅니다—너무 높아서 TEX은 이를 최대값 10000으로 “클리핑”합니다. 또한 단어 사이 공백이 상자를 채우기 위해 상당히 늘어나 “Hello”와 “TEX” 사이에 엄청난 간격이 생깁니다
* 상자 103: `\hbox to50mm{Hello \TeX\hfill}`. 이 상자는 상자 102와 비슷하지만 두 개의 glue가 있습니다: “Hello” 뒤의 단어 사이 공백과, 다음에서 제공되는 두 번째로 매우 유연한 glue입니다 `\hfill`—이른바 “무한히 유연한” glue입니다. 따라서,`\hfill` 필요한 만큼 늘어날 수 있으며, 모든 초과 공간을 흡수하도록 확장됩니다. “무한히 유연한” glue 때문에 결과적으로 `\badness` badness 값은 0입니다.
* 상자 104: `\hbox to5mm{Overleaf}` 이 상자는 뒤따르는 텍스트와 겹치며, 그 badness `\badness` 값은 1000000입니다. 매우 큰 badness 값(그리고 텍스트가 겹치는 현상)은 “Overleaf”라는 텍스트가 들어가기에는 너무 커서, 다음 안에 맞지 않기 때문입니다 `\hbox` 너비가 겨우 5mm인 상자이며, 게다가 초과 너비를 흡수할 수 있는 사용 가능한 glue도 없습니다. TEX은 상자 104를 “overfull” 상자로 분류하고 `\badness` 그것을 특수 값 1000000으로 설정합니다.

#### 관련 명령

TEX은 상자의 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/ko/tex-latex-1/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.
