# 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

- Usage

- LICR macro names

  - Proposals

  - How to name accent macros?

  - References

- Implementation

  - Read this file only once

  - Identification

  - Base setup

  - Text symbols

    - Greek Alphabet

    - Additional Greek symbols

      - Ancient Greek Numbers (Athenian Numerals)

      - Archaic letters

      - Numeral signs

    - Other

    - Not implemented

  - Diacritics

    - Named macros

    - Aliases

  - Composite definitions

    - Composite diacritics

    - Pre-composed letters

      - Small letters with diacritics

      - Capital letters with diacritics

  - UPPERCASE

    - @uclclist extension

    - Substitution macros

      - Drop diacritics

      - Keep dialytika.

      - Mark hiatus

# Changelog

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

  1. used as inspiration for new LICR macro names or

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

#### 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.