> 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/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md).

# Οι δύο λειτουργίες των μηχανών TeX: λειτουργία INI και λειτουργία παραγωγής

Όλες οι μηχανές TeX έχουν δύο "λειτουργίες" λειτουργίας: μια λειτουργία "INI" και τη λειτουργία "παραγωγής"—η τελευταία είναι απλώς η προεπιλεγμένη (τυπική) λειτουργία που χρησιμοποιείται για την παραγωγή στοιχειοθετημένου υλικού. Η λειτουργία INI είναι αρκετά διαφορετική και πρέπει να χρησιμοποιήσετε μια επιλογή στη γραμμή εντολών για να θέσετε μια μηχανή TeX σε λειτουργία INI. Μπορείτε να δείτε πώς να το κάνετε εκτελώντας `--help` στη γραμμή εντολών. Για παράδειγμα, με το LuaTeX, αν εκτελέσετε

`luatex --help`

θα δείτε πολλές επιλογές γραμμής εντολών που υποστηρίζει αυτή η μηχανή:

```
Χρήση: luatex --lua=FILE [OPTION]... [TEXNAME[.tex]] [COMMANDS]
   ή: luatex --lua=FILE [OPTION]... \FIRST-LINE
   ή: luatex --lua=FILE [OPTION]... &FMT ARGS
  Εκτελέστε το LuaTeX στο TEXNAME, συνήθως δημιουργώντας το TEXNAME.pdf.
  Οποιαδήποτε εναπομείναντα COMMANDS επεξεργάζονται ως είσοδος του luatex, αφού διαβαστεί το TEXNAME.

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

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

  Αν δεν καθοριστούν ορίσματα ή επιλογές, ζητείται εισαγωγή.

  Οι ακόλουθες κανονικές επιλογές υποστηρίζονται:

   --credits                     προβολή των συντελεστών και έξοδος
   --debug-format                ενεργοποίηση αποσφαλμάτωσης μορφής
   --draftmode                   ενεργοποίηση πρόχειρης λειτουργίας (δεν παράγει PDF εξόδου)
   --[no-]file-line-error        απενεργοποίηση/ενεργοποίηση μηνυμάτων τύπου file:line:error
   --[no-]file-line-error-style  ψευδώνυμα του --[no-]file-line-error
   --fmt=FORMAT                  φόρτωση του αρχείου μορφής FORMAT
   --halt-on-error               διακοπή της επεξεργασίας στο πρώτο σφάλμα
   --help                        εμφάνιση βοήθειας και έξοδος
   --ini                         να είναι iniluatex, για την εξαγωγή αρχείων μορφής
   --interaction=STRING          ορισμός λειτουργίας αλληλεπίδρασης (STRING=batchmode/nonstopmode/scrollmode/errorstopmode)
   --jobname=STRING              ορισμός του ονόματος εργασίας σε STRING
   --kpathsea-debug=NUMBER       ορισμός σημαιών αποσφαλμάτωσης αναζήτησης διαδρομών σύμφωνα με τα bits του NUMBER
   --lua=FILE                    φόρτωση και εκτέλεση ενός σεναρίου αρχικοποίησης lua
   --[no-]mktex=FMT              απενεργοποίηση/ενεργοποίηση δημιουργίας mktexFMT (FMT=tex/tfm)
   --nosocket                    απενεργοποίηση της βιβλιοθήκης lua socket
   --output-comment=STRING       χρήση του STRING ως σχολίου αρχείου DVI αντί για την ημερομηνία (καμία επίδραση για PDF)
   --output-directory=DIR        χρήση του υπάρχοντος DIR ως καταλόγου στον οποίο θα γράφονται τα αρχεία
   --output-format=FORMAT        χρήση του FORMAT για την έξοδο της εργασίας· το FORMAT είναι 'dvi' ή 'pdf'
   --progname=STRING             ορισμός του ονόματος προγράμματος σε STRING
   --recorder                    ενεργοποίηση καταγραφής ονομάτων αρχείων
   --safer                       απενεργοποίηση εύκολα εκμεταλλεύσιμων εντολών lua
   --[no-]shell-escape           απενεργοποίηση/ενεργοποίηση εντολών συστήματος
   --shell-restricted            περιορισμός των εντολών συστήματος σε μια λίστα εντολών που δίνεται στο texmf.cnf
   --synctex=NUMBER              ενεργοποίηση synctex (βλ. man synctex)
   --utc                         αρχικοποίηση της ώρας σε UTC
   --version                     εμφάνιση έκδοσης και έξοδος

Εναλλακτικά μοντέλα συμπεριφοράς μπορούν να επιτευχθούν με ειδικούς διακόπτες

  --luaonly                      εκτέλεση ενός αρχείου lua και στη συνέχεια έξοδος
  --luaconly                     μεταγλώττιση σε bytecode ενός αρχείου lua και στη συνέχεια έξοδος
  --luahashchars                 τα bits που χρησιμοποιεί ο τρέχων διερμηνέας Lua για τον κατακερματισμό συμβολοσειρών

Δείτε το εγχειρίδιο αναφοράς για περισσότερες πληροφορίες σχετικά με τη διαδικασία εκκίνησης.

Στείλτε αναφορές σφαλμάτων στο dev-luatex@ntg.nl.
```

