> 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/se-vathos-arthra/24-how-tex-calculates-glue-settings-in-an-hbox.md).

# Πώς υπολογίζει το TeX τις ρυθμίσεις κόλλας σε ένα \hbox

Αυτό είναι το τρίτο, και καταληκτικό, άρθρο σε μια σειρά που εξετάζει $$\mathrm \TeX$$ κουτιά και κόλλα. Η πρώτη ανάρτηση [Κουτιά και Κόλλα: Μια σύντομη, αλλά οπτική, εισαγωγή με χρήση LuaTeX](/latex/el/se-vathos-arthra/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.md) εισήγαγε τις έννοιες των κουτιών και της κόλλας και ακολούθησε από [Το \hbox της Πανδώρας: Χρησιμοποιώντας το LuaTeX για να σηκώσουμε το καπάκι των TeX κουτιών](/latex/el/se-vathos-arthra/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) που παρουσίασε ένα [$$\text{Lua}\mathrm\TeX$$-βασισμένο έργο Overleaf](https://www.overleaf.com/latex/examples/exploring-the-structure-of-tex-boxes-with-luatex/pwdrypmtdbgs) για να εξερευνήσουμε τις βαθύτερες δομές των $$\mathrm \TeX$$ κουτιών μέσω της χρήσης γραφημάτων κόμβων. Σε αυτό το τελευταίο μέρος κάνουμε μια «βαθιά εμβάθυνση» στους μηχανισμούς του πώς $$\mathrm \TeX$$ υπολογίζει τις τιμές της κόλλας σε ένα `\hbox`: μια διαδικασία που αναφέρεται ως *ρύθμιση της κόλλας*. Χρησιμοποιούμε εκτενώς γραφήματα κόμβων (που εισήχθηκαν στο [Το \hbox της Πανδώρας: Χρησιμοποιώντας το LuaTeX για να σηκώσουμε το καπάκι των TeX κουτιών](/latex/el/se-vathos-arthra/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) σε αυτή τη σειρά) και δείχνουμε πώς να χρησιμοποιούμε και να ερμηνεύουμε ορισμένα από τα δεδομένα που παρέχουν: `glue_set`, `glue_sign` και `glue_order`.

Παρέχουμε ένα πλήρως λυμένο παράδειγμα υπολογισμών κόλλας για ένα `\hbox` και καλύπτουμε πολλές λεπτομέρειες· ωστόσο, μπορεί να υπάρχουν επιπλέον περιστάσεις και παράγοντες που δεν έχουμε χώρο να θίξουμε εδώ και ο ενδιαφερόμενος αναγνώστης παραπέμπεται στη σελίδα 77 του $$\text{The } \mathrm \TeX \text{book}$$.

## Η πρόκληση

Ας υποθέσουμε ότι έχουμε ένα `\hbox` όπως αυτό:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

Ιδού πώς φαίνεται αυτό το κουτί—για σαφήνεια, παρουσιάζεται με μεγέθυνση και με περίγραμμα:

![κουτί](/files/74ca9b0de453f7158abdd9d61930f3690650b78d)

Το ερώτημα είναι: ποια είναι η τελική τιμή, σε $$\mathrm \TeX$$ σημεία, του χώρου (κόλλας) ανάμεσα στα ακόλουθα στοιχεία:

* A και B
* B και C
* C και D
* D και το τέλος του κουτιού

δηλ., θέλουμε να υπολογίσουμε τις τιμές των $$\mathrm{g}*{1}, \mathrm{g}*{2}, \mathrm{g}*{3} \text{ and } \mathrm{g}*{4}:$$

![κόλλα](/files/d687bb581be7e7556506f43f7ca425bc70dea974)

Ιδού ένα γράφημα κόμβων που αναπαριστά το παραπάνω κουτί. Ιδιαιτέρως ενδιαφέρουσες είναι τρεις τιμές που περιέχονται στην ενότητα «μεταδεδομένα»:

* `glue_set`
* `glue_sign`
* `glue_order`

![γράφημα κόμβων](/files/69cb7a3dbcd5a786afb73003778e015494cb454f)

Είναι σημαντικό να σημειωθεί ότι ένα συγκεκριμένο σύνολο τιμών για `glue_set`, `glue_sign` και `glue_order` επηρεάζει μόνο τις κόλλες μέσα στο κουτί ανώτατου επιπέδου: δεν επηρεάζει τις κόλλες μέσα σε *εμφωλευμένα* κουτιά: κάθε εμφωλευμένο κουτί (αντικείμενο hlist ή vlist) έχει τις δικές του τιμές για αυτές τις τρεις παραμέτρους. Ιδού ένα παράδειγμα ενός `\hbox` εμφωλευμένου μέσα σε ένα εξωτερικό `\hbox`. Σε αυτό το παράδειγμα, μπορείτε να δείτε καθαρά τις διαφορετικές τιμές των `glue_set`—φυσικά, το εμφωλευμένο κουτί μπορεί επίσης να έχει διαφορετικές τιμές για `glue_sign` και `glue_order`.

```latex
\hbox to 75pt{\hfill ABC\hbox to15pt{\hfill D}}
```

![γράφημα κόμβων](/files/99d70449ae983618f4809c008d60910a8e7f5efd)

## Τύποι κόλλας, άπειρα και τάξεις: Μια περίληψη

$$\mathrm \TeX$$ παρέχει έναν αριθμό βασικών εντολών σχετικών με την κόλλα, συμπεριλαμβανομένων των:

* οριζόντια κόλλα: `\hskip`, `\hfil`, `\hfill`, `\hfilneg`, `\hss`;
* κατακόρυφη κόλλα:`\vskip`, `\vfil`, `\vfill`, `\vfilneg`, `\vss`;

μαζί με `\mskip` για την εισαγωγή κόλλας σε μαθηματικές εκφράσεις.

Ένα στοιχείο κόλλας ορίζεται από ένα σύνολο τριών τιμών:

* **φυσικό πλάτος**: πόσο χώρο καταλαμβάνει αν δεν το τεντώσετε ή το συρρικνώσετε;
* **συνιστώσα τεντώματος**: κατά πόσο μπορεί να τεντωθεί η κόλλα;
* **συνιστώσα συρρίκνωσης**: κατά πόσο μπορεί να συρρικνωθεί η κόλλα.

Αυτό που θα εξετάσουμε είναι η χρήση της κόλλας μέσα σε ένα `\hbox{...}` και οι υπολογισμοί $$\mathrm \TeX$$ χρησιμοποιεί για να προσδιορίσει πόσο χώρο θα καταλάβει τελικά η κόλλα. Η εντολή που θα χρησιμοποιήσουμε για να δημιουργήσουμε κάποια *οριζόντιος* κόλλα είναι η `\hskip`, η οποία έχει τη μορφή:

`**\hskip** *<φυσικό πλάτος>* **plus** *<ποσό τεντώματος>* **minus** *<ποσό συρρίκνωσης>*`

Για *κατακόρυφος* κόλλα που θα χρησιμοποιούσατε `**\vskip** *<φυσικό πλάτος>* **plus** *<ποσό τεντώματος>* **minus** *<ποσό συρρίκνωσης>*`.

Για παράδειγμα, κάποια τυπική οριζόντια κόλλα θα εκφραζόταν ως `\hskip 3pt plus 2pt minus 1pt`. Μπορείτε να χρησιμοποιήσετε και άλλες φυσικές μονάδες:

* `\hskip 3mm plus 2mm minus 1mm`
* `\hskip 3in plus 2in minus 1in`
* `\hskip 1in plus 3cm minus 20mm`

## $$\mathrm \TeX$$ κόλλα και μονάδες «άπειρου»

Για το στοιχείο συρρίκνωσης ή τεντώματος της κόλλας $$\mathrm \TeX$$ εισάγει έναν άλλο τύπο μονάδας: τα λεγόμενα «άπειρα»: $$\text{fil}$$, $$\text{fill}$$ και $$\text{filll}$$. Αυτά τα τρία «επίπεδα απείρου» είναι τέτοια ώστε, όταν παρατίθενται σε σειρά, το καθένα είναι «πιο άπειρο» από το προηγούμενο:

$$\text{fil} < \text{fill} < \text{filll}$$

Ίσως το «άπειρα» να είναι ένα κάπως συγκεχυμένο όνομα για αυτές τις μονάδες—μπορεί να βοηθήσει να τις σκεφτούμε και ως διαφορετικά επίπεδα *προτεραιότητας*, γιατί, τελικά, βοηθούν να καθοριστεί ποιες κόλλες συμμετέχουν πραγματικά στη διαδικασία τεντώματος ή συρρίκνωσης. Έχοντας κόλλα με «άπειρη» συνιστώσα τεντώματος ή συρρίκνωσης, $$\mathrm \TeX$$ σας επιτρέπει να δημιουργείτε κόλλα που μπορεί να τεντωθεί ή να συρρικνωθεί κατά οποιοδήποτε επιθυμητό ποσό. Σημειώστε ότι για πεπερασμένες κόλλες, $$\mathrm \TeX$$ θα περιορίσει το ποσό κατά το οποίο τέτοιες κόλλες μπορούν να συρρικνωθούν. Ένα παράδειγμα «άπειρης» κόλλας είναι

`\hskip 3pt plus 2fil minus 1fill`

Σημειώστε ότι δεν μπορούμε να γράψουμε, ας πούμε, `\hskip 1fil` επειδή $$\mathrm \TeX$$ θα αναφέρει σφάλμα με το μήνυμα `Μη έγκυρη μονάδα μέτρησης (εισήχθη pt)`. Σε αυτό το σημείο, αυτά τα «επίπεδα απείρου» μπορεί να ακούγονται πολύ παράξενα αλλά, προς το παρόν, απλώς αποδεχτείτε το ως έχει και σύντομα θα δούμε πώς $$\mathrm \TeX$$ χρησιμοποιεί αυτά τα άπειρα κατά την εκτέλεση υπολογισμών κόλλας.

### Επίπεδα απείρου («τάξη κόλλας»)

Εσωτερικά, όταν $$\mathrm \TeX$$ εκτελεί τους υπολογισμούς κόλλας του, θεωρεί ότι κάθε επίπεδο απείρου είναι μια «τάξη κόλλας» που κυμαίνεται από 0–3, όπου η τάξη 0 είναι για κόλλα με φυσικές διαστάσεις όπως bp, pt, mm και ούτω καθεξής. Ωστόσο, με $$\text{Lua}\mathrm\TeX$$ υπάρχει μια μικρή απόκλιση επειδή στην πραγματικότητα έχει έναν επιπλέον τύπο (τάξη) απείρου που δεν υπάρχει σε πολλούς άλλους $$\mathrm \TeX$$ μηχανισμούς: $$\text{fi}$$ (βλ. εξήγηση παρακάτω). Αν διαβάσετε $$\text{The } \mathrm \TeX\text{book}$$ δεν θα δείτε καμία αναφορά στο $$\text{fi}$$ άπειρο—απλώς επειδή δεν υλοποιείται στο αρχικό $$\mathrm \TeX$$ λογισμικό του Knuth. Κατά συνέπεια, έχουμε μια μικρή «ασυνέχεια» μεταξύ $$\text{Lua}\mathrm\TeX\text{'s}$$ τάξη των απείρων και αυτών που ίσως βλέπετε σε βιβλία για $$\mathrm \TeX$$. $$\text{Lua}\mathrm\TeX$$ χρησιμοποιεί άπειρα των οποίων η τάξη κυμαίνεται από 0–4, αλλά άλλοι (συνηθισμένοι) $$\mathrm \TeX$$ μηχανισμοί κυμαίνονται από 0–3. Ιδού ένας πίνακας που δείχνει την τάξη κόλλας που αποδίδεται σε κάθε τύπο μονάδας κόλλας.

|                           |                              |     |     |      |       |
| ------------------------- | ---------------------------- | --- | --- | ---- | ----- |
|                           | Φυσικές μονάδες (pt, mm, in) | fi  | fil | fill | filll |
| $$\text{Lua}\mathrm\TeX$$ | 0                            | 1   | 2   | 3    | 4     |
| Άλλοι μηχανισμοί          | 0                            | Μ/Δ | 1   | 2    | 3     |

### Σημειώσεις σχετικά με $$\text{Lua}\mathrm\TeX$$: Γιατί να υπάρχει ένα επιπλέον άπειρο;

$$\text{Lua}\mathrm\TeX$$ προέρχεται από έναν αριθμό έργων και βιβλιοθηκών κώδικα, συμπεριλαμβανομένου ενός που ονομάζεται [Omega](https://en.wikipedia.org/wiki/Omega_\(TeX\)). $$\text{Lua}\mathrm\TeX$$ ενσωμάτωσε ορισμένες πτυχές του κώδικα της Omega και αυτό περιλαμβάνει έναν νέο τύπο άπειρης κόλλας που ονομάζεται $$\text{fi}$$. Από το εγχειρίδιο της Omega:

> «Ένα νέο επίπεδο απείρου $$\text{fi}$$ έχει προστεθεί. Είναι μικρότερο από $$\text{fil}$$ αλλά μεγαλύτερο από οποιαδήποτε πεπερασμένη ποσότητα. Η αρχική του πρόθεση ήταν για τέντωμα μεταξύ γραμμάτων: είτε για γέμισμα των κενών, όπως γίνεται σε καλλιγραφικά συστήματα όπως τα αραβικά· είτε για έμφαση, όπως στα ρωσικά· όλα αυτά χωρίς να χρειάζεται να ξαναγραφούν τα υπάρχοντα πακέτα μακροεντολών. Υπάρχει λοιπόν μια νέα λέξη-κλειδί, $$\text{fi}$$, και δύο νέες πρωταρχικές εντολές, `\hfi` και `\vfi`».

## Επιστροφή στην πρόκλησή μας

Ακολουθώντας το μοντέλο του Knuth, ας ορίσουμε δύο ποσότητες:

* το επιθυμητό πλάτος ενός κουτιού: $$\mathrm{W}\_{\mathrm{D}}$$—πόσο μεγάλο θέλουμε να είναι·
* το φυσικό πλάτος ενός κουτιού: $$\mathrm{W}\_{\mathrm{N}}$$—ο συνολικός χώρος που καταλαμβάνεται από τα συστατικά του στοιχεία πριν τεντωθεί ή συρρικνωθεί οποιαδήποτε κόλλα.

### Το φυσικό πλάτος ενός κουτιού

Το φυσικό πλάτος ενός κουτιού είναι το συνολικό πλάτος όλων των στοιχείων σε αυτό το κουτί: χαρακτήρες, κερν, εμφωλευμένα κουτιά και οποιαδήποτε κόλλα. Για την κόλλα μέσα στο κουτί, το φυσικό της πλάτος αγνοεί κάθε τέντωμα ή συρρίκνωση της κόλλας: δηλ., το μέγεθός της πριν λάβει χώρα οποιοδήποτε τέντωμα ή συρρίκνωση.

Και πάλι, ιδού το κουτί που εξετάζουμε:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

Σαφώς, θέλουμε το κουτί να έχει πλάτος 100pt, άρα $$\mathrm{W}*{\mathrm{D}}=100\mathrm{pt}$$ αλλά τι γίνεται με το φυσικό του πλάτος, $$\mathrm{W}*{\mathrm{N}}$$? Για να υπολογίσουμε το φυσικό πλάτος είναι σαφές ότι χρειαζόμαστε τα πλάτη των τεσσάρων χαρακτήρων (A, B, C και D) συν τα φυσικά πλάτη των τεσσάρων κολλών.

$$\eqalign{\mathrm{W}\_{\mathrm{N}} &= &\text{width(A)} + \text{width(B)} + \text{width(C)} + \text{width(D)} \ & &+ \text{width}(\verb\*\hskip 4pt plus3pt minus 2pt\*)\ & &+\text{width}(\verb\*\hskip 0pt plus 2fil\*)\ & &+\text{width}(\verb\*\hskip 0pt plus 2fill)*\ & &+\text{width}(\verb*\hskip 0pt plus 3fill\*)\ }$$

Όπου $$\text{width}$$ είναι απλώς μια σημειογραφία για να δηλώσει το φυσικό πλάτος ενός στοιχείου. Μπορούμε να πάρουμε τα φυσικά πλάτη των τεσσάρων χαρακτήρων (A, B, C και D) από το γράφημα κόμβων μας:

![γράφημα κόμβων](/files/1389f0705811947318d85ebf7c93e48a90bcb5ed)

Από το παραπάνω γράφημα κόμβων μπορούμε να δούμε ότι:

$$\eqalign{ \text{width(A)} &= 7.50002\text{pt}\ \text{width(B)} &= 7.08336\text{pt}\ \text{width(C)} &= 7.22223\text{pt}\ \text{width(D)} &= 7.6389\text{pt}\ }$$

Τώρα, το μόνο που χρειαζόμαστε είναι τα φυσικά πλάτη των κολλών μας, τα οποία προκύπτουν εύκολα αν αγνοήσουμε τις συνιστώσες τεντώματος και συρρίκνωσης:

$$\eqalign{ &\text{width}(\verb\*\hskip 4pt plus3pt minus 2pt\*) & = 4\text{pt}\ &\text{width}(\verb\*\hskip 0pt plus 2fil\*) &=0\text{pt}\ &\text{width}(\verb\*\hskip 0pt plus 2fill)*&=0\text{pt}\ &\text{width}(\verb*\hskip 0pt plus 3fill\*)&=0\text{pt}\ }$$

Άρα:

$$\eqalign{ \mathrm{W}\_{\mathrm{N}} & = \text{widths of characters} + \text{width of all glues}\ &= 7.50002\text{pt}+ 7.08336\text{pt} + 7.22223\text{pt} + 7.6389\text{pt} + 4\text{pt}\space \text{(from }\verb\*\hskip\*\text{)}\ &=33.4445\text{pt}\ }$$

Έχουμε τώρα δύο βασικά κομμάτια πληροφορίας:

$$\eqalign{ \mathrm{W}*{\mathrm{D}} & = 100\text{pt}\ \mathrm{W}*{\mathrm{N}} & = 33.4445\text{pt}\ }$$

Σαφώς, $$\mathrm{W}*{\mathrm{D}} > \mathrm{W}*{\mathrm{N}}$$ και η διαφορά είναι $$(100-33.4445)\text{pt}=66.5555\text{pt}$$; αυτός ο επιπλέον χώρος πρέπει να συμπληρωθεί με τέντωμα των κολλών—αλλά ποιων και κατά πόσο;

### Ποια έχει το περισσότερο τέντωμα;

Ακολουθώντας τη μεθοδολογία του Knuth (σελίδα 77 του $$\text{The } \mathrm \TeX \text{book}$$), αλλά λαμβάνοντας υπόψη τον επιπλέον τύπο απείρου ($$\text{fi}$$) που παρέχεται από το $$\text{Lua}\mathrm \TeX$$, το επόμενο βήμα είναι να γράψουμε τη *συνολική* συρρίκνωση με τη μορφή:

$$\text{total stretch} = y\_{0}+ y\_{1}\text{fi} +y\_{2}\text{fil} +y\_{3}\text{fill} +y\_{4}\text{filll}$$

Πρώτα απ' όλα, αν γράψουμε το $$\text{total glue}$$:

$$\text{total glue } = (\verb*4pt plus3pt minus 2pt*) + (\verb*0pt plus 2fil*) + (\verb*0pt plus 2fill*) + (\verb*0pt plus 3fill*)$$

τότε μπορούμε να δούμε ότι το $$\text{total stretch}$$ είναι:

$$\eqalign{ \text{total stretch} & = 3\text{pt}+ 0\text{fi} + (2\text{fil}) + (2\text{fill} + 3\text{fill}) + 0\text{filll}\ &=3\text{pt}+ 0\text{fi} + 2\text{fil} + 5\text{fill} + 0\text{filll}\ }$$

Συγκρίνοντάς το με το $$\text{total stretch} = y\_{0}+ y\_{1}\text{fi} +y\_{2}\text{fil} +y\_{3}\text{fill} +y\_{4}\text{filll}\space$$μπορούμε να δούμε ότι:

$$\eqalign{ y\_0 &=3\text{pt}\ y\_1 &=0\ y\_2 &=2\ y\_3&=5\ y\_4&=0\ }$$

$$\mathrm\TeX$$ στη συνέχεια «ρωτάει τον εαυτό του»: κοιτάζοντας το $$\text{total stretch}$$, ποιο είναι το υψηλότερο επίπεδο απείρου με μη μηδενική τιμή; Από την εξέταση του $$\text{total stretch}$$ του κουτιού μας είναι σαφές ότι η πιο «άπειρη» μη μηδενική συνιστώσα τεντώματος είναι η $$\text{fill}$$ και έχουμε $$y\_3=5$$ μονάδες από αυτό: είναι οι κόλλες με $$\text{fill}$$ συνιστώσα τεντώματος που παρέχουν όλο το τέντωμα. Ο δείκτης 3 του $$y\_3$$ μας λέει την `glue_order` της κόλλας που θα χρησιμοποιηθεί—στην προκειμένη περίπτωση για τέντωμα. Τώρα, αν κοιτάξουμε την ενότητα «μεταδεδομένα» μέσα στο διάγραμμά μας κόμβων για αυτό το `\hbox` μπορούμε τώρα να βγάλουμε νόημα από δύο ακόμη «τιμές μεταδεδομένων» (θα ασχοληθούμε με το `glue_set` στην επόμενη ενότητα)

![μεταδεδομένα](/files/bc0a635151e0beaebeb1bfcf02d40c1b831029f9)

* `glue_sign`: σας λέει αν η κόλλα έχει ρυθμιστεί στο φυσικό της μήκος, έχει τεντωθεί ή έχει συρρικνωθεί:
* 0=ρυθμισμένη στο φυσικό πλάτος
* 1=τέντωμα
* 2=συρρίκνωση

Στο παράδειγμά μας, `glue_sign` έχει την τιμή του `1`, που σημαίνει ότι οι συμμετέχουσες κόλλες πρόκειται να τεντωθούν.

* `glue_order` σας λέει ποιο «άπειρο» εμπλέκεται· για $$\text{Lua}\mathrm \TeX$$ μια τιμή 3 σας λέει ότι οι κόλλες με $$\text{fill}$$ συνιστώσα θα συμμετέχουν στους υπολογισμούς κόλλας—στην περίπτωσή μας θα τεντωθούν.

Οποιαδήποτε κόλλα που δεν έχει συνιστώσα τεντώματος ορισμένη σε μονάδες $$\text{fill}$$ θα **ρυθμιστεί στο φυσικό της μήκος**: δηλ., δεν θα τεντωθεί καθόλου (στην περίπτωσή μας).

### Πόσο να τεντωθεί ή να συρρικνωθεί: υπολογισμός του glue\_set

Για να συνοψίσουμε πού βρισκόμαστε και τι γνωρίζουμε:

1. επιθυμητό πλάτος κουτιού: $$\mathrm{W}\_{\mathrm{D}} = 100\text{pt}$$;
2. φυσικό πλάτος κουτιού: $$\mathrm{W}\_{\mathrm{N}} = 33.4445\text{pt}$$;
3. η κόλλα θα πρέπει να τεντωθεί αλλά μόνο οι κόλλες με $$\text{fill}$$ συνιστώσα τεντώματος θα κάνουν αυτό το τέντωμα·
4. έχουμε συνολικά $$(2+3)=5$$ μονάδες $$\text{fill}$$ διαθέσιμες.

Το επόμενο ερώτημα είναι: κατά πόσο θα τεντωθούν στην πραγματικότητα αυτές οι κόλλες; Εμφανίζεται ο *λόγος ρύθμισης κόλλας*—που αναφέρεται ως `glue_set` στο γράφημα κόμβων μας. Αυτό που $$\mathrm \TeX$$ κάνει είναι να υπολογίζει πόσος χώρος πρέπει να συμπληρωθεί και στη συνέχεια να κατανέμει αυτό το ποσό χώρου ανάμεσα στις κατάλληλες κόλλες ανάλογα με το μέγεθος της συνιστώσας τεντώματός τους. Αν κοιτάξετε πίσω στο πραγματικό μας `\hbox` μπορείτε να δείτε ακριβώς ποιες κόλλες έχουν συνιστώσες τεντώματος που περιέχουν μονάδες $$\text{fill}$$:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

Η $$\textit{glue set ratio }(\text{or } \verb*glue\_set*)$$ υπολογίζεται ως εξής:

$$\eqalign{ \text{glue set ratio}\space (\verb*glue\_set*) = & {\text{amount to stretch}}\over{\text{value of highest infinity}}\ =& {\mathrm{W}*{\mathrm{D}}-\mathrm{W}*{\mathrm{N}}}\over{y\_3}\ =& {(100-33.4445)}\over{5}\ =& {66.5555}\over{5}\ =& 13.3111\space (\text{to 4 decimal places})\ }$$

Και τώρα το τελικό βήμα στον $$\mathrm\TeX$$ αλγόριθμο εφαρμόζεται:

1. για κάθε στοιχείο κόλλας του οποίου η συνιστώσα τεντώματος ταιριάζει με το επιθυμητό `glue_order` (3 στην περίπτωσή μας) το μήκος αυτής της κόλλας θα γίνει:

$$\text{stretched value} = \text{natural length} + (\verb*glue\_set* \times \text{value of stretch component})$$

3. όλες οι άλλες κόλλες ρυθμίζονται στο φυσικό τους μήκος—δηλ., δεν τεντώνονται καθόλου.

Κοιτάζοντας τις κόλλες στο κουτί μας:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

μπορούμε να τις περάσουμε μία προς μία για να υπολογίσουμε τις τελικές τους τιμές:

1. **Μεταξύ A και B**: `\hskip 4pt plus3pt minus 2pt`. Η συνιστώσα τεντώματος είναι `3pt`, η οποία είναι τάξης `0`. Η απαιτούμενη `glue_order` είναι `3`: η συνιστώσα τεντώματος αγνοείται και αυτή η κόλλα αναλαμβάνει το φυσικό της πλάτος των `4pt`.
2. **Μεταξύ B και C**: `\hskip 0pt plus 2fil`. Η συνιστώσα τεντώματος είναι `2fil`, η οποία είναι τάξης `2`. Η απαιτούμενη `glue_order` είναι `3`: η συνιστώσα τεντώματος αγνοείται και αυτή η κόλλα αναλαμβάνει το φυσικό της πλάτος των `0pt`.
3. **Μεταξύ C και D**: `\hskip 0pt plus 2fill`. Η συνιστώσα τεντώματος είναι `2fill`, η οποία είναι τάξης `3` και ταιριάζει με το απαιτούμενο `glue_order` του `3`. Αυτή η κόλλα θα τεντωθεί σε: $$\eqalign{ \text{stretched value}\space = & \text{natural width} + (\verb*glue\_set* \times \text{value of stretch component})\ = & 0\text{pt} + 13.3111 \times 2 \ = & 26.6222\text{pt}\ }$$5. **Μεταξύ D και του τέλους του κουτιού**: `\hskip 0pt plus 3fill`. Η συνιστώσα τεντώματος είναι `3fill`, η οποία είναι τάξης `3` και ταιριάζει με το απαιτούμενο `glue_order` του `3`. Αυτή η κόλλα θα τεντωθεί σε: $$\eqalign{ \text{stretched value}\space = &\text{natural width} + (\verb*glue\_set* \times \text{value of stretch component})\ =& 0\text{pt} + 13.3111 \times 3 \ = &39.9333\text{pt}\ }$$

## Και τέλος: Έλεγχος του συνολικού πλάτους

Η διαδικασία υπολογισμού του πραγματικού χώρου που καταλαμβάνει η κόλλα ονομάζεται *ρύθμιση της κόλλας* άρα τώρα μπορούμε να ελέγξουμε αν έχουμε γεμίσει το κουτί στο επιθυμητό πλάτος, $$(\mathrm{W}\_{\mathrm{D}} = \text{100pt})$$:

$$\eqalign{ \mathrm{W}\_{\mathrm{D}} & = \text{width of all characters} + \text{width of all }\textbf{set}\text{ glue values}\ & = \text{A:7.50002pt} + \text{B:7.08336pt} + \text{C:7.22223pt} + \text{D:7.6389pt}\ & + \text{4pt} + \text{0pt} + \text{26.6222pt} + \text{39.9333pt}\ & = \text{100.00pt} }$$

Τώρα ξέρουμε τα πλάτη όλων των κολλών και μπορούμε να ετοιμάσουμε ένα γραφικό που απαντά στο ερώτημα που τέθηκε στην αρχή αυτού του άρθρου: ιδού τα πλάτη των κολλών ανάμεσα στους χαρακτήρες στο `\hbox`:

![κόλλα](/files/30da392698d3ff890635ba412a4347284dca6eee)


---

# 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/se-vathos-arthra/24-how-tex-calculates-glue-settings-in-an-hbox.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.
