\documentclass{article}
\usepackage{cmap} % fix search and cut-and-paste in Acrobat Reader

\usepackage%
{lmodern}
% {gfsartemisia}
% {gfsbaskerville}
% [default]{gfsbodoni}
% [default]{gfscomplutum}
% {gfsdidot}
% [default]{gfsneohellenic}
% {lmodern} \usepackage{gfsporson} \renewcommand*\rmdefault{porson}
% [default]{gfssolomos}
% {kerkis} % lacks some chars (\Stigma, \Sampi, double quotesv)
% {teubner}
\renewcommand{\ttdefault}{txtt}


\usepackage{parskip}
\usepackage{textcomp}
\usepackage[LGRx,T1]{fontenc} % LGR with accent definitions
% \usepackage[utf8]{inputenc}

\newcommand{\LGR}{\fontencoding{LGR}\selectfont}
\newcommand{\Latin}{\fontencoding{T1}\selectfont}

% \pagestyle{empty}
% -------------------------------------------------------------------------

\begin{document}

\section*{Test the extended LGR font encoding definitions}

The file lgrxenc.def allows convenient typesetting of Greek letters
with diacritics. It works independent of the babel package.

\subsection*{Symbols}

See the source file lgrenc-test.tex for the macros used to produce the
symbols.

\subsubsection*{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 missign in LGR.)

Quotes:
%
\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),

\Latin \guilsinglleft{}a\guilsinglright{}
       \quotedblbase{}a\textquotedblright{}
Single guillemots and base-quotes 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 Letter schwa and Euro symbol: % \textschwa (needs e.g. T3)
\LGR \textschwa{}, \texteuro{}


\Latin Some symbol definitions expect a Latin font:
%
\textcopyright{}
\textregistered{}
\texttrademark{}
\SS{} (uppercase of \ss)
% $\Longrightarrow$
% \LGR
% \textcopyright{}
% \textregistered{}
% \texttrademark{}
% \ss$\mapsto$\SS{}
%
\Latin Babel's lgrenc.def defines 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. Instead, the textcomp.sty package
should be used to provide the symbols for all font encodings (using the
sharp s (\ss) in Greek is bound to fail anyway).

\subsubsection*{Greek alphabet}

Greek letters via Latin transscription in LGR font encoding:

\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 s c t u f q y w

\Latin

\subsubsection*{Additional Greek symbols}

\LGR \koppa{}     \Latin koppa,         % ϟ
\LGR \qoppa{}     \Latin archaic koppa, % ϙ
\LGR \Qoppa{}     \Latin archaic Koppa, % Ϙ
\LGR \stigma{}    \Latin stigma,        % ϛ
\LGR \varstigma{} \Latin stigma variant,
\LGR \Stigma{}    \Latin Stigma (Sigma-Tau-Ligature in CB-fonts),
\LGR \sampi{}     \Latin sampi,         % ϡ
\LGR \Sampi{}     \Latin Sampi,         % Ϡ
\LGR \ddigamma{}  \Latin digamma,       % ϝ (\digamma used by amsmath!)
\LGR \Digamma{}   \Latin Digamma,       % Ϝ
% numeral signs: http://en.wikipedia.org/wiki/Greek_numerals
\LGR \anwtonos{}  \Latin Dexia keraia,  % ʹ
\LGR \katwtonos{} \Latin Aristeri keraia, % ͵

\Latin Variant symbols for pi ($\varpi$), kappa (\emph{no TeX symbol
available}), rho ($\varrho$), and theta ($\vartheta$) are missing in
LGR.


\subsection*{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 precomposed Unicode
character exists (but not, e.g., \LGR \~A\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 Η.

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

\`{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}
}

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

Additional Greek diacritics

\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}
}

\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 \"~i,\\
\>\~u \~>u, \~<u \<\~u, \~"u \"\~u,
\>w, \<w, \>\~w \~>w, \~<w \<\~w.
}

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

\Latin 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|:

\LGR \"~i \<~i \"~u \<~u \`>u $\mapsto$
\LGR \MakeUppercase{\"~i \<~i \"~u \<~u \`>u}
\\
\Latin Use the tilde-accent macro:
\LGR \MakeUppercase{\"\~i \~"u}.

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

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

% 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}.

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

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

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

% 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}


\Latin Test: The auto-hiatus feature must keep proper working of tonos
and psili:

\LGR \MakeUppercase{\'a b}: \Latin keep space after A.

\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: Lookahead (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).%
\footnote{with the Kerkis fonts, kerning is kept}

The uppercase of the zero-width space at the place of ``v`` is the
Dasia-Oxia accent~\LGR \MakeUppercase{v}\Latin , the glyph at the
position of ``V``. It is suppressed for uppercased accents:

\LGR
\<v, \>v, \>'v, \'v, \>`v, \<'v, \`v, \<`v, \~v, \~>v, \~<v, \"v, \~"v
$\mapsto$ \MakeUppercase{
\<v, \>v, \>'v, \'v, \>`v, \<'v, \`v, \<`v, \~v, \~>v, \~<v, \"v, \~"v
}

\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}
