\documentclass{article}

% Test with various LGR-encoded fonts:
\usepackage%
{lmodern}  % uses CB Fonts for Greek
% {gfsartemisia}
% {gfsbaskerville}
% [default]{gfsbodoni}
% [default]{gfscomplutum}
% {gfsdidot}
% [default]{gfsneohellenic}
% {lmodern} \usepackage{gfsporson} \renewcommand*\rmdefault{porson}
% [default]{gfssolomos}
% {kerkis} % lacks some chars (\Stigma, \Sampi, double quotes)
% {teubner}
% \renewcommand{\ttdefault}{txtt}

\usepackage{parskip}
\usepackage{textcomp}

\usepackage[LGR,T1]{fontenc}

% Shortcut accent macros \< and \>:
%
% The Symbol macros for the breathings were 
% moved to ``textalpha.sty`` to avoid clashes with possible local
% definitions of these macros.
%
% Local definition and setup:
\DeclareTextCommand{\<}{LGR}{\accdasia}
\DeclareTextCommand{\>}{LGR}{\accpsili}
\DeclareTextCompositeCommand{\>}{LGR}{'}{\accpsilioxia}
\DeclareTextCompositeCommand{\>}{LGR}{`}{\accpsilivaria}
\DeclareTextCompositeCommand{\>}{LGR}{~}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\<}{LGR}{'}{\accdasiaoxia}
\DeclareTextCompositeCommand{\<}{LGR}{`}{\accdasiavaria}
\DeclareTextCompositeCommand{\<}{LGR}{~}{\accdasiaperispomeni}


% With XeTeX/LuaTeX, use Unicode for Latin script:
\ifdefined\luatexversion \usepackage{fontspec}\else
  \ifdefined\XeTeXrevision \usepackage{fontspec}\else
    \usepackage[utf8]{inputenc}
  \fi
\fi
% This is experimental. The general advise is not to mix fontenc and fontspec.
% One problem is that xunicode makes \nobreakspace font encoding specific
% We provide a default:
\DeclareTextCommandDefault{\nobreakspace}{\leavevmode\nobreak\ }

% PDF hyperlinks:
\usepackage[pdfencoding=auto]{hyperref}
\usepackage{bookmark}
\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,pdfencoding=auto}

% font encoding switch declarations:
\newcommand{\LGR}{\fontencoding{LGR}\selectfont}
\newcommand{\Latin}{\fontencoding{\encodingdefault}\selectfont}

\begin{document}

\title{Test LGR font encoding definitions}
\author{Günter Milde}
% \date{}
\maketitle

The file lgrenc.def provides a comprehensive set of macros to typeset Greek
with LGR encoded fonts. It works for both, monotonic and polytonic Greek,
independent of the \emph{Babel} package.

The example from \texttt{usage.tex} in \emph{babel-greek} input
using the LICR macros:

\begin{quote}
  \LGR
  \textTau\'\textiota{}
  \textphi\'\texteta\textiota\textfinalsigma\texterotimatiko{}
  \<\textIota\textdelta\`\textomega\textnu{}
  \>\textepsilon\textnu\texttheta\'\textepsilon\textdelta\textepsilon{}
  \textpi\textalpha\~\textiota\textdelta\'\'
  \>\textepsilon\textlambda\textepsilon\textupsilon\texttheta\'\textepsilon\textrho\textalpha\textnu\\
  \texttau\`\textalpha\textfinalsigma{}
  \textpi\textlambda\texteta\textautosigma\'\textiota\textomicron\textnu{}
  \textNu\'\textupsilon\textmu\textphi\textalpha\textfinalsigma{}
  \textautosigma\texttau\textepsilon\textphi\textalpha\textnu\textomicron\~\textupsilon\textautosigma\textalpha\textnu{},
  \textSigma\'\textomega\textautosigma\texttau\textrho\textalpha\texttau\textepsilon{},\\
  \>\textepsilon\textrho\~\textomega\textnu{}
  \'\textalpha\textpi\~\texteta\textlambda\texttheta\textepsilon\textfinalsigma{}
  \textepsilon\>\textupsilon\texttheta\'\textupsilon\textfinalsigma\texterotimatiko{}

\end{quote}

\section{Symbols}

See the source file \href{lgrenc-test.tex}{lgrenc-test.tex} for the macros
used to access the symbols.

\subsection{Generic text symbols}

Latin:
+ - = < > -- --- \textbraceleft{} [ () ] \textbraceright{}
%
\textbackslash{}
\textbar{}
\textperthousand{}
\textpertenthousand{}
\textvisiblespace{}

LGR:
\LGR
+ - = \textless{} \textgreater{} -- ---
\textbraceleft{} [ () ] \textbraceright{}
%
\textbackslash{} \textbar{}
\textperthousand{}
% \textpertenthousand{}
\textvisiblespace{}
\Latin (Per-mille symbol is missing in LGR.)

Quotes:\footnote{%
  Single quotes need special attention to prevent conversion to accents.
  Test the input conventions:
  \LGR \textquoteleft{}a\textquoteright{} ``a'' \``a\'' \`\`a\'\'
  \Latin but not \LGR `a' 'e' "i"\Latin
}
%
\Latin \guillemotleft{}a\guillemotright{}
\LGR \guillemotleft{}a\guillemotright{},
%
\Latin \textquoteleft{}a\textquoteright{}
\LGR \textquoteleft{}a\textquoteright{},
%
\Latin \textquotedblleft{}a\textquotedblright{}
\LGR \textquotedblleft{}a\textquotedblright{}
\Latin (double quotes wrong with Kerkis fonts)

