Eργαστήριο 10 : Εισαγωγη στο LaTeX

Στοχος του εργαστηριου ειναι να εξοικειωθητε με τη βασικη χρηση του LaTeX. Θα δειτε πως μπορει κανεις να γραψει απλα κειμενα στη γλωσσα αυτη, να αλλαξει τις γραμματοσειρες, να γραψει μαθηματικους τυπους, λιστες, πινακες και να εισαγει στο κειμενο εικονες και σχηματα.

Η αρχικη επαφη του χρηστη με το LaTeX μπορει να ειναι λιγοτερο φιλικη απο τους μορφοποιητες κειμενου των πακετων γραφειου. Αφου ομως ο χρηστης εξοικειωθει με τις βασικες εντολες και διαδικασιες παραγωγης του κειμενου, το LaTeX γινεται ενα ισχυρο εργαλειο για την παραγωγη υψηλης ποιοτητας εγγραφων. Η γλωσσα αυτη γινεται ιδιαιτερα παραγωγικη οταν απαιτηται κειμενο με δομη επιστημονικου συγγραμματος με εκτεταμενη χρηση αναφορων στη βιβλιογραφια η κινητων σημειων του κειμενου καθως και η παρουσιαση πολυπλοκων μαθηματικων τυπων.


Προετοιμασια

Απο τη σελιδα της 10ης διαλεξης κατεβαστε τα βασικα κειμενα (D. R. Wilkins, Getting Started with LaTeX και H. J. Greenberg, A Simplified Introduction to LaTeX) και αναζητηστε τα θεματα που συζητηθηκαν στη διαλεξη. Το δευτερο κειμενο ειναι πιο αναλυτικο και μπορει να διαβαστει ως εχει. Αν προτιμησετε το (πιο συντομο) πρωτο κειμενο, πρεπει να συμπληρωσετε τη μελετη σας με το κεφαλαιο (παραγραφος 6.3) απο το δευτερο που αναφερεται στην εισαγωγη γραφικων στο κειμενο.

Κατεβαστε στην περιοχη σας το παρακατω αρχειο. Ειναι ενα gzip συμπιεσμενο αρχειο τυπου tar που περιεχει αρχεια που θα χρησιμοποιηστε στην ασκηση.

Ενω ειστε στο "σπιτι" σας ~/ , ανοιξτε τα περιεχομενα του με την εντολη:
tar xvfz latex.tgz


Στο Εργαστηριο:

