Κυριακή 27 Νοεμβρίου 2011

οδηγίες σύνταξης για το ΛΑΤΕΧ (Από το Φόρουμ του Μαθηματικού Τμήματος Αθηνών)

Το παρακάτω κείμενο αποτελεί μια απόπειρα καθοδήγησης στις μεθόδους γραφής μαθηματικών τύπων στο forum. Ο οδηγός αυτός σε καμία περίπτωση δεν αποτελεί πλήρες εγχειρίδιο \LaTeX, αλλά μια εισαγωγή στην νοοτροπία της (σε ό,τι αφορά τα μαθηματικά της πάντα!). Αν θέλετε να εμβαθύνετε, μπορείτε να μαθαίνετε από τον κώδικα που γράφουν οι συν-forumίτες σας, να ποστάρετε ερωτήσεις, ή ακόμα καλύτερα, να αρχίσετε να διαβάζετε κάποιο καλό LaTeX ebook.

Οι νεοφώτιστοι στη \LaTeX θα διαπιστώσετε πόσο εύκολα και γρήγορα μπορούμε να γράφουμε σύνθετα μαθηματικά σύμβολα.
Στους ήδη γνώστες, θα ήθελα να τονίσω για ακόμα μια φορά ότι το feature περιορίζεται στη συγγραφή μαθηματικών τύπων, και όχι πλήρων κειμένων \LaTeX. Με άλλα λόγια το χρησιμοποιείτε μόνο για ότι θα γράφατε άναμεσα στα "$$". Για το υπόλοιπο κείμενο, υπάρχουν οι γνωστές και μη εξαιρετέες λειτουργίες που παρέχει το forum :)

Ας μπούμε όμως στο ψητό...
Καταρχάς, ό,τι θέλουμε να μεταφραστεί σε \LaTeX, θα πρέπει να τοποθετείται ανάμεσα στα tags [tex] και [/tex]. Ας δούμε ένα απλό παράδειγμα:

To [tex]x^2 + y^2 = 3[/tex] θα μας δώσει x^2 + y^2 = 3.
Όπως θα καταλάβατε, το "^" υποδηλώνει ύψωση σε εκθέτη. Ας πούμε τώρα ότι θέλουμε να δώσουμε στις μεταβλητές μας και ένα δείκτη. Για το σκοπό αυτό χρησιμοποιούμε το underscore "_":
Το [tex]x_1^2 + x_2^2 = 1[/tex] θα μας δώσει x_1^2 + x_2^2 = 1
Όταν ο εκθέτης/δείκτης μας είναι κάπως πιο σύνθετος, θα πρέπει να δηλώσουμε ρητώς τα όρια αυτού με χρήση αγκυλών:
Πχ, το [tex]e^{i \pi} = -1[/tex] θα μας δώσει e^{i \pi} = -1

Γενικά, οι αγκύλες στη \LaTeX αποτελούν οριοθέτες των ορισμάτων που δέχονται οι εντολές της. (κάτι αντίστοιχο με τις παρανθέσεις που συναντάμε στις περισσότερες γλώσσες προγραμματισμού)

Για να γράψουμε ένα κλάσμα, χρησιμοποιούμε την εντολή \frac{αριθμητής}{παρονομαστής}:
Code:
[tex] \frac{1}{2^n} \rightarrow 0[/tex]

\frac{1}{2^n} \rightarrow 0.

Πάμε τώρα σε κάτι προχωρημένο: Ας πούμε ότι θέλουμε να γράψουμε ένα ολοκλήρωμα. Το σύμβολο του ολοκληρώματος τοποθετείται με την εντολή \int (integral). Ο προσδιορισμός των ορίων του είναι πολύ απλή υπόθεση: Το κάτω όριο είναι ο δείκτης του ολοκληρώματος, ενώ το πάνω είναι ο εκθέτης:
Code:
[tex] \int_a^b f(t) dt = 1 [/tex]
που μας δίνει \int_a^b f(t) dt = 1
Με τρόπο αντίστοιχο γράφονται τα αθροίσματα:
Code:
[tex] \sum_{n=0}^{\infty} \frac{1}{n!} = e [/tex]
που μας δίνει \sum_{n=0}^{\infty} \frac{1}{n!} = e.

Παρατηρήστε ότι μπορούμε πάντοτε να βλέπουμε τον κώδικα ενός μαθηματικού τύπου άμα περάσουμε τον κέρσορα του mouse πάνω από την αντίστοιχη εικόνα, κάτι ιδιαίτερα χρήσιμο:

