Περίληψη
Το μάθημα αυτό εξηγεί τι είναι το LaTeX και γιατί το χρησιμοποιεί ο ακαδημαϊκός κόσμος. Ξεκινά από τη στοιχειοθεσία, την τέχνη να τοποθετείται κάθε γράμμα, κάθε γραμμή και κάθε σελίδα, και από τις ιδιαίτερες απαιτήσεις των ακαδημαϊκών κειμένων· συγκρίνει με αμεροληψία τη γλώσσα σήμανσης με τον επεξεργαστή κειμένου· αφηγείται γιατί ο Donald Knuth δημιούργησε το TeX και πώς ο Leslie Lamport έχτισε πάνω του το LaTeX, του οποίου η αρχή είναι ο διαχωρισμός του περιεχομένου από τη μορφή· διακρίνει τις τρεις μηχανές με τις οποίες γίνεται σήμερα η μεταγλώττιση, pdfLaTeX, XeLaTeX και LuaLaTeX, και αιτιολογεί την επιλογή του LuaLaTeX σε αυτό το μάθημα· δείχνει πώς είναι ένα πηγαίο αρχείο και πώς μετατρέπεται σε έγγραφο PDF· διατρέχει τη χρήση του στις επιστήμες, από τα μαθηματικά και τη φυσική ως τη φιλοσοφία και τη φιλολογία· και κλείνει με τα όριά του, ώστε να ξέρουμε πότε αρκεί ένας επεξεργαστής κειμένου.
Μαθησιακοί στόχοι
- Να εξηγεί τι είναι η στοιχειοθεσία και γιατί τα ακαδημαϊκά κείμενα την απαιτούν σε μεγαλύτερο βαθμό από άλλα.
- Να συγκρίνει τη γλώσσα σήμανσης με τον επεξεργαστή κειμένου, επισημαίνοντας τα πλεονεκτήματα και το κόστος του καθενός.
- Να διακρίνει το TeX από το LaTeX και να εξηγεί, με ένα παράδειγμα, τι σημαίνει διαχωρισμός του περιεχομένου από τη μορφή.
- Να επιλέγει την κατάλληλη μηχανή για ένα έγγραφο ανάλογα με τις γλώσσες, τα συστήματα γραφής και τις γραμματοσειρές του.
- Να προβλέπει τι παράγει ένας σύντομος πηγαίος κώδικας, προσέχοντας τα κενά, τις παραγράφους και τα σχόλια.
Η στοιχειοθεσία
Κάθε κείμενο τυπωμένο ή διαβασμένο σε οθόνη έχει στοιχειοθετηθεί: κάποιος, ή κάτι, έχει αποφασίσει σε ποιο ακριβώς σημείο πέφτει κάθε γράμμα. Η στοιχειοθεσία είναι το σύνολο αυτών των αποφάσεων: ποια γραμματοσειρά και ποιο μέγεθος χρησιμοποιούνται, πού τελειώνει κάθε γραμμή και πώς μοιράζεται ο χώρος ανάμεσα στις λέξεις της ώστε να πλήρως στοιχιστεί, ποιες λέξεις συλλαβίζονται στο τέλος της γραμμής και σε ποιο σημείο, πότε δύο γράμματα συγχωνεύονται σε σύμπλεγμα, πώς ρυθμίζεται η απόσταση ανάμεσα σε ορισμένα ζεύγη γραμμάτων, πού κόβεται κάθε σελίδα, σε ποιο ύψος μπαίνουν οι σημειώσεις και πώς διατάσσονται οι τίτλοι. Επί αιώνες αυτή ήταν η τέχνη του στοιχειοθέτη, που σχημάτιζε τις γραμμές με μεταλλικά στοιχεία· σήμερα την εκτελεί ένα πρόγραμμα, αλλά οι αποφάσεις παραμένουν οι ίδιες.
Μια καλή παράγραφος δεν γίνεται αντιληπτή: το μάτι διατρέχει τις γραμμές χωρίς να σκοντάφτει σε άνισα κενά ή σε παράλογους συλλαβισμούς. Ωστόσο, αυτό δεν είναι απλό, γιατί κάθε απόφαση εξαρτά τις επόμενες: το σημείο όπου τελειώνει η πρώτη γραμμή καθορίζει με ποια λέξη αρχίζει η δεύτερη, και ούτω καθεξής ως το τέλος της παραγράφου.
Μια απλή μέθοδος γεμίζει κάθε γραμμή με όσες λέξεις χωρούν και περνά στην επόμενη, χωρίς να γυρίζει πίσω. Αν μια μεγάλη λέξη δεν χωρά στο τέλος της τρίτης γραμμής, η γραμμή αυτή μένει με μεγάλα κενά ανάμεσα στις λέξεις της, αν και θα αρκούσε να μετακινηθεί μια μικρή λέξη από τη δεύτερη γραμμή για να αποφευχθεί. Η μέθοδος που σχεδίασαν ο Knuth και ο Michael Plass για το TeX προχωρεί αλλιώς: εξετάζει ταυτόχρονα όλες τις δυνατές αλλαγές γραμμής της παραγράφου και επιλέγει τον συνδυασμό που μοιράζει καλύτερα τα κενά στο σύνολο. Συνεπώς, μια γραμμή μπορεί να μείνει λίγο λιγότερο γεμάτη απ’ όσο επέτρεπε, αν έτσι βελτιώνονται οι επόμενες.
Τα ακαδημαϊκά κείμενα απαιτούν αυτή την προσοχή σε μεγαλύτερο βαθμό από άλλα. Περιέχουν τύπους, η στοιχειοθεσία των οποίων υπακούει σε δικούς της κανόνες (το διάστημα γύρω από ένα σύμβολο ισότητας δεν είναι εκείνο που περιβάλλει ένα κόμμα, και ένας δείκτης μικραίνει σε ορισμένη αναλογία)· παραπέμπουν αδιάκοπα στον εαυτό τους, με αριθμημένες ενότητες, θεωρήματα, σχήματα και εξισώσεις που αναφέρονται με τον αριθμό τους· συσσωρεύουν υποσημειώσεις και βιβλιογραφικές αναφορές που πρέπει να ακολουθούν ενιαίο ύφος· συχνά αναμειγνύουν πολλές γλώσσες και πολλά συστήματα γραφής· και είναι συνήθως μεγάλα, ώστε μια αβλεψία επαναλαμβανόμενη σε εκατό σελίδες δεν διορθώνεται με το χέρι. Αν αυτό ισχύει, συμφέρει να εμπιστευτεί κανείς τη στοιχειοθεσία σε ένα σύστημα που τη λύνει με ρητούς κανόνες και αφήνει τον συγγραφέα να ασχοληθεί με όσα λέει.
Σήμανση και επεξεργαστής κειμένου
Υπάρχουν δύο τρόποι να ζητήσει κανείς από ένα πρόγραμμα να στοιχειοθετήσει ένα κείμενο. Σε έναν επεξεργαστή κειμένου, όπως το Microsoft Word ή το LibreOffice Writer, ο συγγραφέας βλέπει στην οθόνη τη σελίδα όπως θα τυπωθεί και την τροποποιεί άμεσα: επιλέγει μια λέξη και τη βάζει σε πλάγια γράμματα, σέρνει ένα περιθώριο, διαλέγει μεγαλύτερο μέγεθος για έναν τίτλο. Ο τρόπος αυτός περιγράφεται συνήθως με την αγγλική φράση what you see is what you get: ό,τι βλέπεις είναι ό,τι παίρνεις.
Σε μια γλώσσα σήμανσης, αντίθετα, ο συγγραφέας γράφει ένα αρχείο απλού κειμένου στο οποίο παρεμβάλλει σημάνσεις που λένε τι είναι κάθε πράγμα ή πώς πρέπει να αντιμετωπιστεί: ότι μια λέξη τονίζεται, ότι μια γραμμή είναι ο τίτλος μιας ενότητας, ότι ένα χωρίο είναι παράθεμα. Ένα πρόγραμμα διαβάζει έπειτα αυτό το αρχείο και παράγει το στοιχειοθετημένο έγγραφο. Οι ιστοσελίδες γράφονται έτσι, σε HTML· το LaTeX είναι μια γλώσσα σήμανσης σχεδιασμένη για να παράγει τυπωμένα έγγραφα υψηλής ποιότητας.
Η σύγκριση, για να είναι δίκαιη, πρέπει να αναγνωρίζει τι κάνει καλύτερα ο κάθε τρόπος. Ο επεξεργαστής κειμένου προσφέρει άμεση απόκριση, δεν απαιτεί σχεδόν καμία προηγούμενη μάθηση, είναι το εργαλείο που γνωρίζουν οι περισσότεροι άνθρωποι με τους οποίους συνεργάζεται κανείς, και η παρακολούθηση αλλαγών του είναι το συνηθισμένο μέσο αναθεώρησης σε πολλούς εκδοτικούς οίκους και γραφεία. Η γλώσσα σήμανσης προσφέρει, από την πλευρά της, αρχεία απλού κειμένου που οποιοδήποτε πρόγραμμα θα μπορεί να ανοίξει σε σαράντα χρόνια, που πιάνουν λίγο χώρο και των οποίων οι εκδοχές συγκρίνονται γραμμή προς γραμμή· μια ρητή δομή, από την οποία προκύπτουν μόνα τους οι πίνακες περιεχομένων, η αρίθμηση και οι παραπομπές· μια ομοιομορφία που δεν εξαρτάται από την πειθαρχία του συγγραφέα· και μια στοιχειοθεσία των τύπων και των παραγράφων που οι επεξεργαστές κειμένου δεν φτάνουν. Το κόστος της είναι εξίσου σαφές: πρέπει να μάθει κανείς τις σημάνσεις, το αποτέλεσμα δεν φαίνεται πριν από τη μεταγλώττιση και ένα τυπογραφικό λάθος μπορεί να σταματήσει τη μεταγλώττιση.
TeX και LaTeX
Ο Donald Knuth και το TeX
Ο Donald Knuth, καθηγητής πληροφορικής στο Πανεπιστήμιο Stanford, δημοσίευε από το 1968 τους τόμους του The Art of Computer Programming. Γύρω στο 1977, όταν έλαβε τα δοκίμια μιας νέας έκδοσης του δεύτερου τόμου, στοιχειοθετημένα με τη φωτογραφική τεχνική που είχε αντικαταστήσει τα μεταλλικά στοιχεία, τα έκρινε πολύ κατώτερα από εκείνα της πρώτης έκδοσης, κυρίως στους τύπους. Αντί να συμβιβαστεί, αποφάσισε να γράψει ο ίδιος ένα πρόγραμμα στοιχειοθεσίας που θα απέδιδε στα βιβλία μαθηματικών την ποιότητα της καλύτερης παραδοσιακής τυπογραφίας και του οποίου η έξοδος θα ήταν ίδια σε οποιονδήποτε υπολογιστή. Η πρώτη εκδοχή του TeX εμφανίστηκε το 1978· ο Knuth την ξανάγραψε εξ ολοκλήρου στις αρχές της επόμενης δεκαετίας και σχεδίασε επίσης το πρόγραμμα METAFONT, με το οποίο σχεδίασε τις γραμματοσειρές Computer Modern.
Το όνομα προέρχεται από τα ελληνικά: τα γράμματά του είναι τα κεφαλαία ταυ, έψιλον και χι, η αρχή της λέξης τέχνη, και γι’ αυτό το τελευταίο γράμμα προφέρεται ως χι και όχι ως x. Ο Knuth έχει κηρύξει το TeX ολοκληρωμένο και δέχεται σε αυτό μόνο διορθώσεις σφαλμάτων: από την έκδοση 3, ο αριθμός έκδοσης πλησιάζει το π, και κάθε διόρθωση του προσθέτει ένα ψηφίο. Αυτή η σταθερότητα είναι μία από τις αρετές του, γιατί ένα έγγραφο γραμμένο πριν από δεκαετίες μεταγλωττίζεται σήμερα με το ίδιο αποτέλεσμα.
Ωστόσο, το TeX είναι γλώσσα χαμηλού επιπέδου: οι πρωτογενείς εντολές του μιλούν για κουτιά, για ελαστικά διαστήματα και για ποινές επειδή μια γραμμή κόβεται σε ένα ή σε άλλο σημείο. Για έναν συγγραφέα που θέλει μόνο να γράψει ένα άρθρο, το να προγραμματίζει με αυτούς τους όρους κάθε τίτλο και κάθε σημείωση θα ήταν δυσανάλογο βάρος. Γι’ αυτό το TeX επιτρέπει να ορίζονται μακροεντολές, νέες εντολές που αναπτύσσονται σε άλλες στοιχειωδέστερες, και σχεδόν όλη η πραγματική του χρήση περνά μέσα από συλλογές μακροεντολών.
Ο Leslie Lamport και το LaTeX: το περιεχόμενο χωριστά από τη μορφή
Στις αρχές της δεκαετίας του 1980, ο Leslie Lamport, επιστήμονας υπολογιστών γνωστός κυρίως για τις εργασίες του στα κατανεμημένα συστήματα, έγραψε πάνω στο TeX μια συλλογή μακροεντολών που την ονόμασε LaTeX, της οποίας η πρώτη εκδοχή κυκλοφόρησε το 1984· το 1986 δημοσίευσε το εγχειρίδιο LaTeX: A Document Preparation System. Από το 1994, την ισχύουσα εκδοχή, που λέγεται LaTeX2e, τη συντηρεί μια ομάδα εθελοντών, το LaTeX Project.
Η κεντρική ιδέα του LaTeX είναι ότι ο συγγραφέας σημαίνει το περιεχόμενο και όχι τη μορφή. Δεν γράφει «αυτή τη γραμμή με έντονα και σε μεγαλύτερο μέγεθος», αλλά «αυτό είναι ο τίτλος μιας ενότητας», με \section{Αποτελέσματα}· δεν γράφει «αυτή τη λέξη με πλάγια», αλλά «αυτή η λέξη τονίζεται», με \emph{υπόθεση}. Τι όψη έχει ένας τίτλος ενότητας, αν φέρει αριθμό και σε ποια απόσταση στέκεται από το κείμενο, το αποφασίζει η κλάση του εγγράφου, που δηλώνεται στην αρχή, μαζί με τις εντολές που προσθέτει ο συγγραφέας στο προοίμιο. Συνεπώς, η όψη ολόκληρου του εγγράφου αλλάζει σε ένα μόνο σημείο, και το ίδιο κείμενο μπορεί να στοιχειοθετηθεί σύμφωνα με τους κανόνες δύο διαφορετικών περιοδικών χωρίς να αγγιχτεί ούτε μία γραμμή του σώματος.
Στον παρακάτω πηγαίο κώδικα δεν υπάρχει καμία ένδειξη μεγέθους, γραμματοσειράς ή αριθμού: λέγεται μόνο τι είναι κάθε γραμμή. Την αρίθμηση της ενότητας και της υποενότητας, το μέγεθος και το πάχος των τίτλων τους και τα πλάγια της τονισμένης λέξης τα αποφασίζει η κλάση του εγγράφου.
Αν αργότερα παρεμβληθεί μια ενότητα πριν από αυτήν, ο αριθμός της περνά μόνος του από το ένα στο δύο, και το ίδιο συμβαίνει με την υποενότητα και με κάθε παραπομπή που τις αναφέρει.
Οι μηχανές: pdfLaTeX, XeLaTeX και LuaLaTeX
Το LaTeX είναι ένα σύνολο μακροεντολών, όχι ένα πρόγραμμα: χρειάζεται μια μηχανή, ένα πρόγραμμα της οικογένειας του TeX που τις εκτελεί και παράγει το έγγραφο. Σήμερα χρησιμοποιούνται τρεις, και καταλαβαίνουν και οι τρεις το ίδιο LaTeX· διαφέρουν στο πώς διαβάζουν το κείμενο και στο ποιες γραμματοσειρές μπορούν να χρησιμοποιήσουν.
- Το pdfLaTeX χρησιμοποιεί τη μηχανή pdfTeX, που ανέπτυξε ο Hàn Thế Thành για να παράγει απευθείας ένα αρχείο PDF. Είναι γρήγορο και πολύ διαδεδομένο, και είναι η προεπιλεγμένη μηχανή του Overleaf. Ωστόσο, οι γραμματοσειρές του είναι εκείνες της κλασικής μορφής του TeX, με το πολύ 256 χαρακτήρες η καθεμία, ώστε δεν φορτώνει απευθείας τις γραμματοσειρές που είναι εγκατεστημένες στο σύστημα, και η γραφή ελληνικών, κυριλλικών ή άλλων συστημάτων γραφής απαιτεί ειδικές κωδικοποιήσεις και πακέτα· χωρίς αυτά, ένα ελληνικό γράμμα σταματά τη μεταγλώττιση με σφάλμα.
- Το XeLaTeX χρησιμοποιεί τη μηχανή XeTeX, που δημιούργησε ο Jonathan Kew, η οποία διαβάζει το κείμενο σε Unicode, το πρότυπο που αποδίδει έναν αριθμό σε κάθε χαρακτήρα όλων των συστημάτων γραφής, και φορτώνει οποιαδήποτε γραμματοσειρά OpenType του συστήματος μέσω του πακέτου fontspec.
- Το LuaLaTeX χρησιμοποιεί τη μηχανή LuaTeX, που προσφέρει ό,τι και το XeTeX όσον αφορά το Unicode και τις γραμματοσειρές, και ενσωματώνει επιπλέον τη γλώσσα προγραμματισμού Lua, με την οποία τα πακέτα μπορούν να παρεμβαίνουν στη στοιχειοθεσία. Οι σημερινές διανομές το εκτελούν με τη βιβλιοθήκη HarfBuzz, που δίνει μορφή στα συστήματα γραφής των οποίων τα γράμματα ενώνονται ή συνδυάζονται, όπως τα αραβικά ή η ντεβαναγκάρι.
Αυτό το μάθημα χρησιμοποιεί το LuaLaTeX. Οι λόγοι προκύπτουν από τα παραπάνω: γράφει απευθείας σε Unicode, ώστε ένα παράθεμα του Πλάτωνα στο πολυτονικό, με τους τόνους και τα πνεύματά του, πληκτρολογείται όπως είναι· χρησιμοποιεί τις γραμματοσειρές του συστήματος, ακόμη και εκείνες που απαιτεί ένα πανεπιστήμιο ή ένα περιοδικό· στοιχειοθετεί τα νέα ελληνικά, τα αρχαία ελληνικά και τα λατινικά σε ένα και το αυτό έγγραφο, το καθένα με τους δικούς του κανόνες συλλαβισμού· και δέχεται, με τα κατάλληλα πακέτα, συστήματα γραφής που γράφονται από δεξιά προς τα αριστερά, όπως τα αραβικά, ή που δεν χωρίζουν τις λέξεις τους με κενά, όπως τα κινεζικά και τα ιαπωνικά. Επομένως, μία μόνο μηχανή αρκεί για όλα τα έγγραφα ενός μαθήματος που απευθύνεται ταυτόχρονα στις θετικές και στις ανθρωπιστικές επιστήμες. Το μόνο κόστος του σε σύγκριση με το pdfLaTeX είναι μια κάπως πιο αργή μεταγλώττιση, που σε έγγραφα συνηθισμένου μεγέθους μόλις γίνεται αισθητή.
Ο παρακάτω πηγαίος κώδικας φορτώνει το fontspec, επιλέγει μια γραμματοσειρά που περιέχει ελληνικά γράμματα, μονοτονικά και πολυτονικά, και δηλώνει, μέσω του babel, τα νέα ελληνικά ως κύρια γλώσσα και τα αρχαία ελληνικά και τα λατινικά ως δευτερεύουσες γλώσσες. Οι ελληνικές λέξεις γράφονται απευθείας με τους χαρακτήρες τους.
\documentclass{article}\usepackage{fontspec}\usepackage[latin, greek]{babel}\babelprovide[import]{ancientgreek}\setmainfont{Linux Libertine O}\begin{document}Ο Αριστοτέλης αρχίζει τα \emph{Μετά τα φυσικά} με αυτή τη φράση:\foreignlanguage{ancientgreek}{πάντες ἄνθρωποι τοῦ εἰδέναι ὀρέγονται φύσει.}Η λατινική παράδοση τη μετέφερε έτσι:\foreignlanguage{latin}{omnes homines natura scire desiderant.}\end{document}Η σήμανση ενός χωρίου με \foreignlanguage δεν αλλάζει την όψη των γραμμάτων: δηλώνει σε ποια γλώσσα είναι γραμμένο το χωρίο, ώστε να εφαρμόζονται οι κανόνες συλλαβισμού και οι συμβάσεις του· έτσι, τα αρχαία ελληνικά συλλαβίζονται με τους δικούς τους κανόνες και όχι με εκείνους των νέων ελληνικών. Με το pdfLaTeX, ο ίδιος αυτός κώδικας δεν θα μεταγλωττιζόταν: το fontspec απαιτεί XeLaTeX ή LuaLaTeX.
Το πηγαίο αρχείο, η μεταγλώττιση και το PDF
Ένα έγγραφο LaTeX είναι ένα αρχείο απλού κειμένου με την κατάληξη .tex. Αποτελείται από δύο μέρη. Το προοίμιο εκτείνεται από την πρώτη γραμμή, \documentclass{article}, που δηλώνει την κλάση του εγγράφου, ως το \begin{document}· σε αυτό φορτώνονται τα πακέτα, με \usepackage, και ορίζονται οι αποφάσεις μορφής. Το σώμα εκτείνεται από το \begin{document} ως το \end{document} και περιέχει το κείμενο. Οι εντολές αρχίζουν με ανάστροφη κάθετο, και ό,τι δέχονται γράφεται μέσα σε άγκιστρα.
Αυτός ο πηγαίος κώδικας είναι ένα πλήρες έγγραφο: μεταγλωττίζεται χωρίς να του προστεθεί τίποτα, και θα είναι η αφετηρία των εγγράφων του μαθήματος.
Η ενότητα παίρνει τον αριθμό ένα χωρίς να τον έχει γράψει κανείς, και ο τίτλος της χρησιμοποιεί τη γραμματοσειρά και το μέγεθος που ορίζει η κλάση article. Η τέταρτη γραμμή επιλέγει μια γραμματοσειρά που περιέχει ελληνικά, γιατί η προεπιλεγμένη γραμματοσειρά του LuaLaTeX (Latin Modern) δεν τα περιέχει.
Ο κύκλος εργασίας έχει τρεις χρόνους: γράφεται ο πηγαίος κώδικας, μεταγλωττίζεται και διαβάζεται το αποτέλεσμα. Μεταγλώττιση σημαίνει να εκτελεστεί η μηχανή πάνω στο αρχείο, σε αυτό το μάθημα με την εντολή lualatex, που διαβάζει τον πηγαίο κώδικα και γράφει ένα αρχείο PDF με το ίδιο όνομα. Δίπλα του μένουν βοηθητικά αρχεία, ανάμεσά τους ένα με την κατάληξη .log, το αρχείο καταγραφής, όπου η μηχανή σημειώνει τα σφάλματα και τις προειδοποιήσεις, και ένα άλλο με την κατάληξη .aux, όπου φυλάσσει τους αριθμούς των ενοτήτων και των σελίδων. Γι’ αυτό ένας πίνακας περιεχομένων ή μια παραπομπή εμφανίζεται σωστά μόνο μετά από δεύτερη μεταγλώττιση: στην πρώτη, η μηχανή σημειώνει πού κατέληξε κάθε πράγμα· στη δεύτερη, το χρησιμοποιεί. Στην πράξη η εντολή δεν πληκτρολογείται με το χέρι: ο επεξεργαστής την εκτελεί με ένα κουμπί. Σε αυτό το μάθημα εργαζόμαστε με το Texmaker, στον δικό μας υπολογιστή, ή με το Overleaf, στον περιηγητή· το επόμενο μάθημα προετοιμάζει αυτό το περιβάλλον.
Ο πηγαίος κώδικας δεν στοιχειοθετείται όπως γράφεται, και τρεις κανόνες εξηγούν σχεδόν όλες τις αρχικές εκπλήξεις. Πρώτον, πολλά διαδοχικά κενά μετρούν όσο ένα, και μια αλλαγή γραμμής μετρά ως κενό: η μηχανή μοιράζει μόνη της τον χώρο, και το κενό που γράφει ο συγγραφέας δηλώνει μόνο ότι εκεί τελειώνει μια λέξη. Δεύτερον, μία ή περισσότερες κενές γραμμές τελειώνουν την παράγραφο και αρχίζουν άλλη. Τρίτον, το σύμβολο % αρχίζει ένα σχόλιο: η μηχανή αγνοεί ό,τι ακολουθεί ως το τέλος της γραμμής, μαζί και την ίδια την αλλαγή γραμμής.
Ο παρακάτω πηγαίος κώδικας είναι γραμμένος σκόπιμα απρόσεκτα. Το αποτέλεσμα έχει δύο παραγράφους με ομοιόμορφα κενά, και η σημείωση που ακολουθεί το σύμβολο του σχολίου δεν εμφανίζεται.
Αν αυτό ισχύει, για να τυπωθεί το σύμβολο του ποσοστού δεν αρκεί να γραφτεί: πρέπει να γραφτεί με μια ανάστροφη κάθετο μπροστά του, έτσι: \%. Το ίδιο συμβαίνει με τους άλλους χαρακτήρες που το LaTeX κρατά για τις δικές του λειτουργίες, όπως τα άγκιστρα ή το σύμβολο του δολαρίου.
Το LaTeX στις ακαδημαϊκές επιστήμες
Στα μαθηματικά, στη φυσική και σε μεγάλο μέρος της πληροφορικής, το LaTeX είναι ο κανόνας: τα περιοδικά προσφέρουν τις δικές τους κλάσεις εγγράφων ώστε οι συγγραφείς να υποβάλλουν τα άρθρα στη μορφή τους, και το arXiv, το αποθετήριο όπου κυκλοφορούν τα άρθρα αυτών των επιστημών πριν από τη δημοσίευσή τους, δέχεται τις πηγές LaTeX και τις μεταγλωττίζει μόνο του. Ο λόγος είναι η στοιχειοθεσία των τύπων, που κανένα άλλο σύστημα δεν φτάνει με τόσο λίγο κόπο, και η αυτόματη αρίθμηση θεωρημάτων και εξισώσεων. Τα οικονομικά, η στατιστική, η μηχανική και η χημεία το χρησιμοποιούν επίσης σε μεγάλο βαθμό.
Θα ήταν όμως λάθος να πιστέψει κανείς ότι το LaTeX αφορά αποκλειστικά τις θετικές επιστήμες. Στη φιλοσοφία, στην κλασική φιλολογία και στην ιστορία, οι αρετές του είναι άλλες, και όχι μικρότερες. Οι κριτικές εκδόσεις, που συνοδεύουν ένα αρχαίο κείμενο με κριτικό υπόμνημα το οποίο καταγράφει τις γραφές των χειρογράφων σε σημειώσεις που παραπέμπουν σε αριθμούς στίχων ή γραμμών, έχουν στο LaTeX εξειδικευμένα πακέτα, όπως το reledmac, που αριθμούν τις γραμμές, διατάσσουν πολλά επίπεδα σημειώσεων και διατηρούν τις παραπομπές τους όταν το κείμενο αλλάζει. Τα πολυτονικά ελληνικά και τα λατινικά γράφονται και συλλαβίζονται σωστά, όπως είδαμε. Οι υποσημειώσεις, που σε ένα δοκίμιο των ανθρωπιστικών επιστημών μπορεί να μετρώνται κατά εκατοντάδες, αριθμούνται και τοποθετούνται μόνες τους στη σελίδα τους. Και η βιβλιογραφία, με το BibLaTeX, γράφεται μία φορά ως βάση δεδομένων και παρατίθεται σύμφωνα με όποιο ύφος ζητηθεί, είτε το σύστημα συγγραφέα και έτους των κοινωνικών επιστημών, είτε το αριθμητικό των θετικών επιστημών, είτε εκείνο των υποσημειώσεων των ανθρωπιστικών, αλλάζοντας μία μόνο επιλογή.
Τα όρια του LaTeX
Ωστόσο, το LaTeX έχει πραγματικό κόστος, και συμφέρει να το γνωρίζει κανείς πριν το υιοθετήσει. Η καμπύλη μάθησής του είναι απότομη: οι πρώτες εβδομάδες απαιτούν να ψάχνει κανείς συχνά πώς γίνεται ό,τι σε έναν επεξεργαστή κειμένου γίνεται με ένα κλικ. Τα μηνύματα σφάλματός του, κληρονομημένα από το TeX, είναι συχνά δυσνόητα και μερικές φορές δείχνουν μια γραμμή μεταγενέστερη από εκείνη που περιέχει το σφάλμα· ένα από τα επόμενα μαθήματα αυτής της ενότητας διδάσκει πώς να τα διαβάζουμε. Η στοιχειοθεσία σελίδων ελεύθερου σχεδιασμού, όπως μιας αφίσας ή ενός εικονογραφημένου περιοδικού, όπου κάθε στοιχείο τοποθετείται με το χέρι, είναι πιο κοπιαστική απ’ ό,τι σε ένα πρόγραμμα σελιδοποίησης. Και δεν το δέχονται όλοι οι παραλήπτες: αρκετά περιοδικά ανθρωπιστικών επιστημών, εκδοτικοί οίκοι και γραφεία απαιτούν αρχείο επεξεργαστή κειμένου και κάνουν την αναθεώρηση με την παρακολούθηση αλλαγών του.
Από όπου προκύπτει ένα απλό κριτήριο. Μια σύντομη επιστολή, ένα πρακτικό, ένα έντυπο ή ένα κείμενο που κάποιος άλλος θα αναθεωρήσει σε επεξεργαστή κειμένου γράφεται καλύτερα σε επεξεργαστή κειμένου. Ένα μεγάλο έγγραφο, με δομή, τύπους, παραθέματα, σημειώσεις, πολλές γλώσσες ή μακρά ζωή μπροστά του, που θα πρέπει να διορθώνεται και να επανεκδίδεται επί χρόνια, γράφεται καλύτερα σε LaTeX.
Λυμένα προβλήματα
Τα παρακάτω προβλήματα δεν ζητούν να θυμηθεί κανείς όσα ειπώθηκαν, αλλά να τα εφαρμόσει: το πρώτο απαιτεί να προβλεφθεί με ακρίβεια τι παράγει ένας πηγαίος κώδικας, το δεύτερο να αποφασιστεί ποια μηχανή και ποιες γραμματοσειρές χρειάζεται ένα έγγραφο, και το τρίτο να διαχωριστεί το περιεχόμενο από τη μορφή σε έναν κώδικα γραμμένο χωρίς αυτή τη φροντίδα.
Χωρίς μεταγλώττιση, να προβλεφθεί με ακρίβεια το κείμενο που παράγει το παρακάτω σώμα, πόσες παραγράφους έχει και τι γίνεται με κάθε σύμβολο ποσοστού.
Η στοιχειοθεσία αποφασίζει πού πέφτει κάθε γράμμα.Μια καλή παράγραφος δεν γίνεται αντιληπτή.Το 50 % των αναγνωστώνδεν προσέχει τη διαφορά. Αυτή η λέ%ξη μένει ακέραιη.Λύση
Οι τρεις πρώτες γραμμές δεν έχουν καμία κενή γραμμή ανάμεσά τους: σχηματίζουν μία μόνο παράγραφο. Τα επαναλαμβανόμενα κενά και εκείνα της αρχής της δεύτερης γραμμής γίνονται ένα, και κάθε αλλαγή γραμμής μετρά ως κενό. Η πρώτη παράγραφος λέει: «Η στοιχειοθεσία αποφασίζει πού πέφτει κάθε γράμμα. Μια καλή παράγραφος δεν γίνεται αντιληπτή.»
Ακολουθούν δύο κενές γραμμές. Μία αρκεί για να τελειώσει μια παράγραφος, και η δεύτερη δεν προσθέτει τίποτα: δεν υπάρχει κενή παράγραφος ούτε μεγαλύτερο διάστημα. Αρχίζει, επομένως, η δεύτερη παράγραφος.
Στη γραμμή
Το 50 % των αναγνωστών, το σύμβολο του ποσοστού δεν τυπώνεται: αρχίζει σχόλιο. Η μηχανή απορρίπτει το «των αναγνωστών» και επίσης την αλλαγή γραμμής· μένει μόνο το κενό που γράφτηκε πριν από το σύμβολο, και η επόμενη γραμμή συνεχίζει από εκεί.Στο «λέ», το σύμβολο του ποσοστού είναι κολλημένο στη λέξη: απορρίπτει την αλλαγή γραμμής χωρίς να αφήσει κανένα κενό, και η μηχανή παραλείπει τα κενά της αρχής της επόμενης γραμμής. Συνεπώς, το «λέ» και το «ξη» ενώνονται σε μία λέξη.
Η δεύτερη παράγραφος λέει: «Το 50 δεν προσέχει τη διαφορά. Αυτή η λέξη μένει ακέραιη.» Ο συγγραφέας ήθελε να γράψει ένα ποσοστό και έχασε μισή φράση χωρίς η μηχανή να επισημάνει κανένα σφάλμα· για να τυπωθεί το σύμβολο, έπρεπε να γράψει
\%.
Μια φοιτήτρια φιλοσοφίας γράφει στα νέα ελληνικά μια διατριβή για τον Φαίδωνα. Παραθέτει χωρία του Πλάτωνα στο πολυτονικό και χωρία Λατίνων σχολιαστών, και το πανεπιστήμιό της απαιτεί μια συγκεκριμένη γραμματοσειρά, εγκατεστημένη στον υπολογιστή της ως αρχείο OpenType, που περιέχει τα μονοτονικά ελληνικά αλλά όχι τα πολυτονικά. Να αποφασιστεί ποια μηχανή χρειάζεται και τι άλλο πρέπει να δηλώσει ώστε το έγγραφο να βγει πλήρες.
Λύση
Το pdfLaTeX αποκλείεται για δύο ανεξάρτητους λόγους: δεν φορτώνει απευθείας τις γραμματοσειρές OpenType του συστήματος, και ένα ελληνικό γράμμα γραμμένο σε Unicode σταματά τη μεταγλώττισή του αν δεν προετοιμαστούν ειδικές κωδικοποιήσεις και γραμματοσειρές. Ο πρώτος αρκεί για να το αποκλείσει, γιατί η θεσμική γραμματοσειρά είναι υποχρεωτική.
Το XeLaTeX και το LuaLaTeX διαβάζουν Unicode και φορτώνουν τις γραμματοσειρές του συστήματος με το fontspec: με οποιοδήποτε από τα δύο, η θεσμική γραμματοσειρά δηλώνεται στο προοίμιο με
\setmainfont. Το μάθημα χρησιμοποιεί το LuaLaTeX.Ωστόσο, η μηχανή δεν αρκεί. Αν η γραμματοσειρά δεν περιέχει τα πολυτονικά γράμματα, το LuaLaTeX μεταγλωττίζει χωρίς σφάλμα, αλλά τα γράμματα με πνεύματα και περισπωμένες δεν εμφανίζονται στο PDF: η μηχανή το σημειώνει μόνο στο αρχείο καταγραφής, με προειδοποιήσεις του τύπου
Missing character. Το πρόβλημα δεν φαίνεται στη μεταγλώττιση, αλλά όταν διαβάζεται το αποτέλεσμα.Επομένως, πρέπει να αποδοθεί στα αρχαία ελληνικά μια δεύτερη γραμματοσειρά που να τα περιέχει. Με το babel, τα αρχαία ελληνικά δηλώνονται ως γλώσσα με
\babelprovide[import]{ancientgreek}και τους αποδίδεται η γραμματοσειρά τους με\babelfont[ancientgreek]{rm}{GFS Didot}· κάθε αρχαιοελληνικό χωρίο σημαίνεται με\foreignlanguage.Τα λατινικά γράφονται με το λατινικό αλφάβητο, που η θεσμική γραμματοσειρά περιέχει· δεν χρειάζονται άλλη γραμματοσειρά, αλλά μόνο να δηλωθούν ως γλώσσα, με την επιλογή
latinτου babel, ώστε οι λέξεις τους να συλλαβίζονται σύμφωνα με τους κανόνες των λατινικών και όχι με εκείνους των ελληνικών.Συνοψίζοντας: LuaLaTeX, η θεσμική γραμματοσειρά ως κύρια, μια γραμματοσειρά με πολυτονικά για τα αρχαιοελληνικά χωρία, και τα νέα ελληνικά, τα αρχαία ελληνικά και τα λατινικά δηλωμένα ως γλώσσες.
Ένας συγγραφέας έγραψε έτσι την αρχή της δεύτερης ενότητας ενός άρθρου. Να επισημανθεί ποιες σημάνσεις εκφράζουν μορφή αντί για περιεχόμενο, να ξαναγραφτούν ώστε να λένε μόνο τι είναι κάθε πράγμα, και να εξηγηθεί τι κερδίζεται αν το περιοδικό ζητήσει αργότερα οι αρχαιοελληνικοί όροι να εμφανίζονται χωρίς πλάγια.
{\Large\bfseries 2. Αποτελέσματα}\\[6pt]Όπως λέει ο Αριστοτέλης στα \textit{Μετά τα φυσικά}, η επιθυμίατης γνώσης είναι \textit{φυσική}· ο αρχαίος όρος είναι \textit{φύσει}.\\\vspace{12pt}{\large\bfseries 2.1. Το δείγμα}\\Λύση
Η πρώτη γραμμή ορίζει με το χέρι το μέγεθος, το πάχος, τον αριθμό και την απόσταση αυτού που στην πραγματικότητα είναι ο τίτλος μιας ενότητας. Αντικαθίσταται με
\section{Αποτελέσματα}, και τον αριθμό τον βάζει η κλάση· γραμμένος με το χέρι, θα έμενε λάθος μόλις παρεμβαλλόταν μια προηγούμενη ενότητα.Σε αυτόν τον κώδικα, το
\textitεμφανίζεται τρεις φορές, με τρεις διαφορετικές λειτουργίες: σημαίνει τον τίτλο ενός έργου, μια τονισμένη λέξη και έναν αρχαιοελληνικό όρο. Το ότι και τα τρία τυπώνονται σήμερα με πλάγια είναι σύμπτωση μορφής, όχι ταυτότητα περιεχομένου.Κάθε λειτουργία παίρνει τη δική της σήμανση. Για την τονισμένη λέξη υπάρχει το
\emph{φυσική}· για τις άλλες δύο ορίζονται στο προοίμιο νέες εντολές, για παράδειγμα\newcommand{\ergo}[1]{\textit{#1}}και μια άλλη ανάλογη,\oros, που στο σώμα χρησιμοποιούνται ως\ergo{Μετά τα φυσικά}και\oros{φύσει}.Οι διπλές ανάστροφες κάθετοι, που επιβάλλουν αλλαγή γραμμής, και το κατακόρυφο διάστημα που προστέθηκε με το χέρι μιμούνται τον χωρισμό ανάμεσα σε παραγράφους. Καταργούνται: μια κενή γραμμή τελειώνει την παράγραφο, και την απόσταση την αποφασίζει η κλάση. Ο τίτλος της υποενότητας γράφεται
\subsection{Το δείγμα}.Αν το περιοδικό ζητήσει τους αρχαιοελληνικούς όρους χωρίς πλάγια, αρκεί να αλλάξει μία γραμμή του προοιμίου, εκείνη που ορίζει το
\oros, και η αλλαγή φτάνει σε όλους τους όρους του άρθρου, χωρίς να αγγίξει τους τίτλους έργων ή τις τονισμένες λέξεις. Με τον αρχικό κώδικα, θα έπρεπε να ελεγχθούν ένα προς ένα όλα τα πλάγια και να αποφασιστεί σε κάθε περίπτωση σε ποια λειτουργία αντιστοιχούσαν.
Ασκήσεις στο διαδίκτυο
Σε αυτές τις ασκήσεις γράφεται ο κώδικας στο πλαίσιο και ο περιηγητής τον ελέγχει αμέσως: ελέγχει τα άγκιστρα, τα περιβάλλοντα και ό,τι ζητά κάθε άσκηση, χωρίς να τον μεταγλωττίζει. Όταν ο έλεγχος περάσει, καλό είναι να αντιγραφεί ο κώδικας στο Texmaker και να μεταγλωττιστεί, γιατί μόνο το μεταγλωττισμένο αποτέλεσμα δείχνει τι πραγματικά τυπώνεται.
Το πλαίσιο περιέχει μόνο το κείμενο ενός εγγράφου γραμμένου στα ισπανικά· ο έλεγχος αναζητά αυτό ακριβώς το κείμενο, οπότε πρέπει να μείνει όπως είναι. Να συμπληρωθεί ώστε να γίνει ολόκληρο έγγραφο που μεταγλωττίζεται με LuaLaTeX: η κλάση article, τα πακέτα fontspec και babel με τα ισπανικά, που είναι η γλώσσα του κειμένου, και η αρχή και το τέλος του σώματος. Τα ισπανικά γράφονται με το λατινικό αλφάβητο, οπότε δεν χρειάζεται άλλη γραμματοσειρά. Το κείμενο δεν αλλάζει.
Ο περιηγητής ελέγχει αμέσως τον κώδικά σου, χωρίς να τον μεταγλωττίζει και χωρίς να τον βαθμολογεί. Για να δεις το πραγματικό αποτέλεσμα, μεταγλώττισέ τον στο Texmaker.
Υπόδειξη
Ένα έγγραφο αποτελείται από δύο μέρη: το προοίμιο, που αρχίζει με την κλάση και φορτώνει τα πακέτα, και το σώμα, που περιέχει το κείμενο.
Δες τη λύση
\documentclass{article}\usepackage{fontspec}\usepackage[spanish]{babel}\begin{document}\section{Introducción}La composición tipográfica decide dónde cae cada letra.\end{document}Το παρακάτω απόσπασμα, παρμένο από ένα άρθρο στα ισπανικά, λέει πώς πρέπει να φαίνεται κάθε γραμμή, και όχι τι είναι. Να ξαναγραφτεί ώστε να σημαίνει το περιεχόμενο: ο πρώτος τίτλος είναι ενότητα και ο δεύτερος υποενότητα, και οι δύο αριθμημένες από την κλάση, και το «qué es» («τι είναι») είναι τονισμένη έκφραση. Το κείμενο δεν αλλάζει (ο έλεγχος αναζητά τις ισπανικές λέξεις), και οι εξαναγκασμένες αλλαγές γραμμής εξαφανίζονται.
Ο περιηγητής ελέγχει αμέσως τον κώδικά σου, χωρίς να τον μεταγλωττίζει και χωρίς να τον βαθμολογεί. Για να δεις το πραγματικό αποτέλεσμα, μεταγλώττισέ τον στο Texmaker.
Υπόδειξη
Για κάθε γραμμή, ρώτησε τον εαυτό σου τι είναι (τίτλος ενότητας, υποενότητας, τονισμένη έκφραση) και αναζήτησε την εντολή που το λέει· όλα τα άλλα τα αποφασίζει η κλάση.
Δες τη λύση
\section{Marcado y procesador de textos}En un lenguaje de marcado, el autor dice \emph{qué es} cada cosa.\subsection{El procesador de textos}El autor ve la página tal como se imprimirá.Προτεινόμενα προβλήματα
Κάθε πρόβλημα έχει μια υπόδειξη, που καλό είναι να ανοίγεται μόνο αφού επιχειρηθεί η λύση, και μια απάντηση, που εμφανίζεται αφού ανοιχτεί η υπόδειξη.
Να προβλεφθεί ποιο κείμενο παράγει το παρακάτω σώμα, όπου τα \LaTeX και \TeX είναι οι εντολές που τυπώνουν τα λογότυπα του LaTeX και του TeX. Να εξηγηθεί η διαφορά ανάμεσα στις δύο γραμμές και να προταθεί διόρθωση για την πρώτη.
Γράφω με \LaTeX εδώ και έναν χρόνο.Χρησιμοποιώ \LaTeX{} και \TeX\ καθημερινά.Υπόδειξη
Ρώτησε τον εαυτό σου πού τελειώνει το όνομα μιας εντολής που σχηματίζεται από γράμματα, και τι κάνει η μηχανή με το κενό που την ακολουθεί: ανήκει στο κείμενο ή στην εντολή;
Απάντηση
Μία μόνο παράγραφος: «Γράφω με LaTeXεδώ και έναν χρόνο. Χρησιμοποιώ LaTeX και TeX καθημερινά.» Το όνομα της εντολής τελειώνει στον πρώτο χαρακτήρα που δεν είναι γράμμα, και τα κενά που το ακολουθούν απορροφώνται κατά την ανάγνωσή του· στη δεύτερη γραμμή, τα κενά άγκιστρα και η ανάστροφη κάθετος ακολουθούμενη από κενό κλείνουν την εντολή και διατηρούν το κενό. Η πρώτη γραμμή διορθώνεται με \LaTeX{} εδώ ή με μια ανάστροφη κάθετο ακολουθούμενη από κενό. Προσοχή: στο LuaLaTeX και τα ελληνικά γράμματα μετρούν ως γράμματα, οπότε \LaTeXεδώ, χωρίς κενό, θα ήταν όνομα άλλης, ανύπαρκτης εντολής.
Για καθένα από τα παρακάτω έγγραφα, να αποφασιστεί με ποιες μηχανές μπορεί να μεταγλωττιστεί χωρίς ειδικές προετοιμασίες και να αιτιολογηθεί η απόφαση: μια διατριβή μαθηματικών στα αγγλικά, στοιχειοθετημένη με την προεπιλεγμένη γραμματοσειρά του LaTeX· η έκδοση ενός αρχαίου ελληνικού συγγράμματος με σημειώσεις στα λατινικά, που πρέπει να χρησιμοποιεί μια γραμματοσειρά OpenType εγκατεστημένη στο σύστημα· και ένα άρθρο στα νέα ελληνικά που παραθέτει πηγές στα αραβικά και στα χίντι. Να εξηγηθεί έπειτα γιατί το μάθημα υιοθετεί μία μόνο μηχανή για όλα.
Υπόδειξη
Για κάθε έγγραφο, ρώτησε τον εαυτό σου δύο πράγματα: αν χρειάζεται γραμματοσειρά του συστήματος, και αν περιέχει συστήματα γραφής διαφορετικά από το λατινικό αλφάβητο που πρέπει να διαβαστούν σε Unicode και, σε ορισμένες περιπτώσεις, να ενώσουν ή να συνδυάσουν τα γράμματά τους.
Απάντηση
Η διατριβή μαθηματικών δέχεται και τις τρεις μηχανές. Η αρχαιοελληνική έκδοση απαιτεί XeLaTeX ή LuaLaTeX, λόγω της γραμματοσειράς του συστήματος και λόγω των ελληνικών σε Unicode. Το άρθρο με αραβικά και χίντι απαιτεί επίσης XeLaTeX ή LuaLaTeX, λόγω του Unicode, λόγω των γραμμάτων που ενώνονται και συνδυάζονται και, στα αραβικά, λόγω της γραφής από δεξιά προς τα αριστερά. Το LuaLaTeX αρκεί και για τα τρία, και με μία μόνο μηχανή όλοι οι κώδικες του μαθήματος μεταγλωττίζονται με τον ίδιο τρόπο.
Να αποφασιστεί, για κάθε περίπτωση, αν συμφέρει το LaTeX ή ένας επεξεργαστής κειμένου, και να αιτιολογηθεί η απόφαση με κριτήριο που δεν είναι η συνήθεια: μια επιστολή δύο σελίδων προς ένα γραφείο· μια διατριβή διακοσίων σελίδων με τύπους, αριθμημένα σχήματα και εκατόν πενήντα αναφορές· ένα άρθρο για ένα περιοδικό ιστορίας που δέχεται μόνο αρχεία επεξεργαστή κειμένου και κάνει την αναθεώρηση με παρακολούθηση αλλαγών· και κάποιες σημειώσεις παραδόσεων με αρχαιοελληνικά παραθέματα, που ο συγγραφέας τους θα εμπλουτίζει επί αρκετά χρόνια.
Υπόδειξη
Λάβε υπόψη, σε κάθε περίπτωση, την έκταση και τη δομή του εγγράφου, πόσο καιρό θα ζήσει και ποιος άλλος θα πρέπει να διαβάσει ή να τροποποιήσει το αρχείο του, και όχι μόνο το τυπωμένο αποτέλεσμα.
Απάντηση
Η επιστολή, σε επεξεργαστή κειμένου: είναι σύντομη, χωρίς δομή και χωρίς μεταγενέστερη ζωή. Η διατριβή, σε LaTeX: η έκτασή της, οι τύποι και οι παραπομπές της ωφελούνται από την αυτόματη αρίθμηση και από τη βιβλιογραφία ως βάση δεδομένων. Το άρθρο, σε επεξεργαστή κειμένου, γιατί το επιβάλλει ο παραλήπτης. Οι σημειώσεις, σε LaTeX: η μακρά ζωή τους, η αυξανόμενη δομή τους και τα πολυτονικά ευνοούν το απλό κείμενο και το Unicode.
Ολοκληρώθηκε
Συνδεθείτε για να αποθηκεύσετε την πρόοδό σας