Μεταφερθητε στον υποκαταλογο ~/Ergasthria/10/ Εκει θα βρητε υποκαταλογους της μορφης phase01, phase02, ... , phase08. Καλα το καταλαβατε: Η εκπαιδευση σας στο LaTeX θα γινει σε 8+1 φασεις - το +1 αναφερεται στα παραδειγματα στον υποκαταλογο paradeigmata. Καθε φορα που αναφερομαστε στην αντιστοιχη φαση, θα υποθετουμε πως βρισκεστε στον αντιστοιχο υποκαταλογο. Ο νοων νοειτω....
  1. Επισκευθειτε την σελιδα με τις ανακοινωσεις του μαθηματος για σημαντικες ανακοινωσεις. Ολες οι ανακοινωσεις για το μαθημα/εξετασεις θα βρισκονται μονο στη σελιδα αυτη.
  2. Φαση 1: Δειτε τα περιεχομενα του υποκαταλογου. Το αρχειο που περιεχει κειμενο για LaTeX ειναι το Basic.tex. Ανοιξτε το με τον emacs
    emacs Basic.tex &
    Οι λεξεις που αρχιζουν με backslash \ ειναι εντολες στο LaTeX. Τα υπολοιπα ειναι κειμενο. Παντοτε η πρωτη εντολη στο LaTeX ειναι η
    \documentclass[XXX]{xxxxxx}
    οπου xxxxxx ειναι ο τυπος στου εγγραφου που θα γραψουμε (article, book, letter, report, .... ) ενω [XXX] ειναι ορισμενες επιλογες που μπορουμε να περασουμε στο προγραμμα (π.χ. [12pt] αναφερεται στο μεγεθος της γραμματοσειρας). Το κειμενο ειναι παντοτε μεταξυ των εντολων
    \begin{document}
    
    \end{document}
    
    Το αρχειο με το κειμενο και τις εντολες πρεπει να μεταγλωττιστει (compiled) απο το LaTeX για να ερθει σε μια μορφη που να ειναι μορφοποιημενο και να μπορει να τυπωθει ή να δειχθει απο καποια εξωτερικη εφαρμογη. Η σειρα των εντολων ειναι
    latex Basic
    latex Basic
    dvips Basic.dvi -o Basic.ps
    gv Basic.ps &
    Παρατηρηστε οτι η πρωτη εντολη δινεται δυο φορες. Αυτο ειναι αναγκαιο για να ενημερωνεται ο καταλογος των αναφορων στις εξισωσεις, κεφαλαια κλπ που ειναι δυνατον να υπαρχουν στο κειμενο. Παρατηρηστε πως οταν τρεχει το LaTeX δινει μια σειρα απο μυνηματα που μας δινουν πληροφοριες για το πως εξελισσεται η μεταγλωττιση. Αν ολα πανε καλα, μετα απο την εκτελεση των παραπανω εντολων θα δουμε με την εντολη gv το κειμενο. Αν εχουμε κανει λαθη, τοτε το LaTeX θα παραπονεθει, θα μας πει για πιο λογο και θα σταματησει να τρεχει. Εμεις διορθωνομε τα λαθη μας και επαναλαμβανουμε τη διαδικασια. Μπορουμε να τυπωσουμε αυτο που γραψαμε (μην το κανετε ακομη) με την εντολη
    lpr -Plpc3 Basic.ps
    η μεσα απο το gv με το κουμπι Print All πληκτρολογωντας στον διαλογο που προκυπτει την εντολη lpr -Plpc3 Η επιλογη -Plpc3 δινει το ονομα του εκτυπωτη (lpc3) που θελουμε να τυπωσει το κειμενο μας. Δειτε οτι ο υποκαταλογος περιεχει καινουργια αρχεια:
    Basic.aux Basic.dvi Basic.log Basic.ps Basic.tex
    Το Basic.ps ειναι σε γλωσσα postscript, καταλληλο για τυπωμα. Το Basic.dvi περιεχει τον κωδικα μορφοποιησης και ειναι δυνατον να το δειτε με την εντολη
    xdvi Basic.dvi &
    Τα Basic.aux και Basic.log ειναι βοηθητικα αρχεια, και μπορειτε να τα καθαριζετε. Ειναι δυνατον να βρητε και αλλα βοηθητικα αρχεια σε αλλες περιπτωσεις.
  3. Για να απλουστευσουμε τη ζωη μας στο εργαστηριο αυτο (και οχι μονο) σας δινουμε ενα προγραμμα να κανει τις παραπανω εντολες μαζι. Ελεγξτε πως εχετε το αρχειο ~/bin/gvtex, πως ο καταλογος ~/bin ειναι στο $path και μετα εκτελεστε την εντολη
    rehash
    which gvtex
    Αν ολα ειναι σωστα τοτε η εντολη gvtex ειναι στη διαθεση σας. Δωστε την εντολη:
    gvtex Basic
    και παρατηρηστε πως ολες οι εντολες εκτελουνται μαζι, και βλεπετε το κειμενο σας αυτοματα με το gv. Για να βγειτε απο το gv πληκτρολογηστε q εχοντας επιλεξει το παραθυρο του gv ή επιλεξτε File->Quit
  4. Φαση 2: Ανοιξτε το αρχειο BasicText.tex απο τον emacs. Σας θυμιζουμε πως η εντολη δινεται πληκτρολογωντας C-x C-f και εισαγοντας το ονομα του αρχειου:
    Find File: ~/Ergasthria/10/phase02/BasicText.tex
    Διαβαστε τι λεει το αρχειο. Εν περιληψει σας λεει πως για να μορφοποιησετε απλο κειμενο αρκει να το γραφετε οπως σας αρεσει χωριζοντας τις παραγραφους με μια κενη γραμμη. Προσεξτε πως δεν εχει σημασια πως κοβετε τις γραμμες στο αρχειο σας. Το LaTeX θα βαλει το κειμενο παντα με τον ιδιο τροπο. Οτιδηποτε δεξια απο τον χαρακτηρα % ειναι σχολια και αγνοουνται απο το LaTeX. Ορισμενοι χαρακτηρες εχουν ειδικη σημασια. Βρητε ποιοι ειναι μεσα στο κειμενο και πως μπορει κανεις να τους τυπωσει.
  5. Εκτελεστε την εντολη
    gvtex BasicText
    και παρατηρηστε πως μορφοποιηται το κειμενο. Προσθεστε δικο σας κειμενο κατα βουληση για να δειτε πως μεταβαλλεται.
  6. Ανοιξτε το ερωτηματολόγιο...
  7. Φαση 3: Τωρα θα μελετησουμε πως μπορουμε να χωρισουμε το κειμενο μας σε κεφαλαια. Ανοιξτε με τον emacs το αρχειο Sections.tex. Μορφοποιηστε το κειμενο με την εντολη gvtex. Παρατηρηστε τον χωρισμο του κειμενου σε κεφαλαια (sections), υποκεφαλαια (subsections) και σε υπουποκεφαλαια (subsubsections). Αλλαξτε τους τιτλους κατα βουληση και επαναμορφοποιηστε το κειμενο.
  8. Δειτε πως μπορουμε να αναφερομαστε σε ενα κεφαλαιο: Προσθεστε την εντολη \label{mysection} μετα την γραμμη \subsubsection{Another level of sectioning}. Τοποθετηστε την εντολη As we saw in section \ref{mysection} σε διαφορετικα σημεια του κειμενου. Επαναμορφοποιηστε. Τι παρατηρητε;
  9. Ανοιξτε το αρχειο Article.tex στον emacs και μετα μορφοποιηστε το. Παρατηρηστε στο μορφοποιημενο πως εισαγεται ο τιτλος, τα ονοματα των συγγραφεων και η περιληψη του αρθρου. Δειτε τις αντιστοιχες εντολες \title, \author, \abstract, \maketitle, \tableofcontents. Βαλετε το ονομα σας και τη διευθυνση σας στους συγγραφεις του αρθρου.
  10. Το αρχειο Book.tex ειναι σχεδον ιδιο με τοArticle.tex. Η διαφορα του ειναι οτι ανηκει στο \documentclass{book}. Παρατηρηστε τη διαφορα στο μορφοποιημενο κειμενο.
  11. Φαση 4: Τωρα θα μελετησουμε πως μπορουμε να μεταβαλλουμε την εμφανιση των γραμματοσειρων. Ανοιξτε το αρχειο Size.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εντολες που αλλαζουν το μεγεθος της γραμματοσειρας.
  12. Ανοιξτε το αρχειο Font.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εντολες που αλλαζουν το ειδος της γραμματοσειρας.
  13. Φαση 5: Ωρα για μαθηματικα! Ελπιζω να μην πιαστητε αδιαβαστοι γιατι ο βαθμος σας θα επηρεασει και τα αντιστοιχα μαθηματα! Ανοιξτε το αρχειο Math.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εντολες που δινουν τους τυπους που εμφανιζονται. Με το χαρακτηρα $ εγκαταλειπουμε την λειτουργια κειμενου (text mode) και μπαινουμε σε λειτουργια μαθηματικου κειμενου (math mode). Επανερχομαστε στην αρχικη κατασταση με ενα δευτερο $. Προσοχη: Μια συχνη πηγη λαθους ειναι να ξεχναμε το δευτερο $. Με τον τροπο αυτο εισαγουμε μαθηματικους τυπους μεσα στο κειμενο. Αν θελουμε να μπαινει η εξισωση κεντραρισμενη και σε δικια της γραμμη βαζουμε $$ αντι για $. Αν θελουμε η εξισωση μας να αριθμηθει ωστε να αναφερθουμε σε αυτην αργοτερα πρεπει να μπουμε σε περιβαλλον εξισωσης (equation environment) με
    \begin{equation}
     ....
    \end{equation}
     
    Παρατηρηστε στην τελευταια εξισωση του αρχειου πως μπορουμε να αναφερθουμε στην εξισωση με τις εντολες \label, \ref
  14. Ανοιξτε το αρχειο Formula.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εξισωσεις της πρωτης σελιδας. Πρωτα δειτε πως φτιαχνεται ενα κλασμα με την εντολη \frac{αριθμητης}{παρονομαστης}. Στη συνεχεια δειτε πως μπαινουν οι δυναμεις και οι δεικτες στις διαφορες μεταβλητες. Π.χ. πως το x2 n γραφεται εισαγοντας x^{2n} και το vi γραφεται εισαγοντας v_{i} Προσπαθηστε να γραψετε μερικους απλους τυπους στο αρχειο που να εχουν λ.χ. ρητες συναρτησεις.
  15. Παρατηρηστε πως γραφονται η τετραγωνικες και ανωτερης ταξης ριζες.
  16. Στην δευτερη σελιδα του μορφοποιημενου κειμενου βλεπετε πως γραφονται διανυσματα και παραγωγοι ενω στην τριτη ορια, ολοκληρωματα, αθροισματα κλπ. Στην τεταρτη γινεται μια επιδειξη πιο πολυπλοκου κειμενου (μην ψαξετε τις λεπτομερειες στη φαση αυτη, απλα δειτε τις δυνατοτητες).
  17. Δειτε ενα καταλογο με μαθηματικα συμβολα που υπαρχουν στο LaTeX με την εντολη
    gv Symbols.ps.gz&
  18. Ανοιξτε το αρχειο NewCommand.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε πως με την εντολη \newcommand μπορω να ορισω κειμενα ή πολυπλοκους μαθηματικους τυπους να δινονται με απλες εντολες της δικιας μου προτιμησης. Ειδικα προσεξτε πως μπορω να εισαγω μεταβλητο κειμενο οπως γινεται με την εντολη \ii{μεταβλητη}. Τι γινεται με τις εντολες \ii{x+2}, \ii{1/x}, \ii{\log x};
  19. Φαση 6: Θα δουμε πως μπορουμε να φτιαχνουμε λιστες. Ανοιξτε το αρχειο Lists.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εντολες που δινουν λιστες αριθμημενες και μη. Για το λογο αυτο πρεπει να μπουμε στο αναλογο περιβαλλον enumerate ή itemize και να εισαγουμε τα στοιχεια της λιστας με εντολες \item. Η αριθμηση τη λιστας γινεται αυτοματα. Επισης παρατηρηστε πως τα στοιχεια μιας λιστας μπορει να ειναι αλλες λιστες κ.ο.κ.
  20. Φαση 7: Θα δουμε πως μπορουμε να φτιαχνουμε πινακες. Ανοιξτε το αρχειο Tables.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εντολες που φτιαχνουν εναν πινακα. Εκτος απο τις εντολες που μας βαζουν στο περιβαλλον πινακα (tabular) δειτε το ορισμα της μορφης {l l l} ή {c c c} ή {r r r}. Αυτο καθοριζει ποσες στηλες θα εχει ο πινακας (=3 στην περιπτωση μας, =αριθμο γραμματων l ή c ή r σε αλλες περιπτωσεις). l=left, r=right, c=center και καθοριζει αν η στοιχιση της στηλης γινεται αριστερα, δεξια ή στο κεντρο αντιστοιχα. Δειτε τη διαφορα στον τριτο πινακα του αρχειου. Αν βαλουμε καθετες γραμμες | μεταξυ των γραμματων (π.χ. {|l | c | r |}, τοτε ο πινακας ζωγραφιζεται με γραμμες μεταξυ των στηλων. Για να κανουμε οριζοντιες γραμμες χρησιμοποιουμε την εντολη \hline. Σε καθε γραμμη του πινακα, χωριζουμε τα στοιχεια καθε στηλης με το χαρακτηρα & ενω αλλαζουμε γραμμη με \\. Δοκιμαστε να προσθεσετε γραμμες και στηλες στους πινακες του αρχειου.
  21. Φάση 8: Θα δουμε πως μπορουμε να εισαγουμε σχηματα σε ενα κειμενο. Ανοιξτε το αρχειο Figures.tex και κατοπιν μορφοποιηστε το. Παρατηρηστε τις εντολες που εισαγουν το σχημα στο κειμενο. Το σχημα βρισκεται σε εξωτερικο αρχειο σε μορφη eps (encapsulated postscript). Τετοια σχηματα μαθαμε να παραγουμε στο προηγουμενο εργαστηριο με το xfig και το gnuplot. Για την εισαγωγη σχηματων πρεπει να χρησιμοποιησουμε το προαιρετικο πακετο graficx του LaTeX, το οποιο εισαγεται στη μεταγλωττιση με την εντολη \usepackage[dvips]{graphicx}. Οι εντολες εισαγωγης του σχηματος ειναι οι \includegraphics[height=8cm]{nqser.eps} οπου nqser.eps ειναι το αρχειο με το σχημα και η επιλογη height καθοριζει το υψος του σχηματος σε εκατοστα στο κειμενο. Εξεταστε το αποτελεσμα των επιλογων width και angle στην τοποθετηση του σχηματος μεταβαλλοντας τα. Παρατηρηστε οτι στο περιβαλλον figure τα σχηματα αριθμουνται αυτοματα ενω με την εντολη \caption μπορουμε να εισαγουμε κειμενο που να τα περιγραφει. Το περιβαλλον figure δεν ειναι απαραιτητο για την εισαγωγη του σχηματος, απλα ρυθμιζει που θα τοποθετηθει το σχημα, την αριθμηση, την περιγραφη του και την αναφορα σε αυτο στο κειμενο (με τις εντολες \label, \ref).
  22. Για να παρετε υπογραφη σημερα στα ερωτηματολογια πρεπει να κανετε ... γραπτη αιτηση. Στον υποκαταλογο ~/Ergasthria/10/paradeigmata/Gramma/ θα βρητε υποδειγμα γραμματος. Δειτε πρωτα μορφοποιωντας το ποια ειναι τα στοιχεια του και πως καθοριζονται. Στη συνεχεια υποβαλλετε την αιτηση σε δικο σας γραμμα με τα στοιχεια του αποστολεα δικα σας (με διευθυνση κλπ), παραληπτη τον βοηθο σας (με διευθυνση Τμημα Φυσικης, Πανεπιστημιο Κρητης, 710 03 Ηρακλειο, τηλ. 2810394300, φαξ 2810394301) και σημερινη ημερομηνια. Τυπωστε το (δειτε παραπανω πως...), υπογραψτε το και ελπιζω η αιτηση σας να .... γινει δεκτη. Τα παραπονα σας στο συνηγορο του πολιτη.
  23. Καθαριστε τους υποκαταλογους στους οποιους τρεξατε το LaTeX, ιδιως απο τα αρχεια .ps, .dvi. Πιανουν αρκετο χωρο και μπορει να συνεισφερουν στο γεμισμα της περιοχης σας.