> 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/perissotera-themata/01-a-six-part-series-how-do-tex-macros-actually-work.md).

# Σειρά έξι μερών: Πώς λειτουργούν πραγματικά οι μακροεντολές TeX;

## Σχετικά με αυτήν τη σειρά

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

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

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

#### Γραμμή πλοήγησης

Κάθε άρθρο έχει την ακόλουθη γραμμή πλοήγησης πριν και μετά το κείμενο, ώστε να μπορείτε να μεταβείτε γρήγορα σε ένα άλλο άρθρο της σειράς:

[Μέρος 1](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_1?preview=true) [Μέρος 2](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_2?preview=true) [Μέρος 3](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_3?preview=true) [Μέρος 4](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_4?preview=true) [Μέρος 5](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_5?preview=true) [Μέρος 6](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_6?preview=true)

### Μέρος 1: Κωδικοί κατηγοριών

Αυτό το άρθρο εξετάζει τη λογική πίσω από την έννοια των κωδικών κατηγοριών του TeX: τι είναι και πώς το TeX τους χρησιμοποιεί για να φιλτράρει την είσοδό του σε περιεχόμενο για στοιχειοθεσία και σε εντολές που θα εκτελεστούν.

### Μέρος 2: Ανάγνωση της εισόδου μέσα από τα «μάτια» του TeX

Μέσα από μια σειρά γραφικών, χρησιμοποιούμε τη δοκιμασμένη στον χρόνο αναλογία ότι το TeX έχει «μάτια» με τα οποία διαβάζει (σκανάρει) την είσοδό του. Εξερευνούμε παραδείγματα της χρήσης των κωδικών κατηγοριών από το TeX για τη δημιουργία διακριτικών χαρακτήρων και το πώς το TeX αναγνωρίζει και επεξεργάζεται εντολές χρησιμοποιώντας τον κωδικό κατηγορίας 0 («χαρακτήρας διαφυγής»).

### Μέρος 3: Από το κείμενο εισόδου στις εντολές

Αυτό το άρθρο εξετάζει σε βάθος πώς το TeX αναγνωρίζει και επεξεργάζεται εντολές που εντοπίζονται στην είσοδο. Εξερευνούμε πώς το TeX αποθηκεύει και ανακτά πληροφορίες σχετικά με εντολές: κωδικούς εντολών, τροποποιητές εντολών, και κάνουμε επισκόπηση μερικών εσωτερικών μεταβλητών που το TeX χρησιμοποιεί για να αποθηκεύει πληροφορίες σχετικά με στοιχεία που διαβάζονται από την είσοδο. Κάποιο από το άρθρο είναι αρκετά χαμηλού επιπέδου υλικό, το οποίο μπορεί να παραλειφθεί σε μια πρώτη ανάγνωση.

### Μέρος 4: Η δομή μιας μακροεντολής

Παρουσιάζουμε και χρησιμοποιούμε το ακόλουθο «πλαίσιο» για την περιγραφή της δομής των μακροεντολών:

```
<πρωτόγονο μακροεντολής TeX><όνομα μακροεντολής><κείμενο παραμέτρων>{<κείμενο αντικατάστασης>}
```

Στη συνέχεια εξερευνούμε μια σειρά παραδειγμάτων για να δείξουμε τον ρόλο και τον σκοπό μιας μακροεντολής `<parameter text>` ως ένα «πρότυπο διακριτικών» που μπορεί να κατασκευαστεί μέσω της χρήσης διακριτικών που λειτουργούν ως *οριοθέτες*.

### Μέρος 5: Λίστες διακριτικών και η εσωτερική αποθήκευση μακροεντολών του TeX

Αυτό το άρθρο εξετάζει λεπτομερώς πώς το TeX χρησιμοποιεί λίστες διακριτικών για να αποθηκεύει ορισμούς μακροεντολών. Χρησιμοποιώντας εκτεταμένα διαγράμματα που δημιουργήθηκαν με μια ειδικά τροποποιημένη έκδοση του TeX, εξερευνούμε τα εξειδικευμένα διακριτικά που το TeX χρησιμοποιεί για να αναγνωρίζει και να επεξεργάζεται τα ορίσματα μακροεντολών του χρήστη.

### Μέρος 6: Επέκταση και επεξεργασία μακροεντολών

Στο Μέρος 6 χρησιμοποιούμε ορισμένα λεπτομερή γραφικά για να εξηγήσουμε και να εξερευνήσουμε την ακριβή σημασία της επέκτασης μακροεντολών και τις συνέπειες της συμβολοποίησης των ορισμάτων μακροεντολών από το TeX πριν από την τροφοδότησή τους στο . μιας μακροεντολής.

## Μια σύντομη σημείωση: Χρήση του «TeX» και όχι του LaTeX

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