Ας δούμε μερικά απλά παραδείγματα:
1 < 2
0 < x \leq 1 \Rightarrow x^{-1} \geq 1
A, B \subset X.
A \cup B = X.
A \cap B = \emptyset
x \in A  \Rightarrow x \notin B
X = \bigcup_{n=1}^{\infty}A_n
(\alpha_n) \subseteq \mathbb{R}

\alpha_n \rightarrow \alpha \Leftrightarrow \forall \epsilon > 0, \exists n_0 \in \mathbb{N}: \forall n \geq n_0 \Rightarrow | \alpha_n - \alpha | < \epsilon

Ας υποθέσουμε ότι θέλουμε να παραστήσουμε τon τύπο της Ευκλείδειας νόρμας. Ο λογικός τρόπος θα ήταν γράψουμε τον τύπο ως εξής:
Code:
( \sum_{i=1}^n |x_i|^2 )^{1/2}

Μια τέτοια προσέγγιση θα μας δώσει ένα μάλλον άσχημο αποτέλεσμα: ( \sum_{i=1}^n |x_i|^2 )^{1/2}
Οι παρενθέσεις είναι πολύ πιο μικρές από το περιεχόμενό τους. Το πρόβλημα αυτό λύνεται άμα δηλώσουμε κάπως πιο "φανερά" τα όρια των παρενθέσεων. Αυτό επιτυγχάνεται με τη χρήση των εντολών \left και \right:
Code:
  \left(   \sum_{i=1}^n |x_i|^2  \right)  ^{1/2}

που μας δίνει ένα πολύ πιο όμορφο αποτέλεσμα: \left(   \sum_{i=1}^n |x_i|^2  \right)  ^{1/2}
Τα \left και \right είναι πολύ χρήσιμα στην παράσταση εσωτερικών γινομένων : Αν γράψουμε απλώς θα λάβουμε <x,y>, που μας φαίνεται κάπως περίεργο καθώς η \LaTeX μεταφράζει τα <,> ως ανισότητες. Ο σωστός τρόπος είναι να γράψουμε
Code:
\left< x, y \right>

που θα μας δώσει \left< x, y \right>

