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

# \\\badness

#### Ringkasan

Setiap kali TEX membangun sebuah kotak (misalnya, secara eksplisit melalui sebuah `\hbox` atau `\vbox`) TEX menetapkan, atau menghitung, “badness” kotak tersebut: suatu nilai numerik yang dapat dianggap sebagai cara untuk mengukur, atau mengklasifikasikan, seberapa “pas” isi sebuah kotak berada di dalam kotak itu. Nilai badness untuk kotak yang paling baru dibangun disimpan dalam sebuah register hanya-baca (lokasi memori) yang dapat diakses oleh perintah `\badness`: misalnya dengan `\the\badness`. Perhatikan bahwa TEX juga membuat kotak selama aktivitas penyusunan huruf lainnya (misalnya pemutusan baris), tetapi di sini kita akan fokus pada perintah pembuatan kotak yang eksplisit.

#### Penjelasan dan contoh

Ketika TEX diminta untuk membuat sebuah kotak menggunakan perintah pembuatan kotak berikut:

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

Anda dapat memilih untuk menetapkan ukuran kotak dan meminta TEX mencoba memasukkan konten Anda ke dalamnya; misalnya `\hbox to 20pt{<stuff>}` akan meminta TEX untuk mencoba memasukkan `<stuff>` ke dalam kotak yang lebarnya 20pt. TEX akan berusaha sebaik mungkin untuk membuat `<stuff>` muat dengan meregangkan atau menyusutkan semua glue yang tersedia.

Sebaliknya, jika Anda *tidak* menetapkan ukuran sebuah kotak, dengan menulis `\hbox{<stuff>}`, TEX akan cukup membuat sebuah `\hbox` yang cukup lebar untuk menampung `<stuff>` dan dalam kasus itu TEX akan memberikan kotak tersebut nilai badness 0.

Ketika TEX memutuskan untuk menghitung badness sebuah kotak, TEX membandingkan ukuran aktual konten Anda dengan dimensi kotak yang sesuai tempat konten itu harus muat: apakah konten Anda terlalu lebar untuk muat dalam `\hbox` atau terlalu tinggi untuk muat dalam `\vbox` atau `\vtop`? Sebagai bagian dari perhitungan badness, TEX juga memperhitungkan *total* jumlah setiap jenis glue di dalam kotak—yaitu, berapa banyak total peregangan atau penyusutan yang tersedia untuk membantu menghasilkan kotak dengan ukuran yang diinginkan.

Dalam praktiknya, ketika TEX perlu menghitung nilai badness sebuah kotak, TEX menggunakan (pendekatan terhadap) rumus berikut:

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

di mana $$t$$ adalah “kelebihan lebar” yang diinginkan untuk ditampung dan $$s$$ adalah jumlah glue yang tersedia untuk peregangan atau penyusutan.

Nilai badness biasanya berada antara 0 dan 10000, tetapi ada nilai khusus yang disediakan untuk kotak yang, bahkan setelah memperhitungkan penyusutan glue, memang tidak cukup besar untuk menampung kontennya: kotak-kotak tersebut diklasifikasikan sebagai “overfull” dan TEX memberikan nilai badness “khusus” sebesar 1000000.

Oke, cukup untuk pembahasan/teori; sekarang kita akan melihat beberapa contoh. Kita akan membuat 5 kotak dan menggunakan 5 `\count` register untuk menyimpan `\badness` nilai kotak yang baru saja dibuat TEX. Nantinya kita menggunakan register `\count` tersebut untuk menampilkan `\badness` nilai kotak yang relevan.

```
\newcount\aval\newcount\bval\newcount\cval\newcount\dval\newcount\eval
\setbox100=\hbox{Hello \TeX}\aval=\the\badness %We do not set the box size
\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}% put a tight border around each box
\noindent Berikut hasilnya:\vskip5mm
\noindent kotak 100 (\fbox{\copy100}) memiliki nilai \verb|\badness| sebesar \number\aval\par
\noindent kotak 101 (\fbox{\copy101}) memiliki nilai \verb|\badness| sebesar \number\bval\par
\noindent kotak 102 (\fbox{\copy102}) memiliki nilai \verb|\badness| sebesar \number\cval\par
\noindent kotak 103 (\fbox{\copy103}) memiliki nilai \verb|\badness| sebesar \number\dval\par
\noindent kotak 104 (\fbox{\copy104}) memiliki nilai \verb|\badness| sebesar \number\eval\par
```

Grafik berikut menunjukkan keluarannya:

![](/files/c28ffba3478a29fc2174009867f8ec599dbefd61)

* kotak 100: `\hbox{Hello \TeX}`. Ini memiliki `\badness` 0 karena TEX tidak diminta untuk menyesuaikan konten ke ukuran tertentu.
* kotak 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. Kotak ini memiliki dua glue: spasi antar-kata setelah kata “Hello” dan 5pt yang berasal dari `\hskip` glue. Namun, kotak yang diinginkan lebarnya 25mm, sehingga ada banyak ruang yang harus diisi tetapi glue yang tersedia tidak banyak. Kombinasi ruang berlebih dan glue yang tersedia itu menghasilkan `\badness` nilai 6396.
* kotak 102: `\hbox to50mm{Hello \TeX}`. Kotak ini hanya memiliki satu item glue: spasi antar-kata setelah kata “Hello” dan memiliki banyak ruang berlebih untuk diisi. Kombinasi ruang berlebih dan jumlah glue yang sedikit itu menghasilkan nilai `\badness` —sedemikian tinggi sehingga TEX “memotongnya” ke nilai maksimum 10000. Selain itu, spasi antar-kata direntangkan cukup besar untuk mengisi kotak, sehingga muncul celah besar antara “Hello” dan “TEX”
* kotak 103: `\hbox to50mm{Hello \TeX\hfill}`. Kotak ini mirip dengan kotak 102 tetapi memiliki dua glue: spasi antar-kata setelah kata “Hello” tetapi memiliki glue kedua yang sangat fleksibel yang disediakan oleh `\hfill`—glue yang disebut “sangat fleksibel tanpa batas”. Akibatnya,`\hfill` dapat meregang sejauh yang diperlukan dan mengembang untuk menyerap seluruh ruang berlebih. Karena glue “sangat fleksibel tanpa batas” tersebut, hasilnya `\badness` adalah 0.
* kotak 104: `\hbox to5mm{Overleaf}` Kotak ini tumpang tindih dengan teks setelahnya; kotak ini memiliki `\badness` nilainya 1000000. Nilai badness yang sangat besar (dan teks yang tumpang tindih) disebabkan oleh teks “Overleaf” yang terlalu besar untuk muat dalam sebuah `\hbox` yang hanya lebarnya 5mm—dan, selain itu, tidak ada glue yang tersedia yang mampu menyerap kelebihan lebar tersebut. TEX mengklasifikasikan kotak 104 sebagai kotak “overfull” dan menetapkan `\badness` ke nilai khusus 1000000.

#### Perintah terkait

TEX menyediakan sejumlah perintah yang terkait dengan pelaporan dan penampilan badness kotak:

* `[\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/id/primitif-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.
