Introduction

This article explains how to typeset Greek text and provide support for language-specific features such as hyphenation.

Greek example using pdfLaTeX

We’ll start with the following pdfLaTeX example which you can open in Overleaf using the link below the code.

\documentclass{article}
% \usepackage[utf8]{inputenc} is no longer required (since 2018)

% Set the font (output) encoding
\usepackage[LGR]{fontenc}

% Greek-specific commands
\usepackage[greek]{babel}

\begin{document}
\tableofcontents

\begin{abstract}
Αυτή είναι μια σύντομη περιγραφή του θέματος
σαφέστερα εξηγείται στο παρόν έγγραφο
\end{abstract}

\section{εισαγωγή}
Αυτό είναι το πρώτο τμήμα του εγγράφου.
Είναι μια εισαγωγική παράγραφο.

\section{δεύτερο τμήμα}
Το δεύτερο τμήμα του εγγράφου. Αυτή η ενότητα
μπορεί να περιέχει μαθηματική σημειογραφία.
\end{document}


This example produces the following output:

Text files: integers and characters

Any text file, such as a LaTeX input .tex file, is nothing more than a stream of numeric (integer) values which are being used as a mechanism to represent characters of text; consequently, processing a text file involves scanning (reading/processing) a series of integer values. However, an important question arises: which set of characters is actually represented by the integer values contained in a particular text file? In other words, how have those integer values been encoded: what is the correct (intended) "mapping" (encoding) from integers in the text file to the corresponding characters they are supposed to represent?

Text files can be generated within innumerable computing environments: across different countries/continents, using a multitude of different devices, operating systems and editing tools. Originators of text files could, potentially, use or apply different text encodings according to local requirements, such as language, when generating and storing the sequence of integer values chosen to represent the individual characters contained in a text file. This may work well if the generated text files stayed within compatible technical ecosystems, which use the same encoding, but what would happen when those files are transferred to completely different environments—because many text files do not contain any information which indicates the encoding used to generate them.

Clearly, the producer (originator) and consumer (user) of textual data must, somehow, agree on the encoding (mapping) being used, otherwise encoding errors are likely to arise due to mismatches between the integer data in the file and the set of characters it is assumed to represent. In addition to correctly mapping text file integer values to characters, any subsequent visual display of those characters requires some form of font that is capable of providing the data (shapes, or even bitmaps) to output a visual representation of the desired characters.

Input encoding: inputenc, UTF-8 and a change to LaTeX in 2018

Historically, a variety of 8-bit encodings were used to generate/process text files, including LaTeX inputs. To cut short a very long story, the developers of LaTeX created the inputenc package to address encoding issues—allowing text files, created using various encodings, to be transferred between disparate LaTeX installations.

However, over time, users/software developers moved away from multiple 8-bit encodings to using Unicode and its UTF-8 encoding scheme, which became the de facto option for encoding text files. Prior to 2018, to process UTF-8 encoded files LaTeX document preambles included the line

\usepackage[utf8]{inputenc}


Readers might observe that the example above does not include the line \usepackage[utf8]{inputenc} in the document preamble: why is that? This is due to an important change to LaTeX introduced in 2018: a switch to UTF-8 as the default input encoding. Documents typeset with pdfLaTeX, and using UTF-8 encoded text, including those created and typeset on Overleaf, no longer need to include \usepackage[utf8]{inputenc} but is does no harm to do so. For further information see the April 2018 issue of LaTeX News and the Overleaf blog post TeX Live upgrade—September 2019. All text files created on Overleaf are encoded using UTF-8.

Output encoding: the fontenc package

To correctly typeset characters contained within input files, those characters need to be mapped to the appropriate output shapes (glyphs) contained in fonts used to typeset the document. This “output encoding” is handled by another package called fontenc.

For Greek text, you select the LGR encoding via fontenc by including the following line in your document preamble:

\usepackage[LGR]{fontenc}


LaTeX LGR font encoding for Greek text

The following chart lists the LGR font encoding for Greek text. It is reproduced from page 36 of the document LaTeX font encodings which is available on CTAN.

Language-specific packages and commands

To extend the default capabilities of LaTeX, providing proper hyphenation and translation of the names of document elements, import the babel package using the greek language option.

\usepackage[greek]{babel}


As you may see in the example using pdfLaTeX, instead of “Abstract” and “Contents” the Greek words “Περίληψη” and “Περιεχόμενα” are used.

Documents with Greek and Latin text

Here is an example containing Latin and Greek characters.

\documentclass{article}

% Set the font (output) encodings
\usepackage[LGR, T1]{fontenc}

% \usepackage[utf8]{inputenc} is no longer required (since 2018)

% Greek-specific commands
\usepackage[greek]{babel}

% Use Greek characters directly in mathematical mode
% instead of using the commands \alpha etc
\usepackage{alphabeta}

\begin{document}
\tableofcontents

\begin{abstract}
Αυτή είναι μια σύντομη περιγραφή του θέματος
σαφέστερα εξηγείται στο παρόν έγγραφο
\end{abstract}

\section{εισαγωγή}
Αυτό είναι το πρώτο τμήμα του εγγράφου. Είναι
μια εισαγωγική παράγραφο.

\section{δεύτερο τμήμα}
Το δεύτερο τμήμα του εγγράφου. Αυτή η ενότητα
μπορεί να περιέχει μαθηματική σημειογραφία.

$x^2 + y^2 - \alpha = 4τ + 5α$

\textlatin{Latin text can also be added to
the document.}
\end{document}


This example produces the following output:

Here is a brief description of commands used in the above example.

• \usepackage{alphabeta}: By loading this package you can use Greek characters, in math mode, directly entered via your keyboard/keypad, instead of using commands such as \alpha, \beta, \gamma etc. See the LaTeX code $x^2 + y^2 - \alpha = 4τ + 5α$ within the example above.
• \usepackage[LGR, T1]{fontenc}: This command will set two encodings for fonts in this document: LGR for Greek text and T1 for Latin text.
• \textlatin{Latin text here}: You can use this command to typeset text written using Latin characters, which is useful for brief annotations.