Skip to content

Commit 78b704e

Browse files
committed
language-01 for greek
1 parent 86b9321 commit 78b704e

1 file changed

Lines changed: 195 additions & 14 deletions

File tree

el/language-01.md

Lines changed: 195 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,211 @@
11
---
22
layout: "lesson"
33
lang: "el"
4-
title: "Language-specifics for English"
5-
description: "This lesson shows language-specific details for typesetting with LaTeX in English. The focus is on hyphenation, where UK and US traditions are different."
4+
title: "Γράφοντας ελληνικά με το LaTeX"
5+
description: "Αυτό το μάθημα παρουσιάζει τα βασικά στοιχεία για την υποστήριξη της ελληνικής γλώσσας από το LaTeX."
66
next: "extra-01"
7-
toc-anchor-text: "English Language-specifics"
8-
toc-description: "Typesetting with LaTeX in English."
7+
toc-anchor-text: "Γράφοντας ελληνικά με το LaTeX"
8+
toc-description: "Υποστήριξη της ελληνικής γλώσσας στο LaTeX."
99
---
1010

11-
# Language-specifics for English
11+
# Υποστήριξη της ελληνικής γλώσσας στο LaTeX
1212

1313
<span
14-
class="summary">This lesson shows language-specific details for typesetting with LaTeX in English with a focus on hyphenation, where UK and US traditions are different.</span>
14+
class="summary">Αυτό το μάθημα παρουσιάζει τα βασικά στοιχεία για την υποστήριξη της ελληνικής γλώσσας στο LaTeX.</span>
1515

16-
## Hyphenation
16+
## Γενικά
1717

