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

# \badness

#### ملخص

في كل مرة ينشئ فيها TEX صندوقًا (مثلًا بشكلٍ صريح عبر `\hbox` أو `\vbox` ) فإنه يضبط، أو يحسب، «badness» ذلك الصندوق: وهي قيمة عددية يمكن النظر إليها بوصفها طريقة لقياس، أو تصنيف، مدى «ملاءمة» محتوى الصندوق داخل ذلك الصندوق. تُحفَظ قيمة badness لأحدث صندوق تم إنشاؤه في سجلٍّ للقراءة فقط (موضع في الذاكرة) يمكن الوصول إليه بواسطة الأمر `\badness`؛ على سبيل المثال بواسطة `\the\badness`. لاحظ أن TEX ينشئ أيضًا صناديق أثناء أنواع أخرى من التنضيد (مثل كسر الأسطر)، لكننا هنا سنركز على أوامر إنشاء الصناديق الصريحة.

#### الشرح والأمثلة

عندما يُطلب من TEX إنشاء صندوق باستخدام أوامر إنشاء الصناديق التالية:

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

يمكنك اختيار تحديد حجم الصندوق وطلب من TEX محاولة ملاءمة محتواك داخله؛ على سبيل المثال `\hbox to 20pt{<stuff>}` سيطلب من TEX أن يحاول ملاءمة `<stuff>` داخل صندوقٍ عرضه 20pt. وسيبذل TEX قصارى جهده لجعل `<stuff>` ذلك مناسبًا عن طريق شدّ أو تقليص أي غراء متاح.

بدلاً من ذلك، إذا كنت *لا* تُثبّت حجم صندوقٍ ما، بكتابة `\hbox{<stuff>}`، فسوف يقوم TEX ببساطة بإنشاء `\hbox` يكون عريضًا بما يكفي لاحتواء `<stuff>` ، وفي تلك الحالة سيُسند TEX إلى ذلك الصندوق قيمة badness تساوي 0.

عندما يقرر TEX حساب قيمة badness لصندوقٍ ما فإنه يقارن الحجم الفعلي لمحتواك بالبعد المناسب للصندوق الذي يجب أن يَسَعَه: هل محتواك عريض جدًا بحيث لا يتسع للـ `\hbox` أم مرتفع جدًا بحيث لا يتسع للـ `\vbox` أو `\vtop`؟ وكجزء من حساب badness يأخذ TEX أيضًا في الاعتبار *الإجمالي* كمية كل نوع من الغراء داخل الصندوق—أي مقدار الشدّ أو التقليص الكلي المتاح للمساعدة في إنتاج صندوق بالحجم المطلوب.

عمليًا، عندما يحتاج TEX إلى حساب قيمة badness لصندوقٍ ما فإنه يستخدم (تقريبًا) الصيغة التالية:

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

حيث $$t$$ هو «العرض الزائد» المراد استيعابه و $$s$$ هي كمية الغراء المتاحة للشدّ أو التقليص.

تتراوح قيمة badness عادةً بين 0 و10000، لكن توجد قيمة خاصة مخصّصة للصناديق التي، حتى بعد السماح بانكماش الغراء، لا تكون كبيرة بما يكفي لاحتواء المحتوى: تُصنَّف تلك الصناديق على أنها «ممتلئة أكثر من اللازم» ويُسند 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 %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 وفيما يلي النتائج:\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/0a79ed9fdbe634310ea7fb4ca95699c4990e5a5d)

* الصندوق 100: `\hbox{Hello \TeX}`. وهذا له `\badness` 0 لأن TEX لم يُطلب منه ملاءمة المحتوى مع حجمٍ محدد.
* الصندوق 101: `\hbox to25mm{Hello \TeX\hskip0pt plus5pt}`. يحتوي هذا الصندوق على نوعين من الغراء: مسافة بين الكلمات بعد الكلمة «Hello» و5pt قادمة من `\hskip` الغراء. لكن الصندوق المطلوب عرضه 25mm، وهذا يترك مساحة كبيرة لملئها مع وجود غراء قليل لا يفعل ذلك. ويؤدي هذا المزيج من المساحة الزائدة والغراء المتاح إلى `\badness` قيمة 6396.
* الصندوق 102: `\hbox to50mm{Hello \TeX}`. يحتوي هذا الصندوق على عنصر غراء واحد فقط: مسافة بين الكلمات بعد الكلمة «Hello»، وتوجد لديه مساحة زائدة كبيرة لملئها. ويؤدي هذا المزيج من المساحة الزائدة وكمية الغراء الصغيرة إلى `\badness` قيمة badness كبيرة جدًا—إلى درجة أن TEX «يقصّها» إلى القيمة القصوى 10000. بالإضافة إلى ذلك، يتم شدّ المسافة بين الكلمات بشكل كبير لملء الصندوق، مما يؤدي إلى ظهور فجوة كبيرة بين «Hello» و«TEX»
* الصندوق 103: `\hbox to50mm{Hello \TeX\hfill}`. هذا الصندوق مشابه للصندوق 102 لكنه يحتوي على نوعين من الغراء: المسافة بين الكلمات بعد الكلمة «Hello»، لكنه يحتوي أيضًا على غراء ثانٍ شديد المرونة يوفّره `\hfill`—وهو ما يُسمّى بغراء «مرن إلى ما لا نهاية». وبالتالي،`\hfill` يمكنه أن يتمدد بقدر ما يلزم ويمتد لامتصاص كل المساحة الزائدة. وبسبب الغراء «المرن إلى ما لا نهاية»، فإن `\badness` الناتج هي 0.
* الصندوق 104: `\hbox to5mm{Overleaf}` هذا الصندوق يتداخل مع النص الذي يليه وله `\badness` قيمة badness هي 1000000. وترجع قيمة badness الكبيرة جدًا (وتداخل النص) إلى أن النص «Overleaf» كبير جدًا بحيث لا يتسع داخل `\hbox` صندوقٍ عرضه 5 مم فقط—وفوق ذلك لا توجد أنواع غراء متاحة قادرة على امتصاص العرض الزائد. ويصنف TEX الصندوق 104 على أنه صندوق «ممتلئ أكثر من اللازم» ويضبط `\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/ar/bdaeyat-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.