Ανάμεσα σε αυτές τις πολλές επιλογές υπάρχουν δύο που σχετίζονται εδώ:

```
--ini              να είναι iniluatex, για την εξαγωγή αρχείων μορφής
--fmt=FORMAT       φόρτωση του αρχείου μορφής FORMAT
```

Εδώ, το LuaTeX αναφέρεται στη λειτουργία INI του με το όνομα `iniluatex`. Τι σημαίνει λοιπόν αυτό `iniluatex` (λειτουργία INI) στην πραγματικότητα; Μια μικρή ένδειξη είναι η δεύτερη επιλογή γραμμής εντολών που φαίνεται παραπάνω:

```
--fmt=FORMAT       φόρτωση του αρχείου μορφής FORMAT
```

### Λειτουργία INI; Αρχεία μορφής; Είμαι μπερδεμένος...

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

* ανάγνωση και σάρωση δεκάδων χιλιάδων μεμονωμένων χαρακτήρων κειμένου·
* ανάλυση, επεξεργασία και αποθήκευση εκατοντάδων μακροεντολών/εντολών·
* αρχικοποίηση εσωτερικών πινάκων γραμματοσειρών και δεδομένων συλλαβισμού.

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

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

Όταν τεθεί σε λειτουργία INI, η αποστολή μιας μηχανής TeX δεν είναι να κάνει στοιχειοθεσία αλλά αντίθετα να:

1. φορτώσει και να αρχικοποιήσει όλες τις πρωτογενείς εντολές της καθώς και να ορίσει το απολύτως ελάχιστο των catcodes (και άλλων κωδίκων), ώστε η μηχανή TeX να μπορεί να ξεκινήσει περαιτέρω επεξεργασία.
2. μόλις ολοκληρωθεί το (1), στη συνέχεια θα φορτώσει και θα επεξεργαστεί μια συλλογή μακροεντολών που παρέχεται από τον χρήστη, η οποία αναφέρεται ως "μορφή" (π.χ. Plain TeX ή η συλλογή μακροεντολών LaTeX).
3. αφού έχει επιτυχώς ολοκληρώσει τα (1) και (2) το TeX θα πραγματοποιήσει ένα "δυαδικό brain dump" όλων όσων έχουν φορτωθεί και επεξεργαστεί στη μνήμη του και θα τα γράψει σε ένα δυαδικό *μορφής* αρχείο (π.χ., `lualatex.fmt`).