18-
LaTeX was written for use with English, and so there are very few
19-
language-specific issues facing authors in English. The main one
20-
is hyphenation: UK and US traditions are different. LaTeX starts out
21-
using US English patterns, but you can switch to UK ones using `babel`.
18+
Στο [μάθημα 14](./lesson-14) είδαμε κάποιες βασικές πληροφορίες για τη χρήση του LaTeX για γλώσσες εκτός της αγγλικής.
19+
20+
Η εργασία με τα ελληνικά στο LaTeX είναι πλέον εύκολη, χάρη στις μηχανές `lualatex` και `xelatex`,
21+
οι οποίες υποστηρίζουν Unicode. Έτσι, οι ελληνικοί χαρακτήρες μπορούν να
22+
πληκτρολογηθούν απευθείας στο αρχείο με τον κώδικα LaTeX (αρκεί αυτό να είναι κωδικοποιημένο σε UTF-8
23+
και όχι σε κωδικοποιήσεις 8-bit των ελληνικών όπως ISO-8859-7 ή Windows-1253).
24+
Επίσης, οι μηχανές αυτές χρησιμοποιούν τις γραμματοσειρές TrueType και OpenType που έχουμε στον υπολογιστή μας,
25+
πολλές από τις οποίες διαθέτουν πλήρες σύνολο ελληνικών χαρακτήρων.
26+
27+
Η παλαιότερη μηχανή `pdflatex` δεν υποστηρίζει Unicode και έτσι πρέπει να χρησιμοποιηθούν ειδικά πακέτα
28+
για την υποστήριξη της ελληνικής γλώσσας (όπως και όλων των άλλων γλωσσών που δεν χρησιμοποιούν το βασικό λατινικό (αγγλικό) αλφάβητο).
29+
Επίσης, η μηχανή αυτή χρησιμοποιεί γραμματοσειρές ειδικής μορφής, και έτσι υπάρχουν πολύ λιγότερες τέτοιες γραμματοσειρές που περιέχουν τους ελληνικούς χαρακτήρες.
30+
31+
Πέρα, όμως, από την εισαγωγή των χαρακτήρων, για τη σωστή υποστήριξη της ελληνικής γλώσσας απαιτούνται και πολλές άλλες λειτουργίες, όπως η υποστήριξη συλλαβισμού των ελληνικών λέξεων, η μετάφραση τυπικών όρων («Κεφάλαιο», «Πίνακας περιεχομένων» κ.λπ.), η αντίστοιχη εμφάνιση της ημερομηνίας, η προσαρμογή της αλφαβητικής αρίθμησης («α, β, γ» αντί για «a, b, c»), κ.ά. Στο LaTeX υπάρχουν μερικά πακέτα που υλοποιούν αυτές τις λειτουργίες:
32+
33+
- Το πακέτο [babel](https://ctan.org/pkg/babel) παρέχει υποστήριξη για πολλές γλώσσες, σε όλες τις σύγχρονες μηχανές (`lualatex`, `xelatex`, `pdflatex`).
34+
- Το πακέτο [polyglossia](https://ctan.org/pkg/polyglossia) παρέχει υποστήριξη για πολλές γλώσσες, αλλά μόνο στις μηχανές `lualatex` και `xelatex`.
35+
- Το πακέτο [xgreek](https://ctan.org/pkg/xgreek) παρέχει υποστήριξη μόνο για την ελληνική γλώσσα, και μόνο στις μηχανές `lualatex` και `xelatex`.
36+
37+
Παρακάτω θα παρουσιάσουμε τη χρήση του πακέτου `babel`, καθώς μπορεί να χρησιμοποιηθεί με όλες τις μηχανές LaTeX και είναι αυτό που υποστηρίζεται επίσημα από το έργο LaTeX. Επίσης, θα επικεντρωθούμε στη χρήση της μηχανής `lualatex`, η οποία είναι πλέον η προτεινόμενη μηχανή για χρήση με το LaTeX.
38+
39+
40+
## Εργασία με το LuaLaTeX
41+
42+
Το ακόλουθο είναι ένα τυπικό παράδειγμα εγγράφου που περιέχει ελληνικό κείμενο.
43+
44+
```latex
45+
%!TEX program=lualatex
46+
47+
\documentclass{report}
48+
49+
\usepackage[greek]{babel}
50+
\babelfont{rm}{NewComputerModern10}
51+
52+
\begin{document}
53+
54+
\chapter{Πρώτο κεφάλαιο}
55+
56+
\today
57+
58+
Όλοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην αξιοπρέπεια και τα δικαιώματα.
59+
Είναι προικισμένοι με λογική και συνείδηση,
60+
και οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης.
61+
62+
Κάθε άνθρωπος δικαιούται να επικαλείται όλα τα δικαιώματα και όλες τις ελευθερίες
63+
που προκηρύσσει η παρούσα Διακήρυξη, χωρίς καμία απολύτως διάκριση, ειδικότερα ως
64+
προς τη φυλή, το χρώμα, το φύλο, τη γλώσσα, τις θρησκείες, τις πολιτικές
65+
ή οποιεσδήποτε άλλες πεποιθήσεις, την εθνική ή κοινωνική καταγωγή, την περιουσία,
66+
τη γέννηση ή οποιαδήποτε άλλη κατάσταση.
67+
68+
\end{document}
69+
```
70+
71+
Στη γραμμή 5 φορτώνουμε το πακέτο `babel` με την επιλογή `greek`. Παρατηρήστε ότι ο όρος «Κεφάλαιο» και η ημερομηνία εμφανίζονται στα ελληνικά, και επίσης οι λέξεις είναι σωστά συλλαβισμένες.
72+
73+
Στη γραμμή 6 χρησιμοποιούμε την εντολή `\babelfont` για να ορίσουμε τη βασική γραμματοσειρά (`rm`) του κειμένου. Η εντολή αυτή παρέχει έναν πιο εύχρηστο τρόπο ορισμού γραμματοσειρών σε σχέση με τις εντολές του πακέτου `fontspec` και μάλιστα ανά γλώσσα για μεικτά κείμενα (αν, π.χ. η γραμματοσειρά που χρησιμοποιούμε για τα αγγλικά δεν περιέχει ελληνικούς χαρακτήρες). Εδώ χρησιμοποιήσαμε τη γραμματοσειρά [New Computer Modern](https://ctan.org/pkg/newcomputermodern), η οποία υπάρχει στις διανομές LaTeX και περιέχει τους ελληνικούς χαρακτήρες&#903; θα μπορούσατε όμως να χρησιμοποιήσετε οποιαδήποτε γραμματοσειρά έχετε στον υπολογιστή σας, π.χ.
74+
75+
```latex
76+
\babelfont{rm}{Times New Roman}
77+
\babelfont{sf}{Arial}
78+
\babelfont{tt}{Courier New}
79+
```
80+
{: .noedit :}
81+
82+
83+
Αν το έγγραφό μας περιέχει και αγγλικό κείμενο, πρέπει να προσθέσουμε την επιλογή `english` όταν φορτώνουμε το πακέτο `babel`:
84+
85+
```latex
86+
\usepackage[english, greek]{babel}
87+
```
88+
{: .noedit :}
89+
90+
Η _τελευταία_ επιλογή καθορίζει την κύρια γλώσσα του εγγράφου: είναι η γλώσσα στην οποία εμφανίζονται οι τυπικοί όροι (όπως «Κεφάλαιο», «Πίνακας περιεχομένων» κ.λπ.) και η ημερομηνία, καθώς και η γλώσσα που χρησιμοποιείται για τον συλλαβισμό των λέξεων.
91+
92+
93+
94+
Με την εντολή `\selectlanguage{english}` αλλάζουμε τη γλώσσα του εγγράφου σε αγγλικά (από εκείνο το σημείο και μέχρι να υπάρξει άλλη τέτοια εντολή, π.χ. `\selectlanguage{greek}`). Για σύντομα τμήματα κειμένου στην άλλη γλώσσα μπορούμε να χρησιμοποιήσουμε τις εντολές `\foreignlanguage{english}{english text}` ή αντίστοιχα `\foreignlanguage{greek}{ελληνικό κείμενο}`. Η επισήμανση της γλώσσας είναι χρήσιμη ώστε αν η λέξη βρεθεί στο τέλος της γραμμής να συλλαβιστεί σωστά.
95+
96+
Είναι εμφανές ότι η εναλλαγή γλώσσας με αυτό τον τρόπο δεν είναι καθόλου βολική. Ευτυχώς, επειδή το αγγλικό και το ελληνικό αλφάβητο είναι διαφορετικά μεταξύ τους, το `babel` με το `lualatex` μπορεί να ανιχνεύσει αυτόματα τη γλώσσα σε κάθε σημείο του κειμένου. Για να γίνει αυτό, πρέπει να φορτώσουμε λίγο διαφορετικά τις γλώσσες:
97+
98+
```latex
99+
%!TEX program=lualatex
100+
101+
\documentclass{report}
102+
103+
\usepackage{babel}
104+
\babelprovide[
105+
import=el,
106+
main,
107+
onchar=ids fonts,
108+
]{greek}
109+
\babelprovide[
110+
import,
111+
onchar=ids fonts
112+
]{english}
113+
\babelfont{rm}{NewComputerModern10}
114+
115+
\begin{document}
116+
117+
\chapter{Πρώτο κεφάλαιο}
118+
119+
\today
120+
121+
Όλοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην αξιοπρέπεια και τα δικαιώματα.
122+
Είναι προικισμένοι με λογική και συνείδηση,
123+
και οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης.
124+
125+
Κάθε άνθρωπος δικαιούται να επικαλείται όλα τα δικαιώματα και όλες τις ελευθερίες
126+
που προκηρύσσει η παρούσα Διακήρυξη, χωρίς καμία απολύτως διάκριση, ειδικότερα ως
127+
προς τη φυλή, το χρώμα, το φύλο, τη γλώσσα, τις θρησκείες, τις πολιτικές
128+
ή οποιεσδήποτε άλλες πεποιθήσεις, την εθνική ή κοινωνική καταγωγή, την περιουσία,
129+
τη γέννηση ή οποιαδήποτε άλλη κατάσταση.
130+
131+
\chapter{Δεύτερο κεφάλαιο}
132+
133+
\today
134+
135+
All human beings are born free and equal in dignity and rights.
136+
They are endowed with reason and conscience
137+
and should act towards one another in a spirit of brotherhood.
138+
139+
Everyone is entitled to all the rights and freedoms set forth in this Declaration,
140+
without distinction of any kind, such as race, colour, sex, language, religion,
141+
political or other opinion, national or social origin, property,
142+
birth or other status.
143+
\end{document}
144+
```
145+
146+
Παρατηρήστε ότι οι τυπικοί όροι και η ημερομηνία εμφανίζονται παντού στα ελληνικά, την κύρια γλώσσα του κειμένου.
147+
148+
Επισημαίνεται ότι η αυτόματη ανίχνευση της γλώσσας δουλεύει με τον τρόπο αυτό μόνο με το `lualatex`. Για το `xelatex` υπάρχει άλλος μηχανισμός, που όμως δεν καλύπτεται εδώ.
149+
150+
151+
## Εργασία με το pdflatex
152+
153+
Για ιστορικούς λόγους, δίνουμε ένα παράδειγμα ελληνικού κειμένου για το `pdflatex`.
22154

23155
```latex
24156
\documentclass{article}
25-
\usepackage[T1]{fontenc}
26-
\usepackage[UKenglish]{babel}
157+
\usepackage[LGR]{fontenc}
158+
\usepackage[english, greek]{babel}
159+
27160
\begin{document}
28-
Some text
161+
162+
\today
163+
164+
Όλοι οι άνθρωποι γεννιούνται ελεύθεροι και ίσοι στην αξιοπρέπεια και τα δικαιώματα.
165+
Είναι προικισμένοι με λογική και συνείδηση,
166+
και οφείλουν να συμπεριφέρονται μεταξύ τους με πνεύμα αδελφοσύνης.
167+
168+
Κάθε άνθρωπος δικαιούται να επικαλείται όλα τα δικαιώματα και όλες τις ελευθερίες
169+
που προκηρύσσει η παρούσα Διακήρυξη, χωρίς καμία απολύτως διάκριση, ειδικότερα ως
170+
προς τη φυλή, το χρώμα, το φύλο, τη γλώσσα, τις θρησκείες, τις πολιτικές
171+
ή οποιεσδήποτε άλλες πεποιθήσεις, την εθνική ή κοινωνική καταγωγή, την περιουσία,
172+
τη γέννηση ή οποιαδήποτε άλλη κατάσταση.
173+
174+
\selectlanguage{english}
175+
176+
\today
177+
178+
All human beings are born free and equal in dignity and rights.
179+
They are endowed with reason and conscience
180+
and should act towards one another in a spirit of brotherhood.
181+
182+
Everyone is entitled to all the rights and freedoms set forth in this Declaration,
183+
without distinction of any kind, such as race, colour, sex, language, religion,
184+
political or other opinion, national or social origin, property,
185+
birth or other status.
29186
\end{document}
30187
```
188+
189+
Εδώ απαιτείται επιπλέον η χρήση του πακέτου `fontenc` για τη σωστή κωδικοποίηση των ελληνικών χαρακτήρων. Δεν θέτουμε κάποια γραμματοσειρά και χρησιμοποιείται η προεπιλεγμένη γραμματοσειρά του `pdflatex`&#903; η εντολή `\babelfont` δεν μπορεί να χρησιμοποιηθεί εδώ καθώς αυτή αφορά μόνο τις μηχανές `lualatex` και `xelatex`. Τέλος, δεν υπάρχει μηχανισμός για αυτόματη ανίχνευση της γλώσσας, και πρέπει να χρησιμοποιήσουμε την εντολή `\selectlanguage` (ή την `\foreignlanguage`) για την αλλαγή γλώσσας.
190+
191+
## Περισσότερες πληροφορίες
192+
193+
Το CTAN έχει ειδικές ενότητες με όλα τα [πακέτα που σχετίζονται με την ελληνική γλώσσα](https://ctan.org/topic/greek) καθώς και με όλες τις [γραμματοσειρές που υποστηρίζουν ελληνικά](https://ctan.org/topic/font-greek). Αυτά αφορούν κυρίως το `pdflatex`, το οποίο είχε περιορισμούς και δυσκολίες στη χρήση άλλων γλωσσών εκτός από την αγγλική, όπως έχουμε αναφέρει.
194+
195+
## Ασκήσεις
196+
197+
Στο δεύτερο παράδειγμα, με το ελληνικό και αγγλικό κείμενο που χρησιμοποιεί το `lualatex`, δοκιμάστε να μην φορτώσετε το πακέτο `babel`, βάζοντας σε σχόλιο τις γραμμές 5-15 και προσθέτοντας
198+
199+
```latex
200+
\usepackage{fontspec}
201+
\setmainfont{NewComputerModern10}
202+
```
203+
{: .noedit :}
204+
205+
206+
Θα παρατηρήσετε ότι το κείμενο εμφανίζεται κανονικά, καθώς η μηχανή `lualatex` υποστηρίζει πλήρως το Unicode, όμως δεν γίνεται συλλαβισμός των ελληνικών λέξεων, και οι όροι όπως «Κεφάλαιο» και η ημερομηνία εμφανίζονται στα αγγλικά.
207+
208+
Στο παράδειγμα με το `pdflatex` δοκιμάστε να βάλετε σε σχόλιο τη γραμμή 19 που αλλάζει τη γλώσσα σε αγγλικά, και παρατηρήστε τι συμβαίνει στο αγγλικό κείμενο.
209+
210+
Αν γνωρίζετε κάποια άλλη ξένη γλώσσα εκτός από τα αγγλικά, δοκιμάστε να φτιάξετε ένα έγγραφο και με αυτή τη γλώσσα. Παρατηρήστε όμως ότι, αν η γλώσσα χρησιμοποιεί το λατινικό αλφάβητο (π.χ. γαλλικά, ιταλικά), δεν θα μπορεί να γίνει αυτόματη ανίχνευση της γλώσσας και θα πρέπει να επισημαίνετε εσείς τη γλώσσα κάθε τμήματος του κειμένου.
211+

0 commit comments

Comments
 (0)