Single guillemots and base-quotes
  (\guilsinglleft{}a\guilsinglright{}
   \quotedblbase{}a\textquotedblright{}
   \quotesinglbase{}a\textquoteright{})
  are missing in LGR.

Ligature break up: AY fi \LGR AU "i $\mapsto$
\Latin A\textcompwordmark Y f\textcompwordmark i
\LGR   A\textcompwordmark U "\textcompwordmark i


\Latin Spacing accent chars:
%
\Latin \textasciicircum a
\LGR \textasciicircum a \textasciicircum i % using textsym glyph
%
\Latin \textasciitilde a
\LGR \textasciitilde a \textasciitilde i
%
\Latin \textasciibreve a
\LGR \textasciibreve a \textasciibreve i
%
\Latin \textasciimacron a
\LGR \textasciimacron a \textasciimacron i
%
\Latin \textasciidieresis a
\LGR \textasciidieresis a \textasciidieresis i
%
\Latin \textasciiacute a
\LGR \textasciiacute a \textasciiacute i
%
\Latin \textasciigrave a
\LGR \textasciigrave a \textasciigrave i

\Latin Symbols for SI-units:
\Latin 5\,\textmu{}m, 5\,k\textohm{};
\LGR   5\,\textmu{}{\Latin m}, 5\,{\Latin k}\textohm
\Latin ; but never italic: 5\,$\mu$m

\Latin Letter schwa and Euro symbol: % \textschwa (needs e.g. T3)
\LGR \textschwa{}, \texteuro{}
\Latin

Some symbol definitions expect a Latin font.\emph{ babel-greek} redefines
them with \verb|\latintext|, however this macro is not guaranteed to be
defined, so it should not be used in a font encoding definition file. The
textcomp.sty package provides coyright, registered, and trademark symbols
for use with any font encodings. (Like any other Latin character, the
``sharp s'' (\ss) is not save to use when LGR is the active font encoding.)

Latin:
\textcopyright{}
\textregistered{}
\texttrademark{}
\SS{} (uppercase of \ss).

LGR (with textcomp):
\LGR
\textcopyright{}
\textregistered{}
\texttrademark{}
\SS{} (\Latin uppercase of \LGR \ss).
\Latin

\subsection{Greek alphabet}

Greek letters via Latin transcription and LICR macros:

\begin{quote}
  \LGR
  \MakeUppercase{a b g d e z h j i k l m n x o p r s t u f q y w}

  a b g d e z h j i k l m n x o p r sv t u f q y w

  \textAlpha{} \textBeta{} \textGamma{} \textDelta{} \textEpsilon{}
  \textZeta{} \textEta{} \textTheta{} \textIota{} \textKappa{}
  \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \textPi{}
  \textRho{} \textSigma{} \textTau{} \textUpsilon{} \textPhi{}
  \textChi{} \textPsi{} \textOmega{}

  \textalpha{} \textbeta{} \textgamma{} \textdelta{} \textepsilon{}
  \textzeta{} \texteta{} \texttheta{} \textiota{} \textkappa{}
  \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \textpi{}
  \textrho{} \textsigma{} \texttau{} \textupsilon{}
  \textphi{} \textchi{} \textpsi{} \textomega{}
