tuenc-greek.def
Greek LICR definitions for XeTeX and LuaTeX
- Version:
- 2.4 (changelog)
- Copyright:
- © 2013 – 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
Support for Greek LICR macros and upcasing of text with XeTeX and LuaTeX. Extends tuenc.def. Used by babel-greek and textalpha.
Motivation
LICR macro definitions for the Greek script are missing in tuenc.def (as well as the predecessors xunicode and euenc).
This file defines LaTeX Internal Character Representaction (LICR) macros for Greek letters and symbols. It works independed of xunicode using the standard commands for LaTeX2e font selection.
Requirements
Requires XeTeX or LuaTeX (usually with fontspec), the LaTeX base file tuenc.def that sets up the font encoding TU, and a font with Greek characters.
See test-tuenc-greek.tex and test-tuenc-greek.pdf for setup and usage examples.
Implementation
Identification
\ProvidesFile{tuenc-greek.def} [2023-08-15 2.4 Greek LICRs for XeTeX and LuaTeX]
Greek Diacritics
Define “named macros” for simple and combined diacritics.
Named accent macros can 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 and in the definition of composite commands.
Greek alias names for standard accents:
\DeclareUnicodeAccent{\accvaria} \UnicodeEncodingName{"0300} \DeclareUnicodeAccent{\acctonos} \UnicodeEncodingName{"0301} \DeclareUnicodeAccent{\accdialytika}\UnicodeEncodingName{"0308}
The combining perispomeni character is normalized with Greek base letters, while the (standard) combining tilde is not:
\DeclareUnicodeAccent{\accperispomeni}\UnicodeEncodingName{"0342} % COMBINING GREEK PERISPOMENI
Breathings:
\accpsili = \acckoronis but the COMBINING GREEK KORONIS is a legacy character, discarded in favour of COMBINING COMMA ABOVE.
\DeclareUnicodeAccent{\accpsili}\UnicodeEncodingName{"0313} % ψιλή spiritus lenis (smooth breathing) COMBINING COMMA ABOVE \DeclareUnicodeAccent{\accdasia}\UnicodeEncodingName{"0314} % δασεῖα spiritus asper (rough breathing)
Mute iota:
The following two macros are both used after the base character: \prosgegrammeni (adscript iota) is a spacing character (see below), \ypogegrammeni (subscript iota) is a combining character (ligature in LGR).
\DeclareTextSymbol{\ypogegrammeni}{\UnicodeEncodingName}{0837} % COMBINING GREEK YPOGEGRAMMENI
Combined diacritics:
\DeclareUnicodeAccent does not work with more than one argument:
% The COMBINING DIALYTIKA TONOS is discarded and not well supported by fonts: \DeclareTextCommand{\accdialytikatonos}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0301\relax} \DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0300\relax} \DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0342\relax} \DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0301\relax} \DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0300\relax} \DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0342\relax} \DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0301\relax} \DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0300\relax} \DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0342\relax}
Common Definitions
Use the common Greek font encoding definitions:
\renewcommand*{\LastDeclaredEncoding}{\UnicodeEncodingName} \input{greek-fontenc.def}
Character Definitions
Basic Latin
Compatibility def with LGR:
\DeclareTextSymbol{\textsemicolon}\UnicodeEncodingName{"003B} % ;
Latin 1 Supplement
Distinguish MICRO SIGN from letter mu:
\DeclareTextSymbol{\textmicro}\UnicodeEncodingName{"00B5} % µ MICRO SIGN
IPA Extensions
\DeclareTextSymbol{\textschwa}\UnicodeEncodingName{"0259} % ə
Greek and Coptic
% NR Unicode Name % babel name, % PU name % 0370 GREEK CAPITAL LETTER HETA % Ͱ % 0371 GREEK SMALL LETTER HETA % ͱ % 0372 GREEK CAPITAL LETTER ARCHAIC SAMPI % Ͳ % 0373 GREEK SMALL LETTER ARCHAIC SAMPI % ͳ \DeclareTextSymbol{\textdexiakeraia}\UnicodeEncodingName{"0374} % ʹ \anwtonos, \textnumeralsigngreek \DeclareTextSymbol{\textaristerikeraia}\UnicodeEncodingName{"0375} % ͵\katwtonos, \textnumeralsignlowergreek % 0376 GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA % Ͷ % 0377 GREEK SMALL LETTER PAMPHYLIAN DIGAMMA % ͷ % \DeclareTextCompositeCommand{\@emty}\UnicodeEncodingName{\ypogegrammeni}{ͺ} % 037A GREEK YPOGEGRAMMENI % \DeclareTextCompositeCommand{\textcompwordmark}\UnicodeEncodingName{\ypogegrammeni}{ͺ} % 037A GREEK YPOGEGRAMMENI % 037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL % 037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL % 037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL \DeclareTextSymbol{\texterotimatiko}\UnicodeEncodingName{"003B} % use SEMICOLON, not 037E GREEK QUESTION MARK \DeclareUnicodeComposite{\acctonos} {} {"0384} % ΄ GREEK TONOS \DeclareUnicodeComposite{\accdialytikatonos}{} {"0385} % ΅ GREEK DIALYTIKA TONOS \DeclareUnicodeComposite{\'} {\textAlpha} {"0386} % Ά \DeclareTextSymbol{\textanoteleia} \UnicodeEncodingName{"00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA \DeclareUnicodeComposite{\'} {\textEpsilon}{"0388} % Έ \DeclareUnicodeComposite{\'} {\textEta} {"0389} % Ή \DeclareUnicodeComposite{\'} {\textIota} {"038A} % Ί \DeclareUnicodeComposite{\'} {\textOmicron}{"038C} % Ό \DeclareUnicodeComposite{\'} {\textUpsilon}{"038E} % Ύ \DeclareUnicodeComposite{\'} {\textOmega} {"038F} % Ώ % repeat with named accents (LuaTeX does not normalize to pre-composed chars): \DeclareUnicodeComposite{\acctonos} {\textAlpha} {"0386} % Ά \DeclareUnicodeComposite{\acctonos} {\textEpsilon}{"0388} % Έ \DeclareUnicodeComposite{\acctonos} {\textEta} {"0389} % Ή \DeclareUnicodeComposite{\acctonos} {\textIota} {"038A} % Ί \DeclareUnicodeComposite{\acctonos} {\textOmicron}{"038C} % Ό \DeclareUnicodeComposite{\acctonos} {\textUpsilon}{"038E} % Ύ \DeclareUnicodeComposite{\acctonos} {\textOmega} {"038F} % Ώ \DeclareUnicodeComposite{\accdialytikatonos}{\textiota} {"0390} % ΐ \DeclareTextSymbol{\textAlpha }\UnicodeEncodingName{"0391} % Α \DeclareTextSymbol{\textBeta }\UnicodeEncodingName{"0392} % Β \DeclareTextSymbol{\textGamma }\UnicodeEncodingName{"0393} % Γ \DeclareTextSymbol{\textDelta }\UnicodeEncodingName{"0394} % Δ \DeclareTextSymbol{\textEpsilon}\UnicodeEncodingName{"0395} % Ε \DeclareTextSymbol{\textZeta }\UnicodeEncodingName{"0396} % Ζ \DeclareTextSymbol{\textEta }\UnicodeEncodingName{"0397} % Η \DeclareTextSymbol{\textTheta }\UnicodeEncodingName{"0398} % Θ \DeclareTextSymbol{\textIota }\UnicodeEncodingName{"0399} % Ι \DeclareTextSymbol{\textKappa }\UnicodeEncodingName{"039A} % Κ \DeclareTextSymbol{\textLambda }\UnicodeEncodingName{"039B} % Λ \DeclareTextSymbol{\textMu }\UnicodeEncodingName{"039C} % Μ \DeclareTextSymbol{\textNu }\UnicodeEncodingName{"039D} % Ν \DeclareTextSymbol{\textXi }\UnicodeEncodingName{"039E} % Ξ \DeclareTextSymbol{\textOmicron}\UnicodeEncodingName{"039F} % Ο \DeclareTextSymbol{\textPi }\UnicodeEncodingName{"03A0} % Π \DeclareTextSymbol{\textRho }\UnicodeEncodingName{"03A1} % Ρ \DeclareTextSymbol{\textSigma }\UnicodeEncodingName{"03A3} % Σ \DeclareTextSymbol{\textTau }\UnicodeEncodingName{"03A4} % Τ \DeclareTextSymbol{\textUpsilon}\UnicodeEncodingName{"03A5} % Υ \DeclareTextSymbol{\textPhi }\UnicodeEncodingName{"03A6} % Φ \DeclareTextSymbol{\textChi }\UnicodeEncodingName{"03A7} % Χ \DeclareTextSymbol{\textPsi }\UnicodeEncodingName{"03A8} % Ψ \DeclareTextSymbol{\textOmega }\UnicodeEncodingName{"03A9} % Ω \DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ \DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ \DeclareUnicodeComposite{\"} {\textUpsilon}{"03AB} % Ϋ \DeclareUnicodeComposite{\'} {\textalpha} {"03AC} % ά \DeclareUnicodeComposite{\'} {\textepsilon}{"03AD} % έ \DeclareUnicodeComposite{\'} {\texteta} {"03AE} % ή \DeclareUnicodeComposite{\'} {\textiota} {"03AF} % ί % repeat with named accents (LuaTeX does not normalize to pre-composed chars): \DeclareUnicodeComposite{\accdialytika} {\textIota} {"03AA} % Ϊ \DeclareUnicodeComposite{\accdialytika} {\textIota} {"03AA} % Ϊ \DeclareUnicodeComposite{\accdialytika} {\textUpsilon}{"03AB} % Ϋ \DeclareUnicodeComposite{\acctonos} {\textalpha} {"03AC} % ά \DeclareUnicodeComposite{\acctonos} {\textepsilon}{"03AD} % έ \DeclareUnicodeComposite{\acctonos} {\texteta} {"03AE} % ή \DeclareUnicodeComposite{\acctonos} {\textiota} {"03AF} % ί \DeclareUnicodeComposite{\accdialytikatonos}{\textupsilon}{"03B0} % ΰ \DeclareTextSymbol{\textalpha }\UnicodeEncodingName{"03B1} % α \DeclareTextSymbol{\textbeta }\UnicodeEncodingName{"03B2} % β \DeclareTextSymbol{\textgamma }\UnicodeEncodingName{"03B3} % γ \DeclareTextSymbol{\textdelta }\UnicodeEncodingName{"03B4} % δ \DeclareTextSymbol{\textepsilon }\UnicodeEncodingName{"03B5} % ε \DeclareTextSymbol{\textzeta }\UnicodeEncodingName{"03B6} % ζ \DeclareTextSymbol{\texteta }\UnicodeEncodingName{"03B7} % η \DeclareTextSymbol{\texttheta }\UnicodeEncodingName{"03B8} % θ \DeclareTextSymbol{\textiota }\UnicodeEncodingName{"03B9} % ι \DeclareTextSymbol{\textkappa }\UnicodeEncodingName{"03BA} % κ \DeclareTextSymbol{\textlambda }\UnicodeEncodingName{"03BB} % λ \DeclareTextSymbol{\textmu }\UnicodeEncodingName{"03BC} % μ % \textmugreek \DeclareTextSymbol{\textnu }\UnicodeEncodingName{"03BD} % ν \DeclareTextSymbol{\textxi }\UnicodeEncodingName{"03BE} % ξ \DeclareTextSymbol{\textomicron }\UnicodeEncodingName{"03BF} % ο \DeclareTextSymbol{\textpi }\UnicodeEncodingName{"03C0} % π \DeclareTextSymbol{\textrho }\UnicodeEncodingName{"03C1} % ρ \DeclareTextSymbol{\textfinalsigma}\UnicodeEncodingName{"03C2} % ς % final sigma \DeclareTextSymbol{\textsigma }\UnicodeEncodingName{"03C3} % σ \DeclareTextSymbol{\texttau }\UnicodeEncodingName{"03C4} % τ \DeclareTextSymbol{\textupsilon }\UnicodeEncodingName{"03C5} % υ \DeclareTextSymbol{\textphi }\UnicodeEncodingName{"03C6} % φ \DeclareTextSymbol{\textchi }\UnicodeEncodingName{"03C7} % χ \DeclareTextSymbol{\textpsi }\UnicodeEncodingName{"03C8} % ψ \DeclareTextSymbol{\textomega }\UnicodeEncodingName{"03C9} % ω \DeclareUnicodeComposite{\"}{\textiota}{"03CA} % ϊ \DeclareUnicodeComposite{\"}{\textupsilon}{"03CB} % ϋ \DeclareUnicodeComposite{\'}{\textomicron}{"03CC} % ό \DeclareUnicodeComposite{\'}{\textupsilon}{"03CD} % ύ \DeclareUnicodeComposite{\'}{\textomega}{"03CE} % ώ \DeclareUnicodeComposite{\accdialytika}{\textiota}{"03CA} % ϊ \DeclareUnicodeComposite{\accdialytika}{\textupsilon}{"03CB} % ϋ \DeclareUnicodeComposite{\acctonos}{\textomicron}{"03CC} % ό \DeclareUnicodeComposite{\acctonos}{\textupsilon}{"03CD} % ύ \DeclareUnicodeComposite{\acctonos}{\textomega}{"03CE} % ώ
Archaic letters (still used in Greek numerals):
\DeclareTextSymbol{\textQoppa }\UnicodeEncodingName{"03D8} % Ϙ \DeclareTextSymbol{\textqoppa }\UnicodeEncodingName{"03D9} % ϙ \DeclareTextSymbol{\textStigma }\UnicodeEncodingName{"03DA} % Ϛ \DeclareTextSymbol{\textstigma }\UnicodeEncodingName{"03DB} % ϛ \DeclareTextSymbol{\textDigamma }\UnicodeEncodingName{"03DC} % Ϝ \DeclareTextSymbol{\textdigamma }\UnicodeEncodingName{"03DD} % ϝ \DeclareTextSymbol{\textKoppa }\UnicodeEncodingName{"03DE} % Ϟ in LGR identic to \textkoppa \DeclareTextSymbol{\textkoppa }\UnicodeEncodingName{"03DF} % ϟ \koppa, \textqoppa [sic!] \DeclareTextSymbol{\textSampi }\UnicodeEncodingName{"03E0} % Ϡ \DeclareTextSymbol{\textsampi }\UnicodeEncodingName{"03E1} % ϡ
Symbol variants:
\DeclareTextSymbol{\textbetasymbol }\UnicodeEncodingName{"03D0} % ϐ \DeclareTextSymbol{\textkappasymbol }\UnicodeEncodingName{"03F0} % ϰ \DeclareTextSymbol{\textThetasymbol }\UnicodeEncodingName{"03F4} % ϴ \DeclareTextSymbol{\textthetasymbol }\UnicodeEncodingName{"03D1} % ϑ \DeclareTextSymbol{\textphisymbol }\UnicodeEncodingName{"03D5} % ϕ \DeclareTextSymbol{\textpisymbol }\UnicodeEncodingName{"03D6} % ϖ \DeclareTextSymbol{\textrhosymbol }\UnicodeEncodingName{"03F1} % ϱ \DeclareTextSymbol{\textepsilonsymbol}\UnicodeEncodingName{"03F5} % ϵ \DeclareTextSymbol{\textbackepsilon }\UnicodeEncodingName{"03F6} % ϶ not in LGR
Dummy definition (textautosigma is lowercase of textSigma) TODO: Fix implementation of autosigma for TU:
\ProvideTextCommand{\textautosigma}\UnicodeEncodingName{\textsigma} % σ % The following definition always prints a final sigma :( % \ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}}
Greek Extended
We skip definitions for characters “… WITH OXIA”, because they would overwrite the definitions for “… WITH TONOS” in the Greek and Coptic block.
\DeclareUnicodeComposite{\accpsili }{\textalpha}{"1F00} % ἀ \DeclareUnicodeComposite{\accdasia }{\textalpha}{"1F01} % ἁ \DeclareUnicodeComposite{\accpsilivaria }{\textalpha}{"1F02} % ἂ \DeclareUnicodeComposite{\accdasiavaria }{\textalpha}{"1F03} % ἃ \DeclareUnicodeComposite{\accpsilioxia }{\textalpha}{"1F04} % ἄ \DeclareUnicodeComposite{\accdasiaoxia }{\textalpha}{"1F05} % ἅ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textalpha}{"1F06} % ἆ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textalpha}{"1F07} % ἇ \DeclareUnicodeComposite{\accpsili }{\textAlpha}{"1F08} % Ἀ \DeclareUnicodeComposite{\accdasia }{\textAlpha}{"1F09} % Ἁ \DeclareUnicodeComposite{\accpsilivaria }{\textAlpha}{"1F0A} % Ἂ \DeclareUnicodeComposite{\accdasiavaria }{\textAlpha}{"1F0B} % Ἃ \DeclareUnicodeComposite{\accpsilioxia }{\textAlpha}{"1F0C} % Ἄ \DeclareUnicodeComposite{\accdasiaoxia }{\textAlpha}{"1F0D} % Ἅ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textAlpha}{"1F0E} % Ἆ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textAlpha}{"1F0F} % Ἇ \DeclareUnicodeComposite{\accpsili }{\textepsilon}{"1F10} % ἐ \DeclareUnicodeComposite{\accdasia }{\textepsilon}{"1F11} % ἑ \DeclareUnicodeComposite{\accpsilivaria }{\textepsilon}{"1F12} % ἒ \DeclareUnicodeComposite{\accdasiavaria }{\textepsilon}{"1F13} % ἓ \DeclareUnicodeComposite{\accpsilioxia }{\textepsilon}{"1F14} % ἔ \DeclareUnicodeComposite{\accdasiaoxia }{\textepsilon}{"1F15} % ἕ \DeclareUnicodeComposite{\accpsili }{\textEpsilon}{"1F18} % Ἐ \DeclareUnicodeComposite{\accdasia }{\textEpsilon}{"1F19} % Ἑ \DeclareUnicodeComposite{\accpsilivaria }{\textEpsilon}{"1F1A} % Ἒ \DeclareUnicodeComposite{\accdasiavaria }{\textEpsilon}{"1F1B} % Ἓ \DeclareUnicodeComposite{\accpsilioxia }{\textEpsilon}{"1F1C} % Ἔ \DeclareUnicodeComposite{\accdasiaoxia }{\textEpsilon}{"1F1D} % Ἕ \DeclareUnicodeComposite{\accpsili }{\texteta}{"1F20} % ἠ \DeclareUnicodeComposite{\accdasia }{\texteta}{"1F21} % ἡ \DeclareUnicodeComposite{\accpsilivaria }{\texteta}{"1F22} % ἢ \DeclareUnicodeComposite{\accdasiavaria }{\texteta}{"1F23} % ἣ \DeclareUnicodeComposite{\accpsilioxia }{\texteta}{"1F24} % ἤ \DeclareUnicodeComposite{\accdasiaoxia }{\texteta}{"1F25} % ἥ \DeclareUnicodeComposite{\accpsiliperispomeni}{\texteta}{"1F26} % ἦ \DeclareUnicodeComposite{\accdasiaperispomeni}{\texteta}{"1F27} % ἧ \DeclareUnicodeComposite{\accpsili }{\textEta}{"1F28} % Ἠ \DeclareUnicodeComposite{\accdasia }{\textEta}{"1F29} % Ἡ \DeclareUnicodeComposite{\accpsilivaria }{\textEta}{"1F2A} % Ἢ \DeclareUnicodeComposite{\accdasiavaria }{\textEta}{"1F2B} % Ἣ \DeclareUnicodeComposite{\accpsilioxia }{\textEta}{"1F2C} % Ἤ \DeclareUnicodeComposite{\accdasiaoxia }{\textEta}{"1F2D} % Ἥ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textEta}{"1F2E} % Ἦ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textEta}{"1F2F} % Ἧ \DeclareUnicodeComposite{\accpsili }{\textiota}{"1F30} % ἰ \DeclareUnicodeComposite{\accdasia }{\textiota}{"1F31} % ἱ \DeclareUnicodeComposite{\accpsilivaria }{\textiota}{"1F32} % ἲ \DeclareUnicodeComposite{\accdasiavaria }{\textiota}{"1F33} % ἳ \DeclareUnicodeComposite{\accpsilioxia }{\textiota}{"1F34} % ἴ \DeclareUnicodeComposite{\accdasiaoxia }{\textiota}{"1F35} % ἵ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textiota}{"1F36} % ἶ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textiota}{"1F37} % ἷ \DeclareUnicodeComposite{\accpsili }{\textIota}{"1F38} % Ἰ \DeclareUnicodeComposite{\accdasia }{\textIota}{"1F39} % Ἱ \DeclareUnicodeComposite{\accpsilivaria }{\textIota}{"1F3A} % Ἲ \DeclareUnicodeComposite{\accdasiavaria }{\textIota}{"1F3B} % Ἳ \DeclareUnicodeComposite{\accpsilioxia }{\textIota}{"1F3C} % Ἴ \DeclareUnicodeComposite{\accdasiaoxia }{\textIota}{"1F3D} % Ἵ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textIota}{"1F3E} % Ἶ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textIota}{"1F3F} % Ἷ \DeclareUnicodeComposite{\accpsili }{\textomicron}{"1F40} % ὀ \DeclareUnicodeComposite{\accdasia }{\textomicron}{"1F41} % ὁ \DeclareUnicodeComposite{\accpsilivaria }{\textomicron}{"1F42} % ὂ \DeclareUnicodeComposite{\accdasiavaria }{\textomicron}{"1F43} % ὃ \DeclareUnicodeComposite{\accpsilioxia }{\textomicron}{"1F44} % ὄ \DeclareUnicodeComposite{\accdasiaoxia }{\textomicron}{"1F45} % ὅ \DeclareUnicodeComposite{\accpsili }{\textOmicron}{"1F48} % Ὀ \DeclareUnicodeComposite{\accdasia }{\textOmicron}{"1F49} % Ὁ \DeclareUnicodeComposite{\accpsilivaria }{\textOmicron}{"1F4A} % Ὂ \DeclareUnicodeComposite{\accdasiavaria }{\textOmicron}{"1F4B} % Ὃ \DeclareUnicodeComposite{\accpsilioxia }{\textOmicron}{"1F4C} % Ὄ \DeclareUnicodeComposite{\accdasiaoxia }{\textOmicron}{"1F4D} % Ὅ \DeclareUnicodeComposite{\accpsili }{\textupsilon}{"1F50} % ὐ \DeclareUnicodeComposite{\accdasia }{\textupsilon}{"1F51} % ὑ \DeclareUnicodeComposite{\accpsilivaria }{\textupsilon}{"1F52} % ὒ \DeclareUnicodeComposite{\accdasiavaria }{\textupsilon}{"1F53} % ὓ \DeclareUnicodeComposite{\accpsilioxia }{\textupsilon}{"1F54} % ὔ \DeclareUnicodeComposite{\accdasiaoxia }{\textupsilon}{"1F55} % ὕ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textupsilon}{"1F56} % ὖ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textupsilon}{"1F57} % ὗ \DeclareUnicodeComposite{\accdasia }{\textUpsilon}{"1F59} % Ὑ \DeclareUnicodeComposite{\accdasiavaria }{\textUpsilon}{"1F5B} % Ὓ \DeclareUnicodeComposite{\accdasiaoxia }{\textUpsilon}{"1F5D} % Ὕ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textUpsilon}{"1F5F} % Ὗ \DeclareUnicodeComposite{\accpsili }{\textomega}{"1F60} % ὠ \DeclareUnicodeComposite{\accdasia }{\textomega}{"1F61} % ὡ \DeclareUnicodeComposite{\accpsilivaria }{\textomega}{"1F62} % ὢ \DeclareUnicodeComposite{\accdasiavaria }{\textomega}{"1F63} % ὣ \DeclareUnicodeComposite{\accpsilioxia }{\textomega}{"1F64} % ὤ \DeclareUnicodeComposite{\accdasiaoxia }{\textomega}{"1F65} % ὥ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textomega}{"1F66} % ὦ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textomega}{"1F67} % ὧ \DeclareUnicodeComposite{\accpsili }{\textOmega}{"1F68} % Ὠ \DeclareUnicodeComposite{\accdasia }{\textOmega}{"1F69} % Ὡ \DeclareUnicodeComposite{\accpsilivaria }{\textOmega}{"1F6A} % Ὢ \DeclareUnicodeComposite{\accdasiavaria }{\textOmega}{"1F6B} % Ὣ \DeclareUnicodeComposite{\accpsilioxia }{\textOmega}{"1F6C} % Ὤ \DeclareUnicodeComposite{\accdasiaoxia }{\textOmega}{"1F6D} % Ὥ \DeclareUnicodeComposite{\accpsiliperispomeni}{\textOmega}{"1F6E} % Ὦ \DeclareUnicodeComposite{\accdasiaperispomeni}{\textOmega}{"1F6F} % Ὧ \DeclareUnicodeComposite{\`} {\textalpha} {"1F70} % ὰ \DeclareUnicodeComposite{\`} {\textepsilon}{"1F72} % ὲ \DeclareUnicodeComposite{\`} {\texteta} {"1F74} % ὴ \DeclareUnicodeComposite{\`} {\textiota} {"1F76} % ὶ \DeclareUnicodeComposite{\`} {\textomicron}{"1F78} % ὸ \DeclareUnicodeComposite{\`} {\textupsilon}{"1F7A} % ὺ \DeclareUnicodeComposite{\`} {\textomega} {"1F7C} % ὼ % repeat with named accents (LuaTeX does not normalize to pre-composed chars): \DeclareUnicodeComposite{\accvaria} {\textalpha} {"1F70} % ὰ \DeclareUnicodeComposite{\accvaria} {\textepsilon}{"1F72} % ὲ \DeclareUnicodeComposite{\accvaria} {\texteta} {"1F74} % ὴ \DeclareUnicodeComposite{\accvaria} {\textiota} {"1F76} % ὶ \DeclareUnicodeComposite{\accvaria} {\textomicron}{"1F78} % ὸ \DeclareUnicodeComposite{\accvaria} {\textupsilon}{"1F7A} % ὺ \DeclareUnicodeComposite{\accvaria} {\textomega} {"1F7C} % ὼ
Skipping pre-composed characters with mute iota (misleadingly named … WITH PROSGEGRAMMENI): letter + \ypogegrammeni is normalized to the pre-composed character.
\DeclareUnicodeComposite{\u} {\textalpha} {"1FB0} % ᾰ \DeclareUnicodeComposite{\=} {\textalpha} {"1FB1} % ᾱ % ᾲ % ᾳ % ᾴ \DeclareUnicodeComposite{\accperispomeni} {\textalpha} {"1FB6} % ᾶ \DeclareUnicodeComposite{\~} {\textalpha} {"1FB6} % ᾶ % ᾷ \DeclareUnicodeComposite{\u} {\textAlpha} {"1FB8} % Ᾰ \DeclareUnicodeComposite{\=} {\textAlpha} {"1FB9} % Ᾱ \DeclareUnicodeComposite{\`} {\textAlpha} {"1FBA} % Ὰ \DeclareUnicodeComposite{\accvaria} {\textAlpha} {"1FBA} % Ὰ % ᾼ \DeclareUnicodeComposite{\accpsili} {} {"1FBD} % ᾽ \DeclareTextSymbol{\prosgegrammeni}\UnicodeEncodingName {"1FBE} % ι \DeclareUnicodeComposite{\accpsili} {} {"1FBF} % ᾿ \DeclareUnicodeComposite{\accperispomeni} {} {"1FC0} % ῀ \DeclareUnicodeComposite{\accdialytikaperispomeni}{} {"1FC1} % ῁ % ῂ % ῃ % ῄ \DeclareUnicodeComposite{\accperispomeni} {\texteta} {"1FC6} % ῆ \DeclareUnicodeComposite{\~} {\texteta} {"1FC6} % ῆ % ῇ \DeclareUnicodeComposite{\`} {\textEpsilon}{"1FC8} % Ὲ \DeclareUnicodeComposite{\accvaria} {\textEpsilon}{"1FC8} % Ὲ \DeclareUnicodeComposite{\`} {\textEta} {"1FCA} % Ὴ \DeclareUnicodeComposite{\accvaria} {\textEta} {"1FCA} % Ὴ % ῌ \DeclareUnicodeComposite{\accpsilivaria} {} {"1FCD} % ῍ \DeclareUnicodeComposite{\accpsilioxia} {} {"1FCE} % ῎ \DeclareUnicodeComposite{\accpsiliperispomeni} {} {"1FCF} % ῏ \DeclareUnicodeComposite{\u} {\textiota} {"1FD0} % ῐ \DeclareUnicodeComposite{\=} {\textiota} {"1FD1} % ῑ \DeclareUnicodeComposite{\accdialytikavaria} {\textiota} {"1FD2} % ῒ \DeclareUnicodeComposite{\accdialytikaoxia} {\textiota} {"1FD3} % ΐ \DeclareUnicodeComposite{\accperispomeni} {\textiota} {"1FD6} % ῖ \DeclareUnicodeComposite{\~} {\textiota} {"1FD6} % ῖ \DeclareUnicodeComposite{\~} {ι} {"1FD6} % ῖ \DeclareUnicodeComposite{\accdialytikaperispomeni}{\textiota} {"1FD7} % ῗ \DeclareUnicodeComposite{\u} {\textIota} {"1FD8} % Ῐ \DeclareUnicodeComposite{\=} {\textIota} {"1FD9} % Ῑ \DeclareUnicodeComposite{\`} {\textIota} {"1FDA} % Ὶ \DeclareUnicodeComposite{\accvaria} {\textIota} {"1FDA} % Ὶ \DeclareUnicodeComposite{\accdasiavaria} {} {"1FDD} % ῝ \DeclareUnicodeComposite{\accdasiaoxia} {} {"1FDE} % ῞ \DeclareUnicodeComposite{\accdasiaperispomeni} {} {"1FDF} % ῟ \DeclareUnicodeComposite{\u} {\textupsilon}{"1FE0} % ῠ \DeclareUnicodeComposite{\=} {\textupsilon}{"1FE1} % ῡ \DeclareUnicodeComposite{\accdialytikavaria} {\textupsilon}{"1FE2} % ῢ \DeclareUnicodeComposite{\accdialytikaoxia} {\textupsilon}{"1FE3} % ΰ \DeclareUnicodeComposite{\accpsili} {\textrho} {"1FE4} % ῤ \DeclareUnicodeComposite{\accdasia} {\textrho} {"1FE5} % ῥ \DeclareUnicodeComposite{\~} {\textupsilon}{"1FE6} % ῦ \DeclareUnicodeComposite{\accperispomeni} {\textupsilon}{"1FE6} % ῦ \DeclareUnicodeComposite{\accdialytikaperispomeni}{\textupsilon}{"1FE7} % ῧ \DeclareUnicodeComposite{\u} {\textUpsilon}{"1FE8} % Ῠ \DeclareUnicodeComposite{\=} {\textUpsilon}{"1FE9} % Ῡ \DeclareUnicodeComposite{\`} {\textUpsilon}{"1FEA} % Ὺ \DeclareUnicodeComposite{\accvaria} {\textUpsilon}{"1FEA} % Ὺ % Ύ \DeclareUnicodeComposite{\accdasia} {\textRho} {"1FEC} % Ῥ \DeclareUnicodeComposite{\accdialytikavaria} {} {"1FED} % ῭ \DeclareUnicodeComposite{\accdialytikaoxia} {} {"1FEE} % ΅ % ` % ῲ % ῳ % ῴ \DeclareUnicodeComposite{\accperispomeni} {\textomega} {"1FF6} % ῶ \DeclareUnicodeComposite{\~} {\textomega} {"1FF6} % ῶ % ῷ \DeclareUnicodeComposite{\`} {\textOmicron}{"1FF8} % Ὸ \DeclareUnicodeComposite{\accvaria} {\textOmicron}{"1FF8} % Ὸ \DeclareUnicodeComposite{\`} {\textOmega} {"1FFA} % Ὼ \DeclareUnicodeComposite{\accvaria} {\textOmega} {"1FFA} % Ὼ % ῼ \DeclareUnicodeComposite{\accoxia} {} {"1FFD} % ´ \DeclareUnicodeComposite{\accdasia} {} {"1FFE} % ῾
Perispomeni and tilde accent
XeTeX and LuaTeX (since 2022) convert letters followed by combining characters to a pre-composed character, if there is an equivalent pre-composed character.
The \accperispomeni macro expands to COMBINING GREEK PERISPOMENI while the standard short accent macro \~ uses the COMBINING TILDE. Only <Greek letter> + COMBINING GREEK PERISPOMENI is considered equivalent to the pre-composed <Greek letter> WITH PERISPOMENI. Composite definitions for \~ select the pre-composed character
TODO: don’t use literal Unicode characters if \inputencodingname is defined and not “lutf8” to prevent errors with legacy 8-bit documents read with “luainputenc.sty” (cf. test-licr-input.tex).
\DeclareUnicodeComposite{\~}{α}{"1FB6} % ᾶ \DeclareUnicodeComposite{\~}{η}{"1FC6} % ῆ \DeclareUnicodeComposite{\~}{ι}{"1FD6} % ῖ \DeclareUnicodeComposite{\~}{ι}{"1FD6} % ῖ \DeclareUnicodeComposite{\~}{υ}{"1FE6} % ῦ \DeclareUnicodeComposite{\~}{ω}{"1FF6} % ῶ
If there is no pre-composed Capital letter with perispomeni, we want no perispomeni with \MakeUppercase. (These definitions may be redundant with the new (2022/06) implementation of \MakeUppercase.)
\DeclareUnicodeComposite{\~}{\textAlpha} {"0391} % Α \DeclareUnicodeComposite{\~}{Α} {"0391} % Α \DeclareUnicodeComposite{\~}{\textEta} {"0397} % Η \DeclareUnicodeComposite{\~}{Η} {"0397} % Η \DeclareUnicodeComposite{\~}{\textIota} {"0399} % Ι \DeclareUnicodeComposite{\~}{Ι} {"0399} % Ι \DeclareUnicodeComposite{\~}{\textUpsilon}{"03A5} % Υ \DeclareUnicodeComposite{\~}{Υ} {"03A5} % Υ \DeclareUnicodeComposite{\~}{\textOmega} {"03A9} % Ω \DeclareUnicodeComposite{\~}{Ω} {"03A9} % Ω
Letterlike Symbols
\DeclareTextSymbol{\textohm}\UnicodeEncodingName{"03A9} % OHM SIGN, use 03A9 Omega
Ancient Greek Numbers
TODO: map other chars to corresponding Greek letters. See also the grnumalt package.
\DeclareTextSymbol{\textpentedeka }\UnicodeEncodingName{"10144} % GREEK ACROPHONIC ATTIC FIFTY \DeclareTextSymbol{\textpentehekaton}\UnicodeEncodingName{"10145} % GREEK ACROPHONIC ATTIC FIVE HUNDRED \DeclareTextSymbol{\textpenteqilioi }\UnicodeEncodingName{"10146} % GREEK ACROPHONIC ATTIC FIVE THOUSAND \DeclareTextSymbol{\textpentemuria }\UnicodeEncodingName{"10147} % GREEK ACROPHONIC ATTIC FIFTY THOUSAND
UPPERCASE
Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.
Babel-Greek indroduces macros for “capital accents” in 1.13.3. Here, we add definitions to drop diacritics in uppercase:
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} % new in 2020 \IfFormatAtLeastTF{2022/06/01}{ \DeclareTextCompositeCommand{\accACUTE}{TU}{\textAlpha }{\LGR@A@hiatus} \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEpsilon}{\LGR@E@hiatus} \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEta }{Η} \DeclareTextCompositeCommand{\accACUTE}{TU}{\textIota }{Ι} \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmicron}{Ο} \DeclareTextCompositeCommand{\accACUTE}{TU}{\textUpsilon}{Υ} \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmega }{Ω} \DeclareTextCompositeCommand{\accACUTE}{TU}{Α}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\accACUTE}{TU}{Ε}{\LGR@E@hiatus} \DeclareTextCompositeCommand{\accACUTE}{TU}{Η}{Η} \DeclareTextCompositeCommand{\accACUTE}{TU}{Ι}{Ι} \DeclareTextCompositeCommand{\accACUTE}{TU}{Ο}{Ο} \DeclareTextCompositeCommand{\accACUTE}{TU}{Υ}{Υ} \DeclareTextCompositeCommand{\accACUTE}{TU}{Ω}{Ω} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textAlpha }{Α} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEpsilon}{Ε} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEta }{Η} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textIota }{Ι} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmicron}{Ο} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textUpsilon}{Υ} \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmega }{Ω} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Α}{Α} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ε}{Ε} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Η}{Η} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ι}{Ι} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ο}{Ο} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Υ}{Υ} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω} \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω} \DeclareTextCompositeCommand{\LGR@hiatus}{TU}{Α}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{TU}{Ε}{\LGR@E@hiatus}
The new (2022) implementation of \MakeUppercase drops accents from literal Unicode input (if the text language is set to Greek with Babel).
With the old \MakeUppercase implementation, we can fix this using \lccode and \uccode corrections from the xgreek package by Apostolos Syropoulos:
}{% else \global\lccode"0370="0371 \global\uccode"0370="0370 \global\lccode"0371="0371 \global\uccode"0371="0370 \global\lccode"0372="0373 \global\uccode"0372="0372 \global\lccode"0373="0373 \global\uccode"0373="0372 \global\lccode"0376="0377 \global\uccode"0376="0376 \global\lccode"0377="0377 \global\uccode"0377="0376 \global\lccode"03FD="037B \global\uccode"03FD="03FD \global\lccode"037B="037B \global\uccode"037B="03FD \global\lccode"03FE="037C \global\uccode"03FE="03FE \global\lccode"037C="037C \global\uccode"037C="03FE \global\lccode"03FF="037D \global\uccode"03FF="03FF \global\lccode"037D="037D \global\uccode"037D="03FF \global\lccode"0386="03AC \global\uccode"0386="0391 \global\lccode"0388="03AD \global\uccode"0388="0395 \global\lccode"0389="03AC \global\uccode"0389="0397 \global\lccode"038A="03AF \global\uccode"038A="0399 \global\lccode"038C="03CC \global\uccode"038C="039F \global\lccode"038E="03CD \global\uccode"038E="03A5 \global\lccode"038F="03CE \global\uccode"038F="03A9 \global\lccode"0390="0390 \global\uccode"0390="03AA \global\lccode"0391="03B1 \global\uccode"0391="0391 \global\lccode"0392="03B2 \global\uccode"0392="0392 \global\lccode"0393="03B3 \global\uccode"0393="0393 \global\lccode"0394="03B4 \global\uccode"0394="0394 \global\lccode"0395="03B5 \global\uccode"0395="0395 \global\lccode"0396="03B6 \global\uccode"0396="0396 \global\lccode"0397="03B7 \global\uccode"0397="0397 \global\lccode"0398="03B8 \global\uccode"0398="0398 \global\lccode"0399="03B9 \global\uccode"0399="0399 \global\lccode"039A="03BA \global\uccode"039A="039A \global\lccode"039B="03BB \global\uccode"039B="039B \global\lccode"039C="03BC \global\uccode"039C="039C \global\lccode"039D="03BD \global\uccode"039D="039D \global\lccode"039E="03BE \global\uccode"039E="039E \global\lccode"039F="03BF \global\uccode"039F="039F \global\lccode"03A0="03C0 \global\uccode"03A0="03A0 \global\lccode"03A1="03C1 \global\uccode"03A1="03A1 \global\lccode"03A3="03C3 \global\uccode"03A3="03A3 \global\lccode"03A4="03C4 \global\uccode"03A4="03A4 \global\lccode"03A5="03C5 \global\uccode"03A5="03A5 \global\lccode"03A6="03C6 \global\uccode"03A6="03A6 \global\lccode"03A7="03C7 \global\uccode"03A7="03A7 \global\lccode"03A8="03C8 \global\uccode"03A8="03A8 \global\lccode"03A9="03C9 \global\uccode"03A9="03A9 \global\lccode"03AA="03CA \global\uccode"03AA="03AA \global\lccode"03AB="03CB \global\uccode"03AB="03AB \global\lccode"03AC="03AC \global\uccode"03AC="0391 \global\lccode"03AD="03AD \global\uccode"03AD="0395 \global\lccode"03AE="03AE \global\uccode"03AE="0397 \global\lccode"03AF="03AF \global\uccode"03AF="0399 \global\lccode"03B0="03B0 \global\uccode"03B0="03AB \global\lccode"03B1="03B1 \global\uccode"03B1="0391 \global\lccode"03B2="03B2 \global\uccode"03B2="0392 \global\lccode"03B3="03B3 \global\uccode"03B3="0393 \global\lccode"03B4="03B4 \global\uccode"03B4="0394 \global\lccode"03B5="03B5 \global\uccode"03B5="0395 \global\lccode"03B6="03B6 \global\uccode"03B6="0396 \global\lccode"03B7="03B7 \global\uccode"03B7="0397 \global\lccode"03B8="03B8 \global\uccode"03B8="0398 \global\lccode"03B9="03B9 \global\uccode"03B9="0399 \global\lccode"03BA="03BA \global\uccode"03BA="039A \global\lccode"03BB="03BB \global\uccode"03BB="039B \global\lccode"03BC="03BC \global\uccode"03BC="039C \global\lccode"03BD="03BD \global\uccode"03BD="039D \global\lccode"03BE="03BE \global\uccode"03BE="039E \global\lccode"03BF="03BF \global\uccode"03BF="039F \global\lccode"03C0="03C0 \global\uccode"03C0="03A0 \global\lccode"03C1="03C1 \global\uccode"03C1="03A1 \global\lccode"03C2="03C2 \global\uccode"03C2="03A3 \global\lccode"03C3="03C3 \global\uccode"03C3="03A3 \global\lccode"03C4="03C4 \global\uccode"03C4="03A4 \global\lccode"03C5="03C5 \global\uccode"03C5="03A5 \global\lccode"03C6="03C6 \global\uccode"03C6="03A6 \global\lccode"03C7="03C7 \global\uccode"03C7="03A7 \global\lccode"03C8="03C8 \global\uccode"03C8="03A8 \global\lccode"03C9="03C9 \global\uccode"03C9="03A9 \global\lccode"03CA="03CA \global\uccode"03CA="03AA \global\lccode"03CB="03CB \global\uccode"03CB="03AB \global\lccode"03CC="03CC \global\uccode"03CC="039F \global\lccode"03CD="03CD \global\uccode"03CD="03A5 \global\lccode"03CE="03CE \global\uccode"03CE="03A9 \global\lccode"03D0="03D0 \global\uccode"03D0="0392 \global\lccode"03D1="03D1 \global\uccode"03D1="0398 \global\lccode"03D2="03C5 \global\uccode"03D2="03A5 \global\lccode"03D3="03CD \global\uccode"03D3="03A5 \global\lccode"03D4="03CB \global\uccode"03D4="03AB \global\lccode"03D5="03C6 \global\uccode"03D5="03A6 \global\lccode"03D6="03C0 \global\uccode"03D6="03A0 \global\lccode"03DA="03DB \global\uccode"03DA="03DA \global\lccode"03DB="03DB \global\uccode"03DB="03DA \global\lccode"03DC="03DD \global\uccode"03DC="03DC \global\lccode"03DD="03DD \global\uccode"03DD="03DC \global\lccode"03DE="03DF \global\uccode"03DE="03DE \global\lccode"03DF="03DF \global\uccode"03DF="03DE \global\lccode"03E0="03E1 \global\uccode"03E0="03E0 \global\lccode"03E1="03E1 \global\uccode"03E1="03E0 \global\lccode"03F0="03BA \global\uccode"03F0="039A \global\lccode"03F1="03C1 \global\uccode"03F1="03A1 \global\lccode"03F2="03F2 \global\uccode"03F2="03F9 \global\lccode"03F9="03F2 \global\uccode"03F9="03F9 \global\lccode"1F00="1F00 \global\uccode"1F00="0391 \global\lccode"1F01="1F01 \global\uccode"1F01="0391 \global\lccode"1F02="1F02 \global\uccode"1F02="0391 \global\lccode"1F03="1F03 \global\uccode"1F03="0391 \global\lccode"1F04="1F04 \global\uccode"1F04="0391 \global\lccode"1F05="1F05 \global\uccode"1F05="0391 \global\lccode"1F06="1F06 \global\uccode"1F06="0391 \global\lccode"1F07="1F07 \global\uccode"1F07="0391 \global\lccode"1F08="1F00 \global\uccode"1F08="0391 \global\lccode"1F09="1F01 \global\uccode"1F09="0391 \global\lccode"1F0A="1F02 \global\uccode"1F0A="0391 \global\lccode"1F0B="1F03 \global\uccode"1F0B="0391 \global\lccode"1F0C="1F04 \global\uccode"1F0C="0391 \global\lccode"1F0D="1F05 \global\uccode"1F0D="0391 \global\lccode"1F0E="1F06 \global\uccode"1F0E="0391 \global\lccode"1F0F="1F07 \global\uccode"1F0F="0391 \global\lccode"1F10="1F10 \global\uccode"1F10="0395 \global\lccode"1F11="1F11 \global\uccode"1F11="0395 \global\lccode"1F12="1F12 \global\uccode"1F12="0395 \global\lccode"1F13="1F13 \global\uccode"1F13="0395 \global\lccode"1F14="1F14 \global\uccode"1F14="0395 \global\lccode"1F15="1F15 \global\uccode"1F15="0395 \global\lccode"1F18="1F10 \global\uccode"1F18="0395 \global\lccode"1F19="1F11 \global\uccode"1F19="0395 \global\lccode"1F1A="1F12 \global\uccode"1F1A="0395 \global\lccode"1F1B="1F13 \global\uccode"1F1B="0395 \global\lccode"1F1C="1F14 \global\uccode"1F1C="0395 \global\lccode"1F1D="1F15 \global\uccode"1F1D="0395 \global\lccode"1F20="1F20 \global\uccode"1F20="0397 \global\lccode"1F21="1F21 \global\uccode"1F21="0397 \global\lccode"1F22="1F22 \global\uccode"1F22="0397 \global\lccode"1F23="1F23 \global\uccode"1F23="0397 \global\lccode"1F24="1F24 \global\uccode"1F24="0397 \global\lccode"1F25="1F25 \global\uccode"1F25="0397 \global\lccode"1F26="1F26 \global\uccode"1F26="0397 \global\lccode"1F27="1F27 \global\uccode"1F27="0397 \global\lccode"1F28="1F20 \global\uccode"1F28="0397 \global\lccode"1F29="1F21 \global\uccode"1F29="0397 \global\lccode"1F2A="1F22 \global\uccode"1F2A="0397 \global\lccode"1F2B="1F23 \global\uccode"1F2B="0397 \global\lccode"1F2C="1F24 \global\uccode"1F2C="0397 \global\lccode"1F2D="1F25 \global\uccode"1F2D="0397 \global\lccode"1F2E="1F26 \global\uccode"1F2E="0397 \global\lccode"1F2F="1F27 \global\uccode"1F2F="0397 \global\lccode"1F30="1F30 \global\uccode"1F30="0399 \global\lccode"1F31="1F31 \global\uccode"1F31="0399 \global\lccode"1F32="1F32 \global\uccode"1F32="0399 \global\lccode"1F33="1F33 \global\uccode"1F33="0399 \global\lccode"1F34="1F34 \global\uccode"1F34="0399 \global\lccode"1F35="1F35 \global\uccode"1F35="0399 \global\lccode"1F36="1F36 \global\uccode"1F36="0399 \global\lccode"1F37="1F37 \global\uccode"1F37="0399 \global\lccode"1F38="1F30 \global\uccode"1F38="0399 \global\lccode"1F39="1F31 \global\uccode"1F39="0399 \global\lccode"1F3A="1F32 \global\uccode"1F3A="0399 \global\lccode"1F3B="1F33 \global\uccode"1F3B="0399 \global\lccode"1F3C="1F34 \global\uccode"1F3C="0399 \global\lccode"1F3D="1F35 \global\uccode"1F3D="0399 \global\lccode"1F3E="1F36 \global\uccode"1F3E="0399 \global\lccode"1F3F="1F37 \global\uccode"1F3F="0399 \global\lccode"1F40="1F40 \global\uccode"1F40="039F \global\lccode"1F41="1F41 \global\uccode"1F41="039F \global\lccode"1F42="1F42 \global\uccode"1F42="039F \global\lccode"1F43="1F43 \global\uccode"1F43="039F \global\lccode"1F44="1F44 \global\uccode"1F44="039F \global\lccode"1F45="1F45 \global\uccode"1F45="039F \global\lccode"1F48="1F40 \global\uccode"1F48="039F \global\lccode"1F49="1F41 \global\uccode"1F49="039F \global\lccode"1F4A="1F42 \global\uccode"1F4A="039F \global\lccode"1F4B="1F43 \global\uccode"1F4B="039F \global\lccode"1F4C="1F44 \global\uccode"1F4C="039F \global\lccode"1F4D="1F45 \global\uccode"1F4D="039F \global\lccode"1F50="1F50 \global\uccode"1F50="03A5 \global\lccode"1F51="1F51 \global\uccode"1F51="03A5 \global\lccode"1F52="1F52 \global\uccode"1F52="03A5 \global\lccode"1F53="1F53 \global\uccode"1F53="03A5 \global\lccode"1F54="1F54 \global\uccode"1F54="03A5 \global\lccode"1F55="1F55 \global\uccode"1F55="03A5 \global\lccode"1F56="1F56 \global\uccode"1F56="03A5 \global\lccode"1F57="1F57 \global\uccode"1F57="03A5 \global\lccode"1F59="1F51 \global\uccode"1F59="03A5 \global\lccode"1F5B="1F53 \global\uccode"1F5B="03A5 \global\lccode"1F5D="1F55 \global\uccode"1F5D="03A5 \global\lccode"1F5F="1F57 \global\uccode"1F5F="03A5 \global\lccode"1F60="1F60 \global\uccode"1F60="03A9 \global\lccode"1F61="1F61 \global\uccode"1F61="03A9 \global\lccode"1F62="1F62 \global\uccode"1F62="03A9 \global\lccode"1F63="1F63 \global\uccode"1F63="03A9 \global\lccode"1F64="1F64 \global\uccode"1F64="03A9 \global\lccode"1F65="1F65 \global\uccode"1F65="03A9 \global\lccode"1F66="1F66 \global\uccode"1F66="03A9 \global\lccode"1F67="1F67 \global\uccode"1F67="03A9 \global\lccode"1F68="1F60 \global\uccode"1F68="03A9 \global\lccode"1F69="1F61 \global\uccode"1F69="03A9 \global\lccode"1F6A="1F62 \global\uccode"1F6A="03A9 \global\lccode"1F6B="1F63 \global\uccode"1F6B="03A9 \global\lccode"1F6C="1F64 \global\uccode"1F6C="03A9 \global\lccode"1F6D="1F65 \global\uccode"1F6D="03A9 \global\lccode"1F6E="1F66 \global\uccode"1F6E="03A9 \global\lccode"1F6F="1F67 \global\uccode"1F6F="03A9 \global\lccode"1F70="1F70 \global\uccode"1F70="0391 \global\lccode"1F71="1F71 \global\uccode"1F71="0391 \global\lccode"1F72="1F72 \global\uccode"1F72="0395 \global\lccode"1F73="1F73 \global\uccode"1F73="0395 \global\lccode"1F74="1F74 \global\uccode"1F74="0397 \global\lccode"1F75="1F75 \global\uccode"1F75="0397 \global\lccode"1F76="1F76 \global\uccode"1F76="0399 \global\lccode"1F77="1F77 \global\uccode"1F77="0399 \global\lccode"1F78="1F78 \global\uccode"1F78="039F \global\lccode"1F79="1F79 \global\uccode"1F79="039F \global\lccode"1F7A="1F7A \global\uccode"1F7A="03A5 \global\lccode"1F7B="1F7B \global\uccode"1F7B="03A5 \global\lccode"1F7C="1F7C \global\uccode"1F7C="03A9 \global\lccode"1F7D="1F7D \global\uccode"1F7D="03A9 \global\lccode"1F80="1F80 \global\uccode"1F80="1FBC \global\lccode"1F81="1F81 \global\uccode"1F81="1FBC \global\lccode"1F82="1F82 \global\uccode"1F82="1FBC \global\lccode"1F83="1F83 \global\uccode"1F83="1FBC \global\lccode"1F84="1F84 \global\uccode"1F84="1FBC \global\lccode"1F85="1F85 \global\uccode"1F85="1FBC \global\lccode"1F86="1F86 \global\uccode"1F86="1FBC \global\lccode"1F87="1F87 \global\uccode"1F87="1FBC \global\lccode"1F88="1F80 \global\uccode"1F88="1FBC \global\lccode"1F89="1F81 \global\uccode"1F89="1FBC \global\lccode"1F8A="1F82 \global\uccode"1F8A="1FBC \global\lccode"1F8B="1F83 \global\uccode"1F8B="1FBC \global\lccode"1F8C="1F84 \global\uccode"1F8C="1FBC \global\lccode"1F8D="1F85 \global\uccode"1F8D="1FBC \global\lccode"1F8E="1F86 \global\uccode"1F8E="1FBC \global\lccode"1F8F="1F87 \global\uccode"1F8F="1FBC \global\lccode"1F90="1F90 \global\uccode"1F90="1FCC \global\lccode"1F91="1F91 \global\uccode"1F91="1FCC \global\lccode"1F92="1F92 \global\uccode"1F92="1FCC \global\lccode"1F93="1F93 \global\uccode"1F93="1FCC \global\lccode"1F94="1F94 \global\uccode"1F94="1FCC \global\lccode"1F95="1F95 \global\uccode"1F95="1FCC \global\lccode"1F96="1F96 \global\uccode"1F96="1FCC \global\lccode"1F97="1F97 \global\uccode"1F97="1FCC \global\lccode"1F98="1F90 \global\uccode"1F98="1FCC \global\lccode"1F99="1F91 \global\uccode"1F99="1FCC \global\lccode"1F9A="1F92 \global\uccode"1F9A="1FCC \global\lccode"1F9B="1F93 \global\uccode"1F9B="1FCC \global\lccode"1F9C="1F94 \global\uccode"1F9C="1FCC \global\lccode"1F9D="1F95 \global\uccode"1F9D="1FCC \global\lccode"1F9E="1F96 \global\uccode"1F9E="1FCC \global\lccode"1F9F="1F97 \global\uccode"1F9F="1FCC \global\lccode"1FA0="1FA0 \global\uccode"1FA0="1FFC \global\lccode"1FA1="1FA1 \global\uccode"1FA1="1FFC \global\lccode"1FA2="1FA2 \global\uccode"1FA2="1FFC \global\lccode"1FA3="1FA3 \global\uccode"1FA3="1FFC \global\lccode"1FA4="1FA4 \global\uccode"1FA4="1FFC \global\lccode"1FA5="1FA5 \global\uccode"1FA5="1FFC \global\lccode"1FA6="1FA6 \global\uccode"1FA6="1FFC \global\lccode"1FA7="1FA7 \global\uccode"1FA7="1FFC \global\lccode"1FA8="1FA0 \global\uccode"1FA8="1FFC \global\lccode"1FA9="1FA1 \global\uccode"1FA9="1FFC \global\lccode"1FAA="1FA2 \global\uccode"1FAA="1FFC \global\lccode"1FAB="1FA3 \global\uccode"1FAB="1FFC \global\lccode"1FAC="1FA4 \global\uccode"1FAC="1FFC \global\lccode"1FAD="1FA5 \global\uccode"1FAD="1FFC \global\lccode"1FAE="1FA6 \global\uccode"1FAE="1FFC \global\lccode"1FAF="1FA7 \global\uccode"1FAF="1FFC \global\lccode"1FB0="1FB0 \global\uccode"1FB0="1FB8 \global\lccode"1FB1="1FB1 \global\uccode"1FB1="1FB9 \global\lccode"1FB2="1FB2 \global\uccode"1FB2="1FBC \global\lccode"1FB3="1FB3 \global\uccode"1FB3="1FBC \global\lccode"1FB4="1FB4 \global\uccode"1FB4="1FBC \global\lccode"1FB6="1FB6 \global\uccode"1FB6="0391 \global\lccode"1FB7="1FB7 \global\uccode"1FB7="1FBC \global\lccode"1FB8="1FB0 \global\uccode"1FB8="1FB8 \global\lccode"1FB9="1FB1 \global\uccode"1FB9="1FB9 \global\lccode"1FBA="1F70 \global\uccode"1FBA="0391 \global\lccode"1FBB="1F71 \global\uccode"1FBB="0391 \global\lccode"1FBC="1FB3 \global\uccode"1FBC="1FBC \global\lccode"1FBD="1FBD \global\uccode"1FBD="1FBD \global\lccode"1FC2="1FC2 \global\uccode"1FC2="1FCC \global\lccode"1FC3="1FC3 \global\uccode"1FC3="1FCC \global\lccode"1FC4="1FC4 \global\uccode"1FC4="1FCC \global\lccode"1FC6="1FC6 \global\uccode"1FC6="0397 \global\lccode"1FC7="1FC7 \global\uccode"1FC7="1FCC \global\lccode"1FC8="1F72 \global\uccode"1FC8="0395 \global\lccode"1FC9="1F73 \global\uccode"1FC9="0395 \global\lccode"1FCA="1F74 \global\uccode"1FCA="0397 \global\lccode"1FCB="1F75 \global\uccode"1FCB="0397 \global\lccode"1FCC="1FC3 \global\uccode"1FCC="1FCC \global\lccode"1FD0="1FD0 \global\uccode"1FD0="1FD8 \global\lccode"1FD1="1FD1 \global\uccode"1FD1="1FD9 \global\lccode"1FD2="1FD2 \global\uccode"1FD2="03AA \global\lccode"1FD3="1FD3 \global\uccode"1FD3="03AA \global\lccode"1FD6="1FD6 \global\uccode"1FD6="0399 \global\lccode"1FD7="1FD7 \global\uccode"1FD7="03AA \global\lccode"1FD8="1FD0 \global\uccode"1FD8="1FD8 \global\lccode"1FD9="1FD1 \global\uccode"1FD9="1FD9 \global\lccode"1FDA="1F76 \global\uccode"1FDA="0399 \global\lccode"1FDB="1F77 \global\uccode"1FDB="0399 \global\lccode"1FE0="1FE0 \global\uccode"1FE0="1FE8 \global\lccode"1FE1="1FE1 \global\uccode"1FE1="1FE9 \global\lccode"1FE2="1FE2 \global\uccode"1FE2="03AB \global\lccode"1FE3="1FE3 \global\uccode"1FE3="03AB \global\lccode"1FE4="1FE4 \global\uccode"1FE4="03A1 \global\lccode"1FE5="1FE5 \global\uccode"1FE5="03A1 \global\lccode"1FE6="1FE6 \global\uccode"1FE6="03A5 \global\lccode"1FE7="1FE7 \global\uccode"1FE7="03AB \global\lccode"1FE8="1FE0 \global\uccode"1FE8="1FE8 \global\lccode"1FE9="1FE1 \global\uccode"1FE9="1FE9 \global\lccode"1FEA="1F7A \global\uccode"1FEA="03A5 \global\lccode"1FEB="1F7B \global\uccode"1FEB="03A5 \global\lccode"1FEC="1FE5 \global\uccode"1FEC="03A1 \global\lccode"1FF2="1FF2 \global\uccode"1FF2="1FFC \global\lccode"1FF3="1FF3 \global\uccode"1FF3="1FFC \global\lccode"1FF4="1FF4 \global\uccode"1FF4="1FFC \global\lccode"1FF6="1FF6 \global\uccode"1FF6="03A9 \global\lccode"1FF7="1FF7 \global\uccode"1FF7="1FFC \global\lccode"1FF8="1F78 \global\uccode"1FF8="039F \global\lccode"1FF9="1F79 \global\uccode"1FF9="039F \global\lccode"1FFA="1F7C \global\uccode"1FFA="03A9 \global\lccode"1FFB="1F7D \global\uccode"1FFB="03A9 \global\lccode"1FFC="1FF3 \global\uccode"1FFC="1FFC }
uclclist
The common Greek font encoding definitions in greek-fontenc.def extend the uclclist with Greek LICR macros. Here, we add Unicode-specific “hiatus” handling (copied from lgrenc.def and changed Latin transliteration to Unicode literals).
The hiatus definition modifications:
\DeclareTextCommand{\LGR@A@hiatus}{\UnicodeEncodingName}{% \LGR@ifnextchar{Ι}{\textAlpha\"}{% \LGR@ifnextchar{Υ}{\textAlpha\"}{% \LGR@ifnextchar{\textIota}{\textAlpha\"}{% \LGR@ifnextchar{\textUpsilon}{\textAlpha\"}{\textAlpha}% }% }% }% } \DeclareTextCommand{\LGR@E@hiatus}{\UnicodeEncodingName}{% \LGR@ifnextchar{Ι}{\textEpsilon\"}{% \LGR@ifnextchar{Υ}{\textEpsilon\"}{% \LGR@ifnextchar{\textIota}{\textEpsilon\"}{% \LGR@ifnextchar{\textUpsilon}{\textEpsilon\"}{\textEpsilon}% }% }% }% }
Changelog
0.1 |
2013-07-16 |
initial version |
0.1.1 |
2013-07-18 |
bugfix: wrong breathings psilioxia -> dasiaoxia |
0.1.2 |
2013-07-19 .. |
bugfix: Disable composite defs starting with char macro, fix “hiatus” handling. |
0.1.3 |
2013-07-24 |
fix “input” path. |
0.1.4 |
2013-10-01 .. |
remove clashing defs for legacy characters with oxia, fix upcasing of \finalsigma. |
0.11.1 |
2013-12-01 |
fix identification. |
0.11.2 |
2014-09-08 |
\textKoppa macro |
(Capital Koppa is not defined in LGR but Unicode). |
||
0.12 |
2014-12-12 |
Remove symbol macros for breathing accents. |
0.13 |
2015-08-07 |
\lccode/\uccode corrections from xgreek. |
LICR macros for symbol variants. |
||
0.13.3 |
2018-01-06 |
Documentation update. |
0.14 |
2020-02-28 |
Rename to tuenc-greek.def. Use \UTFencname. |
1.0 |
2020-09-25 |
New package version. No changes in this file. |
2.0 |
2020-10-13 |
Move common alias definitions to greek-fontenc.def. |
New compatiblity definitions. |
||
Use \UnicodeEncodingName instead of \UTFencname. |
||
Make the file encoding-independent (required for input in other encodings with luainputenc). |
||
2.2 |
2023-02-28 |
Add composite definitions for \~ + literal char. |
Fix order in expansion of combined accent macros. |
||
Skip uccode fixes when ignored by \MakeUppercase. |
||
Add \textbackepsilon (defined by hyperref for PU). |
||
2.2.1 |
2023-03-08 |
Documentation update. |
2.4 |
2023-08-15 |
Fix behaviour of composite diacritics. |
Composite commands for “captital” macros. |