% lgrenc.def % *********** % % LGR Greek font encoding definitions % =================================== % % :Copyright: © 2010 -- 2023 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.9 2013-07-16 move common definitions to ``greek-fontenc.def``, % .. add composite commands for single quotation marks. % 0.11.2 2014-09-04 remove duplicate code. % 0.13 2015-08-04 Support for symbol variants. % 0.13.1 2015-12-07 Fix `rho with dasia bug` (Linus Romer). % 0.13.3 2019-07-09 Drop error font declaration (cf. `ltxbugs 4399`_). % 1.0 2020-09-25 ``\textKoppa`` as alias for ``\textkoppa`` % (there is no capital Koppa in LGR). % 2.0 2020-10-13 Move common alias definitions to ``greek-fontenc.def``. % 2.1 2022-06-14 Support the correct spelling ``\guillemet…`` for « ». % 2.2 2023-02-28 Fix character used for ano ``\textanoteleia`` and % ``\textperiodcentered``. % 2.3 2023-06-01 Fix Unicode errors with "new" ``\MakeUppercase``. % 2.4 2023-08-15 Add LGR-specific definitions for "capital" accent % for the ``\MakeUppercase`` fix in babel-greek_. % 2.5 2023-09-12 Small formatting and documentation fixes. % ====== ============ ======================================================== % % 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}`` % % % 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 tests 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} [2023-09-12 2.5 LGR Greek font encoding definitions] % Copyright © 2010 -- 2023 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 LGR font encoding and base substitutions:: \DeclareFontEncoding{LGR}{}{} \DeclareFontSubstitution{LGR}{cmr}{m}{n} % Text symbols % ~~~~~~~~~~~~ % % Greek Alphabet % """""""""""""" % % Greek letters are accessible by the Latin transliteration, 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), TU, 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{\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 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_. % % ϟ (capital numeral koppa) not distinct in LGR but required for % ``\Greeknumeral`` in babel-greek_ % (defining as alias command calling ``\textkoppa`` leads to an infinte loop % with ``\MakeUppercase``):: \DeclareTextSymbol{\textstigma}{LGR}{6} % ϛ \DeclareTextSymbol{\textvarstigma}{LGR}{7} % stigma variant (CB.enc, teubner) \DeclareTextSymbol{\textKoppa}{LGR}{18} % Ϟ Greek letter Koppa \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}{59} % · \DeclareTextSymbol{\texterotimatiko}{LGR}{63} % ; \DeclareTextSymbol{\textdigamma}{LGR}{147} % ϝ (ucs) \digamma used by amsmath for math-macro \DeclareTextSymbol{\textDigamma}{LGR}{195} % Ϝ (ucs) % Numeral signs % ''''''''''''' % See also http://en.wikipedia.org/wiki/Greek_numerals % % Names from ucs_:: \DeclareTextSymbol{\textdexiakeraia}{LGR}{254} % ʹ (Dexia keraia) \DeclareTextSymbol{\textaristerikeraia}{LGR}{255} % ͵ (Aristeri keraia) % variant symbols % ''''''''''''''' % % Mathematical notation distinguishes variant shapes for pi, phi, rho, theta % (small and capital), beta, and kappa (characters for the latter three % symbols are not included in TeX’s math fonts). These variations have no % syntactic meaning in Greek text and are not given code-points in the LGR % encoding. Greek text fonts use the shape variants interchangeabely. % % However, as Unicode defines separate code points for the symbol variants, we % provide fallback LICR macros with detailed error reporting:: \providecommand*{\LGR@TextSymbolUnavailable}[1]{% \PackageError{greek-fontenc}{character \string#1 not available \MessageBreak in 8-bit TeX} {Use XeTeX/LuaTeX if you need to distinguish the symbol from the letter.\MessageBreak The `normalize-symbols' option of babel-greek or package `textalpha'\MessageBreak maps the GREEK SYMBOL character to the corresponding GREEK LETTER.\MessageBreak Press to proceed (dropping the symbol from the document).} } \providecommand*{\LGR@TextSymbolOnlyMath}[2]{% \PackageError{greek-fontenc}{character \string#1 not available in text mode} {Use #2 or XeTeX/LuaTeX if you need to distinguish\MessageBreak the symbol from the letter.\MessageBreak The `normalize-symbols' option of babel-greek or package `textalpha'\MessageBreak maps the GREEK SYMBOL character to the corresponding GREEK LETTER.\MessageBreak Press to proceed (dropping the symbol from the document).} } \ProvideTextCommand{\textbetasymbol} {LGR}{\LGR@TextSymbolUnavailable{beta symbol}} % ϐ \ProvideTextCommand{\textkappasymbol}{LGR}{\LGR@TextSymbolUnavailable{kappa symbol}} % ϰ \ProvideTextCommand{\textThetasymbol}{LGR}{\LGR@TextSymbolUnavailable{Theta symbol}} % ϴ \ProvideTextCommand{\textthetasymbol} {LGR}{\LGR@TextSymbolOnlyMath{theta symbol}{$\vartheta$}} % ϑ \ProvideTextCommand{\textphisymbol} {LGR}{\LGR@TextSymbolOnlyMath{phi symbol}{$\phi$}} % ϕ \ProvideTextCommand{\textpisymbol} {LGR}{\LGR@TextSymbolOnlyMath{pi symbol}{$\varpi$}} % ϖ \ProvideTextCommand{\textrhosymbol} {LGR}{\LGR@TextSymbolOnlyMath{rho symbol}{$\varrho$}} % ϱ \ProvideTextCommand{\textepsilonsymbol}{LGR}{\LGR@TextSymbolOnlyMath{lunate epsilon symbol}{$\epsilon$}} % ϵ % 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}{59} % · = \textanoteleia \DeclareTextSymbol{\textcompwordmark}{LGR}{118} % ZERO WIDTH NO JOINER \DeclareTextSymbol{\textemdash}{LGR}{127} % EM DASH % T1:: \DeclareTextSymbol{\guillemetleft}{LGR}{123} % « \DeclareTextSymbol{\guillemetright}{LGR}{125} % » % legacy names \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 % The micro sign 00B5 is defined in TS1 (textcomp) and PU (hyperref) % as ``\textmu``. LGR uses ``\textmu`` for the similar looking % small Greek letter mu. % The alias ``\textmicro`` prints in a micro sign and does not upcase:: \DeclareTextSymbol{\textmicro}{LGR}{109} % µ % T3 (tipa):: \DeclareTextSymbol{\textschwa}{LGR}{26} % ə % T3 also defines some greek letters as well as Latin characters with Greek % names: % % According to the Unicode standard, the following IPA characters are identic % to the Greek letters: % % - 03B2 greek small letter beta % - 03B8 greek small letter theta % - 03BB greek small letter lamda % - 03C7 greek small letter chi % % The following characters in the IPA block refer to Greek letters: % % - 0251 LATIN SMALL LETTER ALPHA → greek small letter alpha - 03B1 % - 025B LATIN SMALL LETTER OPEN E = epsilon → greek small letter epsilon - 03B5 % - 0263 LATIN SMALL LETTER GAMMA → greek small letter gamma - 03B3 % - 0269 LATIN SMALL LETTER IOTA → greek small letter iota - 03B9 % - 0278 LATIN SMALL LETTER PHI → greek small letter phi - 03C6 % - 028A LATIN SMALL LETTER UPSILON → greek small letter upsilon - 03C5 % % `tipa` uses the macro names ``\textepsilon``, ``\textgamma``, ``\textiota``, % ``\textphi``, and ``\textupsilon`` for the Latin characters. This is no % problem with 8-bit fonts (set the font encoding to T3 vs. LGR to % disambiguate), but leads to ambiguity with Unicode fonts. xunicode_ uses the % ``gr`` infix and alias names to disambiguate: % % - 03B3 ``\textgrgamma`` % - 03B9 ``\textgriota`` % - 03C6 ``\textgrphi`` (see x0278 ) % % but not for epsilon and upsilon (03C2 ``\textgrsigma`` is the final sigma). % % It also assigns alias names to the Latin counterparts, however not on a % systematical basis: % % - 0194 ``\textGammaafrican`` % - 0196 ``\textIotaafrican`` % - 0251 ``\textscripta`` % - 025B ``\texteopen`` % - 0263 ``\textbabygamma``, ``\textgammalatinsmall`` % - 0269 ``\textiotalatin`` % - 028A ``\textscupsilon`` % TIPA-U % % % % 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 ``\ensureascii`` which is % defined in ``babel.def``. 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?` % in the README_) 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 `mute 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} % ι adscript mute iota (spacing) \DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ subscript mute iota (combining) % __ http://en.wikipedia.org/wiki/Iota_subscript % % 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 (Greek vrachy) \DeclareTextAccent{\=}{LGR}{31} % MACRON % Symbol Macros % """"""""""""" % % The standard _`symbol macros` are exclusively used for Greek diacritics % in LGR:: \DeclareTextCommand{\"}{LGR}{\accdialytika} \DeclareTextCommand{\'}{LGR}{\acctonos} \DeclareTextCommand{\`}{LGR}{\accvaria} \DeclareTextCommand{\~}{LGR}{\accperispomeni} % The ``\uclclist`` extension in `babel-greek`_ converts standard symbol % macros to "capital accents". In Greek typographic tradition they are % dropped:: \ProvideTextCommand{\accACUTE}{LGR}{\LGR@hiatus} \ProvideTextCommand{\accGRAVE}{LGR}{\@firstofone} \ProvideTextCommand{\accTILDE}{LGR}{\@firstofone} % Common Greek font encoding definitions % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ % % The file greek-fontenc.def contains font encoding definitions that are % shared by font encodings providing Greek characters:: \input{greek-fontenc.def} % Composite definitions % ~~~~~~~~~~~~~~~~~~~~~ % % Composite diacritics % """""""""""""""""""" % % Composite accents can be input as sequence of simple diacritics (in % arbitrary order) via named macro, symbol macro and "transliteration % characters", e.g. ``\accdialytica\accvaria\textalpha``, ``\"\'\textalpha``, % ``\"'\textalpha``, or ``\'"\textalpha``. % % The actual declarations are part of the `common Greek font encoding % definitions`_. % % % 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}{\textrho}{251} \DeclareTextComposite{\accpsili}{LGR}{\textrho}{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 % ~~~~~~~~~ % % letters without pre-composed uppercase version % """""""""""""""""""""""""""""""""""""""""""""" % % The default ``\MakeUppercase`` (2022-version) emits "composing" Unicode % characters for letters with diacritics but no matching pre-composed % capital equivalent. We drop diacritics to prevent compilation errors. % The ``\DeclareUppercaseMapping`` macro is new in the 2023 LaTeX release:: \ifdefined\DeclareUppercaseMapping \DeclareUppercaseMapping{"0390}{\accdialytikatonos{\textiota}} % ΐ \DeclareUppercaseMapping{"03B0}{\accdialytikatonos{\textupsilon}} % ΰ \DeclareUppercaseMapping{"1F50}{\accpsili{\textupsilon}} % ὐ \DeclareUppercaseMapping{"1F52}{\accpsilivaria{\textupsilon}} % ὒ \DeclareUppercaseMapping{"1F54}{\accpsilioxia{\textupsilon}} % ὔ \DeclareUppercaseMapping{"1F56}{\accpsiliperispomeni{\textupsilon}} % ὖ \DeclareUppercaseMapping{"1FB6}{\accperispomeni{\textalpha}} % ᾶ \DeclareUppercaseMapping{"1FB7}{\accperispomeni{\textalpha}\ypogegrammeni} % ᾷ \DeclareUppercaseMapping{"1FC6}{\accperispomeni{\texteta}} % ῆ \DeclareUppercaseMapping{"1FC7}{\accperispomeni{\texteta}\ypogegrammeni} % ῇ \DeclareUppercaseMapping{"1FD2}{\accdialytikavaria{\textiota}} % ῒ \DeclareUppercaseMapping{"1FD3}{\accdialytikatonos{\textiota}} % ΐ \DeclareUppercaseMapping{"1FD6}{\accperispomeni{\textiota}} % ῖ \DeclareUppercaseMapping{"1FD7}{\accdialytikaperispomeni{\textiota}} % ῗ \DeclareUppercaseMapping{"1FE2}{\accdialytikavaria{\textupsilon}} % ῢ \DeclareUppercaseMapping{"1FE3}{\accdialytikatonos{\textupsilon}} % ΰ \DeclareUppercaseMapping{"1FE4}{\accpsili{\textrho}} % ῤ \DeclareUppercaseMapping{"1FE6}{\accperispomeni{\textupsilon}} % ῦ \DeclareUppercaseMapping{"1FE7}{\accdialytikaperispomeni{\textupsilon}} % ῧ \DeclareUppercaseMapping{"1FF6}{\accperispomeni{\textomega}} % ῶ \DeclareUppercaseMapping{"1FF7}{\accperispomeni{\textomega}\ypogegrammeni} % ῷ \fi % Hiatus % """""" % % The `common Greek font encoding definitions`_ in ``greek-fontenc.def`` extend % the `uclclist` with Greek LICR macros. Here, we add LGR specific "hiatus" % handling. % % Composite commands for Latin transliteration:: \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{A}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{E}{\LGR@E@hiatus} % TODO: What does the \LGR@hiatus command "see" if a 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}% }% }% }% } % 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 % ---------- % % .. _README: README.html % .. _alphabeta: alphabeta.sty.html % .. _athnum: https://ctan.org/pkg/athnum % .. _Babel: https://ctan.org/pkg/babel % .. _babel-greek: https://ctan.org/pkg/babel-greek % .. _babel patch: http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf % .. _fntguide: https://mirrors.ctan.org/macros/latex/base/fntguide.pdf % .. _fontenc: https://ctan.org/pkg/fontenc % .. _hyperref: https://ctan.org/pkg/hyperref % .. _ibycus: https://ctan.org/pkg/ibycus-babel % .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt % .. _lgrx: https://ctan.org/pkg/lgrx % .. _ltxcmds: https://ctan.org/pkg/ltxcmds % .. _teubner: https://ctan.org/pkg/teubner % .. _teubner-doc: % https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf % .. _textalpha: textalpha.sty.html % .. _ucs: https://ctan.org/pkg/unicode % .. _xunicode: https://ctan.org/pkg/xunicode % .. _ltxbugs 4399: % https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex%2F4399&search=