\end{quote}

The small sigma is set with a different glyph if it ends a word:

\begin{quote}
  \LGR \textsigma{}      \Latin textsigma        \\
  \LGR \textfinalsigma{} \Latin textfinalsigma or textvarsigma
\end{quote}

In the Latin transcription, the letter `s' stands for \verb|\textautosigma|
which automatically chooses the glyph according to the position.

\subsection{Additional Greek symbols}

\begin{quote}
  \LGR \textkoppa{}     \Latin textkoppa                 \\ % ϟ
  \LGR \textqoppa{}     \Latin textqoppa (archaic koppa) \\ % ϙ
  \LGR \textQoppa{}     \Latin textQoppa (archaic Koppa) \\ % Ϙ
  \LGR \textstigma{}    \Latin textstigma                \\ % ϛ
  \LGR \textvarstigma{} \Latin textvarstigma \\ % no separate Unicode character
  \LGR \textStigma{}    \Latin textStigma (Sigma-Tau-Ligature in CB-fonts)%
  \footnote{the name ``stigma'' originally applied to a medieval sigma-tau
            ligature, whose shape was confusingly similar to the cursive
            digamma}                      \\ % Ϛ
  \LGR \textsampi{}     \Latin textsampi  \\ % ϡ
  \LGR \textSampi{}     \Latin textSampi  \\ % Ϡ
  \LGR \textdigamma{} \Latin textdigamma  \\ % ϝ (\digamma used by amsmath!)
  \LGR \textDigamma{} \Latin textDigamma  \\ % Ϝ
  % numeral signs: http://en.wikipedia.org/wiki/Greek_numerals
  \LGR \textnumeralsigngreek{}  \Latin textnumeralsigngreek (Dexia keraia) \\ % ʹ
  \LGR \textnumeralsignlowergreek{} \Latin textnumeralsignlowergreek
                                           (Aristeri keraia)\\ % ͵
\end{quote}

Mathematical notation sometimes uses variant shapes for pi ($\varpi$),
kappa (\emph{no TeX symbol available}), rho ($\varrho$), and theta
($\vartheta$). These variations have no syntactic meaning in Greek text and
are not given code-points in the LGR encoding. Some Greek text fonts use
the variant shapes in place of the ``regular'' ones.

\section{Diacritics}

Capital Greek letters have Greek diacritics (except the dialytika) to the
left (instead of above) and drop them in UPPERCASE. This is implemented for
all combinations for which a pre-composed Unicode character exists (but not,
for, e.g.,\LGR \~W \Latin).

% When a word is written entirely in capital letters, diacritics are
% never used; the word Ἢ (or), is an exception to this rule because of
% the need to distinguish it from the nominative feminine article Η.

Different conventions exist for the treatment of the sub-iota with uppercase
letters. The CB-Fonts use a capital Iota ``index'' (\LGR A|, H|, W|\Latin).

LaTeX standard accents
(Latin, Greek, Greek Capitals $\mapsto$ UPPERCASE)

\begin{quote}
  \`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a}
  \b{a} \c{a} \d{a} \k{a}
  $\mapsto$ \MakeUppercase{%
  \`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a}
  \b{a} \c{a} \d{a} \k{a}
  }

  \LGR
  \`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a}
  \b{a} \c{a} \d{a}
  $\mapsto$ \MakeUppercase{%
  \`{a} \'{a} \~{a} \"{a} \^{a} \={a} \H{a} \.{a} \r{a} \u{a} \v{a}
  \b{a} \c{a} \d{a}
  }

  \`{A}\'{A}\~{A}\"{A} \^{A}\={A}\H{A}\.{A}\r{A}\u{A}\v{A}
  \b{A} \c{A} \d{A}
  $\mapsto$ \MakeUppercase{%
  \`{A}\'{A}\~{A}\"{A} \^{A}\={A}\H{A}\.{A}\r{A}\u{A}\v{A}
  \b{A} \c{A} \d{A}
  }
\end{quote}

\Latin
The comma-below (\verb|\k|) is not defined in LGR.

Additional Greek diacritics

\begin{quote}
  \LGR
  \<{a} \>{e} \<\`{i} \'"i \`"i \~"i \`\>{h} \'<{o}  \'>{o} \~\<{u} \~\>{w}
  $\mapsto$ \MakeUppercase{%
  \<{a} \>{e} \<\`{i} \'"i \`"i \~"i \`\>{h} \'<{o}  \'>{o} \~\<{u} \~\>{w}
  }

  % The dialytika is not used on Initial letters ("'I \"`I \~"I)
  \<{A} \>{E} \<\`{I} \'"I \"`I \~"I \`\>{H} \'<{O}  \'>{O} \~\<{U} \~\>{W}
  $\mapsto$ \MakeUppercase{%
  \<{A} \>{E} \<\`{I} \'"I \"`I \~"I \`\>{H} \'<{O}  \'>{O} \~\<{U} \~\>{W}
  }
\end{quote}

\Latin Input variants and their conversion with MakeUppercase:%

\begin{quote}
\LGR

\~>a \>\~a \~\>{a}, \~<a \<\~a \<~a \~\<a \~<a,
\>\~{h} \~>h \>~h \>\~h \~>h \~>h|, \~<h \<\~h,
\>\~i \~>i, \~<i \<\~i, \~"i \"\~i \"~i,\\
\>\~u \~>u, \~<u \<\~u, \~"u \"\~u,
\>w, \<w, \>\~w \~>w, \~<w \<\~w.

\MakeUppercase{
\~>a \>\~a \~\>{a}, \~<a \<\~a \<~a \~\<a \~<a,
\>\~{h} \~>h \>~h \>\~h \~>h \~>h|, \~<h \<\~h,
\>\~i \~>i, \~<i \<\~i, \~"i \"\~i \\ % for \"~i, see below
\>\~u \~>u, \~<u \<\~u, \~"u \"\~u,
\>w, \<w, \>\~w \~>w, \~<w \<\~w.
}

\<{\textalpha} \>{\textepsilon} \"'{\textiota} \`>\texteta{}
\'<{\textomicron} \~<{\textupsilon} \~>{\textomega}
\<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{}
\'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega}
\\
\MakeUppercase{%
  \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`\>\texteta{}
  \'<{\textomicron} \~<{\textupsilon} \~>{\textomega}.
  \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{}
  \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega}
}

 \<'A \<\'A \'<A \'\<A $\mapsto$ \MakeUppercase{\<'A \<\'A \'<A \'\<A}.

\end{quote}

The tilde character can be used in combined accents.
However, in documents not defining the Babel language \emph{greek} or
\emph{polutonikogreek}, it will produce a
no-break space if converted with \verb|\MakeUppercase|:
\begin{quote}
  \LGR \"~i \<~i \"~u \<~u \`>u $\mapsto$
  \LGR \MakeUppercase{\"~i \<~i \"~u \<~u \`>u}
\end{quote}
Use the tilde-accent macro:
\LGR \"\~i \~"u $\mapsto$ \MakeUppercase{\"\~i \~"u}.

\Latin
Accents input via the Latin transliteration are not dropped with
MakeUppercase, unless Babel is loaded and the current language is Greek
(because the required local re-definitions of the \texttt{uccode} are done in
\texttt{greek.ldf} from the \emph{babel-greek} package).

\begin{quote} \LGR
  ', ", `, >, <, | $\mapsto$ \MakeUppercase{', ", `, >, <, |}
\end{quote}


\Latin Accent macros can start with \verb|\a| instead of \verb|\| when the
short form is redefined, e.\,g. inside a \emph{tabbing} environment.
This also works for the locally defined Dasia and Psili shortcuts \verb|\<|
and \verb|\>|:
\begin{quote}
  \begin{tabbing}
       COL1\quad \= COL2\quad \= COL3\quad \= COL4\quad \\
       COL1      \>           \> COL3 \\
       Viele     \> Gr\a"u\ss e \> \LGR \a<\textalpha{} \> \LGR \a>\textomega
  \end{tabbing}
\end{quote}


\Latin Combinations with named accents:
\LGR \accdasia'a \accdasia`a \accdasia\~a.

\Latin The dialytika must be kept in UPPERCASE, e.\,g.

\begin{quote}
  % from http://diacritics.typo.cz/index.php?id=70 μαΐστρος -> ΜΑΪΣΤΡΟΣ.
  \LGR ma\"'istros $\mapsto$ \MakeUppercase{ma\"'istros}
  \Latin or % from teubner  εὐζωΐα -> ΕΥΖΩΪΑ.
  \LGR e\>uzw\'"ia $\mapsto$ \MakeUppercase{e\>uzw\'"ia}.
\end{quote}

This is implemented for all input variants of diacritics with
dialytika:

\begin{quote}
  \LGR \"i \"'i \"`i \"\~i \"u \"'u \"`u \"\~u $\mapsto$
  \MakeUppercase{\"i \"'i \"`i \"\~i \"u \"'u \"`u \"\~u},
\end{quote}

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

\begin{quote}
  % 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}
\end{quote}

\newpage

\Latin Test the auto-hiatus feature for side-effects:

\LGR \MakeUppercase{\'a b} (\Latin must keep space after A).

Kerning (see the input):
\LGR
\newcommand\md{\textcompwordmark}
\newcommand\MU{\MakeUppercase}

  \md \MU{ AO    AY    AI    AU    RA    OA    UA    DU}    [ \\
\<\md \MU{ \<AO  \<AY  \<AI  \<AU  \<RA  \<OA  U\<A  D\<U}  [ \\
\>\md \MU{ \>AO  \>AY  \>AI  \>AU  \>RA  \>OA  U\>A  D\>U}  [ \\
\>'\md\MU{ \>'AO \>'AY \>'AI \>'AU \>'RA \>'OA U\>'A D\>'U} [ \\
\'\md \MU{ \'AO  \'AY  \'AI  \'AU  \'RA  \'OA  U\'A  D\'U}  [ \\
\>`\md\MU{ \>`AO \>`AY \>`AI \>`AU \>`RA \>`OA U\>`A D\>`U} [ \\
\<'\md\MU{ \<'AO \<'AY \<'AI \<'AU \<'RA \<'OA U\<'A D\<'U} [ \\
\`\md \MU{ \`AO  \`AY  \`AI  \`AU  \`RA  \`OA  U\`A  D\`U}  [ \\
\<`\md\MU{ \<`AO \<`AY \<`AI \<`AU \<`RA \<`OA U\<`A D\<`U} [ \\
\~\md \MU{ \~AO  \~AY  \~AI  \~AU  \~RA  \~OA  U\~A  D\~U}  [ \\
\~>\md\MU{ \~>AO \~>AY \~>AI \~>AU \~>RA \~>OA U\~>A D\~>U} [ \\
\~<\md\MU{ \~<AO \~<AY \~<AI \~<AU \~<RA \~<OA U\~<A D\~<U} [ \\
\~<\md\MU{ \~<ao \~<ay \~<ai \~<au \~<ra \~<oa u\~<a d\~<u} [ \\
\"\md \MU{ AO    AY    A\"I  A\"U  RA    OA    \"UA  DU}    [ \\
\"\md \MU{ \"AO  \"AY  \"AI  \"AU  \"RA  \"OA  U\"A  D\"U}  [ \\
\"~\md\MU{ \~"AO \~"AY \~"AI \~"AU \~"RA \~"OA U\~"A D\~"U} [ \\


\Latin
Rows 3 \ldots 7: Look-ahead (to check for a hiatus) breaks kerning before A
with Tonos or Psili.

% \'AA \'AB \'AG \'AD \'AE \'AZ \'AH \'AJ \'AI \'AK \'AL \'AM \'AN \'AX
% \'AO \'AP \'AR \'AS \'AC \'AT \'AU \'AF \'AQ \'AY \'AW

Rows 15 and 16: Like in any font encoding, there is no kerning for
non-defined accent-letter-combinations (dialytica on \LGR A O D\Latin).

\Latin

Downcasing should keep diacritics (of course, it cannot regenerate
``manually" dropped ones):
\LGR 'A \"I \"U \~<A $\mapsto$ \MakeLowercase{\'A \"I \"U \~<A}

\end{document}
