Μετάβαση στο περιεχόμενο
Topos Uranos

Περίληψη

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

Μαθησιακοί στόχοι

  1. Να διακρίνει κανείς το προοίμιο από το σώμα και να αποφασίζει πού πρέπει να μπει μια εντολή ανάλογα με ό,τι κάνει.
  2. Να αναγνωρίζει σε μια εντολή το όνομά της, τα υποχρεωτικά και τα προαιρετικά ορίσματά της και τη μορφή της με αστερίσκο, και να προβλέπει πού τελειώνει το όνομά της.
  3. Να προβλέπει την εμβέλεια μιας δήλωσης μέσα σε ομάδες και περιβάλλοντα, και να τη γράφει έτσι ώστε να επηρεάζει μόνο το κείμενο που πρέπει.
  4. Να εμφωλεύει σωστά τα περιβάλλοντα και να ερμηνεύει το σφάλμα που προκαλεί μια λανθασμένη εμφώλευση.
  5. Να τυπώνει καθέναν από τους δέκα δεσμευμένους χαρακτήρες και να εξηγεί τι κάνει ο καθένας όταν δεν προστατεύεται.

Τα δύο μέρη ενός πηγαίου κώδικα

Κάθε πηγαίος κώδικας LaTeX έχει την ίδια μορφή. Αρχίζει με \documentclass, που δηλώνει την κλάση του εγγράφου. Ό,τι ακολουθεί, ως το \begin{document}, είναι το προοίμιο: σε αυτό φορτώνονται τα πακέτα και λαμβάνονται οι αποφάσεις που ισχύουν για όλο το έγγραφο, αλλά δεν στοιχειοθετείται τίποτα. Ανάμεσα στο \begin{document} και στο \end{document} βρίσκεται το σώμα, ο μόνος τόπος όπου στοιχειοθετείται κείμενο. Ό,τι γραφτεί μετά το \end{document} αγνοείται εντελώς.

Η διαίρεση δεν είναι σύμβαση ύφους, αλλά συνέπεια του τρόπου με τον οποίο εργάζεται το LaTeX. Όταν φτάνει στο \begin{document}, το LaTeX κλείνει τη διαμόρφωση: είναι πλέον γνωστό ποια πακέτα υπάρχουν και ποια γραμματοσειρά, ποια γλώσσα και ποιο μέγεθος σελίδας ισχύουν, και από εκείνη τη στιγμή αρχίζει η στοιχειοθεσία. Από αυτό προκύπτουν δύο κανόνες, και δύο σφάλματα. Πρώτος: ένα πακέτο μπορεί να φορτωθεί μόνο στο προοίμιο, επειδή θα μπορούσε να αλλάξει αποφάσεις που έχουν ήδη εφαρμοστεί· ένα \usepackage στο σώμα προκαλεί το σφάλμα «Can be used only in preamble». Δεύτερος: στο προοίμιο δεν στοιχειοθετείται τίποτα· ένα κείμενο, ένας τίτλος ενότητας ή ένας πίνακας περιεχομένων γραμμένοι πριν από το \begin{document} προκαλούν το σφάλμα «Missing \begin{document}».

Ανάμεσα στα δύο άκρα υπάρχουν εντολές που μόνο ορίζουν ή αποθηκεύουν κάτι, χωρίς να το στοιχειοθετούν: η \newcommand, που ορίζει μια νέα εντολή, ή η \title, που αποθηκεύει τον τίτλο ώσπου να τον τυπώσει η \maketitle. Αυτές λειτουργούν σε οποιοδήποτε από τα δύο μέρη, αλλά μπαίνουν στο προοίμιο, γιατί έτσι ισχύουν από την αρχή και όποιος διαβάζει τον κώδικα τις βρίσκει συγκεντρωμένες.

ΠαράδειγμαΈνα έγγραφο με σημειωμένα τα μέρη του

Τα σχόλια, που αρχίζουν με %, σημειώνουν τα μέρη· η μηχανή τα αγνοεί. Ούτε η τελευταία γραμμή, γραμμένη μετά το \end{document}, εμφανίζεται στο αποτέλεσμα.

Κώδικας LaTeX
\documentclass{article}      % η κλάση\usepackage{fontspec}        % προοίμιο: πακέτα\usepackage[greek]{babel}\babelfont{rm}{Noto Serif}   % γραμματοσειρά με ελληνικά\title{Έκθεση ανάγνωσης}     % προοίμιο: δεδομένα που αποθηκεύονται\author{Ελένη Παπαδοπούλου}\date{}​\begin{document}             % αρχίζει το σώμα\maketitle\section{Διατύπωση του προβλήματος}Το σώμα είναι ο μόνος τόπος όπου στοιχειοθετείται κείμενο.\end{document}               % τέλος του σώματοςΑυτή η γραμμή δεν εμφανίζεται στο αποτέλεσμα.
Αποτέλεσμα
Αποτέλεσμα

Η εντολή \date{}, με κενό όρισμα, κάνει την \maketitle να μην τυπώσει ημερομηνία, που διαφορετικά θα ήταν η ημερομηνία της μεταγλώττισης. Η γραμμή \babelfont{rm}{Noto Serif} επιλέγει μια γραμματοσειρά που περιέχει ελληνικά γράμματα, επειδή η προεπιλεγμένη (Latin Modern) δεν τα περιέχει.