Ένα αρχείο μορφής είναι ένα δυαδικό αρχείο που αποθηκεύει μια αναπαράσταση της «κατάστασης» του TeX αφού έχει αρχικοποιήσει πολυάριθμους εσωτερικούς πίνακες δεδομένων (συμπεριλαμβανομένων των primitives) και έχει επεξεργαστεί όλες τις εντολές μακροεντολών που υπάρχουν στη συλλογή μακροεντολών που παρέχεται από τον χρήστη. Οι μηχανές TeX το κάνουν αυτό επειδή είναι ταχύτερο να φορτωθεί ένα «προμεταγλωττισμένο» δυαδικό αρχείο αντί να επανεπεξεργάζονται οι ακατέργαστες μακροεντολές κάθε φορά που θέλετε να εκτελέσετε μια μηχανή TeX χρησιμοποιώντας, για παράδειγμα, το Plain TeX του Knuth ή το πακέτο μακροεντολών LaTeX—ή πράγματι οποιοδήποτε πακέτο μακροεντολών σχεδιασμένο ως «μορφή».

Όταν επεξεργάζεστε ένα έγγραφο που πρόκειται να στοιχειοθετηθεί από το LaTeX, για παράδειγμα, η μηχανή TeX δεν ξαναδιαβάζει (επανεπεξεργάζεται) όλες τις βασικές μακροεντολές του LaTeX, αλλά αντίθετα διαβάζει ένα δυαδικό αρχείο που ονομάζεται, για παράδειγμα, `lualatex.fmt`. Οι εσωτερικές λεπτομέρειες των αρχείων μορφής είναι ειδικές για κάθε μηχανή TeX και για κάθε έκδοση του πακέτου μακροεντολών που χρησιμοποιείται για τη δημιουργία ενός `.fmt` αρχείου. Για παράδειγμα, αν αναβαθμίσετε τη διανομή LaTeX σας (δηλαδή τον ίδιο τον πυρήνα του LaTeX, όχι τα πρόσθετα πακέτα), τότε ίσως χρειαστεί να δημιουργήσετε ένα νέο `.fmt` αρχείο επίσης.

### Παράδειγμα

Μέσα στη διανομή του πηγαίου κώδικα του LaTeX θα βρείτε αρχεία με κατάληξη `.ini` επέκταση, για παράδειγμα lualatex.ini, τα οποία χρησιμοποιούνται για τη δημιουργία `.fmt` αρχείων—αυτά τα `.ini` αρχεία συνήθως περιέχουν κώδικα αρχικοποίησης ειδικό για τη μηχανή και στη συνέχεια προχωρούν στην εισαγωγή των βασικών αρχείων μακροεντολών του LaTeX. Για παράδειγμα, αν εκτελέσετε το LuaTeX με την ακόλουθη γραμμή εντολών:

`luatex --ini lualatex.ini`

Το LuaTeX θα γράψει ένα αρχείο με το όνομα `lualatex.fmt`

Κατά τη στιγμή της συγγραφής, `lualatex.ini` περιέχει τον ακόλουθο κώδικα:

