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

Περίληψη

Το μάθημα αυτό διδάσκει πώς σχεδιάζουμε μέσα στο έγγραφο με το TikZ. Εξηγεί τι κερδίζουμε όταν σχεδιάζουμε σε LaTeX (τη γραμματοσειρά και τους τύπους του κειμένου, την κλιμάκωση χωρίς απώλειες, τη διόρθωση στον πηγαίο κώδικα και τον έλεγχο εκδόσεων), τι κοστίζει, και πότε είναι προτιμότερο να εξαγάγουμε ένα γράφημα από την R ή την Python· δείχνει ότι, σε έγγραφο σε γλώσσα της οποίας η ενότητα babel μετατρέπει σύμβολα σε ενεργές συντομεύσεις, όπως τα ισπανικά, το TikZ χρειάζεται τη βιβλιοθήκη babel, χωρίς την οποία το πρώτο βέλος προκαλεί καταρράκτη σφαλμάτων· παρουσιάζει το περιβάλλον tikzpicture και την εντολή \tikz, τις καρτεσιανές, πολικές και σχετικές συντεταγμένες, και τις διαδρομές (ευθύγραμμα τμήματα, ορθογώνια, κύκλους, τόξα και καμπύλες)· εξετάζει τις επιλογές της γραμμής και τις αιχμές βελών της βιβλιοθήκης arrows.meta· διδάσκει τους κόμβους, με όνομα, με άγκυρες και τοποθετημένους ο ένας σε σχέση με τον άλλο με τη βιβλιοθήκη positioning· σταθεροποιεί τον συμβολισμό με δικά μας στυλ· επαναλαμβάνει με το \foreach· συνθέτει ένα διάγραμμα ροής, ένα σχήμα δυνάμεων, ένα δέντρο εννοιών, ένα συντακτικό δέντρο και τη γραφική παράσταση μιας συνάρτησης, προειδοποιώντας ότι το plot μετρά τις γωνίες σε μοίρες· παρουσιάζει το pgfplots για τα γραφήματα δεδομένων· τοποθετεί το σχέδιο σε αιωρούμενο αντικείμενο και συγκρίνει τους τρεις τρόπους κλιμάκωσής του· και κλείνει με τα συνήθη σφάλματα, τον χρόνο μεταγλώττισης και όσα καλό είναι να αποφεύγονται.

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

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

Γιατί να σχεδιάζουμε σε LaTeX

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

Ωστόσο, τα πλεονεκτήματα αυτά έχουν τίμημα. Το TikZ είναι μια γλώσσα με δική της σύνταξη, της οποίας το εγχειρίδιο ξεπερνά τις χίλιες σελίδες, και ένα σχέδιο που σε ένα γραφικό πρόγραμμα γίνεται με το ποντίκι σε ένα λεπτό μπορεί εδώ να απαιτήσει μισή ώρα την πρώτη φορά. Επομένως, χρειάζεται διάκριση. Τα σχήματα, τα διαγράμματα και τα γεωμετρικά σχήματα, που αποτελούνται από λίγες μορφές με επιγραφές, είναι το φυσικό πεδίο του TikZ. Τα γραφήματα δεδομένων, αντίθετα, γίνονται καλύτερα με το pgfplots, που είναι χτισμένο πάνω στο TikZ και παρουσιάζεται στο τέλος του μαθήματος, ή, αν τα δεδομένα αναλύονται στην R ή στην Python, με το ίδιο πρόγραμμα που τα αναλύει: το γράφημα εξάγεται σε PDF και εισάγεται όπως στο μάθημα για τις εικόνες, και μένει δεμένο με τα δεδομένα και με την ανάλυση που το παράγουν. Και οι δύο γλώσσες προσφέρουν επιπλέον εξόδους που γράφουν το γράφημα σε κώδικα για LaTeX (το πακέτο tikzDevice στην R και την έξοδο PGF του matplotlib στην Python), ώστε οι επιγραφές να παίρνουν τη γραμματοσειρά του εγγράφου.