% lgrxenc.def
% ***********
%
% comprehensive LGR Greek font encoding definitions
% =================================================
%
% :Copyright: © 2010 Günter Milde
% :Licence:   This work may be distributed and/or modified under the
%             conditions of the `LaTeX Project Public License`_, either
%             version 1.3 of this license or any later version.
%
% :Abstract:  The LGR font encoding is the de-facto standard for Greek
%             typesetting with LaTeX. However, the encoding definition file
%             that ships with babel misses many of the definitions common
%             since the introduction of the NFSS (see fntguide_ "Encodings").
%
%             This file provides a comprehensive set of macros to
%             typeset Greek with LGR encoded fonts. It works for both,
%             monotonic and polytonic Greek, independent of the `babel`
%             package.
%
% This package is part of the lgrx_ bundle.
%
% .. contents::
%
%
% Changelog
% ---------
%
% .. class:: borderless
%
% ===== ============  ====================================================
% 0.1   2010-03-31    initial attempt
% 0.2   2010-04-20    diacritics dropped in UPPERCASE
% 0.3   2010-06-08    handle Titlecase and UPPERCASE extending
%                     ``\@uclclist``
% 0.3.1 2010-06-10    code cleanup: replace dummy accent hack
%                     with TextCommand
% 0.4   2010-06-15    more text symbols
% 0.4.1 2010-08-06    prevent multiple evaluation
% 0.5   2010-08-27    support ``\textalpha`` ... ``\textOmega``
% 0.5.1 2012-05-08    upload to CTAN
% 0.6   2012-06-29    ``\TextGreek`` wrapper command (used in lgrenc.dfu),
%                     aliases for ``puenc.def`` compatibility
% 0.6.1 2013-02-12    ``\@uclclist`` entries for `PU` aliases
% 0.7   unreleased    documentation update, new accent macros names
% ===== ============  ====================================================
%
% Usage
% -----
%
% To prevent confusion with Babel_'s ``lgrenc.def``, this file is
% named ``lgrxenc.def``. Load it by calling fontenc_ with the ``LGRx`` option
% or indirectly via the textalpha_ or alphabeta_ packages.
%
% Example:
%   Select font encodings `T1` (as default) and `LGR` (with the comprehensive
%   font encoding definitions)
%
%     ``\usepackage[LGRx,T1]{fontenc}``
%
% .. Attention:: The name of the font encoding defined by the option ``LGRx``
%    is **not** `LGRx` but `LGR`. Therefore, ``LGRx`` must not be the
%    last option (as fontenc uses the last option to select the default font
%    encoding). To set `LGR` as as default font encoding specify both,
%    `LGRx` and `LGR`, e.g.
%
%       ``\usepackage[LGRx,T1,LGR]{fontenc}``
%
%
% LICR macro names
% ----------------
%
% The fntguide_ (section 6.4 Naming conventions) recommends:
%
%   Where possible, text symbols should be named as ``\text`` followed
%   by the Adobe glyph name: for example ``\textonequarter`` or
%   ``\textsterling``. Similarly, math symbols should be named as
%   ``\math`` followed by the glyph name, for example
%   ``\mathonequarter`` or ``\mathsterling``.
%
% The `Adobe Glyph List For New Fonts`_ has names for many glyphs in the
% `Greek and Coptic` Unicode block, but not for `Greek extended`.
% The `Adobe Glyph List`_ (for existing fonts) lists additional glyph names
% used in older fonts.
%
% Proposals
% ~~~~~~~~~
%
% * If there exists a math-mode macro for a symbol, form the corresponding text
%   macro by prepending ``text``?
%
%   Example:
%     The glyph name for the GREEK SMALL LETTER FINAL SIGMA is ``sigma1``,
%     the corresponding math-macro is ``\varsigma``. The text symbol could be
%     made available as ``\textvarsigma``.
%
%   Problems:
%     ``\varepsilon`` and ``\varphi`` math macros map to characters named
%     "GREEK SMALL **LETTER** ...", while ``\\vartheta``, ``\\varkappa``,
%     ``\\varrho``, and ``\\varpi`` math macros map to "GREEK ... **SYMBOL**"
%     Unicode characters.
%
%     In Greek text, these variants are interchangeable. The LGR font encoding
%     does not contain slots for "symbol" glyph variants. In some Greek fonts,
%     GREEK SMALL LETTERS use glyph variants resembling the corresponding
%     GREEK SYMBOL Unicode character's reference glyph.
%
% * Derive macro names from Unicode names?
%
%   The `Unicode names list`_ provides standardized descriptive names for all
%   Unicode characters that use only capital letters of the Latin alphabet.
%   While not suited for direct use in a LICR macros, they can be either
%
%   a) used as inspiration for new LICR macro names or
%
%   b) converted to LICR macro names via a defined set of transformation rules.
%
%   Example:
%     ``\textfinalsigma`` or just ``\finalsigma`` as a more descriptive name
%     for GREEK SMALL LETTER FINAL SIGMA derived via the rules:
%
%     * drop "LETTER" if the name remains unique,
%     * drop "GREEK" if the name remains unique,
%     * use capitalized name for capital letters, lowercase for "SMALL" letters
%       and drop "SMALL",
%     * concatenate
%
% * Omit the "text" prefix for macros that do not have a math counterpart?
%
%   Pro:
%     + Simpler,
%
%     + ease of use (less typing, better readability of source text),
%
%     + many established text macro names without "text",
%
%     + there are examples of encoding-specific macros
%       without the ``text``-prefix, especially for letters,
%
%       :T1:  ``\AE \DH \DJ \L \NG \OE \O \SS \TH \ae \dh \dj \guillemotleft``
%             ``\guillemotright \guilsinglleft \guilsinglright \i \j \l \ng``
%             ``\oe \o \quotedblbase \quotesinglbase \ss \th`` (also in OT1)
%       :T2*: ``\CYR*`` and ``\cyr*``
%       :HE8: ``\heb*`` or no prefix
%       :PU:  short descriptive names in the arabic part (``puarenc.def``)
%
%     + ``text`` prefix does **not** mark a macro as encoding-specific or
%       "inserting a glyph". There are e.g. font-changing macros (``\textbf``,
%       ``\textit``) and encoding-changing macros (``\textgreek``,
%       ``\textcyr``).
%
%   Contra:
%     - Less consistent.
%
%     - ``text`` prefix marks a macro as confined to text mode.
%
%
% How to name *accent macros*?
% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%
% * standard accent macros (``\DeclareTextAccent`` definitions in
%   ``latex/base/...``) are one-symbol macros (``\' \" ... \u \v ...``) .
%
% * tipa.sty and ucs use the "text" prefix also for accents.
%
%   However, the `Adobe Glyph List For New Fonts`_ maps, e.g., "tonos" and
%   "dieresistonos" to 0384 GREEK TONOS and 0385 GREEK DIALYTIKA TONOS, hence
%   `\texttonos` and `\textdiaresistonos` should denote these spacing
%   characters.
%
% * textcomp (ts1enc.def) defines ``\capital...`` accents (i.e. without
%   ``text`` prefix).
%
% * Use a common prefix ``\accent...`` or postfix ``\...accent``,
%   or short ``\acc...``?
%
% Currently, `lgrx` uses for diacritics_:
%
% - Greek names like in Unicode, and ucsencs.def
%
% - The prefix "acc" to distinguish the macros as `TextAaccent` and reduce the
%   risc of name clashes (cf ``\@tabacckludge``).
%
% - For the end-user "symbol macros" (``\~ \' \` \" \< \>``) are provided.
%
%
% References
% ~~~~~~~~~~
%
% An alternative, more complete set of short mnemonic character names is
% the `XML Entity Definitions for Characters`_ W3C Recommendation from
% 01 April 2010.
%
% For glyph names of the LGR encoding see e.g. ``CB.enc`` by Apostolos
% Syropoulos and ``xl-lgr.enc`` from the libertine_ (legacy) package.
% ``lgr.cmap`` provides a mapping to Unicode characters.
%
% A full set of ``\text*`` symbol macros is defined in ``ucsencs.def``
% from the ucs_ package.
%
% Aliases from ``puenc.def`` ensure that the hyperref_ package can
% convert Greek symbols to a PDF-string.
%
%
% Implementation
% --------------
%
% Read this file only once
% ~~~~~~~~~~~~~~~~~~~~~~~~
% .. note:: The use of ``\@ifundefined`` has the side-effect that the tested
%    macro becomes defined and set to ``\relax`` (polluting the namespace and
%    interfering with test via eTeX's ``\ifdefined``). However, in this case
%    no harm is done as the macro is defined by the identification_ below
%    anyway.
%
% ::

\@ifundefined{ver@lgrxenc.def}
  {\message{setting up comprehensive LGR font encoding definitions.}}
  {\message{comprehensive LGR font encoding definitions already loaded}
   \expandafter\endinput % "return"
  }

% Identification
% ~~~~~~~~~~~~~~
% ::

\ProvidesFile{lgrxenc.def}
[2013/05/03 v0.7 comprehensive LGR Greek Font Encoding definitions]


% Base setup
% ~~~~~~~~~~
%
% Declare the font encoding and substitutions.
% (from the file ``lgrenc.def`` that comes with the Babel package)::

\DeclareFontEncoding{LGR}{}{}
\DeclareFontSubstitution{LGR}{cmr}{m}{n}
\DeclareErrorFont{LGR}{cmr}{m}{n}{10}

% The ``\ensuregreek`` command can be used to ensure that its argument is set in
% a font encoding with support for Greek. If the font encoding is already LGR,
% kerning between adjacent command calls (e.g.
% ``\ensuregreek{A}\ensuregreek{\Upsilon}``) is preserved. This allows wrapping of
% compound Unicode character definitions. ::

\DeclareTextCommand{\ensuregreek}{LGR}[1]{#1}
\DeclareTextCommand{\TextGreek}{LGR}[1]{#1} % backwards compatibility


% Text symbols
% ~~~~~~~~~~~~
%
% Greek Alphabet
% """"""""""""""
%
% Greek letters are accessible by the Latin transcription, but the mapping is
% specific to the LGR font encoding.
%
% The LICR macros provide a way to access the symbols independent of the
% specific font encoding, in any font encoding supporting Greek. Alternative
% Greek font encodings are LGI (ibycus_) and PU (`PDF Unicode` used by
% hyperref_ for PDF metadata). The textalpha_ package makes these macros
% available independent of the current font encoding.
% ::

\DeclareTextSymbol{\textAlpha}{LGR}{65}
\DeclareTextSymbol{\textBeta}{LGR}{66}
\DeclareTextSymbol{\textGamma}{LGR}{71}
\DeclareTextSymbol{\textDelta}{LGR}{68}
\DeclareTextSymbol{\textEpsilon}{LGR}{69}
\DeclareTextSymbol{\textZeta}{LGR}{90}
\DeclareTextSymbol{\textEta}{LGR}{72}
\DeclareTextSymbol{\textTheta}{LGR}{74}
\DeclareTextSymbol{\textIota}{LGR}{73}
\DeclareTextSymbol{\textKappa}{LGR}{75}
\DeclareTextSymbol{\textLambda}{LGR}{76}
\DeclareTextSymbol{\textMu}{LGR}{77}
\DeclareTextSymbol{\textNu}{LGR}{78}
\DeclareTextSymbol{\textXi}{LGR}{88}
\DeclareTextSymbol{\textOmicron}{LGR}{79}
\DeclareTextSymbol{\textPi}{LGR}{80}
\DeclareTextSymbol{\textRho}{LGR}{82}
\DeclareTextSymbol{\textSigma}{LGR}{83}
\DeclareTextSymbol{\textTau}{LGR}{84}
\DeclareTextSymbol{\textUpsilon}{LGR}{85}
\DeclareTextSymbol{\textPhi}{LGR}{70}
\DeclareTextSymbol{\textChi}{LGR}{81}
\DeclareTextSymbol{\textPsi}{LGR}{89}
\DeclareTextSymbol{\textOmega}{LGR}{87}
%
\DeclareTextSymbol{\textalpha}{LGR}{97}
\DeclareTextSymbol{\textbeta}{LGR}{98}
\DeclareTextSymbol{\textgamma}{LGR}{103}
\DeclareTextSymbol{\textdelta}{LGR}{100}
\DeclareTextSymbol{\textepsilon}{LGR}{101}
\DeclareTextSymbol{\textzeta}{LGR}{122}
\DeclareTextSymbol{\texteta}{LGR}{104}
\DeclareTextSymbol{\texttheta}{LGR}{106}
\DeclareTextSymbol{\textiota}{LGR}{105}
\DeclareTextSymbol{\textkappa}{LGR}{107}
\DeclareTextSymbol{\textlambda}{LGR}{108}
\DeclareTextSymbol{\textmu}{LGR}{109}
\DeclareTextSymbol{\textnu}{LGR}{110}
\DeclareTextSymbol{\textxi}{LGR}{120}
\DeclareTextSymbol{\textomicron}{LGR}{111}
\DeclareTextSymbol{\textpi}{LGR}{112}
\DeclareTextSymbol{\textrho}{LGR}{114}
\DeclareTextCommand{\textsigma}{LGR}{s\noboundary} % σ
\DeclareTextSymbol{\textvarsigma}{LGR}{99}         % ς final sigma
\DeclareTextSymbol{\textfinalsigma}{LGR}{99}       % ς final sigma
\DeclareTextSymbol{\textautosigma}{LGR}{115}       % σ (ς at end of word)
\DeclareTextSymbol{\texttau}{LGR}{116}
\DeclareTextSymbol{\textupsilon}{LGR}{117}
\DeclareTextSymbol{\textphi}{LGR}{102}
\DeclareTextSymbol{\textchi}{LGR}{113}
\DeclareTextSymbol{\textpsi}{LGR}{121}
\DeclareTextSymbol{\textomega}{LGR}{119}


% Additional Greek symbols
% """"""""""""""""""""""""
%
% Ancient Greek Numbers (Athenian Numerals)
% '''''''''''''''''''''''''''''''''''''''''
%
% Names from the athnum_ package::

\DeclareTextSymbol{\PiDelta}{LGR}{2} % GREEK ACROPHONIC ATTIC FIFTY
\DeclareTextSymbol{\PiEta}{LGR}{3}   % GREEK ACROPHONIC ATTIC FIVE HUNDRED
\DeclareTextSymbol{\PiChi}{LGR}{4}   % GREEK ACROPHONIC ATTIC FIVE THOUSAND
\DeclareTextSymbol{\PiMu}{LGR}{5}    % GREEK ACROPHONIC ATTIC FIFTY THOUSAND

% Names from ``xl-lgr.enc`` (Greek numerals)::

\DeclareTextSymbol{\pentedeka}{LGR}{2}    % GREEK ACROPHONIC ATTIC FIFTY
\DeclareTextSymbol{\pentehekaton}{LGR}{3} % GREEK ACROPHONIC ATTIC FIVE HUNDRED
\DeclareTextSymbol{\penteqilioi}{LGR}{4}  % GREEK ACROPHONIC ATTIC FIVE THOUSAND
\DeclareTextSymbol{\pentemurioi}{LGR}{5}  % GREEK ACROPHONIC ATTIC FIFTY THOUSAND


% Archaic letters
% '''''''''''''''
% Names after babel_'s ``greek.ldf``, teubner_ and hyperref_'s puenc.def::

\DeclareTextSymbol{\stigma}{LGR}{6}           % ϛ (greek.ldf, teubner)
\DeclareTextSymbol{\varstigma}{LGR}{7}        % stigma variant (CB.enc, teubner)
\DeclareTextSymbol{\koppa}{LGR}{18}           % ϟ (greek small letter koppa)
\DeclareTextSymbol{\qoppa}{LGR}{19}           % ϙ (archaic koppa)
\DeclareTextSymbol{\Qoppa}{LGR}{21}           % Ϙ (archaic Koppa)
\DeclareTextSymbol{\Stigma}{LGR}{22}          % Ϛ (teubner) in some fonts ϹΤ ligature
\DeclareTextSymbol{\Sampi}{LGR}{23}           % Ϡ
\DeclareTextSymbol{\sampi}{LGR}{27}           % ϡ
\DeclareTextSymbol{\anoteleia}{LGR}{38}       % ·
\DeclareTextSymbol{\textanoteleia}{LGR}{38}   % ·
\DeclareTextSymbol{\erotimatiko}{LGR}{63}     % ;
% \digamma used by amsmath for math-macro:
\DeclareTextSymbol{\textdigamma}{LGR}{147}    % ϝ (uni-3.def (ucs))
\DeclareTextSymbol{\textDigamma}{LGR}{195}    % Ϝ (uni-3.def (ucs))

% Compatibility aliases (defined via `TextCommand` so that up/downcasing works
% without the need for additional uclclist entries::

\DeclareTextCommand{\vardigamma}{LGR}{\varstigma}         % greek.ldf
\DeclareTextCommand{\textSampigreek}{LGR}{\Sampi}         % puenc.def
\DeclareTextCommand{\textsampigreek}{LGR}{\sampi}         % puenc.def
\DeclareTextCommand{\textstigmagreek}{LGR}{\stigma}       % puenc.def
\DeclareTextCommand{\textkoppagreek}{LGR}{\koppa}         % puenc.def
\DeclareTextCommand{\textStigmagreek}{LGR}{\Stigma}       % puenc.def
\DeclareTextCommand{\ddigamma}{LGR}{\textdigamma}         % greek.ldf
\DeclareTextCommand{\textdigammagreek}{LGR}{\textdigamma} % puenc.def
\DeclareTextCommand{\Digamma}{LGR}{\textDigamma}          % greek.ldf
\DeclareTextCommand{\textDigammagreek}{LGR}{\textDigamma} % puenc.def


% Numeral signs
% '''''''''''''
% See also http://en.wikipedia.org/wiki/Greek_numerals
%
% Names from babel_, teubner_, and hyperref_'s puenc.def::

\DeclareTextSymbol{\anwtonos}{LGR}{254}             % ʹ (Dexia keraia)
\DeclareTextSymbol{\textnumeralsigngreek}{LGR}{254} % ʹ (puenc.def)
\DeclareTextSymbol{\katwtonos}{LGR}{255}            % ͵ (Aristeri keraia)
\DeclareTextSymbol{\textnumeralsignlowergreek}{LGR}{255} % ͵ (puenc.def)


% Other
% """""
%
% Characters that also exist in other font encodings:
%
% * define them for LGR if there is a matching glyph,
% * use established macro names that match with other ``*enc.def`` files and
%   ``textcomp.sty``.
%
% ::

% all encodings: See usrguide.pdf, chapter 3.14 ff
\DeclareTextSymbol{\textendash}{LGR}{0}          % EN DASH
\DeclareTextSymbol{\textquoteleft}{LGR}{28}      % ‘
\DeclareTextSymbol{\textquoteright}{LGR}{29}     % ’
\DeclareTextSymbol{\textperiodcentered}{LGR}{46} % · = \textanoteleia
\DeclareTextSymbol{\textcompwordmark}{LGR}{118}  % ZERO WIDTH NO JOINER
\DeclareTextSymbol{\textemdash}{LGR}{127}        % EM DASH

% T1
\DeclareTextSymbol{\guillemotleft}{LGR}{123}     % «
\DeclareTextSymbol{\guillemotright}{LGR}{125}    % »

% TS1
\ProvideTextCommand{\textasciibreve}{LGR}{\char30\textcompwordmark}    % ˘
\ProvideTextCommand{\textasciimacron}{LGR}{\char31\textcompwordmark}   % ¯
\ProvideTextCommand{\textasciidieresis}{LGR}{\char34\textcompwordmark} % "
\ProvideTextCommand{\textasciiacute}{LGR}{\char39\textcompwordmark}    % '
\ProvideTextCommand{\textasciigrave}{LGR}{\char96\textcompwordmark}    % `
\DeclareTextCommand{\textasciitilde}{LGR}{\char126\textcompwordmark}   % ~
\DeclareTextSymbol{\textohm}{LGR}{87}            % Ω (Ohm sign -> Omega)
\DeclareTextSymbol{\texteuro}{LGR}{24}           % € \euro in greek.ldf
\DeclareTextSymbol{\textpercent}{LGR}{37}        % %
\DeclareTextSymbol{\textperthousand}{LGR}{25}    % ‰ \permille in greek.ldf

% T3
\DeclareTextSymbol{\textschwa}{LGR}{26}          % ə

% Not implemented
% """""""""""""""
%
% The characters at position 16 and 17 are used in the ``\nexus`` macro
% of the teubner_ package to form an extensible, hat-like bracket. In
% ``CB.enc``, they are mapped to
%
%   16--MODIFIER LETTER LOW ACUTE ACCENT
%   17--MODIFIER LETTER LOW GRAVE ACCENT
%
% but according to the documentation of Werner Lemberg's `babel patch`_,
% they rather represent the left and right part of U+23E0 TOP TORTOISE
% SHELL BRACKET.
%
% Babel's ``lgrenc.def`` has some definitions to prevent surprises with
% macros that expect a Latin script. These definitions are problematic
% in a font-encoding definition file as they
%
% * require ``\textlatin`` which is defined in ``babel.def``,
% * prevent use of TS1 symbols set as default by ``textcomp.sty``.
%
% ::

%\ProvideTextCommand{\textcopyright}{LGR}{\textcircled{\textlatin{c}}}
%\ProvideTextCommand{\textregistered}{LGR}{\textcircled{\textlatin{\textsc r}}}
%\ProvideTextCommand{\texttrademark}{LGR}{\textsuperscript{\textlatin{TM}}}
%\ProvideTextCommand{\SS}{LGR}{\textlatin{SS}}

% They may be moved to ``greek.ldf`` one day (with a caveat for textcomp/TS1).
%
%
% Diacritics
% ~~~~~~~~~~
%
% This section defines `named macros`_ for Greek diacritics and standard
% `symbol macros`_ as alias for simple diacritics. Convenient input
% conventions for `composite diacritics`_ are defined as `composite
% definitions`_.
%
% Advantages:
%
% * input convention similar to LGR input encodings (just prepend a ``\``).
%
% * Access pre-composed characters without resorting to the
%   ligature mechanism (allows proper kerning, cf. teubner-doc_).
%
% * Named macros can be used to ensure a font encoding supporting Greek is
%   used. However, substitution with pre-composed characters works only for
%   the active font encoding (cf. textalpha_). Named accent macros can also be
%   used instead of the ``\@tabacckludge`` by to-LaTeX converters to ensure
%   working also inside the tabbing environment.
%
% * Named macros are required for upcasing according to Greek typesetting
%   conventions (cf. `UPPERCASE`_ below) and for composite diacritics.
%
%
% Named macros
% """"""""""""
%
% Definitions are based on the teubner_ package by Claudio Beccari, the ucs_
% package, and the `babel patch`_ by Werner Lemberg. Names are derived from
% the Unicode name with the prefix "acc" (cf. `How to name accent macros?`_
% above) resulting in reduced probability of incompatibilities compared to the
% two-letter teubner_ diacritic macros.
%
% Simple Greek diacritics::

\DeclareTextAccent{\accdialytika}{LGR}{34} % διαλυτικά (diaeresis/trema)
\DeclareTextAccent{\acctonos}{LGR}{39} % τόνος/ὀξεῖα tonos/oxia (acute)
\DeclareTextAccent{\accdasia}{LGR}{60} % δασεῖα spiritus asper (rough breathing)
\DeclareTextAccent{\accpsili}{LGR}{62} % ψιλή spiritus lenis (smooth breathing)
\DeclareTextAccent{\accvaria}{LGR}{96} % βαρεῖα (grave)
\DeclareTextAccent{\accperispomeni}{LGR}{126} % περισπωμένη (circonflex/tilde)

% The sub-iota is input after the base character. In LGR fonts, ligatures are
% defined for pre-composed characters, the postfix ligature does not interfere
% with kerning::

\DeclareTextSymbol{\prosgegrammeni}{LGR}{8}  % ι "capital" sub-iota
\DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ "small" sub-iota

% Composite diacritics::

%                                                       Teubner name
\DeclareTextAccent{\accdialytikaperispomeni}{LGR}{32} % Cd
\DeclareTextAccent{\accdialytikatonos}{LGR}{35}       % Ad
\DeclareTextAccent{\accdialytikavaria}{LGR}{36}       % Gd

\DeclareTextAccent{\accdasiaperispomeni}{LGR}{64}     % Cr
\DeclareTextAccent{\accdasiavaria}{LGR}{67}           % Gr
\DeclareTextAccent{\accdasiaoxia}{LGR}{86}            % Ar

\DeclareTextAccent{\accpsiliperispomeni}{LGR}{92}     % Cs
\DeclareTextAccent{\accpsilioxia}{LGR}{94}            % As
\DeclareTextAccent{\accpsilivaria}{LGR}{95}           % Gs

% For classical Greek and linguistics, the LGR font encoding contains a number
% of additional diacritic symbols::

\DeclareTextAccent{\subinvertedbreve}{LGR}{1} % INVERTED BREVE BELOW
\DeclareTextAccent{\textsubarch}{LGR}{1}      % (tipa)
\DeclareTextAccent{\subbreve}{LGR}{20}        % BREVE BELOW
\DeclareTextAccent{\u}{LGR}{30}               % BREVE
\DeclareTextAccent{\=}{LGR}{31}               % MACRON


% Aliases
% """""""
%
% _`Symbol macros`::

\DeclareTextCommand{\"}{LGR}{\accdialytika}
\DeclareTextCommand{\'}{LGR}{\acctonos}
\DeclareTextCommand{\`}{LGR}{\accvaria}
\DeclareTextCommand{\~}{LGR}{\accperispomeni}
\DeclareTextCommand{\<}{LGR}{\accdasia}
\DeclareTextCommand{\>}{LGR}{\accpsili}

% TODO: do we also want alternative symbols for the breathings (cf. X compose
% table, LCI encoding)? ::

%\DeclareTextCommand{\(}{LGR}{\accdasia}
%\DeclareTextCommand{\)}{LGR}{\accpsili}

% Two Unicode names for one character::

\DeclareTextCommand{\accoxia}{LGR}{\acctonos}
\DeclareTextCommand{\acckoronis}{LGR}{\accpsili}

% Backwards compatibility with LGRx versions < 0.7::

\DeclareTextCommand{\Ypogegrammeni}{LGR}{\ypogegrammeni}
\DeclareTextCommand{\Prosgegrammeni}{LGR}{\prosgegrammeni}

\DeclareTextCommand{\lowbreve}{LGR}{\brevebelow}
\DeclareTextCommand{\Dasia}{LGR}{\accdasia}
\DeclareTextCommand{\Psili}{LGR}{\accpsili}
\DeclareTextCommand{\Tonos}{LGR}{\acctonos}
\DeclareTextCommand{\Varia}{LGR}{\accvaria}
\DeclareTextCommand{\Perispomeni}{LGR}{\accperispomeni}
\DeclareTextCommand{\Dialytika}{LGR}{\accdialytika}

\DeclareTextCommand{\DialytikaPerispomeni}{LGR}{\accdialytikaperispomeni}
\DeclareTextCommand{\DialytikaTonos}{LGR}{\accdialytikatonos}
\DeclareTextCommand{\DialytikaVaria}{LGR}{\accdialytikavaria}
\DeclareTextCommand{\DasiaPerispomeni}{LGR}{\accdasiaperispomeni}
\DeclareTextCommand{\DasiaVaria}{LGR}{\accdasiavaria}
\DeclareTextCommand{\DasiaOxia}{LGR}{\accdasiaoxia}
\DeclareTextCommand{\PsiliPerispomeni}{LGR}{\accpsiliperispomeni}
\DeclareTextCommand{\PsiliOxia}{LGR}{\accpsilioxia}
\DeclareTextCommand{\PsiliVaria}{LGR}{\accpsilivaria}


% Composite definitions
% ~~~~~~~~~~~~~~~~~~~~~
%
% Composite diacritics
% """"""""""""""""""""
%
% Composite accents can be input as sequence of simple diacritics (in
% arbitrary order) via named macro, symbol macro and "transcription
% characters", e.g. ``\accdialytica\accvaria\textalpha``, ``\"\'\textalpha``,
% ``\"'\textalpha``, or ``\'"\textalpha``.
%
% Separate definitions for the supported variants of the second input token
% are required as composition is based on the non-expanded input

% The composition with simple "transcription characters" must also be defined
% for the symbol macros, otherwise it fails with ``\Makeuppercase``)::

\DeclareTextCompositeCommand{\accdialytika}{LGR}{\acctonos}{\accdialytikatonos}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{\'}{\accdialytikatonos}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{'}{\accdialytikatonos}
\DeclareTextCompositeCommand{\"}{LGR}{'}{\accdialytikatonos}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{\accvaria}{\accdialytikavaria}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{\`}{\accdialytikavaria}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{`}{\accdialytikavaria}
\DeclareTextCompositeCommand{\"}{LGR}{`}{\accdialytikavaria}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{\accperispomeni}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{\~}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\accdialytika}{LGR}{~}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\"}{LGR}{~}{\accdialytikaperispomeni}

\DeclareTextCompositeCommand{\acctonos}{LGR}{\accdialytika}{\accdialytikatonos}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\"}{\accdialytikatonos}
\DeclareTextCompositeCommand{\acctonos}{LGR}{"}{\accdialytikatonos}
\DeclareTextCompositeCommand{\'}{LGR}{"}{\accdialytikatonos}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\accdasia}{\accdasiaoxia}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\<}{\accdasiaoxia}
\DeclareTextCompositeCommand{\acctonos}{LGR}{<}{\accdasiaoxia}
\DeclareTextCompositeCommand{\'}{LGR}{<}{\accdasiaoxia}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\accpsili}{\accpsilioxia}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\>}{\accpsilioxia}
\DeclareTextCompositeCommand{\acctonos}{LGR}{>}{\accpsilioxia}
\DeclareTextCompositeCommand{\'}{LGR}{>}{\accpsilioxia}

\DeclareTextCompositeCommand{\accvaria}{LGR}{\accdialytika}{\accdialytikavaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\"}{\accdialytikavaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{"}{\accdialytikavaria}
\DeclareTextCompositeCommand{\`}{LGR}{"}{\accdialytikavaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\accdasia}{\accdasiavaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\<}{\accdasiavaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{<}{\accdasiavaria}
\DeclareTextCompositeCommand{\`}{LGR}{<}{\accdasiavaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\accpsili}{\accpsilivaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\>}{\accpsilivaria}
\DeclareTextCompositeCommand{\accvaria}{LGR}{>}{\accpsilivaria}
\DeclareTextCompositeCommand{\`}{LGR}{>}{\accpsilivaria}

\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\accdialytika}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\"}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{"}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\~}{LGR}{"}{\accdialytikaperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\accdasia}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\<}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{<}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\~}{LGR}{<}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\accpsili}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{\>}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\accperispomeni}{LGR}{>}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\~}{LGR}{>}{\accpsiliperispomeni}

\DeclareTextCompositeCommand{\accpsili}{LGR}{\acctonos}{\accpsilioxia}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\'}{\accpsilioxia}
\DeclareTextCompositeCommand{\accpsili}{LGR}{'}{\accpsilioxia}
\DeclareTextCompositeCommand{\>}{LGR}{'}{\accpsilioxia}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\accvaria}{\accpsilivaria}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\`}{\accpsilivaria}
\DeclareTextCompositeCommand{\accpsili}{LGR}{`}{\accpsilivaria}
\DeclareTextCompositeCommand{\>}{LGR}{`}{\accpsilivaria}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\accperispomeni}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\~}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\accpsili}{LGR}{~}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\>}{LGR}{~}{\accpsiliperispomeni}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\acctonos}{\accdasiaoxia}
\DeclareTextCompositeCommand{\accdasia}{LGR}{\'}{\accdasiaoxia}
\DeclareTextCompositeCommand{\accdasia}{LGR}{'}{\accdasiaoxia}
\DeclareTextCompositeCommand{\<}{LGR}{'}{\accdasiaoxia}
\DeclareTextCompositeCommand{\accdasia}{LGR}{\accvaria}{\accdasiavaria}
\DeclareTextCompositeCommand{\accdasia}{LGR}{\`}{\accdasiavaria}
\DeclareTextCompositeCommand{\accdasia}{LGR}{`}{\accdasiavaria}
\DeclareTextCompositeCommand{\<}{LGR}{`}{\accdasiavaria}
\DeclareTextCompositeCommand{\accdasia}{LGR}{\accperispomeni}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\accdasia}{LGR}{\~}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\<}{LGR}{~}{\accdasiaperispomeni}


% Pre-composed letters
% """"""""""""""""""""
% Small letters with diacritics
% '''''''''''''''''''''''''''''
%
% (from teubner_ with changed names of the composite accents)::

\DeclareTextComposite{\accvaria}{LGR}{a}{128}
\DeclareTextComposite{\accdasia}{LGR}{a}{129}
\DeclareTextComposite{\accpsili}{LGR}{a}{130}
\DeclareTextComposite{\accdasiavaria}{LGR}{a}{131}
\DeclareTextComposite{\acctonos}{LGR}{a}{136}
\DeclareTextComposite{\accdasiaoxia}{LGR}{a}{137}
\DeclareTextComposite{\accpsilioxia}{LGR}{a}{138}
\DeclareTextComposite{\accpsilivaria}{LGR}{a}{139}
\DeclareTextComposite{\accperispomeni}{LGR}{a}{144}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{a}{145}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{a}{146}
\DeclareTextComposite{\accvaria}{LGR}{h}{152}
\DeclareTextComposite{\accdasia}{LGR}{h}{153}
\DeclareTextComposite{\accpsili}{LGR}{h}{154}
\DeclareTextComposite{\acctonos}{LGR}{h}{160}
\DeclareTextComposite{\accdasiaoxia}{LGR}{h}{161}
\DeclareTextComposite{\accpsilioxia}{LGR}{h}{162}
\DeclareTextComposite{\accdasiavaria}{LGR}{h}{163}
\DeclareTextComposite{\accperispomeni}{LGR}{h}{168}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{h}{169}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{h}{170}
\DeclareTextComposite{\accpsilivaria}{LGR}{h}{171}
\DeclareTextComposite{\accvaria}{LGR}{w}{176}
\DeclareTextComposite{\accdasia}{LGR}{w}{177}
\DeclareTextComposite{\accpsili}{LGR}{w}{178}
\DeclareTextComposite{\accdasiavaria}{LGR}{w}{179}
\DeclareTextComposite{\acctonos}{LGR}{w}{184}
\DeclareTextComposite{\accdasiaoxia}{LGR}{w}{185}
\DeclareTextComposite{\accpsilioxia}{LGR}{w}{186}
\DeclareTextComposite{\accpsilivaria}{LGR}{w}{187}
\DeclareTextComposite{\accperispomeni}{LGR}{w}{192}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{w}{193}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{w}{194}
\DeclareTextComposite{\accvaria}{LGR}{i}{200}
\DeclareTextComposite{\accdasia}{LGR}{i}{201}
\DeclareTextComposite{\accpsili}{LGR}{i}{202}
\DeclareTextComposite{\accdasiavaria}{LGR}{i}{203}
\DeclareTextComposite{\acctonos}{LGR}{i}{208}
\DeclareTextComposite{\accdasiaoxia}{LGR}{i}{209}
\DeclareTextComposite{\accpsilioxia}{LGR}{i}{210}
\DeclareTextComposite{\accpsilivaria}{LGR}{i}{211}
\DeclareTextComposite{\accperispomeni}{LGR}{i}{216}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{i}{217}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{i}{218}
\DeclareTextComposite{\accdialytika}{LGR}{i}{240}
\DeclareTextComposite{\accdialytikavaria}{LGR}{i}{241}
\DeclareTextComposite{\accdialytikatonos}{LGR}{i}{242}
\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{i}{243}
\DeclareTextComposite{\accvaria}{LGR}{u}{204}
\DeclareTextComposite{\accdasia}{LGR}{u}{205}
\DeclareTextComposite{\accpsili}{LGR}{u}{206}
\DeclareTextComposite{\accdasiavaria}{LGR}{u}{207}
\DeclareTextComposite{\acctonos}{LGR}{u}{212}
\DeclareTextComposite{\accdasiaoxia}{LGR}{u}{213}
\DeclareTextComposite{\accpsilioxia}{LGR}{u}{214}
\DeclareTextComposite{\accpsilivaria}{LGR}{u}{215}
\DeclareTextComposite{\accperispomeni}{LGR}{u}{220}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{u}{221}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{u}{222}
\DeclareTextComposite{\accdialytika}{LGR}{u}{244}
\DeclareTextComposite{\accdialytikavaria}{LGR}{u}{245}
\DeclareTextComposite{\accdialytikatonos}{LGR}{u}{246}
\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{u}{247}
\DeclareTextComposite{\accvaria}{LGR}{e}{224}
\DeclareTextComposite{\accdasia}{LGR}{e}{225}
\DeclareTextComposite{\accpsili}{LGR}{e}{226}
\DeclareTextComposite{\accdasiavaria}{LGR}{e}{227}
\DeclareTextComposite{\acctonos}{LGR}{e}{232}
\DeclareTextComposite{\accdasiaoxia}{LGR}{e}{233}
\DeclareTextComposite{\accpsilioxia}{LGR}{e}{234}
\DeclareTextComposite{\accpsilivaria}{LGR}{e}{235}
\DeclareTextComposite{\accvaria}{LGR}{o}{228}
\DeclareTextComposite{\accdasia}{LGR}{o}{229}
\DeclareTextComposite{\accpsili}{LGR}{o}{230}
\DeclareTextComposite{\accdasiavaria}{LGR}{o}{231}
\DeclareTextComposite{\acctonos}{LGR}{o}{236}
\DeclareTextComposite{\accdasiaoxia}{LGR}{o}{237}
\DeclareTextComposite{\accpsilioxia}{LGR}{o}{238}
\DeclareTextComposite{\accpsilivaria}{LGR}{o}{239}
\DeclareTextComposite{\accdasia}{LGR}{r}{251}
\DeclareTextComposite{\accpsili}{LGR}{r}{252}

% Pre-composed letters with diacritics + LICR macros::

\DeclareTextComposite{\accvaria}{LGR}{\textalpha}{128}
\DeclareTextComposite{\accdasia}{LGR}{\textalpha}{129}
\DeclareTextComposite{\accpsili}{LGR}{\textalpha}{130}
\DeclareTextComposite{\accdasiavaria}{LGR}{\textalpha}{131}
\DeclareTextComposite{\acctonos}{LGR}{\textalpha}{136}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\textalpha}{137}
\DeclareTextComposite{\accpsilioxia}{LGR}{\textalpha}{138}
\DeclareTextComposite{\accpsilivaria}{LGR}{\textalpha}{139}
\DeclareTextComposite{\accperispomeni}{LGR}{\textalpha}{144}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textalpha}{145}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textalpha}{146}
\DeclareTextComposite{\accvaria}{LGR}{\texteta}{152}
\DeclareTextComposite{\accdasia}{LGR}{\texteta}{153}
\DeclareTextComposite{\accpsili}{LGR}{\texteta}{154}
\DeclareTextComposite{\acctonos}{LGR}{\texteta}{160}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\texteta}{161}
\DeclareTextComposite{\accpsilioxia}{LGR}{\texteta}{162}
\DeclareTextComposite{\accdasiavaria}{LGR}{\texteta}{163}
\DeclareTextComposite{\accperispomeni}{LGR}{\texteta}{168}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\texteta}{169}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\texteta}{170}
\DeclareTextComposite{\accpsilivaria}{LGR}{\texteta}{171}
\DeclareTextComposite{\accvaria}{LGR}{\textomega}{176}
\DeclareTextComposite{\accdasia}{LGR}{\textomega}{177}
\DeclareTextComposite{\accpsili}{LGR}{\textomega}{178}
\DeclareTextComposite{\accdasiavaria}{LGR}{\textomega}{179}
\DeclareTextComposite{\acctonos}{LGR}{\textomega}{184}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\textomega}{185}
\DeclareTextComposite{\accpsilioxia}{LGR}{\textomega}{186}
\DeclareTextComposite{\accpsilivaria}{LGR}{\textomega}{187}
\DeclareTextComposite{\accperispomeni}{LGR}{\textomega}{192}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textomega}{193}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textomega}{194}
\DeclareTextComposite{\accvaria}{LGR}{\textiota}{200}
\DeclareTextComposite{\accdasia}{LGR}{\textiota}{201}
\DeclareTextComposite{\accpsili}{LGR}{\textiota}{202}
\DeclareTextComposite{\accdasiavaria}{LGR}{\textiota}{203}
\DeclareTextComposite{\acctonos}{LGR}{\textiota}{208}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\textiota}{209}
\DeclareTextComposite{\accpsilioxia}{LGR}{\textiota}{210}
\DeclareTextComposite{\accpsilivaria}{LGR}{\textiota}{211}
\DeclareTextComposite{\accperispomeni}{LGR}{\textiota}{216}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textiota}{217}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textiota}{218}
\DeclareTextComposite{\accdialytika}{LGR}{\textiota}{240}
\DeclareTextComposite{\accdialytikavaria}{LGR}{\textiota}{241}
\DeclareTextComposite{\accdialytikatonos}{LGR}{\textiota}{242}
\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\textiota}{243}
\DeclareTextComposite{\accvaria}{LGR}{\textupsilon}{204}
\DeclareTextComposite{\accdasia}{LGR}{\textupsilon}{205}
\DeclareTextComposite{\accpsili}{LGR}{\textupsilon}{206}
\DeclareTextComposite{\accdasiavaria}{LGR}{\textupsilon}{207}
\DeclareTextComposite{\acctonos}{LGR}{\textupsilon}{212}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\textupsilon}{213}
\DeclareTextComposite{\accpsilioxia}{LGR}{\textupsilon}{214}
\DeclareTextComposite{\accpsilivaria}{LGR}{\textupsilon}{215}
\DeclareTextComposite{\accperispomeni}{LGR}{\textupsilon}{220}
\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\textupsilon}{221}
\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\textupsilon}{222}
\DeclareTextComposite{\accdialytika}{LGR}{\textupsilon}{244}
\DeclareTextComposite{\accdialytikavaria}{LGR}{\textupsilon}{245}
\DeclareTextComposite{\accdialytikatonos}{LGR}{\textupsilon}{246}
\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\textupsilon}{247}
\DeclareTextComposite{\accvaria}{LGR}{\textepsilon}{224}
\DeclareTextComposite{\accdasia}{LGR}{\textepsilon}{225}
\DeclareTextComposite{\accpsili}{LGR}{\textepsilon}{226}
\DeclareTextComposite{\accdasiavaria}{LGR}{\textepsilon}{227}
\DeclareTextComposite{\acctonos}{LGR}{\textepsilon}{232}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\textepsilon}{233}
\DeclareTextComposite{\accpsilioxia}{LGR}{\textepsilon}{234}
\DeclareTextComposite{\accpsilivaria}{LGR}{\textepsilon}{235}
\DeclareTextComposite{\accvaria}{LGR}{\textomicron}{228}
\DeclareTextComposite{\accdasia}{LGR}{\textomicron}{229}
\DeclareTextComposite{\accpsili}{LGR}{\textomicron}{230}
\DeclareTextComposite{\accdasiavaria}{LGR}{\textomicron}{231}
\DeclareTextComposite{\acctonos}{LGR}{\textomicron}{236}
\DeclareTextComposite{\accdasiaoxia}{LGR}{\textomicron}{237}
\DeclareTextComposite{\accpsilioxia}{LGR}{\textomicron}{238}
\DeclareTextComposite{\accpsilivaria}{LGR}{\textomicron}{239}
\DeclareTextComposite{\accdasia}{LGR}{r}{251}
\DeclareTextComposite{\accpsili}{LGR}{r}{252}


% Capital letters with diacritics
% '''''''''''''''''''''''''''''''
%
%  In Greek, diacritics are omitted in all-uppercase words, but kept as part
%  of an uppercase initial (written before rather than above the letter).
%
%  The diaytika should also always be used in all-uppercase words (even
%  in cases where they are not needed when writing in lowercase)
%
%  -- http://en.wikipedia.org/wiki/Capitalization
%
% In Title Case, place diacritics before instead of above the base character::

\DeclareTextCompositeCommand{\accdasia}{LGR}{A}{<A}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{A}{<`A}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{A}{<'A}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{A}{<\char126A}
\DeclareTextCompositeCommand{\accpsili}{LGR}{A}{>A}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{A}{>`A}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{A}{>'A}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{A}{>\char126A}
\DeclareTextCompositeCommand{\acctonos}{LGR}{A}{'A}
\DeclareTextCompositeCommand{\accvaria}{LGR}{A}{`A}

\DeclareTextCompositeCommand{\accdasia}{LGR}{E}{<E}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{E}{<'E}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{E}{<`E}
\DeclareTextCompositeCommand{\accpsili}{LGR}{E}{>E}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{E}{>'E}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{E}{>`E}
\DeclareTextCompositeCommand{\acctonos}{LGR}{E}{'E}
\DeclareTextCompositeCommand{\accvaria}{LGR}{E}{`E}

\DeclareTextCompositeCommand{\accdasia}{LGR}{H}{<H}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{H}{<`H}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{H}{<'H}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{H}{<\char126H}
\DeclareTextCompositeCommand{\accpsili}{LGR}{H}{>H}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{H}{>`H}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{H}{>'H}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{H}{>\char126H}
\DeclareTextCompositeCommand{\acctonos}{LGR}{H}{'H}
\DeclareTextCompositeCommand{\accvaria}{LGR}{H}{`H}

\DeclareTextCompositeCommand{\accdasia}{LGR}{I}{<I}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{I}{<`I}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{I}{<'I}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{I}{<\char126I}
\DeclareTextCompositeCommand{\accpsili}{LGR}{I}{>I}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{I}{>`I}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{I}{>'I}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{I}{>\char126I}
\DeclareTextCompositeCommand{\acctonos}{LGR}{I}{'I}
\DeclareTextCompositeCommand{\accvaria}{LGR}{I}{`I}

\DeclareTextCompositeCommand{\accdasia}{LGR}{O}{<O}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{O}{<`O}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{O}{<'O}
\DeclareTextCompositeCommand{\accpsili}{LGR}{O}{>O}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{O}{>`O}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{O}{>'O}
\DeclareTextCompositeCommand{\acctonos}{LGR}{O}{'O}
\DeclareTextCompositeCommand{\accvaria}{LGR}{O}{`O}

\DeclareTextCompositeCommand{\accdasia}{LGR}{U}{<U}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{U}{<`U}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{U}{<'U}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{U}{<\char126U}
\DeclareTextCompositeCommand{\acctonos}{LGR}{U}{'U}
\DeclareTextCompositeCommand{\accvaria}{LGR}{U}{`U}

\DeclareTextCompositeCommand{\accdasia}{LGR}{W}{<W}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{W}{<`W}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{W}{<'W}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{W}{<\char126W}
\DeclareTextCompositeCommand{\accpsili}{LGR}{W}{>W}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{W}{>`W}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{W}{>'W}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{W}{>\char126W}
\DeclareTextCompositeCommand{\acctonos}{LGR}{W}{'W}
\DeclareTextCompositeCommand{\accvaria}{LGR}{W}{`W}

% Except for the dialytika::

\DeclareTextComposite{\accdialytika}{LGR}{I}{219}
\DeclareTextComposite{\accdialytika}{LGR}{U}{223}

% Do the same for the LICR macros::

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textAlpha}{<A}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textAlpha}{<`A}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textAlpha}{<'A}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textAlpha}{<\char126A}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\textAlpha}{>A}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textAlpha}{>`A}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textAlpha}{>'A}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textAlpha}{>\char126A}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textAlpha}{'A}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textAlpha}{`A}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textEpsilon}{<E}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textEpsilon}{<'E}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textEpsilon}{<`E}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\textEpsilon}{>E}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textEpsilon}{>'E}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textEpsilon}{>`E}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textEpsilon}{'E}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textEpsilon}{`E}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textEta}{<H}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textEta}{<`H}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textEta}{<'H}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textEta}{<\char126H}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\textEta}{>H}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textEta}{>`H}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textEta}{>'H}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textEta}{>\char126H}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textEta}{'H}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textEta}{`H}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textIota}{<I}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textIota}{<`I}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textIota}{<'I}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textIota}{<\char126I}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\textIota}{>I}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textIota}{>`I}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textIota}{>'I}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textIota}{>\char126I}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textIota}{'I}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textIota}{`I}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textOmicron}{<O}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textOmicron}{<`O}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textOmicron}{<'O}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\textOmicron}{>O}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textOmicron}{>`O}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textOmicron}{>'O}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textOmicron}{'O}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textOmicron}{`O}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textUpsilon}{<U}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textUpsilon}{<`U}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textUpsilon}{<'U}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textUpsilon}{<\char126U}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textUpsilon}{'U}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textUpsilon}{`U}

\DeclareTextCompositeCommand{\accdasia}{LGR}{\textOmega}{<W}
\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\textOmega}{<`W}
\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\textOmega}{<'W}
\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\textOmega}{<\char126W}
\DeclareTextCompositeCommand{\accpsili}{LGR}{\textOmega}{>W}
\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textOmega}{>`W}
\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textOmega}{>'W}
\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textOmega}{>\char126W}
\DeclareTextCompositeCommand{\acctonos}{LGR}{\textOmega}{'W}
\DeclareTextCompositeCommand{\accvaria}{LGR}{\textOmega}{`W}

% Except for the dialytika::

\DeclareTextComposite{\accdialytika}{LGR}{\textIota}{219}
\DeclareTextComposite{\accdialytika}{LGR}{\textUpsilon}{223}


% UPPERCASE
% ~~~~~~~~~
%
% @uclclist extension
% """""""""""""""""""
%
% If UPPERCASE (all-caps) is generated with ``\MakeUppercase``, macro
% substitutions in the ``\@uclclist`` apply. This can be used to drop the
% diacritics (except dialytika).
%
% Based on the `babel patch`_ and ``fontenc.sty``.
% (The first two lines are TeX' way of writing ``uclclist += …``)::

\expandafter\def\expandafter\@uclclist\expandafter{%
   \@uclclist
    \accdasia\acc@invisible
    \accdasiaoxia\@hiatus
    \accdasiavaria\acc@invisible
    \accdasiaperispomeni\acc@invisible
    \accpsili\@hiatus
    \accpsilioxia\@hiatus
    \accpsilivaria\@hiatus
    \accpsiliperispomeni\acc@invisible
    \acctonos\@hiatus
    \accvaria\acc@invisible
    \accdialytikatonos\acc@Dialytika
    \accdialytikavaria\acc@Dialytika
    \accdialytikaperispomeni\acc@Dialytika
    \accperispomeni\acc@invisible
    \ypogegrammeni\prosgegrammeni
    %
    \textalpha  \textAlpha
    \textbeta   \textBeta
    \textgamma  \textGamma
    \textdelta  \textDelta
    \textepsilon\textEpsilon
    \textzeta   \textZeta
    \texteta    \textEta
    \texttheta  \textTheta
    \textiota   \textIota
    \textkappa  \textKappa
    \textlambda \textLambda
    \textmu     \textMu
    \textnu     \textNu
    \textxi     \textXi
    \textomicron\textOmicron
    \textpi     \textPi
    \textrho    \textRho
    \textvarsigma  \textSigma
    \textsigma     \textSigma
    \textautosigma \textSigma
    \texttau    \textTau
    \textupsilon\textUpsilon
    \textphi    \textPhi
    \textchi    \textChi
    \textpsi    \textPsi
    \textomega  \textOmega
    %
    \qoppa      \Qoppa
    \varstigma  \Stigma
    \stigma     \Stigma
    \sampi      \Sampi
    \textdigamma \textDigamma
}

% Substitution macros
% """""""""""""""""""
%
% Drop diacritics
% '''''''''''''''
% ::

\DeclareTextCommand{\acc@invisible}{LGR}[1]{#1}

% (The argument processing ensures that kerning is preserved)
%
% Keep dialytika.
% '''''''''''''''
%
% Define a dummy alias so that downcasing with ``\MakeLowercase`` does not
% convert a simple dialytika to a composite accent::

\DeclareTextCommand{\acc@Dialytika}{LGR}{\accdialytika}

\DeclareTextCompositeCommand{\accdialytika}{LGR}{\@hiatus}{\accdialytika}

% .. TODO: MakeUppercase with ``\"'`` fails if the language is "greek".
%    How can we specify a composite command with character ``"9F``,
%    the uccode of ``'``?
%
%    % \DeclareTextCompositeCommand{\acc@Dialytika}{LGR}{"9F}{\accdialytika}
%    % \DeclareTextAccent{\acc@Dialytika}{LGR}{34} % upcase Dialytika
%    % \DeclareTextCompositeCommand{\acc@Dialytika}{LGR}{\@hiatus}{\accdialytika}
%    % \DeclareTextCompositeCommand{\acc@Dialytika}{LGR}{'}{\accdialytika}
%
% Mark hiatus
% '''''''''''
%
% Tonos and dasia mark a hiatus if placed on the
% first vowel of a diphthong (ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the
% second vowel if they are dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ,
% ἀυπνία → ΑΫΠΝΙΑ)::

\DeclareTextCommand{\@hiatus}{LGR}[1]{#1}
\DeclareTextCompositeCommand{\@hiatus}{LGR}{>}{\@hiatus}
\DeclareTextCompositeCommand{\@hiatus}{LGR}{<}{\acc@invisible}
\DeclareTextCompositeCommand{\@hiatus}{LGR}{A}{\A@hiatus}
\DeclareTextCompositeCommand{\@hiatus}{LGR}{\textAlpha}{\A@hiatus}
\DeclareTextCompositeCommand{\@hiatus}{LGR}{E}{\E@hiatus}
\DeclareTextCompositeCommand{\@hiatus}{LGR}{\textEpsilon}{\E@hiatus}
% What does the \@hiatus command "see" if an unicode literal follows?
% \DeclareTextCompositeCommand{\@hiatus}{LGR}{\symbol{"ce}}{bluff}
% \DeclareTextCompositeCommand{\@hiatus}{LGR}{"cf}{blaff}
% \DeclareTextCompositeCommand{\@hiatus}{LGR}{ι}{blaff}

% Look ahead and place a diaeresis on Ι or Υ::

\DeclareTextCommand{\A@hiatus}{LGR}{%
  \LGR@ifnextchar{I}{A\"}{%
    \LGR@ifnextchar{U}{A\"}{%
      \LGR@ifnextchar{\textIota}{A\"}{%
        \LGR@ifnextchar{\textUpsilon}{A\"}{A}%
      }%
    }%
  }%
}
\DeclareTextCommand{\E@hiatus}{LGR}{%
  \LGR@ifnextchar{I}{E\"}{%
    \LGR@ifnextchar{U}{E\"}{%
      \LGR@ifnextchar{\textIota}{E\"}{%
        \LGR@ifnextchar{\textUpsilon}{E\"}{E}%
      }%
    }%
  }%
}

% As ``\@ifnextchar`` gobbles spaces the lookahead macro definition from
% ``amsgen.sty`` is used:
%
%   This macro is a new version of LaTeX’s ``\@ifnextchar``, macro
%   that does not skip over spaces.
%
% ::

\ProvideTextCommand{\LGR@ifnextchar}{LGR}[3]{%
% \long\def\LGR@ifnextchar#1#2#3{%
  \let\reserved@d= #1%
  \def\reserved@a{#2}\def\reserved@b{#3}%
  \futurelet\@let@token\LGR@ifnch
}
\ProvideTextCommand{\LGR@ifnch}{LGR}{%
  \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi
  \reserved@b
}

% Unfortunately, the lookahead breaks kerning.
%
% Alternatives tried:
%
% * CompositeCommands fail at the end of a macro, e.g. ``\emph{\'a}``::

  %\DeclareTextCommand{\A@hiatus}{LGR}{A}
  %\DeclareTextCommand{\E@hiatus}{LGR}{E}

  %\DeclareTextCompositeCommand{\A@hiatus}{LGR}{}{A}
  %\DeclareTextCompositeCommand{\A@hiatus}{LGR}{I}{A\"I}
  %\DeclareTextCompositeCommand{\A@hiatus}{LGR}{U}{A\"U}


% * The glyph No 12 is a special "Upcase Alpha" that in ligature with Y
%   and I adds a diaresis to them. However, it seems that it has only
%   kerning definitions for I and Y (as it is not intended for direct
%   use)::

  %\DeclareTextComposite{\@hiatus}{LGR}{A}{12}

%   No such glyph exists for E but this is no problem as E does
%   not require kerning anyway.
%
% .. References
%    ----------
%
% .. _Adobe Glyph List For New Fonts:
%     http://www.adobe.com/devnet-archive/opentype/archives/aglfn.txt
% .. _Adobe Glyph List:
%     http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt
% .. _alphabeta: alphabeta.sty.html
% .. _athnum: http://www.ctan.org/pkg/athnum
% .. _Babel: http://www.ctan.org/pkg/babel
% .. _babel patch: http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf
% .. _fntguide: http://mirror.ctan.org/macros/latex/doc/fntguide.pdf
% .. _fontenc:  http://www.ctan.org/pkg/fontenc
% .. _hyperref: http://www.ctan.org/pkg/hyperref
% .. _ibycus: http://www.ctan.org/pkg/ibycus-babel
% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
% .. _lgrx: http://www.ctan.org/pkg/lgrx
% .. _libertine: http://www.ctan.org/pkg/libertine-legacy
% .. _teubner: http://www.ctan.org/pkg/teubner
% .. _teubner-doc:
%     http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf
% .. _textalpha: textalpha.sty.html
% .. _ucs: http://www.ctan.org/pkg/unicode
% .. _Unicode names list: http://www.unicode.org/Public/UNIDATA/NamesList.txt
% .. _XML Entity Definitions for Characters:
%     http://www.w3.org/TR/xml-entity-names/
