> 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/14-how-do-tex-engines-typeset-tables.md).

# Πώς οι μηχανές TeX στοιχειοθετούν πίνακες

## Πώς οι μηχανές TeX στοιχειοθετούν πίνακες

## Εισαγωγή: Τι καλύπτει αυτή η σειρά;

Η παραγωγή αισθητικά ευχάριστων πινάκων μπορεί να είναι μια χρονοβόρα εργασία—είτε χρησιμοποιείτε εργαλείο οπτικής διάταξης, LaTeX ή μια γλώσσα σήμανσης όπως το HTML ή το markdown. Για τους χρήστες του LaTeX ειδικότερα, η στοιχειοθέτηση πινάκων κατατάσσεται ψηλά στη λίστα πολλών ανθρώπων με τα «σημεία πόνου», όπως ίσως αποδεικνύεται από το ότι οι «πίνακες» είναι ένα από τα πιο [με υψηλή επισήμανση θέματα στο tex.stackexchange](https://tex.stackexchange.com/tags).

Εκτός από τις απαντήσεις και τα παραδείγματα στο tex.stackexchange, ακόμη και μια πρόχειρη επισκόπηση της υποστήριξης που διατίθεται για τη στοιχειοθέτηση πινάκων με LaTeX αποκαλύπτει έναν αριθμό πόρων πληροφόρησης σχετικών με πίνακες:

* του Overleaf [σελίδες βοήθειας](https://www.overleaf.com/learn/latex/tables) και άλλοι ιστότοποι όπως το [learnlatex.org](https://www.learnlatex.org/en/lesson-08)
* Το CTAN, το Comprehensive TeX Network, καταγράφει πάνω από [70 πακέτα TeX/LaTeX](https://ctan.org/topic/table) σχετικά με τη δημιουργία πινάκων
* ένα ολόκληρο [βιβλίο για τη στοιχειοθέτηση πινάκων με χρήση LaTeX](https://www.amazon.co.uk/Typesetting-Tables-LaTeX-Herbert-Voss/dp/1906860254)
* ένα εξαιρετικό [διαδικτυακό γεννήτορα πινάκων LaTeX](https://www.tablesgenerator.com/latex_tables)

Μια απλή αναζήτηση Google για [πίνακες LaTeX](https://www.google.com/search?q=latex+tables) επιστρέφει τεράστιο αριθμό αποτελεσμάτων, παραθέτοντας πολλούς ιστότοπους που προσφέρουν βοήθεια, συμβουλές, παραδείγματα και εξηγήσεις.

### TeX, όχι LaTeX

Δεδομένου του πλούτου της διαθέσιμης βιβλιογραφίας για τη στοιχειοθέτηση πινάκων με LaTeX, υπάρχει κάτι ακόμη να γραφτεί γι’ αυτούς—άλλα παραδείγματα πινάκων και απαρίθμηση/παρουσίαση των εντολών των πακέτων; Υπάρχει τρόπος να προσεγγίσουμε το θέμα της στοιχειοθέτησης πινάκων έτσι ώστε να αναδεικνύονται ή να εστιάζονται οι θεμελιώδεις αρχές και οι έννοιες της στοιχειοθεσίας πινάκων; Υπάρχει, αλλά απαιτεί να ξεφλουδίσουμε το κρεμμύδι του LaTeX…

Αποφασίσαμε να δημιουργήσουμε μια σειρά άρθρων που επιδιώκει να παρέχει στους αναγνώστες πληροφορίες υποβάθρου και εξηγήσεις για τους υποκείμενους *μηχανισμούς* της στοιχειοθεσίας πινάκων βασισμένης στο TeX. Αντί να εστιάσουμε στη στοιχειοθέτηση πινάκων χρησιμοποιώντας συγκεκριμένες μακροεντολές/πακέτα LaTeX, θα εξερευνήσουμε τη *υποκείμενη συμπεριφορά* των μηχανών TeX: εξετάζοντας τον μηχανισμό στοιχειοθέτησης χαμηλού επιπέδου που παρέχει τα θεμέλια πάνω στα οποία κατασκευάζονται οι μακροεντολές του LaTeX. Ο τελικός στόχος είναι να αναδειχθούν και να εξηγηθούν οι βασικές μέθοδοι και αλγόριθμοι της στοιχειοθεσίας πινάκων με TeX—ελπίζοντας ότι έτσι θα βοηθήσουμε τους αναγνώστες/χρήστες να κατανοήσουν καλύτερα γιατί οι πίνακες συμπεριφέρονται όπως συμπεριφέρονται. Μια αναπόφευκτη συνέπεια αυτής της προσέγγισης, δηλαδή το ξεκαθάρισμα των προστατευτικών στρωμάτων της μακροεντολικής μόνωσης του LaTeX, είναι η έκθεση σε ακατάστατες λεπτομέρειες χαμηλού επιπέδου από τις οποίες οι χρήστες συνήθως (και ευχαρίστως) είναι απομονωμένοι μέσω στρωμάτων κώδικα μακροεντολών LaTeX.

Έχει χρειαστεί πολύς χρόνος για την έρευνα, τη συγγραφή και την εικονογράφηση αυτών των άρθρων, επομένως ελπίζουμε ότι αποτελούν μια αξιόλογη προσθήκη στη βιβλιογραφία, παρέχοντας υλικό που θα ενημερώσει τους αναγνώστες και θα τους βοηθήσει να κατανοήσουν καλύτερα αυτή την πολύπλοκη περιοχή της στοιχειοθεσίας TeX. Θα πρέπει να τονίσουμε ότι αυτή η σειρά άρθρων θα *όχι* παρεκκλίνει προς τη συζήτηση *της αισθητικής* του σχεδιασμού πινάκων—αυτό είναι ένα θέμα γεμάτο υποκειμενικές προτιμήσεις και ένα θέμα του οποίου τα επιχειρήματα πρέπει να εκτυλιχθούν αλλού…

### Εξερευνώντας τους μηχανισμούς των πινάκων TeX: Πώς μπορείτε να το κάνετε αυτό;

Για να εξερευνήσει κανείς, και στη συνέχεια να γράψει γι’ αυτούς, τους μηχανισμούς και τις διεργασίες χαμηλότερου επιπέδου που λαμβάνουν χώρα μέσα στις μηχανές TeX, όπως η στοιχειοθέτηση πινάκων, το Overleaf δημιούργησε (συνέταξε) «debug» εκδόσεις της μηχανής TeX του Knuth χρησιμοποιώντας το [διαδικασία Web2W](https://w3-o.cs.hm.edu/users/ruckert/public_html/web2w/index.html).

Παραδοσιακά, η δημιουργία του TeX περιλαμβάνει μια διαδικασία που ονομάζεται Web2C, η οποία χρησιμοποιείται μέσα στο TeX Live και παράγει κώδικα C μετατρέποντας τον αρχικό πηγαίο κώδικα Pascal του TeX στο αντίστοιχο C. Αυτή η διαδικασία παράγει κώδικα C που δεν προοριζόταν ποτέ να διαβαστεί από ανθρώπους, αλλά μόνο από μεταγλωττιστές C. Ο μηχανικά παραγόμενος κώδικας C είναι *εξαιρετικά* δύσκολος στην ανάγνωση ή στην τροποποίηση για σκοπούς πειραματισμού.

Αντίθετα, το Web2W παράγει πηγαίο κώδικα C (διαθέσιμο [εδώ](https://w3-o.cs.hm.edu/users/ruckert/public_html/web2w/ctex.c)) που είναι *τάξεις μεγέθους* πιο ευανάγνωστος από τον κώδικα που παράγεται από το Web2C. Κατά συνέπεια, ο πηγαίος κώδικας C του Web2W είναι πολύ πιο κατάλληλος για τροποποίηση για σκοπούς μάθησης/πειραματισμού.

Το Web2W παράγει μια έκδοση του TeX («CTeX») που είναι *εξαιρετικά* κοντά στο αρχικό πρόγραμμα του Knuth: το «CTeX» δεν περιλαμβάνει τις πολλές αλλαγές και βελτιώσεις που εισήχθησαν από τη διαδικασία Web2C—όπως το SyncTeX, η επεξεργασία από τη γραμμή εντολών και η αναζήτηση αρχείων μέσω του Kpathsea. Παρόλο που χάνετε αυτές τις πολύτιμες βελτιώσεις, ο προκύπτων κώδικας C (Web2W) είναι σχετικά εύκολος στην πλοήγηση χρησιμοποιώντας τον δημοσιευμένο πηγαίο κώδικα TeX του Knuth, παρότι το TeX γράφτηκε σε Pascal.

* **Σημείωση για τα ονόματα:** Αυστηρά μιλώντας, το όνομα «TeX» πρέπει να αναφέρεται μόνο στο αρχικό λογισμικό που γράφτηκε και δημοσιεύτηκε από τον Donald Knuth. Οποιεσδήποτε τροποποιήσεις στο λογισμικό του πρέπει να χρησιμοποιούν διαφορετικό όνομα για το προκύπτον λογισμικό στοιχειοθέτησης βασισμένο στο TeX. Εδώ, χρησιμοποιήσαμε τη διαδικασία Web2W για να κατασκευάσουμε μια μηχανή που παραμένει, στην ουσία, το αρχικό λογισμικό του Knuth. Ωστόσο, για την αποφυγή αμφιβολιών θα χρησιμοποιήσουμε τον όρο «CTeX» για να εννοήσουμε τη συγκεκριμένη έκδοση που κατασκευάστηκε με το Web2W, αλλά θα χρησιμοποιούμε επίσης το «TeX» για να σημαίνει είτε την αρχική μηχανή του Knuth είτε έναν γενικό όρο για τη γλώσσα στοιχειοθέτησης που βασίζεται στις αρχές του TeX του Knuth. Ελπίζουμε οι αναγνώστες να συγχωρήσουν τυχόν περιστασιακές παρεκκλίσεις στην αυστηρή εφαρμογή/χρήση της απολύτως σωστής ορολογίας: ελπίζουμε ότι το νόημα/η πρόθεση αποδίδεται από το πλαίσιο.

Η εκδόση debug του CTeX εκτελέστηκε χρησιμοποιώντας το [Eclipse IDE](https://www.eclipse.org/downloads/packages/)καθιστώντας δυνατό να παρατηρηθεί η σε πραγματικό χρόνο επεξεργασία του κώδικα C που υλοποιεί τις πρωτογενείς (ενσωματωμένες) εντολές TeX χαμηλού επιπέδου, και τους αλγορίθμους, που σχεδιάστηκαν από τον Knuth για να υποστηρίξουν τη στοιχειοθεσία πινάκων.

Το ακόλουθο σύντομο (περίπου 90 δευτερολέπτων) βίντεο δείχνει τη μηχανή CTeX να εκτελείται μέσα στο [Eclipse IDE](https://www.eclipse.org/downloads/packages/):

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/7drdFwYR6h5xD88XnurDIH/36511f504755ab274f4da2e3f3fc1ce5/TeXtables.mp4>" %}

Εκτός από το CTeX, μεταγλωττίσαμε επίσης το e-TeX για να έχουμε πρόσβαση σε μερικές πρόσθετες πρωτογενείς εντολές που δεν υπάρχουν στο αρχικό λογισμικό του Knuth. Παρότι το CTeX και το e-TeX είναι πλέον παλιοί μηχανισμοί βασισμένοι στο TeX, εξακολουθούν να είναι κατάλληλοι ως βάση για την εξερεύνηση των μηχανισμών της στοιχειοθεσίας πινάκων, επειδή αυτές οι υποκείμενες αρχές εξακολουθούν να ισχύουν για όλες τις μηχανές στοιχειοθεσίας βασισμένες στο TeX.

### Γιατί να χρησιμοποιήσετε έναν παλαιότερο μηχανισμό TeX για να εξερευνήσετε πίνακες;

Πρώτον, το έντυπο βιβλίο, [TeX:The Program](https://www.amazon.co.uk/Computers-Typesetting-TeX-Program-TEX/dp/0201134373)το οποίο απαριθμεί και εξηγεί τον πηγαίο κώδικα του TeX, εξακολουθεί να είναι ένας εξαιρετικά βολικός οδηγός στα σκοτεινά νερά της εσωτερικής λειτουργίας του TeX, παρά το γεγονός ότι δημοσιεύτηκε πριν από περισσότερα από 30 χρόνια (1986). Φυσικά, μπορείτε να στοιχειοθετήσετε μόνοι σας την τεκμηρίωση του πηγαίου κώδικα του TeX, για παράδειγμα δείτε το έργο Overleaf [Στοιχειοθετήστε την τεκμηρίωση του πηγαίου κώδικα για TeX, e-TeX ή pdfTeX](https://www.overleaf.com/latex/examples/typeset-the-source-code-documentation-for-tex-e-tex-or-pdftex/qkgfgyspnhcv). Από τη δημοσίευση του TeX:The Program το 1986, έχουν εξελιχθεί νέες μηχανές TeX, συμπεριλαμβανομένων των pdfTeX, XeTeX και LuaTeX, οι οποίες εισάγουν όλες χαρακτηριστικά και εντολές που δεν τεκμηριώνονται στο TeX:The Program απλώς επειδή δεν υπήρχαν στο αρχικό λογισμικό του Knuth.

Για πολλές βασικές διεργασίες, όπως η στοιχειοθεσία πινάκων του TeX, ο κώδικας που τεκμηριώνεται στο TeX:The Program παραμένει επίκαιρος ως βάση μελέτης—παρόλο που ο πηγαίος κώδικας του TeX είναι γραμμένος σε Pascal. Επιπλέον, το TeX του Knuth μεταγλωττίζεται σχετικά εύκολα και γρήγορα—ιδίως μέσω της εξαιρετικά χρήσιμης [Web2W](https://w3-o.cs.hm.edu/users/ruckert/public_html/web2w/index.html) διαδικασία που ανέπτυξε ο Martin Ruckert. Η ευκολία/ταχύτητα της μεταγλώττισης καθιστούν πολύ πιο βολική την τροποποίηση του TeX με απλούς τρόπους—όπως η δημιουργία γραφικών SVG που χρησιμοποιούνται αργότερα σε αυτή τη σειρά άρθρων.

### Κατανόηση της διαφοράς μεταξύ TeX και LaTeX

Πολλοί αναγνώστες θα γνωρίζουν ήδη ότι το LaTeX στην πραγματικότητα δεν είναι ένα *εκτελέσιμο* πρόγραμμα στοιχειοθέτησης αλλά μια μεγάλη συλλογή εντολών (*μακροεντολές*) που, τελικά, είναι γραμμένες σε μια γλώσσα στοιχειοθέτησης/προγραμματισμού χαμηλότερου επιπέδου που ονομάζεται TeX. Ο κώδικάς σας σε LaTeX παράγει στοιχειοθετημένη έξοδο μόνο αφού υποβληθεί σε επεξεργασία από ένα εκτελέσιμο πρόγραμμα που ονομάζεται *μηχανή TeX*—το λογισμικό που βρίσκεται ανάμεσα στον κώδικά σας σε LaTeX (έγγραφο) και στο στοιχειοθετημένο PDF. Σήμερα, οι χρήστες μπορούν να επιλέξουν ανάμεσα σε διάφορες μηχανές TeX για να στοιχειοθετήσουν τον κώδικά τους σε LaTeX, συμπεριλαμβανομένων των pdfTeX, XeTeX και παραλλαγών του LuaTeX.

Όσοι είναι νέοι στο οικοσύστημα TeX/LaTeX συχνά, και δικαιολογημένα, μπερδεύονται από την πληθώρα των αινιγματικών ονομάτων που χρησιμοποιούνται για τα εργαλεία που συναντούν: TeX, LaTeX, pdfTeX, pdfLaTeX, XeTeX, XeLaTeX, LuaTeX και LuaLaTeX. Αν νιώθετε το ίδιο, υπάρχει βοήθεια στο άρθρο του Overleaf [Τι κρύβει ένα Όνομα: Ένας Οδηγός για τις Πολλές Μορφές του TeX](/latex/el/se-vathos-arthra/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md) το οποίο εξηγεί την προέλευση και τη σημασία όλων αυτών των όρων.

#### Διάλεκτοι και πρωτογενείς εντολές TeX

Κάθε μηχανή TeX έχει ένα σύνολο ενσωματωμένων εντολών που ονομάζονται *πρωταρχικές εντολές* οι οποίες, συλλογικά, αποτελούν τη «διάλεκτο» της μηχανής αυτής στη γλώσσα στοιχειοθέτησης TeX, αντανακλώντας τις δυνατότητες που είναι ενσωματωμένες σε κάθε μηχανή. Εδώ, ο όρος «πρωτογενής» που χρησιμοποιείται για να περιγράψει τις ενσωματωμένες εντολές των μηχανών TeX δεν *όχι* σημαίνει ότι αυτές οι εντολές είναι βασικές ή απλές, αλλά ότι είναι θεμελιώδεις και αδιαίρετες: δεν κατασκευάζονται από άλλες εντολές (σε αντίθεση με τις μακροεντολές). Όλες οι μηχανές TeX μοιράζονται ένα μεγάλο βασικό σύνολο πρωτογενών εντολών, αλλά κάποιες περιέχουν πρωτογενείς εντολές ειδικές για τη συγκεκριμένη μηχανή—δημιουργώντας έτσι την έννοια μιας «διαλέκτου» του TeX.

Ανεξάρτητα από το ποια μηχανή TeX χρησιμοποιείται για να στοιχειοθετήσει το έγγραφό σας σε LaTeX, η δουλειά της είναι να επεξεργαστεί («εκτελέσει») τη συλλογή εντολών LaTeX (δηλαδή μακροεντολές) που χρησιμοποιούνται για να γράψουν και να κατασκευάσουν το έγγραφό σας. Στην πράξη, η μηχανή TeX «μετατρέπει» τον κώδικά σας σε LaTeX (μακροεντολές) *πίσω σε* τις συνιστώσες του πρωτογενείς εντολές της μηχανής TeX, τις οποίες η μηχανή μπορεί να εκτελέσει για να πραγματοποιήσει την πραγματική στοιχειοθεσία. Δεν *έχετε* χρειάζεται *να χρησιμοποιείτε εντολές LaTeX για να στοιχειοθετείτε έγγραφα με μηχανές TeX—μπορείτε* να επιλέξετε να κατασκευάσετε τα έγγραφά σας αποκλειστικά με πρωτογενείς εντολές TeX, δηλαδή απευθείας στη χαμηλού επιπέδου *γλώσσα προγραμματισμού TeX* που είναι ενσωματωμένη στις μηχανές TeX. Ωστόσο, με τα σημερινά δεδομένα η γλώσσα TeX είναι αρκετά αινιγματική και γενικά θεωρείται δύσκολη γλώσσα προγραμματισμού—μπορεί επίσης να απαιτεί μεγάλο αριθμό ενσωματωμένων πρωτογενών εντολών για να επιτευχθεί ο στόχος της στοιχειοθεσίας σας, καθιστώντας το έργο προγραμματισμού επιρρεπές σε σφάλματα και ενδεχομένως επαναληπτικό.

Για να αποφύγετε να πρέπει να γράφετε απευθείας στη γλώσσα TeX ή να ξαναπληκτρολογείτε συνεχώς την ίδια σειρά εντολών, οι μηχανές TeX σάς επιτρέπουν να δημιουργείτε «συντομεύσεις» που ονομάζονται *μακροεντολές*. Δημιουργώντας μακροεντολές ορίζετε τις δικές σας εντολές που συσκευάζουν δυνητικά μεγάλες και σύνθετες ακολουθίες πρωτογενών εντολών της γλώσσας TeX (ή άλλων μακροεντολών) σε μία ενιαία «υψηλότερου επιπέδου» εντολή. Οι προγραμματιστές TeX μπορούν να γράψουν πολύ εξελιγμένες μακροεντολές που ενσωματώνουν μεγάλο βαθμό λειτουργικότητας μέσα σε μία μόνο εντολή—όπως οι εντολές που παρέχονται από το LaTeX. Χρησιμοποιώντας πακέτα μακροεντολών, όπως το LaTeX (ή [ConTeXt](https://wiki.contextgarden.net/Main_Page)), οι συγγραφείς εγγράφων είναι (ως επί το πλείστον) απομονωμένοι από πολλές κουραστικές λεπτομέρειες, επιτρέποντάς τους να εστιάζουν στη συγγραφή και στη στοιχειοθέτηση αντί να παλεύουν συνεχώς με τις πολυπλοκότητες και τις αποχρώσεις της γλώσσας TeX.

## Στην αρχή...

Μαζί με τον σχεδιασμό αλγορίθμων για τη στοιχειοθεσία μαθηματικών και την εξελιγμένη διαίρεση γραμμών, ο Knuth αντιμετώπισε την πρόκληση να προγραμματίσει το λογισμικό TeX του ώστε να στοιχειοθετεί πίνακες. Προφανώς, κάθε αλγόριθμος/οι κατασκευής πινάκων δεν πρέπει να είναι υπερβολικά περιοριστικός, επειδή αυτό θα απογοήτευε τους χρήστες που χρειάζονται την ελευθερία να δημιουργήσουν μια σχεδόν άπειρη γκάμα διατάξεων πινάκων. Επιπλέον, τα κελιά των πινάκων μπορούν να περιέχουν μεγάλη ποικιλία περιεχομένου, συμπεριλαμβανομένων μαθηματικών, γραφικών και τμημάτων κειμένου που έχουν διασπαστεί σε όμορφα στοιχειοθετημένες γραμμές—στην πραγματικότητα, οτιδήποτε είναι ικανό να στοιχειοθετήσει το TeX. Η παροχή αυτής της ευελιξίας απαιτεί οι αλγόριθμοι δημιουργίας πινάκων του TeX να λειτουργούν χέρι-χέρι με άλλα μέρη του μηχανισμού στοιχειοθεσίας του TeX.

Ωστόσο, οι μηχανές TeX επιβάλλουν ένα τίμημα για την ευελιξία που παρέχουν οι δυνατότητες κατασκευής πινάκων: πολυάριθμες λεπτές αποχρώσεις και ιδιαιτερότητες στη συμπεριφορά χαμηλού επιπέδου των ενσωματωμένων (πρωτογενών) εντολών στοιχειοθεσίας πινάκων, από τις οποίες υπάρχουν 9:

* **`\halign`**, **`\valign`**: βασικές εντολές κατασκευής πινάκων
* **`\tabskip`**: κενό που τοποθετείται ανάμεσα σε στήλες του \halign ή σειρές του \valign
* **`\cr`**: υποχρεωτικός τερματισμός «carriage return» για όλες τις γραμμές σε πίνακα
* **`\noalign`**: εισαγωγή υλικού ανάμεσα σε σειρές του \halign ή στήλες του \valign
* **`\everycr`**: εντολές (καταχωρητής token) που διαβάζονται μετά τον εντοπισμό του \cr
* **`\span`**: μια εντολή διπλής λειτουργίας: το \span δημιουργεί κελιά που εκτείνονται σε στήλες ή σειρές, ή επεκτείνει εντολές στο προοίμιο του πίνακα (θα το εξετάσουμε λεπτομερώς αυτό)
* **`\omit`**: παράλειψη των προτύπων για ένα συγκεκριμένο κελί
* **`\crcr`**: χρησιμοποιείται σε μακροεντολές για να αποφεύγονται σφάλματα αν οι χρήστες ξεχάσουν ένα απαιτούμενο \cr

Θα συναντήσουμε αυτές τις εντολές στο ταξίδι μας μέσα από τη δημιουργία πινάκων.

### Απομακρυσμένες ηχώ των προκλήσεων

Καταχωνιασμένο στο [ο πηγαίος κώδικας του TeX](https://www.overleaf.com/latex/examples/typeset-the-source-code-documentation-for-tex-e-tex-or-pdftex/qkgfgyspnhcv) είναι μια κάπως αποθαρρυντική εισαγωγή στο θέμα της υλοποίησης των εντολών χαμηλού επιπέδου \halign και \valign που σχεδιάστηκαν για τη στοιχειοθεσία πινάκων:

> «Είναι κάπως θαύμα κάθε φορά που το \halign και το \valign λειτουργούν, επειδή διαπερνούν τόσες πολλές από τις δομές ελέγχου του TeX. Επομένως, η παρούσα σελίδα πιθανώς δεν είναι το καλύτερο μέρος για να αρχίσει ένας αρχάριος να διαβάζει αυτό το πρόγραμμα· είναι καλύτερο να κατακτήσει πρώτα όλα τα υπόλοιπα.»

Ο Knuth συνεχίζει λέγοντας

> «Σημειώστε ότι καθώς το \halign επεξεργάζεται, εγκαταλείπουμε ατρόμητα τον έλεγχο στο υπόλοιπο TeX. Σε κρίσιμα σημεία, καλείται μια ρουτίνα στοίχισης να παρέμβει και να κάνει μια μικρή ενέργεια, αλλά τις περισσότερες φορές αυτές οι ρουτίνες απλώς παραμονεύουν στο παρασκήνιο. Είναι κάτι σαν μετα-υπνωτική υπόδειξη.»

Από αυτά τα σχόλια φαίνεται λογικό να συμπεράνουμε ότι, ακόμη και για τον Knuth, η υλοποίηση της στοιχειοθεσίας πινάκων του TeX ήταν «κάτι σαν πρόκληση»—να παρέχει έλεγχο και ευελιξία στον χρήστη αλλά ταυτόχρονα να διασφαλίζει ότι οι αυτοματοποιημένοι αλγόριθμοι κατασκευής πινάκων του TeX ήταν καλά ενορχηστρωμένοι με τις βασικές διεργασίες στοιχειοθεσίας του TeX.

Ο συγγραφέας αναγνωρίζει ευθέως την πολυπλοκότητα του κώδικα και των αλγορίθμων πίσω από τις δυνατότητες στοιχειοθεσίας πινάκων του TeX, αλλά και τον θαυμασμό για την τεράστια ποσότητα δυνατοτήτων που περιέχονται σε μια σχετικά μικρή ποσότητα, έστω και πυκνού, κώδικα Pascal (ή C).


---

# 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/14-how-do-tex-engines-typeset-tables.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.
