From d553751babb6687080e5be4a59c1251b50769fba Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 17 May 2013 23:10:18 +0000 Subject: greek-fontenc, with new lgrenc.def git-svn-id: svn://tug.org/texlive/trunk@30541 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/greek-fontenc/lgrenc.def | 1203 ++++++++++++++++++++ 1 file changed, 1203 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/greek-fontenc/lgrenc.def (limited to 'Master/texmf-dist/tex/latex/greek-fontenc') diff --git a/Master/texmf-dist/tex/latex/greek-fontenc/lgrenc.def b/Master/texmf-dist/tex/latex/greek-fontenc/lgrenc.def new file mode 100644 index 00000000000..ea3a0482750 --- /dev/null +++ b/Master/texmf-dist/tex/latex/greek-fontenc/lgrenc.def @@ -0,0 +1,1203 @@ +% 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 +% --------- +% +% .. class:: borderless +% +% 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``. +% +% ===== ============ ==================================================== +% 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 back-compatibility definitions +% ===== ============ ==================================================== +% +% 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. +% +% +% 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@lgrenc.def} + {} + {\message{LGR font encoding definitions already loaded} + \expandafter\endinput % "return" + } + + +% Identification +% ~~~~~~~~~~~~~~ +% :: + +\ProvidesFile{lgrenc.def} +[2013/05/13 v0.8 LGR Greek font encoding definitions] + +% 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 +\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 +% (TODO: should we define them here?):: + +%\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 teubner_ and ucs_. The "text" prefix is only used for Digamma, +% which is also used in mathematical context:: + +\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{\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 for babel_'s ``greek.ldf`` and hyperref_'s puenc.def, +% defined via `DeclareTextCommand` so that up/downcasing works without the +% need for additional uclclist entries:: + +\DeclareTextCommand{\vardigamma}{LGR}{\varstigma} % greek.ldf +\DeclareTextCommand{\textstigmagreek}{LGR}{\stigma} % puenc.def +\DeclareTextCommand{\textkoppagreek}{LGR}{\koppa} % puenc.def +\DeclareTextCommand{\textStigmagreek}{LGR}{\Stigma} % puenc.def +\DeclareTextCommand{\textSampigreek}{LGR}{\Sampi} % puenc.def +\DeclareTextCommand{\textsampigreek}{LGR}{\sampi} % 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_ and teubner_:: + +\DeclareTextSymbol{\anwtonos}{LGR}{254} % ʹ (Dexia keraia) +\DeclareTextSymbol{\katwtonos}{LGR}{255} % ͵ (Aristeri keraia) + +% Compatibility definitions for hyperref_'s puenc.def:: + +\DeclareTextSymbol{\textnumeralsigngreek}{LGR}{254} % ʹ (puenc.def) +\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) 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{\subinvertedbreve}{LGR}{1} % (lgrx) +\DeclareTextAccent{\textsubarch}{LGR}{1} % (tipa) +\DeclareTextAccent{\accbrevebelow}{LGR}{20} % BREVE BELOW +\DeclareTextAccent{\subbreve}{LGR}{20} % (lgrx) +\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} + + +% 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{\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}{U}{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}{\textUpsilon}{W} +\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\textOmega}{>`W} +\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\textOmega}{>'W} +\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\textOmega}{>\char126W} +\DeclareTextCompositeCommand{\acctonos}{LGR}{\textOmega}{'W} +\DeclareTextCompositeCommand{\accvaria}{LGR}{\textOmega}{`W} + +% Except for the dialytika:: + +\DeclareTextComposite{\accdialytika}{LGR}{\textIota}{219} +\DeclareTextComposite{\accdialytika}{LGR}{\textUpsilon}{223} + + +% UPPERCASE +% ~~~~~~~~~ +% +% @uclclist extension +% """"""""""""""""""" +% +% If UPPERCASE (all-caps) is generated with ``\MakeUppercase``, macro +% substitutions in the ``\@uclclist`` apply. This can be used to drop the +% diacritics (except dialytika). +% +% Based on the `babel patch`_ and ``fontenc.sty``. +% (The first two lines are TeX' way of writing ``uclclist += …``):: + +\expandafter\def\expandafter\@uclclist\expandafter{% + \@uclclist + \accdasia\acc@invisible + \accdasiaoxia\@hiatus + \accdasiavaria\acc@invisible + \accdasiaperispomeni\acc@invisible + \accpsili\@hiatus + \accpsilioxia\@hiatus + \accpsilivaria\@hiatus + \accpsiliperispomeni\acc@invisible + \acctonos\@hiatus + \accvaria\acc@invisible + \accdialytikatonos\acc@Dialytika + \accdialytikavaria\acc@Dialytika + \accdialytikaperispomeni\acc@Dialytika + \accperispomeni\acc@invisible + \ypogegrammeni\prosgegrammeni + % + \textalpha \textAlpha + \textbeta \textBeta + \textgamma \textGamma + \textdelta \textDelta + \textepsilon\textEpsilon + \textzeta \textZeta + \texteta \textEta + \texttheta \textTheta + \textiota \textIota + \textkappa \textKappa + \textlambda \textLambda + \textmu \textMu + \textnu \textNu + \textxi \textXi + \textomicron\textOmicron + \textpi \textPi + \textrho \textRho + \textvarsigma \textSigma + \textsigma \textSigma + \textautosigma \textSigma + \texttau \textTau + \textupsilon\textUpsilon + \textphi \textPhi + \textchi \textChi + \textpsi \textPsi + \textomega \textOmega + % + \qoppa \Qoppa + \varstigma \Stigma + \stigma \Stigma + \sampi \Sampi + \textdigamma \textDigamma +} + +% Substitution macros +% """"""""""""""""""" +% +% Drop diacritics +% ''''''''''''''' +% :: + +\DeclareTextCommand{\acc@invisible}{LGR}[1]{#1} + +% (The argument processing ensures that kerning is preserved) +% +% Keep dialytika. +% ''''''''''''''' +% +% Define a dummy alias so that downcasing with ``\MakeLowercase`` does not +% convert a simple dialytika to a composite accent:: + +\DeclareTextCommand{\acc@Dialytika}{LGR}{\accdialytika} + +\DeclareTextCompositeCommand{\accdialytika}{LGR}{\@hiatus}{\accdialytika} + +% .. TODO: MakeUppercase with ``\"'`` fails if the language is "greek". +% How can we specify a composite command with character ``"9F``, +% the uccode of ``'``? +% +% % \DeclareTextCompositeCommand{\acc@Dialytika}{LGR}{"9F}{\accdialytika} +% % \DeclareTextAccent{\acc@Dialytika}{LGR}{34} % upcase Dialytika +% % \DeclareTextCompositeCommand{\acc@Dialytika}{LGR}{\@hiatus}{\accdialytika} +% % \DeclareTextCompositeCommand{\acc@Dialytika}{LGR}{'}{\accdialytika} +% +% Mark hiatus +% ''''''''''' +% +% Tonos and dasia mark a hiatus if placed on the +% first vowel of a diphthong (ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the +% second vowel if they are dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, +% ἀυπνία → ΑΫΠΝΙΑ):: + +\DeclareTextCommand{\@hiatus}{LGR}[1]{#1} +\DeclareTextCompositeCommand{\@hiatus}{LGR}{>}{\@hiatus} +\DeclareTextCompositeCommand{\@hiatus}{LGR}{<}{\acc@invisible} +\DeclareTextCompositeCommand{\@hiatus}{LGR}{A}{\A@hiatus} +\DeclareTextCompositeCommand{\@hiatus}{LGR}{\textAlpha}{\A@hiatus} +\DeclareTextCompositeCommand{\@hiatus}{LGR}{E}{\E@hiatus} +\DeclareTextCompositeCommand{\@hiatus}{LGR}{\textEpsilon}{\E@hiatus} +% What does the \@hiatus command "see" if an unicode literal follows? +% \DeclareTextCompositeCommand{\@hiatus}{LGR}{\symbol{"ce}}{bluff} +% \DeclareTextCompositeCommand{\@hiatus}{LGR}{"cf}{blaff} +% \DeclareTextCompositeCommand{\@hiatus}{LGR}{ι}{blaff} + +% Look ahead and place a diaeresis on Ι or Υ:: + +\DeclareTextCommand{\A@hiatus}{LGR}{% + \LGR@ifnextchar{I}{A\"}{% + \LGR@ifnextchar{U}{A\"}{% + \LGR@ifnextchar{\textIota}{A\"}{% + \LGR@ifnextchar{\textUpsilon}{A\"}{A}% + }% + }% + }% +} +\DeclareTextCommand{\E@hiatus}{LGR}{% + \LGR@ifnextchar{I}{E\"}{% + \LGR@ifnextchar{U}{E\"}{% + \LGR@ifnextchar{\textIota}{E\"}{% + \LGR@ifnextchar{\textUpsilon}{E\"}{E}% + }% + }% + }% +} + +% As ``\@ifnextchar`` gobbles spaces the lookahead macro definition from +% ``amsgen.sty`` is used: +% +% This macro is a new version of LaTeX’s ``\@ifnextchar``, macro +% that does not skip over spaces. +% +% :: + +\ProvideTextCommand{\LGR@ifnextchar}{LGR}[3]{% +% \long\def\LGR@ifnextchar#1#2#3{% + \let\reserved@d= #1% + \def\reserved@a{#2}\def\reserved@b{#3}% + \futurelet\@let@token\LGR@ifnch +} +\ProvideTextCommand{\LGR@ifnch}{LGR}{% + \ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi + \reserved@b +} + +% Unfortunately, the lookahead breaks kerning. +% +% Alternatives tried: +% +% * CompositeCommands fail at the end of a macro, e.g. ``\emph{\'a}``:: + + %\DeclareTextCommand{\A@hiatus}{LGR}{A} + %\DeclareTextCommand{\E@hiatus}{LGR}{E} + + %\DeclareTextCompositeCommand{\A@hiatus}{LGR}{}{A} + %\DeclareTextCompositeCommand{\A@hiatus}{LGR}{I}{A\"I} + %\DeclareTextCompositeCommand{\A@hiatus}{LGR}{U}{A\"U} + + +% * The glyph No 12 is a special "Upcase Alpha" that in ligature with Y +% and I adds a diaresis to them. However, it seems that it has only +% kerning definitions for I and Y (as it is not intended for direct +% use):: + + %\DeclareTextComposite{\@hiatus}{LGR}{A}{12} + +% No such glyph exists for E but this is no problem as E does +% not require kerning anyway. +% +% .. References +% ---------- +% +% .. _Adobe Glyph List For New Fonts: +% http://www.adobe.com/devnet-archive/opentype/archives/aglfn.txt +% .. _Adobe Glyph List: +% http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt +% .. _alphabeta: alphabeta.sty.html +% .. _athnum: http://www.ctan.org/pkg/athnum +% .. _Babel: http://www.ctan.org/pkg/babel +% .. _babel patch: http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf +% .. _fntguide: http://mirror.ctan.org/macros/latex/doc/fntguide.pdf +% .. _fontenc: http://www.ctan.org/pkg/fontenc +% .. _hyperref: http://www.ctan.org/pkg/hyperref +% .. _ibycus: http://www.ctan.org/pkg/ibycus-babel +% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt +% .. _lgrx: http://www.ctan.org/pkg/lgrx +% .. _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/ -- cgit v1.2.3