```
% tex-ini-files 2016-04-15: lualatex.ini
% Αρχικά γράφτηκε το 2008 από τον Karl Berry. Κοινό κτήμα.

\input luatexconfig.tex

\begingroup
  \catcode`\{=1 %
  \catcode`\}=2 %
  % Ρύθμιση παράθεσης του ονόματος εργασίας πριν από το latex.ltx
  % Το Web2c pdfTeX/XeTeX βάζει σε εισαγωγικά τα ονόματα εργασιών που περιέχουν κενά, αλλά το LuaTeX δεν
  % το κάνει αυτό σε επίπεδο μηχανής. Η συμπεριφορά μπορεί να αλλάξει χρησιμοποιώντας
  % ένα callback. Αρχικά, αυτός ο κώδικας φορτωνόταν μέσω του lualatexquotejobname.tex
  % αλλά αυτό απαιτούσε ένα τέχνασμα γύρω από το latex.ltx: η συμπεριφορά έχει τροποποιηθεί
  % ώστε να μπορεί να χρησιμοποιηθεί απευθείας η διαδρομή μέσω callback.
  \global\everyjob{\directlua{require("lualatexquotejobname.lua")}}
\endgroup

\input latex.ltx
```

`lualatex.ini` ξεκινά εισάγοντας ένα αρχείο με το όνομα `luatexconfig.tex` το οποίο κάνει κάποια αρχικοποίηση ειδική για το LuaTeX—όπως θα περιμένατε από ένα `.ini` (αρχικοποιητικό) αρχείο! Στην τελευταία γραμμή εισάγει `latex.ltx` κάτι που κάνει το LuaTeX να διαβάσει και να επεξεργαστεί τις βασικές μακροεντολές του LaTeX.

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

Μπορείτε τώρα να δώσετε εντολή στο LuaTeX να στοιχειοθετήσει το έγγραφο LaTeX σας `yourfile.tex` (χρησιμοποιώντας το `lualatex` αρχείο μορφής) εκτελώντας την εντολή:

```
luatex --fmt=lualatex yourfile.tex
```

`.fmt` Τα αρχεία μορφής είναι συνήθως ειδικά για μια συγκεκριμένη μηχανή: π.χ., τα αρχεία του LuaTeX `.fmt` δεν είναι γενικά φορητά για χρήση με διαφορετική μηχανή TeX: π.χ., pdfTeX ή XeTeX. Επιπλέον, αν το εκτελέσιμο LuaTeX ενημερωθεί με νέες δυνατότητες, είναι πολύ πιθανό ένα `.fmt` αρχείο που έχει προετοιμαστεί με παλαιότερη έκδοση του LuaTeX να μην λειτουργεί με τη νέα μηχανή: θα πρέπει να αναδημιουργήσετε (να επαναμεταγλωττίσετε) το `.fmt` αρχείο.

Αν προσπαθήσετε να χρησιμοποιήσετε ένα ασύμβατο `.fmt` αρχείο, τότε μια μηχανή TeX θα αποτύχει να το φορτώσει και θα απαντήσει με το σφάλμα:

```
Μοιραίο σφάλμα αρχείου μορφής· έχω κολλήσει
```

Ομοίως, αν οι βασικές μακροεντολές του LaTeX ενημερωθούν, ίσως χρειαστεί επίσης να αναδημιουργήσετε το `lualatex.fmt` αρχείο επίσης.

`.fmt` Τα αρχεία μορφής μπορούν να προετοιμαστούν από οποιοδήποτε κατάλληλο πακέτο μακροεντολών—όχι μόνο το LaTeX· για παράδειγμα, οι αρχικές και πολύ απλούστερες μακροεντολές "Plain" TeX του Knuth μπορούν επίσης να επεξεργαστούν ώστε να παραχθεί ένα `.fmt` αρχείο μορφής. Θα μπορούσατε, αν είχατε τον χρόνο, να γράψετε τη δική σας συλλογή μακροεντολών και να δημιουργήσετε ένα αρχείο μορφής για εκείνο το πακέτο—σημειώστε ότι κάπου στο πακέτο μακροεντολών σας θα πρέπει να καλέσετε την πρωτογενή εντολή `\dump` η οποία λέει στη μηχανή TeX να κάνει το «δυαδικό brain dump» της και να γράψει το `.fmt` αρχείο.

Ωστόσο, η συντριπτική πλειονότητα των χρηστών δεν χρειάζεται ποτέ να ανησυχεί για τη λειτουργία "INI" των μηχανών TeX ή για τη διαδικασία δημιουργίας `.fmt` αρχείων: το Overleaf και η διανομή TeX Live σας προφυλάσσουν από αυτές τις λεπτομέρειες—εκτός αν χρειαστεί να τις αναζητήσετε.


---

# 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/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.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.