Ας πάμε τώρα σε κάτι πιο δύσκολο..
Έστω ότι θέλουμε να γράψουμε τον πίνακα \left( \begin{array}{c c c} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
Σας γράφω ευθύς αμέσως τον κώδικα:
Code:
\left(
\begin{array}{c c c}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{array}
\right)

  • Τα \left( και \right) δημιουργούν τις παρενθέσεις γύρω από τα στοιχεία του πίνακα κατά τον τρόπο που εξηγήσαμε προηγουμένως
  • Τα \begin{array} και \end{array} ορίζουν τη δημιουργία ενός πίνακα. Αυτός δεν είναι ένας πίνακας κατά την αυστηρή μαθηματική έννοια, αλλά αποτελεί μια γενικότερη δομή που συναντάται στις markup γλώσσες. Όσοι γνωρίζουν html θα καταλαβαίνουν τι εννοώ. Δεν απότελει ωστόσο στόχος του παρόντος άρθρου η εμβάθυνση στους πίνακες της \LaTeX.
  • Το όρισμα {c c c} εν ολίγοις υποδεικνύει το πλήθος των στηλών που θα έχει ο πίνακας. 3 c σημαίνει 3 στήλες. O χαρακτήρας "c" (center) υποδηλώνει την ευθυγράμιση των στοιχείων της συγκεκριμένης στήλης. Εναλλακτικές επιλογές αποτελούν τα "l" (left) και "r" (right)
  • Tέλος, στο εσωτερικό της εντολής γίνεται η εισαγωγή των στοιχείων του πίνακα. Τα στοιχεία διαχωρίζονται με τη χρήση του "&" ενώ με το "\\" δηλώνουμε αλλαγή γραμμής

Θέλω να γράψω τώρα τη "δίκλαδη" ακολουθία a_n = \left\{ \begin{array}{c l}n^2, & n = 2k \\ 0 , & n = 2k+1 \end{array} \right.
Αυτό μπορεί να γίνει πάλι με χρήση πινάκων:
Code:
a_n = \left\{
\begin{array}{ c l }
n^2,   &    n = 2k  \\
0,   &    n = 2k + 1
\end{array}
\right.

Εδώ να σημειώσουμε ότι όποτε θέλουμε να εμφανίσουμε μια αγκύλη, θα πρέπει πάντοτε στον κώδικα μας να γράφουμε \{, ώστε να αποφεύγεται η σύγχυση με τις αγκύλες που καθορίζουν ορίσματα. To \right. που γράψαμε στο τέλος είναι απλώς ένα θέμα ορθότητας του κώδικά μας. Με αυτό "κλείνουμε" την αριστερή αγκύλη που ανοίξαμε, χωρίς ωστόσο να εμφανίζεται κάποιος χαρακτήρας από τα δεξιά.

Όπως είπαμε προηγουμένως, η \LaTeX του forum περιορίζεται στη δημιουργία μαθηματικών τύπων και όχι στη συγγραφή κειμένου. Τι συμβαίνει όμως στην περίπτωση που θέλουμε να επισυνάψουμε κείμενο μέσα στους μαθηματικούς μας τύπους; Για παράδειγμα, f(x) = \left\{ \begin{array}{c l} 1, & x  \;\textrm{\gr Ï�ηÏ�Ï�Ï�} \\ 0, & x \;\textrm{\gr άÏ�Ï�ηÏ�οÏ�} \end{array} \right.
Ένας τρόπος να συμβεί αυτό είναι με την εντολή \textrm:
Code:
\textrm{Hello, World!}

\textrm{Hello, World!}
Παρατηρήστε ότι εάν προσπαθήσουμε να γράψουμε απευθείας με ελληνικούς χαρακτήρες θα συναντήσουμε περίεργα αποτελέσματα:
Code:
\textrm{Γειά Χαραντάν!}

\textrm{�ειά Χα�αν�άν!}
Αυτό συμβαίνει επειδή η \LaTeX περιμένει να δηλωθεί ρητώς η γλώσσα που θα χρησιμοποιηθεί. Ας κάνουμε μια μικρή αλλαγή στον κώδικα μας:
Code:
\textrm{\gr Γειά Χαραντάν!}

\textrm{\gr �ειά Χα�αν�άν!}
Χρησιμοποιούμε τις εντολές \en και \gr για να κάνουμε εναλλαγές μεταξύ ελληνικών και αγγλικών χαρακτήρων. Η default γλώσσα είναι τα αγγλικά:
Code:
\textrm{\gr οι χώροι \en Hilbert \gr είναι και χώροι \en Banach}

\textrm{\gr οι ���οι \en Hilbert \gr είναι και ���οι \en Banach}
Μπορούμε επίσης να χρησιμοποιούμε greeklish για να γράφουμε ελληνικά:
Code:
\textrm{\gr Gei'a Qarant'an}

\textrm{\gr Gei'a Qarant'an}

Τι συμβαίνει στην περίπτωση που θέλουμε να χρησιμοποιήσουμε ελληνικούς χαρακτήρες ως μαθηματικά σύμβολα; Η προσέγγιση εδώ διαφέρει κάπως
Code:
Ε = 2 \textrm{\gr π} r     % όχι καλός κώδικας!!


H \LaTeX διαθέτει έτοιμες εντολές για τα γράμματα του ελληνικού αλφαβήτου, ανεξαρτήτως γλώσσας που χρησιμοποιείται:
Code:
\alpha, \beta, \gamma, \delta, \epsilon, \zeta, \eta, \theta, \iota,
\kappa, \lambda, \mu, \nu, \xi, o, \pi, \rho, \sigma, \tau,
\upsilon, \phi ,\varphi, \chi, \psi, \omega

\alpha, \beta, \gamma, \delta, \epsilon, \zeta, \eta, \theta, \iota,
\kappa, \lambda, \mu, \nu, \xi, o, \pi, \rho, \sigma, \tau,
\upsilon, \phi ,\varphi, \chi, \psi, \omega
ενώ για κεφαλαία γράφουμε:
Code:
\Pi, \Omega, \Gamma, \Lambda, \Xi

\Pi, \Omega, \Gamma, \Lambda, \Xi
Επομένως, η σωστή μορφή του προηγουμένου τύπου είναι:
Code:
E = 2 \pi r


Κάπου εδώ τελειώνει αυτή η εισαγωγή στα μαθηματικά της \LaTeX. Σε καμία περίπτωση δε μπορούμε να πούμε ότι τώρα γνωρίζετε να γράφετε σε \LaTeX (ούτε ο γράφων δε μπορεί να το ισχυριστεί αυτό). Ωστόσο ελπίζουμε ότι πλέον κατέχετε τα στοιχειώδη και μπορείτε να συμβάλετε (έστω κατά το ελάχιστο) στις μαθηματικές συζητήσεις του forum. Προπαντώς θα πρέπει να εξασκείστε και να πειραματίζεστε και να μη διστάζετε να κάνετε ερωτήσεις! Για μια πιο πλήρη βιβλιογραφία πάνω στη \LaTeX γενικότερα, σας παραπέμπω στο αντίστοιχο section του mathimatiko.net
Happy \TeX-ing! :mrgreen:

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου