\documentclass[a4paper]{article}
\usepackage{cmap} % fix search and cut-and-paste in Acrobat Reader
\usepackage[LGR,T1]{fontenc}
\usepackage[utf8]{inputenc}
% \usepackage{textalpha}
\usepackage{textcomp}
\usepackage{hyperref,bookmark}
\usepackage{parskip}
\usepackage{booktabs}

\usepackage{lmodern}
% \usepackage{kerkis}
% \usepackage{gfsdidot}

\usepackage[greek,english]{babel}
% \languageattribute{greek}{polutoniko}

\DeclareTextCommandDefault{\ensuregreek}{\textgreek}

\begin{document}

% \message{Latin encoding is \latinencoding}

\section*{Test the Greek support for Babel}

The babel option ``greek'' activates the support for the Greek language
defined in the file ``greek.ldf'' (source ``greek.dtx'').

\section{Language Switch}

The declaration \verb|\selectlanguage| switches between languages.

\selectlanguage{greek} 
Ὁ Σύλλογος Ἑλλήνων Φίλων τοῦ TeX, γνωστὸς καὶ ὡς
«Ἕλληνες Φίλοι τοῦ \TeX» (ΕΦΤ γιὰ συντομία) ἀποτελεῖ τὴν ἐπίσημη Τοπικὴ Ὁμάδα
τοῦ \TeX{} ἢ τὸ ἑλληνικὸ \textlatin{\TeX{} LUG (Local Users Group)}.
\selectlanguage{english}

The macro \verb|\foreignlanguage| sets its second argument in the specified
language. This is intended for short text parts like 
\foreignlanguage{greek}{Βιβλιοθήκη}.

\section{Font Encoding}

In Greek text parts, the font encoding is automatically set to LGR if an
8-bit TeX engine is used. (See test-unicode-greek.tex for usage of
babel-greek with XeTeX or LuaTeX.)

LGR has Greek characters in the slots reserved in a TeX \emph{standard text
font encoding}. This means you need an explicit font encoding change for
every Latin letter and some other symbols if the current font encoding is
LGR.

Switching between Latin and Greek script/font encoding is possible without
switching the Babel language using the declarations \verb|\latintext|,
\verb|\greektext| and the macros \verb|\textlatin|, \verb|\textgreek|. These
commands do not start a new paragraph:

\greektext Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
\latintext Friends (\textgreek{F\'ilwn}) of TeX.

``greek.ldf'' has some workarounds, so that macros relying on Latin
characters in the ``right'' positions keep working. We test, that these
definitions do not overwrite the selection of pre-composed characters for
``copyright'' and ``registered trade mark'' by ``textcomp'' (try copy and
paste from the PDF output):

Greek (LGR): \ensuregreek{Α \& Ω, \textcopyright{} \textregistered{}
\texttrademark{}, © ® ™ } \\
Latin: A \& O.

To prevent Roman numerals being typeset in Greek letters we need to adopt
the internal LaTeX commands. Note that this may cause errors when roman
numerals are used in a situation where the macros need to be expanded:

\makeatletter 
Greek: \ensuregreek{
\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975}
\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975}
}

Latin: 
\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975}
\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975}
\makeatother

Enumerated lists:

\selectlanguage{greek} 
\begin{enumerate}
  \item \textlatin{Item} 1
  \begin{enumerate}
    \item \textlatin{Item} 1.1
    \begin{enumerate}
      \item \textlatin{Item} 1.1.1
       \begin{enumerate}
         \item \textlatin{Item} 1.1.1.1
         \item \textlatin{Item} 1.1.1.2
       \end{enumerate}
      \item \textlatin{Item} 1.1.2
    \end{enumerate}
  \end{enumerate}
\end{enumerate}
\selectlanguage{english}


\section{MakeUppercase, MakeLowercase}

Capital Greek letters have diacritics (except the dialytika and sub-iota) to
the left (instead of above) and drop them in uppercase, e.g.
\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}.

Upcased letters with diacritics keep the dialytika. This is implemented for
all input variants of diacritics with dialytika. (Babel has ``composite
command'' definitions to ensure this also works for accent characters
"upcased" to the charcter No 159.)

\foreignlanguage{greek}{\"i \"'i \"`i \"~i \'"i \`"i \~"i 
			\"u \"\'u \"\`u \"\~u 
$\mapsto$ \MakeUppercase{\"i \"'i \"`i \"~i \'"i \`"i \~"i 
			\"u \"\'u \"\`u \"\~u }}

Tonos and dasia mark a \emph{hiatus} (break-up of a diphtong) if
placed on the first vowel of a diphtong 
(\ensuregreek{\'ai, \'au, \'ei, \'>ai, \>'au, \>'ei}). 
A dialytika must be placed on the second vowel if they are dropped:
(\ensuregreek{\MakeUppercase{\'ai, \'au, \'ei,  \'>ai, \>'au, \>'ei}}).

\selectlanguage{greek}
% from teubner: άυλος/ΑΫΛΟΣ
\'aulos $\mapsto$ \MakeUppercase{\'aulos},
\>'aulos $\mapsto$ \MakeUppercase{\>'aulos},
% from http://diacritics.typo.cz/index.php?id=69  μάινα -> ΜΑΪΝΑ
m\'aina $\mapsto$ \MakeUppercase{m\'aina},
% from  http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
% κέικ, ἀυπνία/αϋπνία
k\'eik, $\mapsto$ \MakeUppercase{k\'eik}
\>aupn\'ia $\mapsto$ \MakeUppercase{\>aupn\'ia}
\selectlanguage{english}

There are several alternative styles for the capitalized sub-iota.

The following subsections test MakeUppercase and MakeLowercase with all
characters defined in lgrenc.dfu:

\subsection{Greek and Coptic}

\newcommand{\GreekAndCoptic}{\ensuregreek{
ʹ͵ͺ; ΄ ΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}}
\newcommand{\greekandcoptic}{\ensuregreek{
άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϙϛϝϟϡ}}

Characters of the Greek and Coptic Unicode Block:

\begin{quote}
  \GreekAndCoptic\\
  \greekandcoptic
\end{quote}

MakeUppercase:

\begin{quote}
  \MakeUppercase{\GreekAndCoptic}\\
  \MakeUppercase{\greekandcoptic}
\end{quote}

Letters and sub-iota upcased, other diacritics except dialytika dropped.

There is no capital Koppa in LGR, therefore \ensuregreek{ϟ} is left
unchanged with MakeUppercase.


MakeLowercase:

\begin{quote}
  \MakeLowercase{\GreekAndCoptic}\\
  \MakeLowercase{\greekandcoptic}
\end{quote}

The lowercase of \ensuregreek{Σ} is the «auto-sigma» (\verb+\textautosigma+):
\ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. Add a ZWNJ or use the
\verb+\noboundary+ macro to prevent conversion to final sigma:
\ensuregreek{\MakeLowercase{ΣΣ‌}}. The lowercase of GREEK LETTER STIGMA 
\ensuregreek{Ϛ} is \ensuregreek{\MakeLowercase{Ϛ}} not \verb|\textvarstigma|
(\ensuregreek\textvarstigma).

% \newpage

\subsection{Greek extended}

Characters of the Greek extended Unicode block:

\selectlanguage{greek}
ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
ἐ ἑ ἒ ἓ ἔ ἕ     Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ     \\
ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
ὀ ὁ ὂ ὃ ὄ ὅ     Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ     \\
ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ   Ὑ   Ὓ   Ὕ   Ὗ \\
ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ     \\
ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
ᾰ ᾱ ᾲ ᾳ ᾴ   ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
῀ ῁ ῂ ῃ ῄ   ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
ῐ ῑ ῒ ΐ     ῖ ῗ Ῐ Ῑ Ὶ Ί   ῝ ῞ ῟ \\
ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
    ῲ ῳ ῴ   ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾   
\selectlanguage{english}

MakeUppercase:

\selectlanguage{greek}

\MakeUppercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\
\MakeUppercase{ ἐ ἑ ἒ ἓ ἔ ἕ     Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ     }\\
\MakeUppercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\
\MakeUppercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\
\MakeUppercase{ ὀ ὁ ὂ ὃ ὄ ὅ     Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ     }\\
\MakeUppercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ   Ὑ   Ὓ   Ὕ   Ὗ }\\
\MakeUppercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\
\MakeUppercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ     }\\
\MakeUppercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\
\MakeUppercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\
\MakeUppercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\
\MakeUppercase{ ᾰ ᾱ ᾲ ᾳ ᾴ   ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\
\MakeUppercase{ ῀ ῁ ῂ ῃ ῄ   ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\
\MakeUppercase{ ῐ ῑ ῒ ΐ     ῖ ῗ Ῐ Ῑ Ὶ Ί   ῝ ῞ ῟ }\\
\MakeUppercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\
\MakeUppercase{     ῲ ῳ ῴ   ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾   }
\selectlanguage{english}

MakeLowercase:

\selectlanguage{greek}
\MakeLowercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\
\MakeLowercase{ ἐ ἑ ἒ ἓ ἔ ἕ     Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ     }\\
\MakeLowercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\
\MakeLowercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\
\MakeLowercase{ ὀ ὁ ὂ ὃ ὄ ὅ     Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ     }\\
\MakeLowercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ   Ὑ   Ὓ   Ὕ   Ὗ }\\
\MakeLowercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\
\MakeLowercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ     }\\
\MakeLowercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\
\MakeLowercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\
\MakeLowercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\
\MakeLowercase{ ᾰ ᾱ ᾲ ᾳ ᾴ   ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\
\MakeLowercase{ ῀ ῁ ῂ ῃ ῄ   ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\
\MakeLowercase{ ῐ ῑ ῒ ΐ     ῖ ῗ Ῐ Ῑ Ὶ Ί   ῝ ῞ ῟ }\\
\MakeLowercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\
\MakeLowercase{     ῲ ῳ ῴ   ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾   }
\selectlanguage{english}

\section{Babel Strings}

Babel defines macros for several autogenerated strings so that they may
appear in the choosen language. babel-greek uses LICRs in order to let the
string macros work independent of the font encoding, in both 8-bit and
Unicode-aware TeX.

\subsection{Captions}

\selectlanguage{greek}
\prefacename,
\refname,
\abstractname,
\bibname,
\chaptername,
\appendixname,
\contentsname,
\listfigurename ,
\listtablename,
\indexname,
\figurename,
\tablename,
\partname,
\enclname,
\ccname,
\headtoname,
\pagename,
\seename,
\alsoname,
\proofname,
\glossaryname,
\selectlanguage{english}


\subsection{Months}

\selectlanguage{greek}
\newcounter{foo}
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\stepcounter{foo} \month=\value{foo} \today \\
\selectlanguage{english}

\section{Greek Numerals}

See greek.pdf for the formation rules of Greek numerals.
Some examples:

\selectlanguage{greek}

\greeknumeral{1},
\greeknumeral{2},
\greeknumeral{3},
\greeknumeral{4},
\greeknumeral{5},
\greeknumeral{6},
\greeknumeral{7},
\greeknumeral{8},
\greeknumeral{9},
\greeknumeral{10},
\greeknumeral{11},
\greeknumeral{12},
\greeknumeral{20},
\greeknumeral{345},
\greeknumeral{500},
\greeknumeral{1997},
\greeknumeral{2013},

\Greeknumeral{1},
\Greeknumeral{2},
\Greeknumeral{3},
\Greeknumeral{4},
\Greeknumeral{5},
\Greeknumeral{6},
\Greeknumeral{7},
\Greeknumeral{8},
\Greeknumeral{9},
\Greeknumeral{10},
\Greeknumeral{11},
\Greeknumeral{12},
\Greeknumeral{20},
\Greeknumeral{345},
\Greeknumeral{500},
\Greeknumeral{1997},
\Greeknumeral{2013},

Enumerated lists use Greek numerals in the second and fourth level.

\selectlanguage{english}

\end{document}
