> 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/el/protogona-stoixeia-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 %Δεν ορίζουμε το μέγεθος του πλαισίου
\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/e748a355e358abafe0e22fc58ca33f0d33e1dcb0)

* πλαίσιο 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` τιμή — τόσο υψηλή που η TEX την «περιορίζει» στη μέγιστη τιμή 10000. Επιπλέον, το διάστημα μεταξύ λέξεων τεντώνεται σημαντικά για να γεμίσει το πλαίσιο, με αποτέλεσμα να εμφανίζεται ένα τεράστιο κενό ανάμεσα στο «Hello» και το «TEX»
* πλαίσιο 103: `\hbox to50mm{Hello \TeX\hfill}`. Αυτό το πλαίσιο είναι παρόμοιο με το πλαίσιο 102, αλλά έχει δύο κόλλες: το διάστημα μεταξύ λέξεων μετά τη λέξη «Hello», αλλά έχει και μια δεύτερη, πολύ ευέλικτη κόλλα που παρέχεται από `\hfill`– μια λεγόμενη «άπειρα ευέλικτη» κόλλα. Κατά συνέπεια,`\hfill` μπορεί να τεντωθεί όσο χρειάζεται και επεκτείνεται για να απορροφήσει όλο τον πλεονάζοντα χώρο. Λόγω της «άπειρα ευέλικτης» κόλλας, η τελική `\badness` τιμή είναι 0.
* πλαίσιο 104: `\hbox to5mm{Overleaf}` Αυτό το πλαίσιο επικαλύπτει το κείμενο που ακολουθεί και έχει μια `\badness` τιμή είναι 1000000. Η πολύ μεγάλη τιμή badness (και το επικαλυπτόμενο κείμενο) οφείλεται στο ότι το κείμενο «Overleaf» είναι πολύ μεγάλο για να χωρέσει σε ένα `\hbox` που έχει πλάτος μόλις 5mm — και, επιπλέον, δεν υπάρχουν διαθέσιμες κόλλες ικανές να απορροφήσουν το πλεονάζον πλάτος. Η 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/el/protogona-stoixeia-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.
