Περίληψη
Το μάθημα αυτό ανοίγει την πρώτη ενότητα του κύκλου μαθημάτων, αφιερωμένη στα πρώτα βήματα με το LaTeX. Εξηγεί σε τι χρησιμεύει η ενότητα: να φέρει όποιον δεν έχει χρησιμοποιήσει ποτέ LaTeX στο σημείο να γράφει, να μεταγλωττίζει και να διορθώνει μόνος του ένα σύντομο έγγραφο· παρουσιάζει τα τέσσερα μαθήματά της και το νήμα που τα συνδέει, από την ιδέα της τυπογραφικής στοιχειοθεσίας ως την ανάγνωση των σφαλμάτων· προσδιορίζει το λίγο που θεωρείται γνωστό, δηλαδή τον χειρισμό αρχείων και φακέλων σε έναν υπολογιστή· διατυπώνει το πρόβλημα που λύνει η ενότητα, πώς περνάμε από ένα κενό αρχείο σε ένα στοιχειοθετημένο έγγραφο και, όταν κάτι αποτυγχάνει, από το μήνυμα της μηχανής στην αιτία του· και δείχνει ότι ο ίδιος κύκλος εξυπηρετεί εξίσου μια εργαστηριακή αναφορά, ένα φιλοσοφικό δοκίμιο ή την έκδοση ενός λατινικού κειμένου.
Μαθησιακοί στόχοι
- Να περιγράφει τη σειρά των περιεχομένων της ενότητας και να εξηγεί τι προσφέρει κάθε μάθημα στο επόμενο.
- Να αναγνωρίζει τις προαπαιτούμενες γνώσεις που υποθέτει η ενότητα και να προετοιμάζει τον υπολογιστή γι’ αυτήν, ιδίως την εμφάνιση των επεκτάσεων των αρχείων.
- Να εξηγεί, με ένα παράδειγμα, γιατί ένα έγγραφο LaTeX μπορεί να μην παραγάγει αποτέλεσμα και γιατί το σφάλμα δεν επισημαίνεται πάντα εκεί όπου βρίσκεται.
- Να αναγνωρίζει σε άλλους επιστημονικούς κλάδους και στις επόμενες ενότητες τον κύκλο γραφής, μεταγλώττισης και διόρθωσης που οικοδομεί η ενότητα.
Αρχική αξιολόγηση
Πριν διατρέξουμε την ενότητα, αξίζει να μετρήσουμε το σημείο εκκίνησης. Η αξιολόγηση αυτή είναι αυτοαξιολόγηση: δεν βαθμολογείται, και μοναδικός σκοπός της είναι να προσανατολίσει τη μελέτη. Οι οκτώ ερωτήσεις της αφορούν, ανά δύο και με τη σειρά, τα τέσσερα μαθήματα της ενότητας· όποιος δεν έχει χρησιμοποιήσει ποτέ LaTeX δεν πρέπει να περιμένει να τις απαντήσει σωστά, και αυτό δεν έχει σημασία: κάθε απάντηση, σωστή ή λανθασμένη, εξηγεί το ζήτημα και κατονομάζει το μάθημα που το πραγματεύεται. Οι ίδιες δεξιότητες μετρώνται ξανά στο τέλος, στο μάθημα της σύνθεσης· επειδή αυτή είναι η πρώτη ενότητα του κύκλου, δεν υπάρχουν ερωτήσεις για προηγούμενες ενότητες.
Πριν ξεκινήσεις την ενότητα, μέτρησε το σημείο εκκίνησής σου. Είναι μια σύντομη αυτοαξιολόγηση: δεν βαθμολογείται και το αποτέλεσμα αποθηκεύεται μόνο στον περιηγητή σου.
Ερώτηση 1Μια ερευνήτρια γράφει στα νέα ελληνικά ένα άρθρο που παραθέτει χωρία σε πολυτονικό, και το περιοδικό απαιτεί μια γραμματοσειρά OpenType που έχει εγκαταστήσει στον υπολογιστή της. Με ποια μηχανή πρέπει να το μεταγλωττίσει, σύμφωνα με το κριτήριο αυτού του κύκλου μαθημάτων;
Η ταχύτητά του δεν αντισταθμίζει όσα δεν κάνει: το pdfLaTeX δεν φορτώνει απευθείας τις γραμματοσειρές OpenType του συστήματος, και ένα ελληνικό γράμμα γραμμένο σε Unicode σταματά τη μεταγλώττισή του, αν δεν προετοιμαστούν ειδικές κωδικοποιήσεις και γραμματοσειρές.Καταλαβαίνουν το ίδιο LaTeX, αλλά διαφέρουν στον τρόπο που διαβάζουν το κείμενο και στις γραμματοσειρές που μπορούν να χρησιμοποιήσουν· το fontspec, που φορτώνει τη γραμματοσειρά του συστήματος, απαιτεί XeLaTeX ή LuaLaTeX.Το Texmaker είναι ο επεξεργαστής, όχι μηχανή: εκεί γράφεται ο πηγαίος κώδικας, και αυτό καλεί τη μηχανή που φέρνει η εγκατεστημένη διανομή. Το ερώτημα είναι ποια από αυτές τις μηχανές πρέπει να καλέσει.Το LuaLaTeX γράφει τα ελληνικά απευθείας, με τους τόνους και τα πνεύματα, και φορτώνει τη ζητούμενη γραμματοσειρά με την\setmainfont. Θα αρκούσε και το XeLaTeX· ο κύκλος υιοθετεί το LuaLaTeX ώστε όλα τα έγγραφά του να μεταγλωττίζονται με τον ίδιο τρόπο.Επανάληψη: Τι είναι το LaTeX
Ερώτηση 2Τι τυπώνει η γραμμή
Πέρασε το 70% των φοιτητών.γραμμένη ως έχει στο σώμα ενός εγγράφου;Το σύμβολο του ποσοστού είναι ένας από τους χαρακτήρες που δεσμεύει το LaTeX: γραμμένο ως έχει, δεν τυπώνεται, αλλά κάνει κάτι.Ένα σχόλιο δεν είναι σφάλμα· γι’ αυτό η αβλεψία αυτή είναι επικίνδυνη: η μηχανή απορρίπτει μισή πρόταση χωρίς να επισημάνει τίποτα, και αυτό γίνεται αντιληπτό μόνο όταν διαβάσουμε το αποτέλεσμα.Το σχόλιο δεν περιορίζεται στο σύμβολο: καλύπτει ό,τι ακολουθεί ως το τέλος της γραμμής.Το σύμβολο του ποσοστού αρχίζει ένα σχόλιο: η μηχανή αγνοεί ό,τι ακολουθεί ως το τέλος της γραμμής, μαζί με την αλλαγή γραμμής, και δεν προειδοποιεί. Για να τυπωθεί το σύμβολο, γράφεται\%.Επανάληψη: Τι είναι το LaTeX
Ερώτηση 3Ο φάκελος μιας διατριβής περιέχει τα
diatrivi.tex,diatrivi.aux,diatrivi.log,diatrivi.toc,diatrivi.pdfκαιchartis.png, ένα σχήμα που περιλαμβάνει η διατριβή. Ένα άλλο μέλος της συγγραφικής ομάδας θα μεταγλωττίσει τη διατριβή στον δικό του υπολογιστή. Ποιο είναι το ελάχιστο που πρέπει να λάβει;Τα βοηθητικά αρχεία αναπαράγονται κατά τη μεταγλώττιση και δεν του χρησιμεύουν· ένα ξένο.auxμπορεί μάλιστα να μεταφέρει παρωχημένες παραπομπές ως την επόμενη μεταγλώττιση.Το σχήμα δεν το παράγει η μεταγλώττιση, αλλά το χρησιμοποιεί: χωρίς τοchartis.png, η μηχανή σταματά επειδή δεν βρίσκει το αρχείο.Ο πίνακας περιεχομένων προκύπτει με δεύτερη μεταγλώττιση, και το σχήμα, που είναι πράγματι απαραίτητο, έμεινε έξω.Χρειάζεται ακριβώς ό,τι η μηχανή δεν μπορεί να παραγάγει: ό,τι έγραψε ή προσκόμισε ο συγγραφέας. Τα υπόλοιπα αρχεία τα αναπαράγει η μεταγλώττιση.Επανάληψη: Το περιβάλλον εργασίας
Ερώτηση 4Ένας φοιτητής διορθώνει τον πηγαίο κώδικα και μεταγλωττίζει, αλλά το PDF που βλέπει στο πρόγραμμα προβολής δεν αλλάζει. Το αρχείο καταγραφής τελειώνει με τη γραμμή
Fatal error occurred, no output PDF file produced!. Ποιο PDF βλέπει;Αυτό συμβαίνει όταν το αρχείο καταγραφής τελειώνει χωρίς σφάλματα και το PDF του φακέλου φέρει την ώρα της τελευταίας μεταγλώττισης· εδώ το αρχείο καταγραφής λέει ότι δεν παράχθηκε κανένα PDF.Αν ήταν κατεστραμμένο, το πρόγραμμα προβολής δεν θα έδειχνε τίποτα· δείχνει ένα πλήρες και αναγνώσιμο έγγραφο, μόνο που είναι παλιό.Αυτή θα ήταν μια άλλη πιθανή βλάβη, αλλά το αρχείο καταγραφής την αποκλείει: λέει ότι δεν παράχθηκε κανένα PDF, οπότε δεν υπάρχει νέο PDF.Ένα σοβαρό σφάλμα σταμάτησε τη μεταγλώττιση πριν γραφτεί το αποτέλεσμα· το PDF του φακέλου είναι το τελευταίο που παράχθηκε επιτυχώς, και το πρόγραμμα προβολής το δείχνει σαν να μη συνέβη τίποτα. Πρέπει να διορθωθεί το σφάλμα που επισημαίνει το αρχείο καταγραφής.Επανάληψη: Το περιβάλλον εργασίας
Ερώτηση 5Στο σώμα ενός εγγράφου, μετά από αρκετές παραγράφους, ο συγγραφέας γράφει
\usepackage{amsmath}. Τι συμβαίνει κατά τη μεταγλώττιση;Έτσι συμπεριφέρονται ορισμένες δηλώσεις, όπως η\setmainfont, που λειτουργούν στο σώμα από το σημείο όπου γράφονται· τα πακέτα όχι.Η μηχανή δεν αναδιατάσσει τον πηγαίο κώδικα: τον διαβάζει με τη σειρά, και ό,τι βρίσκει εκτός θέσης το επισημαίνει ως σφάλμα.Είναι αλήθεια ότι δεν στοιχειοθετεί κείμενο, αλλά αυτό απλώς επιτρέπει να τοποθετηθεί πριν από το σώμα· δεν του επιτρέπει να μπει μέσα σε αυτό.Όταν φτάνει στο\begin{document}κλείνει η διαμόρφωση, και ένα πακέτο που φορτώνεται αργότερα θα μπορούσε να αλλάξει αποφάσεις που έχουν ήδη εφαρμοστεί· γι’ αυτό τα πακέτα φορτώνονται μόνο στο προοίμιο.Επανάληψη: Ανατομία ενός εγγράφου
Ερώτηση 6Στο σώμα ενός εγγράφου εμφανίζεται, γραμμένη ως έχει, η πρόταση
Αποθηκεύστε το αρχείο ως teliki_anafora.tex.Τι συμβαίνει κατά τη μεταγλώττιση;Η κάτω παύλα είναι ένας από τους δέκα δεσμευμένους χαρακτήρες: γραμμένη ως έχει, δεν τυπώνεται.Αυτό το κάνει το σύμβολο του ποσοστού, που αρχίζει ένα σχόλιο· η κάτω παύλα έχει άλλη λειτουργία, των δεικτών.Η μηχανή επιχειρεί κάτι παρόμοιο, αλλά μόνο αφού επισημάνει το σφάλμα, όταν παρεμβάλλει μόνη της το σύμβολο του δολαρίου που νομίζει ότι λείπει· το αποτέλεσμα δεν είναι το επιδιωκόμενο.Η κάτω παύλα γράφει δείκτες μέσα στους τύπους· στο κείμενο, η μηχανή υποθέτει ότι λείπει το άνοιγμα ενός τύπου και το επισημαίνει. Για να τυπωθεί, γράφεται\_.Επανάληψη: Ανατομία ενός εγγράφου
Ερώτηση 7Το αρχείο καταγραφής μιας μεταγλώττισης περιέχει το σφάλμα
! Undefined control sequence.και, από κάτω, τη γραμμήl.7 \sectoin. Τι δείχνει;Μια μη ορισμένη εντολή μπορεί να οφείλεται σε πακέτο που δεν φορτώθηκε· αλλά η\sectionδεν χρειάζεται κανένα, και η εντολή που δείχνει το αρχείο καταγραφής προδίδει ένα τυπογραφικό λάθος στο όνομά της.Η ένδειξηl.7παραπέμπει στον πηγαίο κώδικα, που είναι αυτό που διορθώνεται· το αρχείο καταγραφής μόνο ενημερώνει.Ο αριθμός είναι αριθμός γραμμής του πηγαίου κώδικα, όχι ενότητας του εγγράφου.Το σφάλμα κατονομάζει τη βλάβη, μια μη ορισμένη εντολή· η ένδειξηl.7δίνει τον αριθμό γραμμής του πηγαίου κώδικα, και το κείμενο που ακολουθεί τελειώνει ακριβώς στην άγνωστη εντολή.Επανάληψη: Μεταγλώττιση και διόρθωση σφαλμάτων
Ερώτηση 8Η μεταγλώττιση παράγει το PDF, αλλά το αρχείο καταγραφής περιέχει τη γραμμή
Overfull \hbox (3.21451pt too wide) in paragraph at lines 20--24. Τι σημαίνει;Τα σφάλματα αρχίζουν με θαυμαστικό· η γραμμή αυτή είναι προειδοποίηση για τη στοιχειοθεσία, και το PDF είναι έγκυρο.Οι αριθμοί είναι γραμμές του πηγαίου κώδικα, όχι σελίδες του PDF, και αυτό που εξέχει είναι μια γραμμή κειμένου, όχι μια σελίδα.Η έκταση της παραγράφου δεν έχει σημασία: το πρόβλημα είναι μία μόνο γραμμή που δεν μπόρεσε να κοπεί σωστά, και λύνεται σε αυτήν.Η μηχανή δεν βρήκε αποδεκτό τρόπο να κόψει κάποια γραμμή εκείνης της παραγράφου, για παράδειγμα εξαιτίας μιας μακριάς λέξης που δεν ξέρει να συλλαβίσει, και την άφησε πλατύτερη από το πλαίσιο του κειμένου. Το PDF παράχθηκε· αξίζει να δούμε εκεί αυτή την παράγραφο και να κρίνουμε αν χρειάζεται παρέμβαση.Επανάληψη: Μεταγλώττιση και διόρθωση σφαλμάτων
Τα περιεχόμενα της ενότητας
Η ενότητα αυτή υπηρετεί τον πρώτο από τους στόχους του κύκλου, την παραγωγή και τη μεταγλώττιση εγγράφων με διάγνωση και διόρθωση των σφαλμάτων τους, και είναι η προϋπόθεση όλων των άλλων: η στοιχειοθεσία κειμένων σε πολλές γλώσσες και γραφές, η δόμηση μεγάλων εγγράφων, η γραφή μαθηματικών και λογικής, η παρουσίαση πινάκων και σχημάτων, η διαχείριση της βιβλιογραφίας και η επιλογή της κατάλληλης κλάσης για κάθε ακαδημαϊκό είδος προϋποθέτουν ότι ο κύκλος γραφής, μεταγλώττισης και διόρθωσης δεν παρουσιάζει πια δυσκολία. Στόχος της είναι όποιος δεν έχει χρησιμοποιήσει ποτέ LaTeX να μπορεί, όταν την ολοκληρώσει, να γράψει ένα σύντομο έγγραφο από ένα κενό αρχείο, να το μεταγλωττίσει με το LuaLaTeX στο Texmaker ή στο Overleaf και, όταν δεν μεταγλωττίζεται, να βρει και να διορθώσει μόνος του την αιτία. Τα τέσσερα μαθήματά της σχηματίζουν μια αλυσίδα όπου το καθένα στηρίζεται στα προηγούμενα.
- Τι είναι το LaTeX. Εξηγεί την τυπογραφική στοιχειοθεσία, συγκρίνει τη γλώσσα σήμανσης με τον επεξεργαστή κειμένου, αφηγείται την προέλευση του TeX και του LaTeX και την αρχή τους να χωρίζουν το περιεχόμενο από τη μορφή, αιτιολογεί την επιλογή του LuaLaTeX και δείχνει πώς ένας πηγαίος κώδικας γίνεται PDF. Καθορίζει το λεξιλόγιο όλης της ενότητας: πηγαίος κώδικας, μηχανή, μεταγλώττιση, προοίμιο, σώμα και αρχείο καταγραφής.
- Το περιβάλλον εργασίας. Εγκαθιστά όσα περιέγραψε το πρώτο μάθημα: μια διανομή του TeX, με τον διαχειριστή πακέτων της, και τον επεξεργαστή Texmaker, ρυθμισμένο να μεταγλωττίζει με το LuaLaTeX και να αποθηκεύει σε UTF-8· παρουσιάζει το Overleaf ως εναλλακτική λύση στο πρόγραμμα περιήγησης και εξηγεί ποια αρχεία αφήνει η μεταγλώττιση και ποια διατηρούνται. Τελειώνει με δύο δοκιμαστικά έγγραφα που επαληθεύουν την εγκατάσταση.
- Ανατομία ενός εγγράφου. Αναλύει τον πηγαίο κώδικα στα κομμάτια του: το προοίμιο και το σώμα, τις εντολές με τα ορίσματά τους, τις ομάδες που περιορίζουν την εμβέλεια των δηλώσεων, τα περιβάλλοντα, τους δέκα δεσμευμένους χαρακτήρες, τα σχόλια, τα πακέτα και την κλάση. Χάρη σε αυτό, το ελάχιστο έγγραφο του πρώτου μαθήματος παύει να είναι συνταγή και γίνεται μια δομή που κατανοείται κομμάτι προς κομμάτι.
- Μεταγλώττιση και διόρθωση σφαλμάτων. Διδάσκει την ανάγνωση του αρχείου καταγραφής: τη διάκριση των σφαλμάτων από τις προειδοποιήσεις, τον εντοπισμό κάθε σφάλματος στον πηγαίο κώδικα, την αναγνώριση των συχνότερων μηνυμάτων και την απομόνωση της αιτίας όταν το μήνυμα δεν αρκεί. Συνενώνει τα προηγούμενα, επειδή σχεδόν κάθε σφάλμα είναι παράβαση ενός κανόνα της ανατομίας του πηγαίου κώδικα, και η διάγνωσή του στηρίζεται στο περιβάλλον εργασίας.
Η ενότητα κλείνει με το μάθημα σύνθεσης και προκλήσεων, που συγκεντρώνει τα επιτεύγματα σε μια αλυσίδα εννοιών και διαδικασιών, επαναλαμβάνει στην τελική του αξιολόγηση τις δεξιότητες της αρχικής και προτείνει προκλήσεις που συνδυάζουν περισσότερα μαθήματα.
Τι θεωρείται γνωστό
Η ενότητα ξεκινά σχεδόν από το μηδέν. Δεν υποθέτει ότι έχετε χρησιμοποιήσει LaTeX, ούτε ότι ξέρετε προγραμματισμό, ούτε γνώσεις μαθηματικών· ούτε υποθέτει γνώση αγγλικών, αν και τα μηνύματα της μηχανής είναι σε αυτή τη γλώσσα, επειδή ο κύκλος εξηγεί καθένα από όσα παρουσιάζει. Υποθέτει μόνο τη συνήθη χρήση ενός υπολογιστή: τη δημιουργία ενός φακέλου, την αποθήκευση ενός αρχείου με ορισμένο όνομα και σε ορισμένο φάκελο, την ανεύρεσή του αργότερα, την αντιγραφή, μετακίνηση και διαγραφή αρχείων και την εγκατάσταση ενός προγράμματος, ή αλλιώς τη διάθεση ενός προγράμματος περιήγησης και ενός λογαριασμού στο Overleaf.
Από αυτό έπεται μία μόνο προκαταρκτική προετοιμασία, που καλό είναι να γίνει πριν από το μάθημα για το περιβάλλον εργασίας. Ένα όνομα αρχείου αποτελείται από μια βάση και μια επέκταση, το τμήμα μετά την τελευταία τελεία: στο anafora.tex, βάση είναι το anafora και επέκταση το tex. Όμως η Εξερεύνηση αρχείων των Windows και το Finder του macOS κρύβουν από προεπιλογή τις γνωστές επεκτάσεις, έτσι ώστε τα anafora.tex και anafora.pdf να εμφανίζονται και τα δύο ως anafora, και τα βοηθητικά αρχεία της μεταγλώττισης, που διακρίνονται μόνο από την επέκτασή τους, να γίνονται αδιάκριτα. Επομένως, καλό είναι να ενεργοποιηθεί η επιλογή που εμφανίζει τις επεκτάσεις: στα Windows, στο μενού Προβολή της Εξερεύνησης αρχείων· στο macOS, στις ρυθμίσεις για προχωρημένους του Finder. Στο Linux, οι διαχειριστές αρχείων τις εμφανίζουν από προεπιλογή.
Το πρόβλημα που λύνει η ενότητα
Όποιος γράφει σε επεξεργαστή κειμένου βλέπει το αποτέλεσμα την ώρα που γράφει. Στο LaTeX, ανάμεσα στον πηγαίο κώδικα και τη σελίδα μεσολαβεί ένα πρόγραμμα που διαβάζει τον πηγαίο κώδικα κατά γράμμα, και το αποτέλεσμα εμφανίζεται μόνο με τη μεταγλώττιση. Αυτό θέτει δύο προβλήματα, που είναι τα προβλήματα της ενότητας. Το πρώτο είναι πώς περνάμε από ένα κενό αρχείο σε ένα στοιχειοθετημένο έγγραφο: τι πρέπει να εγκατασταθεί, τι πρέπει να περιέχει τουλάχιστον ο πηγαίος κώδικας και τι κάνει η μηχανή με αυτόν. Το δεύτερο είναι τι κάνουμε όταν το έγγραφο δεν βγαίνει, ή βγαίνει διαφορετικό από ό,τι θέλαμε: η μηχανή δεν δείχνει το σφάλμα πάνω στη σελίδα, αλλά το περιγράφει στο αρχείο καταγραφής, σε μια δική της γλώσσα, και μερικές φορές το επισημαίνει μακριά από το σημείο όπου έγινε. Το παράδειγμα που ακολουθεί δείχνει και τα δύο προβλήματα σε ένα έγγραφο δεκαέξι γραμμών.
Ο πηγαίος κώδικας που ακολουθεί είναι ένα πλήρες έγγραφο: δηλώνει την κλάση, φορτώνει τα πακέτα, αποθηκεύει τον τίτλο, τον συγγραφέα και μια κενή ημερομηνία, και στοιχειοθετεί δύο ενότητες· η γραμμή \babelfont{rm}{Noto Serif} επιλέγει μια γραμματοσειρά με ελληνικά γράμματα, που η προεπιλεγμένη (Latin Modern) δεν περιέχει. Μεταγλωττισμένος με το LuaLaTeX, παράγει αυτό το αποτέλεσμα.
\documentclass{article}\usepackage{fontspec}\usepackage[greek]{babel}\babelfont{rm}{Noto Serif}\title{Έκθεση ανάγνωσης}\author{Ελένη Παπαδοπούλου}\date{}\begin{document}\maketitle\section{Το ερώτημα}Το κείμενο εξετάζει μια \emph{υπόθεση} για το 40\% των περιπτώσεων.\section{Η απάντηση}Η απάντηση στηρίζεται στην προηγούμενη ενότητα.\end{document}Αν στη δωδέκατη γραμμή παραλειφθεί το άγκιστρο που κλείνει το όρισμα της \emph, η μηχανή δεν παράγει κανένα PDF, και το αρχείο καταγραφής περιέχει, μεταξύ άλλων, αυτές τις γραμμές.
Runaway argument?{υπόθεση για το 40\% των περιπτώσεων. \par \ETC.! File ended while scanning use of \emph ....! ==> Fatal error occurred, no output PDF file produced!Το σφάλμα δεν επισημαίνεται στη δωδέκατη γραμμή, αλλά στο τέλος του αρχείου: η μηχανή συνέχισε να διαβάζει το όρισμα της \emph μέσα από την παράγραφο, την επόμενη ενότητα και το \end{document}, ώσπου τελείωσε το αρχείο. Όμως το αρχείο καταγραφής δίνει το στοιχείο που λείπει: η γραμμή που ακολουθεί το «Runaway argument?» αναπαράγει το ανεξέλεγκτο όρισμα από την αρχή του, και η αρχή αυτή, το άγκιστρο πριν από την «υπόθεση», είναι ακριβώς η θέση του σφάλματος. Αυτή την ανάγνωση του αρχείου καταγραφής διδάσκει το μάθημα για τη μεταγλώττιση και τη διόρθωση σφαλμάτων· γιατί ένα άγκιστρο που δεν έκλεισε παρασύρει ό,τι ακολουθεί το διδάσκει το μάθημα για την ανατομία ενός εγγράφου.
Η απάντηση της ενότητας στα δύο αυτά προβλήματα έχει επομένως δύο μέρη. Για το πρώτο, ένα περιβάλλον εγκατεστημένο και δοκιμασμένο, και έναν πηγαίο κώδικα του οποίου η δομή κατανοείται κομμάτι προς κομμάτι, ώστε τίποτα σε αυτόν να μην είναι μαγική φόρμουλα. Για το δεύτερο, μια μέθοδο: διαβάζουμε το αρχείο καταγραφής από το πρώτο σφάλμα, εντοπίζουμε το σφάλμα στον πηγαίο κώδικα, αναγνωρίζουμε τον κανόνα που παραβιάστηκε και, αν το μήνυμα δεν αρκεί, απομονώνουμε την αιτία απενεργοποιώντας τμήματα του πηγαίου κώδικα. Κανένα από τα δύο μέρη δεν απαιτεί απομνημόνευση εντολών· και τα δύο απαιτούν να διαβάζουμε τον πηγαίο κώδικα όπως τον διαβάζει η μηχανή.
Η ενότητα στους επιστημονικούς κλάδους
Ο κύκλος που διδάσκει η ενότητα είναι ο ίδιος σε όλους τους κλάδους, και αυτό που αλλάζει από τον έναν στον άλλο είναι μόνο ό,τι γράφεται. Μια εργαστηριακή αναφορά χημείας, ένα φιλοσοφικό δοκίμιο με εκατό υποσημειώσεις, ένα σχόλιο σε χωρίο του Κικέρωνα με το λατινικό κείμενο και τη μετάφρασή του, μια εργασία οικονομικών με πίνακες, μια διατριβή ιστορίας με αρχειακά τεκμήρια και ένα μαθηματικό άρθρο με θεωρήματα αρχίζουν με τον ίδιο τρόπο: ένας φάκελος, ένα αρχείο πηγαίου κώδικα με το προοίμιο και το σώμα του, μια μεταγλώττιση και η ανάγνωση του αρχείου καταγραφής της. Ομοίως, τα σφάλματα αυτής της ενότητας, ένα άγκιστρο που δεν έκλεισε, ένας δεσμευμένος χαρακτήρας γραμμένος ως έχει, ένα πακέτο φορτωμένο εκτός θέσης, εμφανίζονται σε οποιοδήποτε από αυτά τα έγγραφα, χωρίς διάκριση κλάδου.
Γι’ αυτό, όσα διδάσκει η ενότητα χρησιμοποιούνται στους άλλους κύκλους μαθημάτων του ιστότοπου. Οι εργασίες και οι σημειώσεις της Αριστοτελικής λογικής ή των Βασικών αρχών της μηχανικής μπορούν να γράφονται σε LaTeX από την πρώτη εβδομάδα· στην Ανάλυση δεδομένων με R, τα αποτελέσματα μιας ανάλυσης ενσωματώνονται σε ένα στοιχειοθετημένο έγγραφο· και στον Προγραμματισμό σε C++ I ο κύκλος είναι κατ’ ουσίαν ο ίδιος: γράφεται ένας πηγαίος κώδικας, ένας μεταγλωττιστής τον διαβάζει, και τα μηνύματά του, που παραπέμπουν σε αριθμούς γραμμών, διαβάζονται με τη μέθοδο που διδάσκει αυτή η ενότητα.
Πού οδηγεί
Όταν ολοκληρωθεί η ενότητα, το ελάχιστο έγγραφο θα είναι ένα γνώριμο σημείο εκκίνησης, και οι επόμενες ενότητες θα χτίσουν πάνω του. Η δεύτερη θα ασχοληθεί με το ίδιο το κείμενο: τις γλώσσες και τις γραφές, ανάμεσά τους τα ελληνικά και τα λατινικά, τις γραμματοσειρές, τις υποσημειώσεις και τα μεγάλα παραθέματα. Η τρίτη, με τη δομή των μεγάλων εγγράφων, με τα κεφάλαιά τους, τον πίνακα περιεχομένων και τις εσωτερικές παραπομπές τους, κατανεμημένα σε πολλά αρχεία. Η τέταρτη, με τη γραφή των μαθηματικών και της λογικής με τη σωστή τους σημειογραφία· η πέμπτη, με τους πίνακες και τα σχήματα· η έκτη, με τη βιβλιογραφία και τις συμβάσεις παραπομπής κάθε κλάδου· και η έβδομη, με τις κλάσεις εγγράφων που ταιριάζουν σε κάθε ακαδημαϊκό είδος, από τις παρουσιάσεις ως τις επιστολές και τις αφίσες. Σε όλες, κάθε νέα εντολή θα γράφεται, θα μεταγλωττίζεται και, όταν αποτυγχάνει, θα διορθώνεται με όσα μάθαμε σε αυτήν.
Ολοκληρώθηκε
Συνδεθείτε για να αποθηκεύσετε την πρόοδό σας