Μάθημα 14

Γραμματοσειρές και μηχανές Unicode

Αυτό το μάθημα δίνει κάποιες πληροφορίες για το πώς το LaTeX ερμηνεύει κείμενα σε Unicode και πώς αυτό επηρεάζει αυτά που γράφετε και τις γραμματοσειρές που χρησιμοποιείτε. Θα μάθετε για την υποστήριξη Unicode και γραμματοσειρών OpenType.

Όταν το TeX και το LaTeX άρχισαν να χρησιμοποιούνται ευρέως, μπορούσαν να χειριστούν κυρίως τις γλώσσες της Δυτικής Ευρώπης, και με πρόσθετα πακέτα κάποιες άλλες γλώσσες όπως Ελληνικά και Ρωσικά.

Τόνοι και τονούμενοι χαρακτήρες

Αρχικά, οι τόνοι και οι τονούμενοι χαρακτήρες πληκτρολογούνταν χρησιμοποιώντας ακολουθίες ελέγχου ή μακροεντολές όπως \c{c} για ‘ç’ και \'e για ‘é’. Αν και κάποιοι συνεχίζουν να χρησιμοποιούν αυτές τις μεθόδους εισαγωγής επειδή είναι αρκετά εύκολες στην πληκτρολόγηση, άλλοι ήθελαν να μπορούν να χρησιμοποιούν τα πλήκτρα στα πληκτρολόγιά τους για να εισάγουν τέτοια σύμβολα απευθείας.

Πριν από το Unicode, το LaTeX παρείχε υποστήριξη για πολλούς τύπους κωδικοποίησης αρχείων, κάτι που επέτρεπε να γράφεται εγγενώς το κείμενο σε διάφορες γλώσσες — για παράδειγμα, χρησιμοποιώντας την κωδικοποίηση latin1 οι Γάλλοι χρήστες μπορούσαν να γράψουν ‘déjà vu’ και το LaTeX θα μετέφραζε εσωτερικά τους τονισμένους χαρακτήρες σε εντολές TeX για να παραγάγει την σωστή έξοδο.

Αυτή η προσέγγιση ακολουθείται ακόμα στο σύγχρονο LaTeX όταν χρησιμοποιείται η μηχανή pdflatex. Από προεπιλογή, θεωρείται ότι όλα τα αρχεία είναι Unicode (κωδικοποιημένα σε UTF-8) εκτός αν οριστεί διαφορετικά. Αν και αυτή η μηχανή περιορίζεται σε γραμματοσειρές 8-bit, μπορούν να υποστηριχθούν οι περισσότερες ευρωπαϊκές γλώσσες.

Επιλογή γραμματοσειρών

Η επιλογή γραμματοσειρών με το pdflatex χρησιμοποιεί το σύστημα επιλογής γραμματοσειρών του LaTeX, και σήμερα σε μια τυπική διανομή LaTeX υπάρχουν πολλές γραμματοσειρές έτοιμες προς χρήση. Για παράδειγμα, οι γραμματοσειρές TeX Gyre είναι ένα σύνολο υψηλής ποιότητας γραμματοσειρών που βασίζονται σε κοινές γραμματοσειρές με τις οποίες οι περισσότεροι είναι εξοικειωμένοι, όπως οι Times, Helvetica, Palatino και άλλες. Για να φορτώσετε αυτές τις γραμματοσειρές, αρκεί να φορτώσετε ένα πακέτο με το κατάλληλο όνομα. Για μια γραμματοσειρά που μοιάζει με Times, το όνομα της γραμματοσειράς TeX Gyre είναι Termes:

\usepackage{tgtermes}

Για το pdflatex, οι περισσότερες γραμματοσειρές είναι προσβάσιμες μέσω πακέτων. Μπορείτε να δείτε το The LaTeX Font Catalogue ή τη σελίδα του CTAN για το θέμα ‘Font’ για μερικές επιλογές. Μπορείτε επίσης να αναζητήσετε στο Διαδίκτυο τη γραμματοσειρά που θέλετε και να προσπαθήσετε να βρείτε ένα πακέτο συμβατό με το pdflatex. Αν θέλετε να χρησιμοποιήσετε μια γραμματοσειρά που δεν διατίθεται ελεύθερα, μπορείτε να αναζητήσετε έναν κατάλληλο κλώνο, ο οποίος για τις περισσότερες εφαρμογές είναι αρκετά παρόμοιος με την πρωτότυπη.

Η εποχή του Unicode

Καθώς το pdflatex περιορίζεται σε κωδικοποιήσεις αρχείων 8-bit και γραμματοσειρές 8-bit, δεν μπορεί να χρησιμοποιήσει εγγενώς σύγχρονες γραμματοσειρές OpenType και να εναλλάξει εύκολα μεταξύ γλωσσών που χρησιμοποιούν διαφορετικά αλφάβητα. Υπάρχουν δύο αντικαταστάτες του pdfTeX που χρησιμοποιούν εγγενώς Unicode και σύγχρονες γραμματοσειρές: τα XeTeX και LuaTeX. Για το LaTeX, αυτά συνήθως καλούνται στον επεξεργαστή σας χρησιμοποιώντας τα προγράμματα xelatex και lualatex αντίστοιχα.

Σε αυτές τις μηχανές, η επιλογή γραμματοσειρών γίνεται με το πακέτο fontspec και για απλά έγγραφα μπορεί να είναι απλώς:

\usepackage{fontspec}
\setmainfont{texgyretermes-regular.otf}

Αυτό επιλέγει τη γραμματοσειρά TeX Gyre Termes, όπως και στο παράδειγμα με το pdflatex παραπάνω. Επισημαίνεται ότι αυτή η προσέγγιση λειτουργεί για οποιαδήποτε γραμματοσειρά OpenType. Ορισμένες γραμματοσειρές που είναι διαθέσιμες για pdflatex είναι επίσης διαθέσιμες για xelatex και lualatex μέσω των αντίστοιχων πακέτων τους, ή φορτώνοντας οποιαδήποτε γραμματοσειρά έχετε εγκατεστημένη στον υπολογιστή σας χρησιμοποιώντας το fontspec όπως φαίνεται παραπάνω.

Το The LaTeX Font Catalogue περιέχει επίσης γραμματοσειρές διαθέσιμες σε μορφή OpenType, συνεπώς μπορείτε να το χρησιμοποιήσετε ως μία πηγή για αναζήτηση γραμματοσειρών, όπως και τη σελίδα του CTAN που αναφέρθηκε νωρίτερα.

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

% !TEX xelatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont{texgyretermes-regular.otf}
\newfontfamily\cjkfont{FandolSong-Regular.otf}
\begin{document}

ABC → αβγ → {\cjkfont 你好}

\end{document}

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