lgrenc.def *********** 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. 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. .. contents:: Changelog --------- Development of this file started under the name "lgrxenc.def" as part of the lgrx_ bundle. With version 0.8, it moved to ``greek-fontenc/lgrx.def``. .. 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.4 2010-06-15 more text symbols. 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, .. aliases for ``puenc.def`` compatibility. 0.6.1 2013-02-12 ``\@uclclist`` entries for `PU` aliases. 0.7 2013-05-13 documentation update, new accent macros names, .. ``\TextGreek`` renamed to ``\ensuregreek``. 0.8 2013-05-13 rename to lgrenc.def (superseding the babel_ version), .. move to greek-fontenc, .. drop the old (<0.7) internal accent macros names. 0.8.1 2013-05-22 auxiliary macro \update@uclc@with@greek, .. conservative naming: "text" prefix for archaic letters, .. "LGR@" prefix for internal commands, .. remove not required alias macros. 0.8.2 2013-05-23 fix name: ``\textpentehkaton`` -> ``\textpentehekaton``, .. fix ``\textperiodcentered``, .. add composite command for Ῥ (Rho with Dasia). 0.8.3 unpublished add composite commands for single quotation marks ===== ============ ======================================================== Usage ----- Load this file by calling fontenc_ with the ``LGR`` option or indirectly via the babel_, textalpha_ or alphabeta_ packages. Example: Select font encodings `T1` (as default) and `LGR` (for Greek): ``\usepackage[LGR,T1]{fontenc}`` preliminary considerations: LICR macro names -------------------------------------------- This file provides LaTeX internal character representations (LICR macros) for all non-ASCII characters present in the LGR font encoding. For Greek letters and diacritics, LICR macro names were selected based on the following considerations: 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. Conclusion: To avoid name clashes, the font encoding file uses the ``text`` prefix for symbols. Aliases (short forms, compatibility defs, etc.) can be defined in packages. 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 be spacing characters. * textcomp (ts1enc.def) defines ``\capital...`` accents (i.e. without ``text`` prefix). * Use a common prefix ``\textaccent...``, ``\accent...``, or just ``\acc...`` (cf ``\@tabacckludge``)? 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. - 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. :: % read this file only once \@ifundefined{ver@lgrenc.def} {} {\message{LGR font encoding definitions already loaded} \expandafter\endinput % "return" } Identification ~~~~~~~~~~~~~~ :: \ProvidesFile{lgrenc.def} [2013/06/11 v0.8.3 LGR Greek font encoding definitions] % Copyright © 2010 Günter Milde % This file is part of the "greek-fontenc" package. % It 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. You can test the version date using .. code:: latex \@ifl@ter {extension}{filename}{date}{YES}{NO} or using ltxcmds_' ``\@iffilelater`` Base setup ~~~~~~~~~~ Declare the font encoding and base substitutions:: \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} 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. An alternative Greek font encodings is LGI (ibycus_). Greek script is also supported by the Unicode-based font encodings PU (`PDF Unicode` used by hyperref_ for PDF metadata), EU1 (XeTeX) and EU2 (LuaTeX). 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 \DeclareTextCommand{\textfinalsigma}{LGR}{\textvarsigma} % ς 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 ucs_ (``ucsencs.def``) (In ucs, five hundred is (wrongly?) named \textpentehkaton.) :: \DeclareTextSymbol{\textpentedeka}{LGR}{2} % GREEK ACROPHONIC ATTIC FIFTY \DeclareTextSymbol{\textpentehekaton}{LGR}{3} % GREEK ACROPHONIC ATTIC FIVE HUNDRED \DeclareTextSymbol{\textpenteqilioi}{LGR}{4} % GREEK ACROPHONIC ATTIC FIVE THOUSAND \DeclareTextSymbol{\textpentemuria}{LGR}{5} % GREEK ACROPHONIC ATTIC FIFTY THOUSAND Archaic letters ''''''''''''''' Names after teubner_ and ucs_:: \DeclareTextSymbol{\textstigma}{LGR}{6} % ϛ \DeclareTextSymbol{\textvarstigma}{LGR}{7} % stigma variant (CB.enc, teubner) \DeclareTextSymbol{\textkoppa}{LGR}{18} % ϟ (greek small letter koppa) \DeclareTextSymbol{\textqoppa}{LGR}{19} % ϙ (archaic koppa) \DeclareTextSymbol{\textQoppa}{LGR}{21} % Ϙ (archaic Koppa) \DeclareTextSymbol{\textStigma}{LGR}{22} % Ϛ in some fonts ϹΤ ligature \DeclareTextSymbol{\textSampi}{LGR}{23} % Ϡ \DeclareTextSymbol{\textsampi}{LGR}{27} % ϡ \DeclareTextSymbol{\textanoteleia}{LGR}{38} % · \DeclareTextSymbol{\texterotimatiko}{LGR}{63} % ; \DeclareTextSymbol{\textdigamma}{LGR}{147} % ϝ (ucs) \digamma used by amsmath for math-macro \DeclareTextSymbol{\textDigamma}{LGR}{195} % Ϝ (ucs) Compatibility aliases for hyperref_'s puenc.def, defined via `DeclareTextCommand` so that up/downcasing works without the need for additional uclclist entries:: \DeclareTextCommand{\textstigmagreek}{LGR}{\textstigma} % puenc.def \DeclareTextCommand{\textkoppagreek}{LGR}{\textkoppa} % puenc.def \DeclareTextCommand{\textStigmagreek}{LGR}{\textStigma} % puenc.def \DeclareTextCommand{\textSampigreek}{LGR}{\textSampi} % puenc.def \DeclareTextCommand{\textsampigreek}{LGR}{\textsampi} % puenc.def \DeclareTextCommand{\textdigammagreek}{LGR}{\textdigamma} % puenc.def \DeclareTextCommand{\textDigammagreek}{LGR}{\textDigamma} % puenc.def Compatibility aliases for babel_'s ``greek.ldf`` (will be moved to the babel package). : .. code:: latex % \digamma used by amsmath for math-macro \DeclareTextCommand{\ddigamma}{LGR}{\textdigamma} % greek.ldf \DeclareTextCommand{\vardigamma}{LGR}{\textvarstigma} % greek.ldf \DeclareTextCommand{\Digamma}{LGR}{\textDigamma} % greek.ldf Numeral signs ''''''''''''' See also http://en.wikipedia.org/wiki/Greek_numerals Names from hyperref_'s puenc.def:: \DeclareTextSymbol{\textnumeralsigngreek}{LGR}{254} % ʹ (puenc.def) \DeclareTextSymbol{\textnumeralsignlowergreek}{LGR}{255} % ͵ (puenc.def) Names from babel_ and teubner_ .. code:: latex \DeclareTextSymbol{\anwtonos}{LGR}{254} % ʹ (Dexia keraia) \DeclareTextSymbol{\katwtonos}{LGR}{255} % ͵ (Aristeri keraia) Names from ucs_ .. code:: latex \DeclareTextSymbol{\textdexiakeraia}{LGR}{254} % ʹ (Dexia keraia) \DeclareTextSymbol{\textaristerikeraia}{LGR}{255} % ͵ (Aristeri keraia) 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}{38} % · = \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}{"\textcompwordmark} % " \ProvideTextCommand{\textasciiacute}{LGR}{'\textcompwordmark} % ' \ProvideTextCommand{\textasciigrave}{LGR}{`\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} % ‰ \permill 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``. .. code:: latex \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 were moved to ``greek.ldf``. 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) reducing the probability of incompatibilities compared to the two-letter teubner_ diacritic macros or the "text" prefix used by ucs_. 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{\accinvertedbrevebelow}{LGR}{1} % INVERTED BREVE BELOW \DeclareTextAccent{\textsubarch}{LGR}{1} % (tipa) \DeclareTextAccent{\accbrevebelow}{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)? .. code:: latex \DeclareTextCommand{\(}{LGR}{\accdasia} \DeclareTextCommand{\)}{LGR}{\accpsili} Two Unicode names for one character:: \DeclareTextCommand{\accoxia}{LGR}{\acctonos} \DeclareTextCommand{\acckoronis}{LGR}{\accpsili} 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{\'}{LGR}{'}{\textquoteright} \DeclareTextCompositeCommand{\'}{LGR}{\'}{\textquoteright} \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{\`}{LGR}{`}{\textquoteleft} \DeclareTextCompositeCommand{\`}{LGR}{\`}{\textquoteleft} \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{\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{\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{\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{\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{\accpsilivaria}{LGR}{O}{>`O} \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{O}{>'O} \DeclareTextCompositeCommand{\acctonos}{LGR}{O}{'O} \DeclareTextCompositeCommand{\accvaria}{LGR}{O}{`O} \DeclareTextCompositeCommand{\accdasia}{LGR}{R}{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{\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{\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{\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{\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{\accpsilivaria}{LGR}{\textOmicron}{>`O} \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textOmicron}{>'O} \DeclareTextCompositeCommand{\acctonos}{LGR}{\textOmicron}{'O} \DeclareTextCompositeCommand{\accvaria}{LGR}{\textOmicron}{`O} \DeclareTextCompositeCommand{\accdasia}{LGR}{\textRho}{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 definition or an auxiliary, self-restting macro makes this idempotent (only the first use of this function will expand the ``@uclclist``). The second and third lines are TeX' way of writing ``uclclist += …``:: \providecommand*\update@uclc@with@greek{% \expandafter\def\expandafter\@uclclist\expandafter{% \@uclclist \accdasia\LGR@accdropped \accdasiaoxia\LGR@hiatus \accdasiavaria\LGR@accdropped \accdasiaperispomeni\LGR@accdropped \accpsili\LGR@hiatus \accpsilioxia\LGR@hiatus \accpsilivaria\LGR@hiatus \accpsiliperispomeni\LGR@accdropped \acctonos\LGR@hiatus \accvaria\LGR@accdropped \accdialytikatonos\LGR@accDialytika \accdialytikavaria\LGR@accDialytika \accdialytikaperispomeni\LGR@accDialytika \accperispomeni\LGR@accdropped \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 \textqoppa \textQoppa \textvarstigma \textStigma \textstigma \textStigma \textsampi \textSampi \textdigamma \textDigamma }% \let\update@uclc@with@greek\relax } Expand the uclc list using the just defined macro:: \update@uclc@with@greek Substitution macros """"""""""""""""""" Drop diacritics ''''''''''''''' :: \DeclareTextCommand{\LGR@accdropped}{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{\LGR@accDialytika}{LGR}{\accdialytika} \DeclareTextCompositeCommand{\accdialytika}{LGR}{\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{\LGR@accDialytika}{LGR}{"9F}{\accdialytika} % \DeclareTextAccent{\LGR@accDialytika}{LGR}{34} % upcase Dialytika % \DeclareTextCompositeCommand{\LGR@accDialytika}{LGR}{\LGR@hiatus}{\accdialytika} % \DeclareTextCompositeCommand{\LGR@accDialytika}{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{\LGR@hiatus}{LGR}[1]{#1} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{>}{\LGR@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{<}{\LGR@accdropped} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{A}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{\textAlpha}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{E}{\LGR@E@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{\textEpsilon}{\LGR@E@hiatus} TODO: What does the \LGR@hiatus command "see" if an unicode literal follows? .. code:: latex % \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{\symbol{"ce}}{bluff} % \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{"cf}{blaff} % \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{ι}{blaff} Look ahead and place a diaeresis on Ι or Υ:: \DeclareTextCommand{\LGR@A@hiatus}{LGR}{% \LGR@ifnextchar{I}{A\"}{% \LGR@ifnextchar{U}{A\"}{% \LGR@ifnextchar{\textIota}{A\"}{% \LGR@ifnextchar{\textUpsilon}{A\"}{A}% }% }% }% } \DeclareTextCommand{\LGR@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]{% \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}`` .. code:: latex \DeclareTextCommand{\LGR@A@hiatus}{LGR}{A} \DeclareTextCommand{\LGR@E@hiatus}{LGR}{E} \DeclareTextCompositeCommand{\LGR@A@hiatus}{LGR}{}{A} \DeclareTextCompositeCommand{\LGR@A@hiatus}{LGR}{I}{A\"I} \DeclareTextCompositeCommand{\LGR@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) .. code:: latex \DeclareTextComposite{\LGR@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 .. _ltxcmds: http://www.ctan.org/pkg/ltxcmds .. _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/