Το «TeX» είναι, κάπως μπερδεμένα, τόσο το όνομα ενός εκτελέσιμου προγράμματος όσο και το όνομα μιας γλώσσας στοιχειοθεσίας. Για να γίνει διάκριση μεταξύ των δύο, ο όρος *μηχανή TeX* χρησιμοποιείται για να διαφοροποιεί ένα εκτελέσιμο πρόγραμμα TeX από τη γλώσσα στοιχειοθεσίας. Ορισμένα από τα συγκεκριμένα δεδομένα, οι πληροφορίες και οι λεπτομέρειες που χρησιμοποιούνται σε αυτή τη σειρά προέρχονται από μια λεπτομερή εξέταση του πηγαίου κώδικα του αρχικού λογισμικού TeX του Knuth, αλλά οι αρχές που περιγράφονται είναι κοινές σε όλες τις μηχανές TeX. Έτσι, σε όλη τη συζήτησή μας, η χρήση του «TeX» θα πρέπει να εκλαμβάνεται ότι σημαίνει μία από τις εκτελέσιμες μηχανές TeX—όπως το αρχικό TeX του Knuth, το pdfTeX, το XeTeX ή το LuaTeX.

Στα άρθρα χρησιμοποιούμε την πρωταρχική εντολή TeX `\def` για να ορίσουμε τα παραδείγματα μακροεντολών μας: δεν χρησιμοποιούμε την εντολή LaTeX `\newcommand` η οποία είναι σχεδόν σίγουρα πιο οικεία στους περισσότερους χρήστες του Overleaf. Υπάρχει ένας πολύ καλός λόγος γι’ αυτό: ο στόχος μας είναι να κατανοήσουμε τις θεμελιώδεις αρχές που διέπουν τη συμπεριφορά των μακροεντολών του TeX, αλλά για να το κάνουμε αυτό χρειάζεται να χρησιμοποιήσουμε τις βασικές εντολές (πρωτογενείς εντολές) ενσωματωμένες στο λογισμικό TeX. Οι εντολές LaTeX, όπως `\newcommand`, είναι οι ίδιες μακροεντολές: εντολές με συγκεκριμένη προγραμματισμένη συμπεριφορά και οι οποίες, τελικά, κατασκευάζονται από στρώματα εντολών TeX χαμηλότερου επιπέδου. Για να κατανοήσουμε καλύτερα τη θεμελιώδη συμπεριφορά του TeX πρέπει να χρησιμοποιήσουμε πρωτογενείς εντολές TeX, όχι μακροεντολές LaTeX.

## Παραδείγματα και γραφικά

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

Το Overleaf προσαρμόζει το TeX του Knuth με πρόσθετο κώδικα (γραμμένο σε C) που «συνδέεται» με την επεξεργασία μακροεντολών του TeX και εξερευνά δεδομένα και δομές δεδομένων που κανονικά δεν είναι προσβάσιμες στους χρήστες. Κάθε φορά που καλείται μια μακροεντολή, η τροποποιημένη μηχανή TeX δημιουργεί πρόσθετα αρχεία εξόδου που περιέχουν δεδομένα σε μορφή που μπορεί να επεξεργαστεί χρησιμοποιώντας [Graphviz](https://www.graphviz.org/), ένα πρόγραμμα απεικόνισης γραφημάτων ανοιχτού κώδικα. Το τελικό αποτέλεσμα είναι γραφικά (διαγράμματα λίστας κόμβων) που δείχνουν ακριβώς πώς το TeX αποθηκεύει τον ορισμό μιας μακροεντολής, μαζί με μια γραφική αναπαράσταση τυχόν ορισμάτων που παρείχε ο χρήστης όταν κλήθηκε η μακροεντολή.

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

## Η προσαρμοσμένη έκδοση του TeX του Overleaf

Το βίντεο δίνει μια σύντομη επίδειξη της τροποποιημένης έκδοσης του TeX του Overleaf, προσαρμοσμένης να δημιουργεί διαγράμματα κόμβων Graphiviz (`.gv` αρχεία)—καμία άλλη πτυχή της συμπεριφοράς του TeX δεν επηρεάζεται από αυτές τις αλλαγές. Τα `.gv` αρχεία περιέχουν αναπαραστάσεις των λιστών διακριτικών του TeX που χρησιμοποιούνται για την αποθήκευση ορισμών μακροεντολών και ορισμάτων μακροεντολών. Η απεικόνιση Graphviz εξάγεται σε SVG, το οποίο στη συνέχεια εισάγεται στο [Inkscape](https://inkscape.org/) για περαιτέρω σχολιασμό πριν από την ενσωμάτωση του γραφικού σε ένα άρθρο.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/40EAwKxZnNwgxwe9SpAwNY/5bce5de21509f3324bc50527ec6815e7/texdemo.mp4>" %}


---

# 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/perissotera-themata/01-a-six-part-series-how-do-tex-macros-actually-work.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.
