From 37485ae5d642200a29ffc623bae1150d9e8e7978 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 1 Mar 2023 03:01:38 +0000 Subject: CTAN sync 202303010301 --- language/greek/greek-fontenc/Makefile | 115 +- language/greek/greek-fontenc/README | 615 -------- language/greek/greek-fontenc/README.html | 1409 ----------------- language/greek/greek-fontenc/README.md | 44 + language/greek/greek-fontenc/alphabeta-doc-tu.pdf | Bin 0 -> 74857 bytes language/greek/greek-fontenc/alphabeta-doc.pdf | Bin 436106 -> 433268 bytes language/greek/greek-fontenc/alphabeta-doc.tex | 137 +- .../greek/greek-fontenc/alphabeta-lgr.def.html | 826 +++++----- language/greek/greek-fontenc/alphabeta-tu.pdf | Bin 75750 -> 0 bytes language/greek/greek-fontenc/alphabeta-tuenc.def | 2 +- .../greek/greek-fontenc/alphabeta-tuenc.def.html | 830 +++++----- language/greek/greek-fontenc/alphabeta.sty | 22 +- language/greek/greek-fontenc/alphabeta.sty.html | 852 ++++++----- language/greek/greek-fontenc/diacritics.pdf | Bin 285806 -> 0 bytes language/greek/greek-fontenc/diacritics.tex | 172 --- .../greek/greek-fontenc/greek-fontenc-doc.html | 1446 +++++++++++++++++ language/greek/greek-fontenc/greek-fontenc-doc.rst | 624 ++++++++ language/greek/greek-fontenc/greek-fontenc.def | 143 +- .../greek/greek-fontenc/greek-fontenc.def.html | 988 ++++++------ language/greek/greek-fontenc/greek-fontenc.html | 710 --------- .../greek/greek-fontenc/hyperref-with-greek.pdf | Bin 285124 -> 296813 bytes .../greek/greek-fontenc/hyperref-with-greek.tex | 345 +++-- language/greek/greek-fontenc/lgr2licr.lua | 28 +- language/greek/greek-fontenc/lgr2licr.lua.html | 791 +++++++++- language/greek/greek-fontenc/lgrenc.def | 54 +- language/greek/greek-fontenc/lgrenc.def.html | 842 +++++++++- language/greek/greek-fontenc/makeattest.pdf | Bin 63538 -> 0 bytes language/greek/greek-fontenc/makeattest.tex | 26 - language/greek/greek-fontenc/puenc-greek.def | 78 +- language/greek/greek-fontenc/puenc-greek.def.html | 839 +++++----- language/greek/greek-fontenc/test-diacritics.pdf | Bin 0 -> 198977 bytes language/greek/greek-fontenc/test-diacritics.tex | 345 +++++ language/greek/greek-fontenc/test-inputenc.pdf | Bin 395145 -> 0 bytes language/greek/greek-fontenc/test-inputenc.tex | 670 -------- language/greek/greek-fontenc/test-lgrenc.pdf | Bin 323787 -> 326304 bytes language/greek/greek-fontenc/test-lgrenc.tex | 145 +- language/greek/greek-fontenc/test-licr-input.pdf | Bin 0 -> 397294 bytes language/greek/greek-fontenc/test-licr-input.tex | 693 +++++++++ language/greek/greek-fontenc/test-tuenc-greek.pdf | Bin 88349 -> 85973 bytes language/greek/greek-fontenc/test-tuenc-greek.tex | 450 ++++-- language/greek/greek-fontenc/test-utf8-input.pdf | Bin 0 -> 127221 bytes language/greek/greek-fontenc/test-utf8-input.tex | 87 ++ language/greek/greek-fontenc/textalpha-doc-tu.pdf | Bin 0 -> 83990 bytes language/greek/greek-fontenc/textalpha-doc.pdf | Bin 494564 -> 501358 bytes language/greek/greek-fontenc/textalpha-doc.tex | 140 +- language/greek/greek-fontenc/textalpha-tu.pdf | Bin 84741 -> 85804 bytes language/greek/greek-fontenc/textalpha.sty | 177 ++- language/greek/greek-fontenc/textalpha.sty.html | 1012 ++++++------ language/greek/greek-fontenc/tuenc-greek.def | 795 +++++----- language/greek/greek-fontenc/tuenc-greek.def.html | 1617 +++++++++++--------- 50 files changed, 9967 insertions(+), 8102 deletions(-) delete mode 100644 language/greek/greek-fontenc/README delete mode 100644 language/greek/greek-fontenc/README.html create mode 100644 language/greek/greek-fontenc/README.md create mode 100644 language/greek/greek-fontenc/alphabeta-doc-tu.pdf delete mode 100644 language/greek/greek-fontenc/alphabeta-tu.pdf delete mode 100644 language/greek/greek-fontenc/diacritics.pdf delete mode 100644 language/greek/greek-fontenc/diacritics.tex create mode 100644 language/greek/greek-fontenc/greek-fontenc-doc.html create mode 100644 language/greek/greek-fontenc/greek-fontenc-doc.rst delete mode 100644 language/greek/greek-fontenc/greek-fontenc.html delete mode 100644 language/greek/greek-fontenc/makeattest.pdf delete mode 100644 language/greek/greek-fontenc/makeattest.tex create mode 100644 language/greek/greek-fontenc/test-diacritics.pdf create mode 100644 language/greek/greek-fontenc/test-diacritics.tex delete mode 100644 language/greek/greek-fontenc/test-inputenc.pdf delete mode 100644 language/greek/greek-fontenc/test-inputenc.tex create mode 100644 language/greek/greek-fontenc/test-licr-input.pdf create mode 100644 language/greek/greek-fontenc/test-licr-input.tex create mode 100644 language/greek/greek-fontenc/test-utf8-input.pdf create mode 100644 language/greek/greek-fontenc/test-utf8-input.tex create mode 100644 language/greek/greek-fontenc/textalpha-doc-tu.pdf (limited to 'language') diff --git a/language/greek/greek-fontenc/Makefile b/language/greek/greek-fontenc/Makefile index 92b5244eb7..e91e783830 100644 --- a/language/greek/greek-fontenc/Makefile +++ b/language/greek/greek-fontenc/Makefile @@ -2,7 +2,7 @@ # greek-fontenc LateX package # # © 2019 Günter Milde -# +# # SRCDIR (and the other variables) can be easily modified as parameters # while calling `make', e.g. # @@ -21,7 +21,7 @@ SH = sh # programs PYLIT = pylit # text <-> source converter for literal programming -RST2HTML = rst2html5 --stylesheet=minimal.css,responsive.css # text -> HTML converter, see docutils.sf.net +RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net RUBBER = rubber -f --pdf -m hyperref # wrapper around `latex`, run until references resolved LATEX = pdflatex -interaction batchmode @@ -33,35 +33,35 @@ LATEX = pdflatex -interaction batchmode all: font-encodings packages # font encoding definition files -font-encodings: greek-fontenc.def lgrenc.def tuenc-greek.def greek-euenc.def - -tuenc-greek.def: tuenc-greek.def.txt - $(PYLIT) $@.txt - -greek-fontenc.def: greek-fontenc.def.txt - $(PYLIT) $@.txt +font-encodings: greek-fontenc.def lgrenc.def tuenc-greek.def greek-euenc.def -lgrenc.def: lgrenc.def.txt - $(PYLIT) $@.txt +# tuenc-greek.def: tuenc-greek.def.txt +# $(PYLIT) $@.txt +# +# greek-fontenc.def: greek-fontenc.def.txt +# $(PYLIT) $@.txt +# +# lgrenc.def: lgrenc.def.txt +# $(PYLIT) $@.txt # LaTeX packages packages: textalpha.sty alphabeta.sty alphabeta-tuenc.def alphabeta-lgr.def -textalpha.sty: textalpha.sty.txt - $(PYLIT) $@.txt - -alphabeta.sty: alphabeta.sty.txt - $(PYLIT) $@.txt - -alphabeta-tuenc.def: alphabeta-tuenc.def.txt - $(PYLIT) $@.txt - -alphabeta-lgr.def: alphabeta-lgr.def.txt - $(PYLIT) $@.txt - -# Experimental files -lgr2licr.lua: lgr2licr.lua.txt - $(PYLIT) $@.txt +# textalpha.sty: textalpha.sty.txt +# $(PYLIT) $@.txt +# +# alphabeta.sty: alphabeta.sty.txt +# $(PYLIT) $@.txt +# +# alphabeta-tuenc.def: alphabeta-tuenc.def.txt +# $(PYLIT) $@.txt +# +# alphabeta-lgr.def: alphabeta-lgr.def.txt +# $(PYLIT) $@.txt +# +# # Experimental files +# lgr2licr.lua: lgr2licr.lua.txt +# $(PYLIT) $@.txt # Documentation # ============= @@ -70,56 +70,56 @@ lgr2licr.lua: lgr2licr.lua.txt doc: html pdf -html: greek-fontenc.html lgrenc.def.html puenc-greek.def.html \ +html: greek-fontenc-doc.html lgrenc.def.html puenc-greek.def.html \ tuenc-greek.def.html greek-fontenc.def.html \ textalpha.sty.html alphabeta.sty.html \ alphabeta-tuenc.def.html alphabeta-lgr.def.html lgr2licr.lua.html -greek-fontenc.html: README - $(RST2HTML) README greek-fontenc.html +greek-fontenc-doc.html: greek-fontenc-doc.rst + $(RST2HTML) greek-fontenc-doc.rst > greek-fontenc-doc.html greek-fontenc.def.html: greek-fontenc.def $(PYLIT) greek-fontenc.def - $(RST2HTML) greek-fontenc.def.txt greek-fontenc.def.html + $(RST2HTML) greek-fontenc.def.txt > greek-fontenc.def.html lgrenc.def.html: lgrenc.def $(PYLIT) lgrenc.def - $(RST2HTML) lgrenc.def.txt lgrenc.def.html + $(RST2HTML) lgrenc.def.txt > lgrenc.def.html tuenc-greek.def.html: tuenc-greek.def $(PYLIT) tuenc-greek.def - $(RST2HTML) tuenc-greek.def.txt tuenc-greek.def.html + $(RST2HTML) tuenc-greek.def.txt > tuenc-greek.def.html puenc-greek.def.html: puenc-greek.def $(PYLIT) puenc-greek.def - $(RST2HTML) puenc-greek.def.txt puenc-greek.def.html + $(RST2HTML) puenc-greek.def.txt > puenc-greek.def.html textalpha.sty.html: textalpha.sty $(PYLIT) textalpha.sty - $(RST2HTML) textalpha.sty.txt textalpha.sty.html + $(RST2HTML) textalpha.sty.txt > textalpha.sty.html alphabeta.sty.html: alphabeta.sty $(PYLIT) alphabeta.sty - $(RST2HTML) alphabeta.sty.txt alphabeta.sty.html + $(RST2HTML) alphabeta.sty.txt > alphabeta.sty.html alphabeta-tuenc.def.html: alphabeta-tuenc.def $(PYLIT) alphabeta-tuenc.def - $(RST2HTML) alphabeta-tuenc.def.txt alphabeta-tuenc.def.html + $(RST2HTML) alphabeta-tuenc.def.txt > alphabeta-tuenc.def.html alphabeta-lgr.def.html: alphabeta-lgr.def $(PYLIT) alphabeta-lgr.def - $(RST2HTML) alphabeta-lgr.def.txt alphabeta-lgr.def.html + $(RST2HTML) alphabeta-lgr.def.txt > alphabeta-lgr.def.html lgr2licr.lua.html: lgr2licr.lua $(PYLIT) lgr2licr.lua - $(RST2HTML) lgr2licr.lua.txt lgr2licr.lua.html + $(RST2HTML) lgr2licr.lua.txt > lgr2licr.lua.html # User documentation # ================== -pdf: alphabeta-doc.pdf alphabeta-tu.pdf diacritics.pdf \ - textalpha-doc.pdf textalpha-tu.pdf hyperref-with-greek.pdf \ - test-inputenc.pdf test-lgrenc.pdf test-tuenc-greek.pdf +pdf: alphabeta-doc.pdf alphabeta-doc-tu.pdf \ + textalpha-doc.pdf textalpha-doc-tu.pdf hyperref-with-greek.pdf \ + test-licr-input.pdf test-lgrenc.pdf test-tuenc-greek.pdf TEXTALPHA = textalpha.sty greek-fontenc.def lgrenc.def tuenc-greek.def puenc-greek.def ALPHABETA = $(TEXTALPHA) alphabeta.sty @@ -127,17 +127,14 @@ ALPHABETA = $(TEXTALPHA) alphabeta.sty alphabeta-doc.pdf: alphabeta-doc.tex $(ALPHABETA) $(RUBBER) alphabeta-doc.tex -alphabeta-tu.pdf: alphabeta-doc.tex $(ALPHABETA) - $(RUBBER) -m xelatex --jobname=alphabeta-tu alphabeta-doc.tex +alphabeta-doc-tu.pdf: alphabeta-doc.tex $(ALPHABETA) + $(RUBBER) -m xelatex --jobname=alphabeta-doc-tu alphabeta-doc.tex textalpha-doc.pdf: textalpha-doc.tex $(TEXTALPHA) $(RUBBER) textalpha-doc.tex -textalpha-tu.pdf: textalpha-doc.tex lgrenc.def $(TEXTALPHA) - $(RUBBER) -m xelatex --jobname=textalpha-tu textalpha-doc.tex - -diacritics.pdf: diacritics.tex lgrenc.def greek-fontenc.def - $(LATEX) diacritics.tex +textalpha-doc-tu.pdf: textalpha-doc.tex lgrenc.def $(TEXTALPHA) + $(RUBBER) -m xelatex --jobname=textalpha-doc-tu textalpha-doc.tex hyperref-with-greek.pdf: hyperref-with-greek.tex $(ALPHABETA) $(RUBBER) hyperref-with-greek.tex @@ -148,35 +145,35 @@ test-lgrenc.pdf: test-lgrenc.tex lgrenc.def greek-fontenc.def test-tuenc-greek.pdf: test-tuenc-greek.tex tuenc-greek.def greek-fontenc.def $(RUBBER) -m xelatex test-tuenc-greek.tex -test-inputenc.pdf: test-inputenc.tex $(TEXTALPHA) - $(RUBBER) test-inputenc.tex +test-licr-input.pdf: test-licr-input.tex $(TEXTALPHA) + $(RUBBER) test-licr-input.tex -test-inputenc-tu.pdf: test-inputenc.tex lgrenc.def $(TEXTALPHA) - $(RUBBER) -m lualatex --jobname=test-inputenc-tu test-inputenc.tex +test-licr-input-tu.pdf: test-licr-input.tex lgrenc.def $(TEXTALPHA) + $(RUBBER) -m lualatex --jobname=test-licr-input-tu test-licr-input.tex # Installation # ------------ -install: all +update: packages $(COPY) *.def $(DESTDIR) $(COPY) *.sty $(DESTDIR) -install-doc: doc - $(COPY) README $(DOCDIR) +update-package: packages doc + $(COPY) README.md $(DOCDIR) $(COPY) *.def $(DOCDIR) $(COPY) *.sty $(DOCDIR) + $(COPY) *.tex $(DOCDIR) $(COPY) *.lua $(DOCDIR) + $(COPY) *.rst $(DOCDIR) $(COPY) *.html $(DOCDIR) - $(COPY) *.tex $(DOCDIR) $(COPY) *.pdf $(DOCDIR) $(COPY) Makefile $(DOCDIR) # Cleanup # ------- - + .PHONY: clean clean: - rm -f *.aux *.log *.toc *.out *~ - + rm -f *~ *.aux *.log *.out *.rubbercache *.toc diff --git a/language/greek/greek-fontenc/README b/language/greek/greek-fontenc/README deleted file mode 100644 index 7262bc58df..0000000000 --- a/language/greek/greek-fontenc/README +++ /dev/null @@ -1,615 +0,0 @@ -greek-fontenc -############# -Greek font encoding definition files -************************************ - -:Author: Günter Milde -:Copyright: © 2010 -- 2022 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: `LaTeX internal character representation` (LICR) macros are a - verbose but failsafe 7-bit ASCII encoding that works unaltered - under both, 8-bit TeX and XeTeX/LuaTeX. Use cases are macro - definitions and generated text - - This bundle provides LICR macros for characters from the - Greek script and encoding definition files for - `Greek text font encodings`_ for use with fontenc_ (8-bit TeX) - or fontspec_ (XeTeX/LuaTeX). - - Included are also the LaTeX packages textalpha_ and alphabeta_. - -.. contents:: - -Changelog -========= - -.. class:: borderless - -====== =========== =========================================================== -0.9 2013-07-03 greek-fontenc.def_ "outsourced" from lgrxenc.def -.. experimental files xunicode-greek.sty and - greek-euenc.def: LICRs for XeTeX/LuaTeX. -0.9.1 2013-07-18 Bugfix: wrong breathings psilioxia -> dasiaoxia. -0.9.2 2013-07-19 Bugfix: Disable composite defs starting with char macro, -.. fix "hiatus" handling. -0.9.3 2013-07-24 Fix "input" path in xunicode-greek and greek-euenc.def. -0.9.4 2013-09-10 greek-fontenc.sty: Greek text font encoding setup package, -.. remove xunicode-greek.sty. -0.10 2013-09-13 textalpha.sty_ and alphabeta.sty_ moved here from lgrx and - updated to work with XeTeX/LuaTeX. -.. greek-fontenc.sty removed (obsoleted by textalpha.sty). -0.10.1 2013-10-01 Bugfix in greek-euenc.def and alphabeta-euenc.def. -0.11 2013-11-28 Compatibility with Xe/LuaTeX in 8-bit mode, -.. ``\greekscript`` TextCommand. -0.11.1 2013-12-01 Fix identification of ``greek-euenc.def``. -0.11.2 2014-09-04 Documentation update, remove duplicate code. -0.12 2014-12-25 Fix auxiliary macro names in `textalpha`. -.. Conservative naming: move definition of ``\<`` and ``\>`` - from ``greek-fontenc.def`` to ``textalpha.sty`` - (Bugreport David Kastrup). - Documentation update. -0.13 2015-09-04 Support for `symbol variants`_, -.. ``keep-semicolon`` option in textalpha_, -.. ``\lccode``/``\uccode`` corrections for Unicode - (from Apostolos Syropoulos’ xgreek_) in greek-euenc, -.. Do not convert ``\ypogegrammeni`` to ``\prosgegrammeni`` - with ``\MakeUppercase``. -0.13.1 2015-12-07 Fix `rho with dasia bug`__ in lgrenc.def (Linus Romer). -0.13.2 2016-02-05 Support for standard Unicode text font encoding "TU" - (new in fontspec v2.5a). -0.13.3 2019-07-10 Drop error font declaration (cf. `ltxbugs 4399`_). -0.13.4 2019-07-11 ``@uclclist`` entry for ``\prosgegrammeni``. -.. Documentation update. -0.14 2020-02-28 Update test for Unicode fonts. - Rename ``greek-euenc`` to ``tuenc-greek``. -.. Use ``\UTFencoding`` instead of ``\LastDeclaredEncoding``. -1.0 2020-09-25 Bugfix in textalpha_: Let ``\greekscript`` set - ``\encodingdefault``. -.. ``\textKoppa`` as alias for ``\textkoppa`` in LGR. -.. Update URLs. -2.0 2020-10-30 Move common alias definitions to ``greek-fontenc.def``. -.. `textalpha`_ loads TU with Xe/LuaTeX by default and - provides ``\textmicro`` and LICR macros for archaic - symbols from the Greek and Coptic Unicode block. -.. Use ``\UnicodeEncodingName`` (by the LaTeX kernel) instead - of ``\UTFencname`` for the Unicode font encoding name. -.. Replace utf8 literals in ``tuenc-greek.def``. -.. New file puenc-greek.def: setup for PU encoding - (defined by hyperref_ for PDF strings). -.. Don't use ``\textcompwordmark`` as base in accent commands. -.. Documentation update. -2.1 2022-06-14 Support the correct spelling ``\guillemet…`` for « and ». - See https://github.com/latex3/latex2e/issues/65 -====== =========== =========================================================== - -__ http://tex.stackexchange.com/questions/281631/greek-small-rho-with-dasia-and-also-psili-problem-with-accent-and-lgr-encodin -.. _ltxbugs 4399: - https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex%2F4399&search= - - -TeX files -========= - -``_ - `LGR Greek font encoding definitions `_. - - This file is the successor of the basic LGR encoding definition file which - comes with babel_'s Greek support and the now obsolete lgrx_ bundle. - - .. _tuenc-greek: - -``_ - `Font setup for Greek with XeTeX/LuaTeX `_. - -``_ - `Greek LICR definitions for PDF strings `_. - -``_ - `Common Greek font encoding definitions `_. - - .. _LGR font encoding definition file: - -``_ - Backwards compatibility file loading tuenc-greek_. - - .. _textalpha: - -``_ - `Greek symbols in text `_ - - Use ``\textalpha`` ... ``\textOmega`` independent of font encoding and TeX - engine. - - .. _alphabeta: - -``_ - `Greek symbols in text and math `_. - - Use ``\alpha`` ... ``\Omega`` independent of text/math mode, font - encoding, and TeX engine. - - - ``_ - `Composite definitions for 8-bit TeX. `_. - - ``_ - `Composite definitions with XeTeX/LuaTeX. `_. - - -Literate source files were converted with PyLit_ to reStructuredText_ and -with Docutils_ to the HTML documentation. - - -Documentation and test documents -================================ - -Overview: - ``__, ``_ - -textalpha_ package documentation: - ``__, ``_, ``_ - -alphabeta_ package documentation: - ``__, ``_, ``_ - -LGR test and usage example - ``_, ``_ - -TU test and usage example - ``_, ``_ - -Hyperref_ test and usage example - ``_, ``_ - -Test with input encodings other than utf-8 - ``_, ``_ - -Greek diacritics with standard accent macros - ``_, ``_ - - -Experimental files -================== - -These files are still in development and will eventually be moved to/merged -with other packages or removed in future versions: - -``_ - `LGR Transcription to Greek LICR transformation `_ - - - -Installation -============ - -If possible, get the bundle from your distribution using its installation -manager. - -Otherwise, make sure LaTeX can find the package and definition files: - -* Download and unpack greek-fontenc.zip_. - -* Copy/Move/Link files ending in ``.def`` or ``.sty`` to a suitable place in - the “TeX Directory Structure” (TDS_) and run ``texhash``, or place them in - the current working directory (e.g. for testing). - -Conflicts -========= - -The arabi_ package provides the Babel ``arabic`` option which loads -``arabicfnt.sty`` for font setup. This package overwrites the LICR macros -``\omega`` and ``\textomega`` with font selecting commands. See the report -for Debian `bug 858987`_ for details and the `arabi workaround`_ below. - -.. _bug 858987: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858987 - -Usage -===== - -There are several alternatives to set up the support for a Greek font -encoding provided by this bundle, e.g.: - -Babel: - Use the ``greek`` option with Babel_:: - - \usepackage[greek]{babel} - - This automatically loads ``lgrenc.def`` with 8-bit TeX and - ``tuenc-greek.def`` with XeTeX/LuaTeX and provides localized auto-strings, - hyphenation and other localizations (see babel-greek_). - - Babel can be used together with textalpha_ or alphabeta_. - -textalpha_: - Ensure support for Greek characters in text mode:: - - \usepackage{textalpha} - - eventually with the normalize-symbols_ option to handle `symbol variants`_ - and/or the keep-semicolon_ option to use the `semicolon as erotimatiko`_ - also in LGR :: - - \usepackage[normalize-symbols,keep-semicolon]{textalpha} - - This sets up LICR macros for Greek text charactes under both, 8-bit TeX - and Xe-/LuaTeX. - For details see ``_ and ``_ (8-bit - TeX) as well as ``_ and ``_ - (XeTeX/LuaTeX). - - .. _normalize-symbols: textalpha.sty.html#normalize-symbols - .. _keep-semicolon: textalpha.sty.html#keep-semicolon - .. _semicolon as erotimatiko: textalpha.sty.html#semicolon-as-erotimatiko - -alphabeta_: - To use the short macro names (``\alpha`` ... ``\Omega``) known from math - mode in both, text and math mode, write :: - - \usepackage{alphabeta} - - For details see ``_ and ``_. - -fontenc: - Declare LGR via fontenc_. For example, specify T1 (8-bit - Latin) as default font encoding and LGR for Greek with :: - - \usepackage[LGR,T1]{fontenc} - - Note that without textalpha_ or alphabeta_, Greek text macros work - only if the current font encoding supports Greek. See [fntguide]_ for - details and ``_ for an example. - - It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding - also with XeTeX/LuaTeX, if the fontenc_ package is loaded before - Babel, textalpha_, or alphabeta_, e.g. :: - - \usepackage[LGR]{fontenc} - \usepackage{fontspec} - \setmainfont{Linux Libertine O} % Latin Modern does not support Greek - \setsansfont{Linux Biolinum O} - \usepackage{textalpha} - - See ``_, ``_ and - ``_, ``_. - -.. _arabi workaround: - -To work around the conflict with arabi_, it may suffice to ensure ``greek`` -is loaded after ``arabic``:: - - \usepackage[arabic,greek,english]{babel} - -More secure is an explicit reverse-definition, e.g. :: - - % save original \omega - \let\mathomega\omega - - \usepackage[utf8]{inputenc} - \usepackage[LAE,LGR,T1]{fontenc} - \usepackage[arabic,greek,english]{babel} - - % fix arabtex: - \DeclareTextSymbol{\textomega}{LGR}{119} - \renewcommand{\omega}{\mathomega} - - -Greek text font encodings -========================= - -Greek TeX font encodings are the envisaged T7_, LGR_, and LGI_. -Greek letters and symbols are also defined in the Unicode-based font -encodings TU_, and PU_. - -T7 --- - -The [encguide]_ reserves the name T7 for a Greek `standard font encoding`. -However, up to now, there is no agreement on an implementation because the -restrictions for general text encodings are too severe for typesetting -polytonic Greek. - -LGR ---- - -The LGR font encoding is the de-facto standard for typesetting Greek with -(8-bit) LaTeX. `greek-fontenc` provides a comprehensive `LGR font -encoding definition file`_. - -Fonts in this encoding include the `CB fonts`_ (matching CM), grtimes_ -(Greek Times), Kerkis_ (matching URW Bookman), DejaVu_, `Libertine GC`_, and -the `GFS fonts`_. Setup of these fonts as Greek variant to -matching Latin fonts is facilitated by the substitutefont_ package. - - -The LGR font encoding allows to access Greek characters via an ASCII -transliteration. This enables simple input with a Latin keyboard. -Characters with diacritics can be selected by ligature definitions in the -font (see [greek-usage]_, [teubner-doc]_, [cbfonts]_). - -A major drawback of the transliteration is, that you cannot access Latin -letters if LGR is the active font encoding (e.g. in documents or parts of -documents given the `Babel` language ``greek`` or ``polutionikogreek``). -This means that for every Latin-written word or acronym an explicit -language-switch is required. This problem can only be solved via a -font-encoding comprising Latin and Greek like the envisaged T7_ or -Unicode (with XeTeX or LuaTeX). - -LGI ---- - -The ‘Ibycus’ fonts from the package ibygrk_ implement an alternative -transliteration scheme (also explained in [babel-patch]_). -It is currently not supported by `greek-fontenc`. - -The font encoding file ``lgienc.def`` from ibycus-babel_ provides a basic -setup (without any LICR macros or composite definitions). - -TU --- - -Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec_ -(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [LaTeX2e News Issue 26]_. -`greek-fontenc` adds support for the Greek script (see tuenc-greek_). - -Xe/LuaTeX works with any system-wide installed `OpenType font`_. Suitable -fonts supporting Greek include `CM Unicode`_, `Deja Vu`_, `EB Garamond`_, -the `GFS fonts`_, `Libertine OTF`_, `Libertinus`_, `Old Standard`_, -Tempora_, and `UM Typewriter`_ (all available on CTAN) but also many commercial -fonts. Unfortunately, the fontspec_ default, `Latin Modern`_ misses most -Greek characters. - -XeTeX uses the Unicode NFC normalization, so that combining characters -are merged with the base character if a pre-composed character exists. This -results in better looking output for characters with multiple diacritics. -Unfortunately, LuaTeX does not apply the NFC normalization. This leads to -suboptimal placing of some diactritics, especially the sub-iota (becoming -unintelligable in combination with small letter eta). - -TODO: The `lua-uni-algos`_ package may be helpfull to implement a NTC -normalization to Greek text in LuaTeX. - -The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX -respectively were superseded by TU in the 2017 fontspec_ release. - -PU --- - -The package hyperref_ defines the PU font encoding for use in PDF strings -(ToC, bookmarks) which supports monotonic Greek. `greek-fontenc` adds -support for polytonic Greek and some archaic characters also supported in -LGR and TU (see ``_, ``_). - - -Selecting Greek LICR macro names -================================ - -.. note:: The LICR macro names for Greek symbols are chosen pending - endorsement by the TeX community and related packages. - - Names for archaic characters, accents/diacritics, and - punctuation may change in future versions. - -This bundle provides LaTeX internal character representations (LICR macros) -for Greek letters and diacritics. Macro names were selected based on the -following considerations: - -letters and symbols -------------------- - -* 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``. - - Problem: - 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. However, these are not intended for active use. - -* If there exists a **math-mode macro** for a symbol, the corresponding text - macro could be formed 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 is - made available as ``\textvarsigma``. - - Problem: - The math macros for the `symbol variants`_ ``\varepsilon`` and - ``\varphi`` map to characters named "GREEK SMALL *LETTER* ...", while - ``\vartheta``, ``\varkappa``, ``\varrho``, and ``\varpi`` map to "GREEK - ... *SYMBOL*" Unicode characters. (See also section 5.5.3 of the - unicode-math_ documentation.) - -* 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 LICR macros, they can be either - - i. used as inspiration for new LICR macro names or - ii. converted to LICR macro names via a defined set of transformation rules. - - Example: - ``\textfinalsigma`` is a descriptive alias 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", - + ``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``). - + There are examples of encoding-specific macros - without the ``text``-prefix, especially for letters, see encguide_. - - Contra: - - Less consistent, - - possible name clashes - - ``text`` prefix marks a macro as confined to text (as opposed to math) - mode, - - The font encoding definition files use the ``text`` prefix for symbols. - Aliases (short forms, compatibility defs, etc.) are defined in - additional packages (e.g. alphabeta.sty_, `babel-greek`_, or teubner_) - - -accent macros -------------- - -* standard accent macros (``\DeclareTextAccent`` definitions in - ``latex/base/...``) are one-symbol macros (``\' \" ... \u \v ...``) . - -* ``tipa.sty``, xunicode_, and ucs_ use the "text" prefix also for accents. - - However, the `Adobe Glyph List For New Fonts`_ maps, e.g., "tonos" and - "dieresistonos" to the spacing characters GREEK TONOS and GREEK DIALYTIKA - TONOS, hence `\texttonos` and `\textdiaresistonos` should be spacing - characters. - -* textcomp (ts1enc.def) defines ``\capital...`` accents (i.e. without - ``text`` prefix). - -Currently, `greek-fontenc` uses for diacritics: - -- Greek names like in Unicode, and ``ucsencs.def``, and - -- 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. (The non-standard macros ``\<`` and ``\>`` only with -textalpha_ or alphabeta_.) - - -symbol variants ---------------- - -See also http://en.wikipedia.org/wiki/Greek_alphabet#Glyph_variants - -Mathematical notation distinguishes variant shapes for beta (β|ϐ), theta -(θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), and epsilon -(ε|ϵ). The variations have no syntactic meaning in Greek text and Greek -text fonts use the shape variants indiscriminately. - -Unicode defines separate code points for the symbol variants for use in -mathematical context. However, they are sometimes also used in place of the -corresponding letter characters in Unicode-encoded text. - -The variant shapes are not given separate code-points in the LGR_ font -encoding. - -In mathematical mode, TeX supports the distinction between θ|ϑ, π|ϖ, φ|ϕ, -ρ|ϱ, and ε|ϵ with ``\var`` macros. However, the mapping of -letter/symbol in Unicode to "normal"/variant in TeX is inconsistent -and variant macros for ϴ ϐ, and ϰ are not available without additional -packages (e.g. amssymb_ provides ϰ as ``\varkappa``). - -`greek-fontenc` provides ``\textsymbol`` LICR macros for these -characters: - -* With Unicode fonts, the macros select the GREEK - SYMBOL``. - -* With LGR encoded fonts, they report an error by default and are mapped to - the corresponding letter with the ``normalize-symbols`` option of - textalpha_ and alphabeta_ (loosing the distinction between the shape - variants). - - -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. - -.. [fntguide] LaTeX3 Project Team, `LaTeX2ε font selection`, 2005. - http://mirror.ctan.org/macros/latex/base/fntguide.pdf -.. [encguide] Frank Mittelbach, Robin Fairbairns, Werner Lemberg, - LaTeX3 Project Team, `LaTeX font encodings`, 2006. - http://mirror.ctan.org/macros/latex/base/encguide.pdf -.. [greek-usage] Apostolos Syropoulos, `Writing Greek with the greek option - of the babel package`, 1997. - http://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf -.. [cbfonts] Claudio Beccari, `The CB Greek fonts`, Εὔτυπον, τεῦχος № 21, 2008. - http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf -.. [teubner-doc] Claudio Beccari, ``teubner.sty`` - `An extension to the greek option of the babel package`, 2011. - http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf -.. [LaTeX2e News Issue 26] - https://www.latex-project.org/news/latex2e-news/ltnews26.pdf -.. [babel-patch] Werner Lemberg, `Unicode support for the Greek LGR - encoding` Εὔτυπον, τεῦχος № 20, 2008. - http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf - -.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt -.. _PyLit: http://pypi.python.org/pypi/pylit -.. _reStructuredText: http://docutils.sourceforge.net/rst.html -.. _Docutils: http://docutils.sourceforge.net/rst.html -.. _TDS: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds - -.. _Adobe Glyph List For New Fonts: - http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/aglfn.txt -.. _Adobe Glyph List: - http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt -.. _Unicode names list: http://www.unicode.org/Public/UNIDATA/NamesList.txt -.. _XML Entity Definitions for Characters: - http://www.w3.org/TR/xml-entity-names/ -.. _CB fonts: http://www.ctan.org/pkg/cbgreek-complete -.. _CM Unicode: https://www.ctan.org/pkg/cm-unicode -.. _Deja Vu: http://dejavu-fonts.org -.. _EB Garamond: https://ctan.org/pkg/ebgaramond -.. _GFS fonts: http://www.ctan.org/pkg/gfs -.. _Kerkis: http://www.ctan.org/pkg/kerkis -.. _Latin Modern: http://www.gust.org.pl/projects/e-foundry/latin-modern -.. _Libertine OTF: http://www.ctan.org/pkg/libertineotf -.. _Libertine GC: https://www.ctan.org/pkg/libertinegc -.. _Libertinus: https://ctan.org/pkg/libertinus -.. _Old Standard: https://ctan.org/pkg/oldstandard -.. _OpenType Font: https://ctan.org/topic/font-otf -.. _UM Typewriter: https://www.ctan.org/pkg/umtypewriter -.. _amssymb: http://www.ctan.org/pkg/amsfonts -.. _arabi: https://www.ctan.org/pkg/arabi -.. _babel-greek: http://www.ctan.org/pkg/babel-greek -.. _babel: http://www.ctan.org/pkg/babel -.. _dejavu: https://www.ctan.org/pkg/dejavu -.. _fontenc: http://www.ctan.org/pkg/fontenc -.. _fontspec: http://www.ctan.org/pkg/fontspec -.. _greek-fontenc.zip: http://mirrors.ctan.org/language/greek/greek-fontenc.zip -.. _grtimes: http://www.ctan.org/pkg/grtimes -.. _hyperref: http://www.ctan.org/pkg/hyperref -.. _ibycus-babel: http://www.ctan.org/pkg/ibycus-babel -.. _ibygrk: http://www.ctan.org/pkg/ibygrk -.. _lgrx: http://www.ctan.org/pkg/lgrx -.. _libertine: http://www.ctan.org/pkg/libertine-legacy -.. _lua-uni-algos: https://ctan.org/pkg/lua-uni-algos -.. _substitutefont: http://www.ctan.org/pkg/substitutefont -.. _tempora: https://www.ctan.org/pkg/tempora -.. _teubner: http://www.ctan.org/pkg/teubner -.. _ucs: http://www.ctan.org/pkg/unicode -.. _unicode-math: http://www.ctan.org/pkg/unicode-math -.. _xgreek: http://www.ctan.org/pkg/xgreek -.. _xunicode: http://www.ctan.org/pkg/xunicode diff --git a/language/greek/greek-fontenc/README.html b/language/greek/greek-fontenc/README.html deleted file mode 100644 index 4e88034a88..0000000000 --- a/language/greek/greek-fontenc/README.html +++ /dev/null @@ -1,1409 +0,0 @@ - - - - - -greek-fontenc - - - - - - - - -
-

greek-fontenc

-

Greek font encoding definition files

-
-
Author
-

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

-

LaTeX internal character representation (LICR) macros are a -verbose but failsafe 7-bit ASCII encoding that works unaltered -under both, 8-bit TeX and XeTeX/LuaTeX. Use cases are macro -definitions and generated text

-

This bundle provides LICR macros for characters from the -Greek script and encoding definition files for -Greek text font encodings for use with fontenc (8-bit TeX) -or fontspec (XeTeX/LuaTeX).

-

Included are also the LaTeX packages textalpha and alphabeta.

-
- -
-

Changelog

- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0.9

2013-07-03

greek-fontenc.def “outsourced” from lgrxenc.def

-

experimental files xunicode-greek.sty and -greek-euenc.def: LICRs for XeTeX/LuaTeX.

0.9.1

2013-07-18

Bugfix: wrong breathings psilioxia -> dasiaoxia.

0.9.2

2013-07-19

Bugfix: Disable composite defs starting with char macro,

-

fix “hiatus” handling.

0.9.3

2013-07-24

Fix “input” path in xunicode-greek and greek-euenc.def.

0.9.4

2013-09-10

greek-fontenc.sty: Greek text font encoding setup package,

-

remove xunicode-greek.sty.

0.10

2013-09-13

textalpha.sty and alphabeta.sty moved here from lgrx and -updated to work with XeTeX/LuaTeX.

-

greek-fontenc.sty removed (obsoleted by textalpha.sty).

0.10.1

2013-10-01

Bugfix in greek-euenc.def and alphabeta-euenc.def.

0.11

2013-11-28

Compatibility with Xe/LuaTeX in 8-bit mode,

-

\greekscript TextCommand.

0.11.1

2013-12-01

Fix identification of greek-euenc.def.

0.11.2

2014-09-04

Documentation update, remove duplicate code.

0.12

2014-12-25

Fix auxiliary macro names in textalpha.

-

Conservative naming: move definition of \< and \> -from greek-fontenc.def to textalpha.sty -(Bugreport David Kastrup). -Documentation update.

0.13

2015-09-04

Support for symbol variants,

-

keep-semicolon option in textalpha,

-

\lccode/\uccode corrections for Unicode -(from Apostolos Syropoulos’ xgreek) in greek-euenc,

-

Do not convert \ypogegrammeni to \prosgegrammeni -with \MakeUppercase.

0.13.1

2015-12-07

Fix rho with dasia bug in lgrenc.def (Linus Romer).

0.13.2

2016-02-05

Support for standard Unicode text font encoding “TU” -(new in fontspec v2.5a).

0.13.3

2019-07-10

Drop error font declaration (cf. ltxbugs 4399).

0.13.4

2019-07-11

@uclclist entry for \prosgegrammeni.

-

Documentation update.

0.14

2020-02-28

Update test for Unicode fonts. -Rename greek-euenc to tuenc-greek.

-

Use \UTFencoding instead of \LastDeclaredEncoding.

1.0

2020-09-25

Bugfix in textalpha: Let \greekscript set -\encodingdefault.

-

\textKoppa as alias for \textkoppa in LGR.

-

Update URLs.

2.0

2020-10-30

Move common alias definitions to greek-fontenc.def.

-

textalpha loads TU with Xe/LuaTeX by default and -provides \textmicro and LICR macros for archaic -symbols from the Greek and Coptic Unicode block.

-

Use \UnicodeEncodingName (by the LaTeX kernel) instead -of \UTFencname for the Unicode font encoding name.

-

Replace utf8 literals in tuenc-greek.def.

-

New file puenc-greek.def: setup for PU encoding -(defined by hyperref for PDF strings).

-

Don’t use \textcompwordmark as base in accent commands.

-

Documentation update.

-
-
-

TeX files

-
-
lgrenc.def
-

LGR Greek font encoding definitions.

-

This file is the successor of the basic LGR encoding definition file which -comes with babel’s Greek support and the now obsolete lgrx bundle.

-
-
tuenc-greek.def
-

Font setup for Greek with XeTeX/LuaTeX.

-
-
puenc-greek.def
-

Greek LICR definitions for PDF strings.

-
-
greek-fontenc.def
-

Common Greek font encoding definitions.

-
-
greek-euenc.def
-

Backwards compatibility file loading tuenc-greek.

-
-
textalpha.sty
-

Greek symbols in text

-

Use \textalpha\textOmega independent of font encoding and TeX -engine.

-
-
alphabeta.sty
-

Greek symbols in text and math.

-

Use \alpha\Omega independent of text/math mode, font -encoding, and TeX engine.

-
-
alphabeta-lgr.def
-

Composite definitions for 8-bit TeX..

-
-
alphabeta-tuenc.def
-

Composite definitions with XeTeX/LuaTeX..

-
-
-
-
-

Literate source files were converted with PyLit to reStructuredText and -with Docutils to the HTML documentation.

-
-
-

Documentation and test documents

-
-
Overview:
-

README, greek-fontenc.html

-
-
textalpha package documentation:
-

textalpha-doc.tex, textalpha-doc.pdf, textalpha-tu.pdf

-
-
alphabeta package documentation:
-

alphabeta-doc.tex, alphabeta-doc.pdf, alphabeta-tu.pdf

-
-
LGR test and usage example
-

test-lgrenc.tex, test-lgrenc.pdf

-
-
TU test and usage example
-

test-tuenc-greek.tex, test-tuenc-greek.pdf

-
-
Hyperref test and usage example
-

hyperref-with-greek.tex, hyperref-with-greek.pdf

-
-
Test with input encodings other than utf-8
-

test-inputenc.tex, test-inputenc.pdf

-
-
Greek diacritics with standard accent macros
-

diacritics.tex, diacritics.pdf

-
-
-
-
-

Experimental files

-

These files are still in development and will eventually be moved to/merged -with other packages or removed in future versions:

-
-
lgr2licr.lua
-

LGR Transcription to Greek LICR transformation

-
-
-
-
-

Installation

-

If possible, get the bundle from your distribution using its installation -manager.

-

Otherwise, make sure LaTeX can find the package and definition files:

-
    -
  • Download and unpack greek-fontenc.zip.

  • -
  • Copy/Move/Link files ending in .def or .sty to a suitable place in -the “TeX Directory Structure” (TDS) and run texhash, or place them in -the current working directory (e.g. for testing).

  • -
-
-
-

Conflicts

-

The arabi package provides the Babel arabic option which loads -arabicfnt.sty for font setup. This package overwrites the LICR macros -\omega and \textomega with font selecting commands. See the report -for Debian bug 858987 for details and the arabi workaround below.

-
-
-

Usage

-

There are several alternatives to set up the support for a Greek font -encoding provided by this bundle, e.g.:

-
-
Babel:
-

Use the greek option with Babel:

-
\usepackage[greek]{babel}
-

This automatically loads lgrenc.def with 8-bit TeX and -tuenc-greek.def with XeTeX/LuaTeX and provides localized auto-strings, -hyphenation and other localizations (see babel-greek).

-

Babel can be used together with textalpha or alphabeta.

-
-
textalpha:
-

Ensure support for Greek characters in text mode:

-
\usepackage{textalpha}
-

eventually with the normalize-symbols option to handle symbol variants -and/or the keep-semicolon option to use the semicolon as erotimatiko -also in LGR

-
\usepackage[normalize-symbols,keep-semicolon]{textalpha}
-

This sets up LICR macros for Greek text charactes under both, 8-bit TeX -and Xe-/LuaTeX. -For details see textalpha-doc.tex and textalpha-doc.pdf (8-bit -TeX) as well as test-tuenc-greek.tex and test-tuenc-greek.pdf -(XeTeX/LuaTeX).

-
-
alphabeta:
-

To use the short macro names (\alpha\Omega) known from math -mode in both, text and math mode, write

-
\usepackage{alphabeta}
-

For details see alphabeta-doc.tex and alphabeta-doc.pdf.

-
-
fontenc:
-

Declare LGR via fontenc. For example, specify T1 (8-bit -Latin) as default font encoding and LGR for Greek with

-
\usepackage[LGR,T1]{fontenc}
-

Note that without textalpha or alphabeta, Greek text macros work -only if the current font encoding supports Greek. See [fntguide] for -details and test-lgrenc.tex for an example.

-

It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding -also with XeTeX/LuaTeX, if the fontenc package is loaded before -Babel, textalpha, or alphabeta, e.g.

-
\usepackage[LGR]{fontenc}
-\usepackage{fontspec}
-\setmainfont{Linux Libertine O} % Latin Modern does not support Greek
-\setsansfont{Linux Biolinum O}
-\usepackage{textalpha}
-

See test-tuenc-greek.tex, test-tuenc-greek.pdf and -test-lgrenc.tex, test-lgrenc.pdf.

-
-
-

To work around the conflict with arabi, it may suffice to ensure greek -is loaded after arabic:

-
\usepackage[arabic,greek,english]{babel}
-

More secure is an explicit reverse-definition, e.g.

-
% save original \omega
-\let\mathomega\omega
-
-\usepackage[utf8]{inputenc}
-\usepackage[LAE,LGR,T1]{fontenc}
-\usepackage[arabic,greek,english]{babel}
-
-% fix arabtex:
-\DeclareTextSymbol{\textomega}{LGR}{119}
-\renewcommand{\omega}{\mathomega}
-
-
-

Greek text font encodings

-

Greek TeX font encodings are the envisaged T7, LGR, and LGI. -Greek letters and symbols are also defined in the Unicode-based font -encodings TU, and PU.

-
-

T7

-

The [encguide] reserves the name T7 for a Greek standard font encoding. -However, up to now, there is no agreement on an implementation because the -restrictions for general text encodings are too severe for typesetting -polytonic Greek.

-
-
-

LGR

-

The LGR font encoding is the de-facto standard for typesetting Greek with -(8-bit) LaTeX. greek-fontenc provides a comprehensive LGR font -encoding definition file.

-

Fonts in this encoding include the CB fonts (matching CM), grtimes -(Greek Times), Kerkis (matching URW Bookman), DejaVu, Libertine GC, and -the GFS fonts. Setup of these fonts as Greek variant to -matching Latin fonts is facilitated by the substitutefont package.

-

The LGR font encoding allows to access Greek characters via an ASCII -transliteration. This enables simple input with a Latin keyboard. -Characters with diacritics can be selected by ligature definitions in the -font (see [greek-usage], [teubner-doc], [cbfonts]).

-

A major drawback of the transliteration is, that you cannot access Latin -letters if LGR is the active font encoding (e.g. in documents or parts of -documents given the Babel language greek or polutionikogreek). -This means that for every Latin-written word or acronym an explicit -language-switch is required. This problem can only be solved via a -font-encoding comprising Latin and Greek like the envisaged T7 or -Unicode (with XeTeX or LuaTeX).

-
-
-

LGI

-

The ‘Ibycus’ fonts from the package ibygrk implement an alternative -transliteration scheme (also explained in [babel-patch]). -It is currently not supported by greek-fontenc.

-

The font encoding file lgienc.def from ibycus-babel provides a basic -setup (without any LICR macros or composite definitions).

-
-
-

TU

-

Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec -(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [LaTeX2e News Issue 26]_. -greek-fontenc adds support for the Greek script (see tuenc-greek).

-

Xe/LuaTeX works with any system-wide installed OpenType font. Suitable -fonts supporting Greek include CM Unicode, Deja Vu, EB Garamond, -the GFS fonts, Libertine OTF, Libertinus, Old Standard, -Tempora, and UM Typewriter (all available on CTAN) but also many commercial -fonts. Unfortunately, the fontspec default, Latin Modern misses most -Greek characters.

-

XeTeX uses the Unicode NFC normalization, so that combining characters -are merged with the base character if a pre-composed character exists. This -results in better looking output for characters with multiple diacritics. -Unfortunately, LuaTeX does not apply the NFC normalization. This leads to -suboptimal placing of some diactritics, especially the sub-iota (becoming -unintelligable in combination with small letter eta).

-

TODO: The lua-uni-algos package may be helpfull to implement a NTC -normalization to Greek text in LuaTeX.

-

The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX -respectively were superseded by TU in the 2017 fontspec release.

-
-
-

PU

-

The package hyperref defines the PU font encoding for use in PDF strings -(ToC, bookmarks) which supports monotonic Greek. greek-fontenc adds -support for polytonic Greek and some archaic characters also supported in -LGR and TU (see hyperref-with-greek.tex, hyperref-with-greek.pdf).

-
-
-
-

Selecting Greek LICR macro names

-
-

Note

-

The LICR macro names for Greek symbols are chosen pending -endorsement by the TeX community and related packages.

-

Names for archaic characters, accents/diacritics, and -punctuation may change in future versions.

-
-

This bundle provides LaTeX internal character representations (LICR macros) -for Greek letters and diacritics. Macro names were selected based on the -following considerations:

-
-

letters and symbols

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

    -
    -
    -
    Problem:
    -

    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. However, these are not intended for active use.

    -
    -
    -
  • -
  • If there exists a math-mode macro for a symbol, the corresponding text -macro could be formed 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 is -made available as \textvarsigma.

    -
    -
    Problem:
    -

    The math macros for the symbol variants \varepsilon and -\varphi map to characters named “GREEK SMALL LETTER …”, while -\vartheta, \varkappa, \varrho, and \varpi map to “GREEK -… SYMBOL” Unicode characters. (See also section 5.5.3 of the -unicode-math documentation.)

    -
    -
    -
  • -
  • 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 LICR macros, they can be either

    -
      -
    1. used as inspiration for new LICR macro names or

    2. -
    3. converted to LICR macro names via a defined set of transformation rules.

    4. -
    -
    -
    Example:
    -

    \textfinalsigma is a descriptive alias 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”,

    • -
    • 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).

    • -
    • There are examples of encoding-specific macros -without the text-prefix, especially for letters, see encguide.

    • -
    -
    -
    Contra:
    -
      -
    • Less consistent,

    • -
    • possible name clashes

    • -
    • text prefix marks a macro as confined to text (as opposed to math) -mode,

    • -
    -
    -
    -

    The font encoding definition files use the text prefix for symbols. -Aliases (short forms, compatibility defs, etc.) are defined in -additional packages (e.g. alphabeta.sty, babel-greek, or teubner)

    -
  • -
-
-
-

accent macros

-
    -
  • standard accent macros (\DeclareTextAccent definitions in -latex/base/...) are one-symbol macros (\' \" ... \u \v ...) .

  • -
  • tipa.sty, xunicode, and ucs use the “text” prefix also for accents.

    -

    However, the Adobe Glyph List For New Fonts maps, e.g., “tonos” and -“dieresistonos” to the spacing characters GREEK TONOS and GREEK DIALYTIKA -TONOS, hence texttonos and textdiaresistonos should be spacing -characters.

    -
  • -
  • textcomp (ts1enc.def) defines \capital... accents (i.e. without -text prefix).

  • -
-

Currently, greek-fontenc uses for diacritics:

-
    -
  • Greek names like in Unicode, and ucsencs.def, and

  • -
  • 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. (The non-standard macros \< and \> only with -textalpha or alphabeta.)

-
-
-

symbol variants

-

See also http://en.wikipedia.org/wiki/Greek_alphabet#Glyph_variants

-

Mathematical notation distinguishes variant shapes for beta (β|ϐ), theta -(θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), and epsilon -(ε|ϵ). The variations have no syntactic meaning in Greek text and Greek -text fonts use the shape variants indiscriminately.

-

Unicode defines separate code points for the symbol variants for use in -mathematical context. However, they are sometimes also used in place of the -corresponding letter characters in Unicode-encoded text.

-

The variant shapes are not given separate code-points in the LGR font -encoding.

-

In mathematical mode, TeX supports the distinction between θ|ϑ, π|ϖ, φ|ϕ, -ρ|ϱ, and ε|ϵ with \var<lettername> macros. However, the mapping of -letter/symbol in Unicode to “normal”/variant in TeX is inconsistent -and variant macros for ϴ ϐ, and ϰ are not available without additional -packages (e.g. amssymb provides ϰ as \varkappa).

-

greek-fontenc provides \text<lettername>symbol LICR macros for these -characters:

-
    -
  • With Unicode fonts, the macros select the GREEK -<lettername> SYMBOL``.

  • -
  • With LGR encoded fonts, they report an error by default and are mapped to -the corresponding letter with the normalize-symbols option of -textalpha and alphabeta (loosing the distinction between the shape -variants).

  • -
-
-
-
-

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.

-
-
fntguide
-

LaTeX3 Project Team, LaTeX2ε font selection, 2005. -http://mirror.ctan.org/macros/latex/base/fntguide.pdf

-
-
encguide
-

Frank Mittelbach, Robin Fairbairns, Werner Lemberg, -LaTeX3 Project Team, LaTeX font encodings, 2006. -http://mirror.ctan.org/macros/latex/base/encguide.pdf

-
-
greek-usage
-

Apostolos Syropoulos, Writing Greek with the greek option -of the babel package, 1997. -http://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf

-
-
cbfonts
-

Claudio Beccari, The CB Greek fonts, Εὔτυπον, τεῦχος № 21, 2008. -http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf

-
-
teubner-doc
-

Claudio Beccari, teubner.sty -An extension to the greek option of the babel package, 2011. -http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf

-
-
- -
-
babel-patch
-

Werner Lemberg, Unicode support for the Greek LGR -encoding Εὔτυπον, τεῦχος № 20, 2008. -http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf

-
-
- -
-
- - diff --git a/language/greek/greek-fontenc/README.md b/language/greek/greek-fontenc/README.md new file mode 100644 index 0000000000..8a6da67416 --- /dev/null +++ b/language/greek/greek-fontenc/README.md @@ -0,0 +1,44 @@ +greek-fontenc +============= +Greek font encoding definition files +------------------------------------ + +Font encoding definition files with *LaTeX internal character +representation* (LICR) macros for letters and symbols from the Greek +script. + +The included LaTeX packages [textalpha] and [alphabeta] facilitate the use +of Greek symbols in text. + +**Version**: 2.2 ([changelog]) + +**Copyright**: © 2010 - 2023 Günter Milde + +**License**: + This work may be distributed and/or modified under the conditions of the + [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), + either version 1.3 of this license or any later version. + +**Home**: + +**Latest Release**: + +**Requires**: text fonts supporting the Greek script + +**Recommends**: [greek-inputenc] (when used with 8-bit TeX/pdfTeX) + +**Required by**: [babel-greek], [greek-inputenc] + + +See [greek-fontenc-doc.html] ([greek-fontenc-doc.rst]) for a detailed +overview. + + +[Babel]: https://ctan.org/pkg/babel +[babel-greek]: https://ctan.org/pkg/babel-greek +[greek-inputenc]: https://ctan.org/pkg/greek-inputenc +[textalpha]: greek-fontenc-doc.html#textalpha +[alphabeta]: greek-fontenc-doc.html#alphabeta +[greek-fontenc-doc.html]: greek-fontenc-doc.html +[greek-fontenc-doc.rst]: greek-fontenc-doc.rst +[changelog]: greek-fontenc-doc.html#changelog diff --git a/language/greek/greek-fontenc/alphabeta-doc-tu.pdf b/language/greek/greek-fontenc/alphabeta-doc-tu.pdf new file mode 100644 index 0000000000..23d5dcfcb0 Binary files /dev/null and b/language/greek/greek-fontenc/alphabeta-doc-tu.pdf differ diff --git a/language/greek/greek-fontenc/alphabeta-doc.pdf b/language/greek/greek-fontenc/alphabeta-doc.pdf index b9f9dade15..4b8d9aeefb 100644 Binary files a/language/greek/greek-fontenc/alphabeta-doc.pdf and b/language/greek/greek-fontenc/alphabeta-doc.pdf differ diff --git a/language/greek/greek-fontenc/alphabeta-doc.tex b/language/greek/greek-fontenc/alphabeta-doc.tex index 618713a127..c149f517ba 100644 --- a/language/greek/greek-fontenc/alphabeta-doc.tex +++ b/language/greek/greek-fontenc/alphabeta-doc.tex @@ -66,6 +66,14 @@ % varbeta and varTheta only defined with unicode-math \providecommand*{\varbeta}{\missing} +% Semantic styling: + +\newcommand{\file}{\texttt} +\newcommand{\cs}[1]{\texttt{\textbackslash#1}} +\newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}} + +% Auxiliary macros + % print current font encoding: \makeatletter \newcommand{\currentEncoding}{\f@encoding} @@ -84,12 +92,11 @@ mathematical mode also available in text mode. This way, you can input Greek letters ``by name'' everywhere in the document. The mode determines whether the characters are taken from the text or math font. -With 8-bit TeX and -\emph{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}, +With 8-bit TeX and \pkgref{greek-inputenc}, literal Unicode charactes can also be used in mathematical mode. \footnote{ - This document was compiled using the \href{https://ctan.org/pkg/encguide}% - {font encoding} \encodingdefault{} + This document was compiled using the + \href{https://ctan.org/pkg/encguide}{font encoding} \encodingdefault{} \ifdefined \UTFencname % defined by fontspec (Unicode fonts). For a version using 8-bit fonts, see @@ -97,28 +104,29 @@ literal Unicode charactes can also be used in mathematical mode. \else (8-bit fonts). For a version using Unicode fonts, see - \href{alphabeta-tu.pdf}{alphabeta-tu.pdf}. + \href{alphabeta-doc-tu.pdf}{alphabeta-doc-tu.pdf}. \fi } \end{abstract} % \tableofcontents + \section{Requirements and Conflicts} The \emph{alphabeta} package depends on -\emph{\href{textalpha-doc.pdf}{textalpha}} (both are part of -\emph{\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}}). It can -be used under 8-bit TeX as well as XeTeX/LuaTeX (this document is typeset -with \engine{} and \fontset). Depending on the converter and fonts, different -\hyperref[sec:limitations]{limitations} apply. +\emph{\href{textalpha-doc.pdf}{textalpha}} +(both are part of \pkgref{greek-fontenc}). +It can be used under 8-bit TeX as well as XeTeX/LuaTeX (this document is +typeset with \engine{} and \fontset). Depending on the converter and fonts, +different \hyperref[sec:limitations]{limitations} apply. -The package conflicts with -\href{http://www.ctan.org/pkg/unicode-math}{\emph{unicode-math}}. +The package conflicts with \pkgref{unicode-math}. + +It also fails, if the \texttt{utf8x} input encoding is selected. +(The interface to the \pkgref{ucs} package uses a non-compatible +definition of \cs{DeclareUnicodeCharacter}.) -It also fails, if the \texttt{utf8x} input encoding is selected (interface -to the \href{http://www.ctan.org/pkg/ucs}{\emph{ucs}} package using a -non-compatible definition of \verb+\DeclareUnicodeCharacter+). \section{Usage} @@ -132,17 +140,14 @@ Now you can write a single Greek symbol (like \Psi{} or \mu{}) or a \lambda\omicron\gamma\omicron\varsigma{} in non-Greek text as well as ISO-conforming formulas with upright symbols for constants like $A = \text{\pi} r^2$ (instead of $A = \pi r^2$).% -\footnote{The - \href{http://mirrors.ctan.org/macros/latex/contrib/isomath/isomath.html}% - {\emph{isomath} documentation} describes more alternatives for upright - Greek symbols in math mode.} +\footnote{The \pkgref{isomath} documentation describes more alternatives + for upright Greek symbols in math mode.} Just like Latin letters, the Greek counterparts are by default italic in math mode% \footnote{Capital Greek letters are upright in TeX unless a package selects -the ``ISO'' math-style. See the -\href{http://mirrors.ctan.org/macros/latex/contrib/isomath/isomath.html}% -{\emph{isomath} documentation} for a detailled discussion of math-styles.} + the ``ISO'' math-style. See the \pkgref{isomath} documentation + for a detailled discussion of math-styles.} and upright in text: \begin{quote} @@ -163,16 +168,10 @@ package. Example call with options: \usepackage[normalize-symbols,keep-semicolon]{alphabeta} \end{verbatim} -\texttt{normalize-symbols} merges ``letter'' and ``symbol`` variants of -some Greek letters to the ``letter'' character: -\footnote{The normalize-symbols option was added in version 0.13 (2015-08-03). - Unicode input of the symbol variants requires at least version~1.6 - (2015-08-05) of - \emph{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}.} -Without this option, the symbol variant characters cannot be used in text, -because they are not supported by 8-bit Greek fonts (LGR encoding). -The \texttt{normalize-symbols} option is ignored, if you compile the -document with XeTeX or LuaTeX using Unicode fonts. +\texttt{normalize-symbols} merges ``letter'' and ``symbol`` variants of some +Greek letters (cf. next section) to the ``letter'' character: Without this +option, the symbol variant characters cannot be used in text, because they +are not supported by 8-bit Greek fonts (LGR encoding). \textbf{Attention}: Be careful in cases where the distinction between the symbol variants may be important (e.g. in a mathematical or scientific context). Use XeTeX/LuaTeX with Unicode fonts or the respective characters @@ -182,6 +181,9 @@ The option \texttt{keep-semicolon} prevents conversion of the semicolon to an \emph{ano teleia} in 8-bit TeX (see \emph{\href{textalpha-doc.pdf}{textalpha-doc}}). +Both options are ignored in text set using Unicode fonts. + + \subsection{symbol variants} Mathematical notation uses variant shapes of some Greek letters as @@ -195,7 +197,7 @@ some of the variant shape symbols in mathematical mode, but its concept of “GREEK LETTER ...” vs. “GREEK ... SYMBOL” in the Unicode standard. The \emph{alphabeta} package defines generic macros for these variants that -are short forms of the set defined in \texttt{tuenc-greek.def} +are short forms of the set defined in \file{tuenc-greek.def} (cf. \href{test-tuenc-greek.pdf}{test-tuenc-greek}): \begin{quote} \verb|\| selects the Unicode GREEK LETTER ... variant, @@ -208,21 +210,21 @@ are short forms of the set defined in \texttt{tuenc-greek.def} \end{quote} See Table \ref{tab:symbol-variant-macros} for the full list. + \section{Limitations \label{sec:limitations}} With 8-bit TeX, the limitations described in the \href{textalpha-doc.pdf}{textalpha documentation} apply. See also the tests in section \hyperref[sec:8-bit-limitations]{8 bit limitations}. -These limitations are lifted, if the text language is switched to ``greek'' -with Babel, the text part is wrapped in \verb+\ensuregreek+, or the -document is compiled with XeTeX/LuaTeX. +These limitations do not apply, if the text language is switched to ``greek'' +with Babel, the text part is wrapped in \verb+\ensuregreek+, or set using +Unicode fonts (with XeTeX/LuaTeX). With XeTeX/LuaTeX and Unicode fonts, literal Unicode characters cannot be used in formulas (the log file reports missing characters) This is a generic TeX limitation which \emph{alphabeta} overcomes if used under 8-bit TeX. -Under XeTeX/LuaTeX it may be lifted using the -\href{http://www.ctan.org/pkg/unicode-math}{\emph{unicode-math}} package. -However, \emph{unicode-math} conflicts with \emph{alphabeta}. +Under XeTeX/LuaTeX it may be circumvented using the \pkgref{unicode-math} +package. Mind, that \emph{unicode-math} conflicts with \emph{alphabeta}. \section{Tests and examples} @@ -243,13 +245,10 @@ switch (active font encoding \encodingdefault): \\ \digamma{} \Digamma{} \stigma{} \varstigma{}% \footnote{There is no separate Unicode code point for a stigma variant - symbol, \texttt{\textbackslash varstigma} is not defined with - Xe/LuaTeX and similar to \texttt{\textbackslash stigma} in some fonts.} + symbol, \cs{varstigma} is not defined with + Xe/LuaTeX and similar to \cs{stigma} in some fonts.} \koppa{} \Koppa{}% - \footnote{In LGR, there is no separate code point for Koppa as - typographical practice normally does not observe a - contrast between uppercase and lowercase forms for numeric koppa.} - % https://en.wikipedia.org/wiki/Koppa_(letter) + \footnote{In LGR, there is no separate glyph for uppercase Koppa.} \qoppa{} \Qoppa{} \Stigma{} \Sampi{} \sampi{} \end{quote} % @@ -261,6 +260,7 @@ Greek letters via Unicode (active font encoding \encodingdefault): ϝ Ϝ ϛ ϟ Ϟ ϙ Ϙ Ϛ Ϡ ϡ \end{quote} + \subsection{Diacritics} Accent macros are set up for use with the generic macros by definition of @@ -319,9 +319,10 @@ In the main document, Greek in math mode should work as usual: \[\Gamma = \frac{\sin\alpha}{\cos{\beta}}. \] -Greek letters and symbols in math input as macro:% -\footnote{There are no math macros for Greek letters wich exist with similar -shape in the Latin alphabet} +Greek letters and symbols in math mode,\footnote{% + There are no math macros for Greek letters wich exist with similar + shape in the Latin alphabet} +input as macro: \begin{align*} & % \Alpha{} \Beta{} @@ -356,35 +357,42 @@ written to the log). This works resonably well for simple formulas (but not, e.g., for super-/subscripts). With the \emph{alphabeta} package, it works also for Greek letters. -\subsection{Greek Unicode characters in math (only under 8-bit TeX)} -With the \texttt{utf8} option of \emph{inputenc} and -\href{http://www.ctan.org/pkg/greek-inputenc}{\emph{greek-inputenc}}, -literal Greek Unicode characters are supported also in -mathematical mode. +\subsection{Greek Unicode characters in math} +With 8-bit TeX and \pkgref{greek-inputenc}, literal Greek Unicode characters +are supported also in mathematical mode. +% \ifdefined\DeclareUnicodeCharacter \[ Γ = \frac{\sin α}{\cos β}. \] - Greek letters and symbols in math input as Unicode literals: + Greek letters and symbols in math mode, input as Unicode literals: \begin{align*} & Γ ΔΘΛΞΠΣΥ ΦΨ Ω \\ & αβγδεζηθικλμνξπρσςτυφχψω \\ & ϑϕϖϝϱϵ \end{align*} \fi - This does not work with XeTeX/LuaTeX (unless in 8-bit emulation mode). +Here, \pkgref{unicode-math} can be used instead of \emph{alphabeta}. + +The ``normal'' vs. ``variant'' shape of letters is used +so that the output matches the Unicode reference glyph +(cf. Table \ref{tab:symbol-variant-macros}). +This corresponds to the behaviour of \pkgref{unicode-math}. -The ``normal'' vs. ``variant'' shape of letters is used so that the output -matches the Unicode reference glyph (cf. Table -\ref{tab:symbol-variant-macros}). This corresponds to the behaviour of -\href{http://www.ctan.org/pkg/unicode-math}{\emph{unicode-math}}. \subsection{8-bit limitations \label{sec:8-bit-limitations}} -Certain limitations apply if Greek symbols are used in non-Greek context. +Certain limitations apply if Greek LICRs are used in non-Greek context with +8-bit TeX fonts (this document is typeset using +\ifdefined \UnicodeEncodingName + Unicode fonts% +\else + 8-bit fonts% +\fi +). \begin{itemize} @@ -400,7 +408,10 @@ Certain limitations apply if Greek symbols are used in non-Greek context. \ensuregreek{\<'\alpha{} \accdasia\acctonos\alpha{} \accdasiaoxia\alpha{} (\currentEncoding)} vs. \accdasiaoxia\alpha{} (\currentEncoding) -\item MakeUppercase fails with composite diacritics in other font encodings. +\item MakeUppercase fails with composite diacritics in other font encodings.% + \footnote{Since the re-implementation 2022/06, MakeUppercase follows + the Greek typesetting rules only for text parts given the + \pkgref{babel} language \texttt{greek}.} % \MakeUppercase{% % \<\alpha{} \>\epsilon{} \'\iota{} \`\eta{} \~\upsilon{} % } @@ -415,8 +426,8 @@ font encoding supporting Greek. This keeps kerning (if the kerning pair is inside the argument, \ensuregreek{\Alpha\"\Upsilon\Alpha}), and allows combining of accent macros where pre-composed characters are selected (\ensuregreek{\<'\alpha}). -Setting the corrct language for Greek quotes with the \emph{Babel} package -additionally ensures correct hyphenation . +Setting the corrct language for Greek text parts with the \pkgref{babel} +package additionally ensures correct hyphenation and upcasing. \begin{table}[bp] diff --git a/language/greek/greek-fontenc/alphabeta-lgr.def.html b/language/greek/greek-fontenc/alphabeta-lgr.def.html index a903d1e75b..a0d9674440 100644 --- a/language/greek/greek-fontenc/alphabeta-lgr.def.html +++ b/language/greek/greek-fontenc/alphabeta-lgr.def.html @@ -1,18 +1,19 @@ - - -alphabeta-lgr.def + + + +alphabeta-lgr.def @@ -718,24 +609,19 @@ aside.sidebar,

alphabeta-lgr.def

Composite definitions for 8-bit TeX

- + -
Licence
+
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.

-
Identification
+
Identification:
\ProvidesFile{alphabeta-lgr}
 [2020/09/25 1.0 Composite definitions for 8-bit TeX]
-
Changelog
+
Changelog:
----- diff --git a/language/greek/greek-fontenc/alphabeta-tu.pdf b/language/greek/greek-fontenc/alphabeta-tu.pdf deleted file mode 100644 index 34d85ab410..0000000000 Binary files a/language/greek/greek-fontenc/alphabeta-tu.pdf and /dev/null differ diff --git a/language/greek/greek-fontenc/alphabeta-tuenc.def b/language/greek/greek-fontenc/alphabeta-tuenc.def index 8f86ff0133..cb2f621e54 100644 --- a/language/greek/greek-fontenc/alphabeta-tuenc.def +++ b/language/greek/greek-fontenc/alphabeta-tuenc.def @@ -13,7 +13,7 @@ \ProvidesFile{alphabeta-tuenc} [2020/10/30 2.0 Composite definitions for XeTeX and LuaTeX] -% :Abstract: +% :Abstract: % Composite definitions for ``alphabeta.sty`` with XeTeX and LuaTeX. % % :Changelog: diff --git a/language/greek/greek-fontenc/alphabeta-tuenc.def.html b/language/greek/greek-fontenc/alphabeta-tuenc.def.html index 5f5451e43d..308e0bef42 100644 --- a/language/greek/greek-fontenc/alphabeta-tuenc.def.html +++ b/language/greek/greek-fontenc/alphabeta-tuenc.def.html @@ -1,19 +1,20 @@ - - -alphabeta-tuenc.def - + + + + +alphabeta-tuenc.def @@ -719,24 +610,19 @@ aside.sidebar,

alphabeta-tuenc.def

Composite definitions for XeTeX and LuaTeX

- + -
Licence
+
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.

-
Identification
+
Identification:
\ProvidesFile{alphabeta-tuenc}
 [2020/10/30 2.0 Composite definitions for XeTeX and LuaTeX]
-
Changelog
+
Changelog:

0.11.2

2014-09-04

----- @@ -767,7 +653,7 @@ use \UTFencname instead of +

Abstract

Composite definitions for alphabeta.sty with XeTeX and LuaTeX.

diff --git a/language/greek/greek-fontenc/alphabeta.sty b/language/greek/greek-fontenc/alphabeta.sty index 5eb769625f..09a1cf5c6e 100644 --- a/language/greek/greek-fontenc/alphabeta.sty +++ b/language/greek/greek-fontenc/alphabeta.sty @@ -1,5 +1,7 @@ -% alphabeta: Greek symbols in text and math -% ***************************************** +% alphabeta.sty +% +++++++++++++ +% Greek symbols in text and math +% ****************************** % % :Copyright: © 2010 Günter Milde % :Licence: This work may be distributed and/or modified under the @@ -34,7 +36,7 @@ % 2.0 2020/10/13 Provide ``\Koppa``. % ====== ========== ========================================================= % -% .. contents:: +% .. contents:: % % Motivation % ========== @@ -396,11 +398,11 @@ % .. References % ---------- % .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt -% .. _CB Fonts: http://ctan.org/pkg/cbgreek-complete -% .. _Babel: http://ctan.org/pkg/babel +% .. _CB Fonts: https://ctan.org/pkg/cbgreek-complete +% .. _Babel: https://ctan.org/pkg/babel % .. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex -% .. _greek-fontenc: http://ctan.org/pkg/greek-fontenc -% .. _greek-inputenc: http://ctan.org/pkg/greek-inputenc -% .. _inputenc: http://ctan.org/pkg/inputenc -% .. _fixltx2e: http://ctan.org/pkg/fixltx2e -% .. _Polyglossia: http://ctan.org/pkg/polyglossia +% .. _greek-fontenc: https://ctan.org/pkg/greek-fontenc +% .. _greek-inputenc: https://ctan.org/pkg/greek-inputenc +% .. _inputenc: https://ctan.org/pkg/inputenc +% .. _fixltx2e: https://ctan.org/pkg/fixltx2e +% .. _Polyglossia: https://ctan.org/pkg/polyglossia diff --git a/language/greek/greek-fontenc/alphabeta.sty.html b/language/greek/greek-fontenc/alphabeta.sty.html index 3bbd1ca681..ba21b883b2 100644 --- a/language/greek/greek-fontenc/alphabeta.sty.html +++ b/language/greek/greek-fontenc/alphabeta.sty.html @@ -1,18 +1,19 @@ - - -alphabeta: Greek symbols in text and math + + + +alphabeta.sty - -
-

alphabeta: Greek symbols in text and math

+ +
+

alphabeta.sty

+

Greek symbols in text and math

- + -
Licence
+
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.

-
Identification
+
Identification:
\NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{alphabeta}
   [2020/10/13 2.0 macros for Greek letters in text and math]
-
+

Abstract

Use \alpha, \beta, ... for Greek letters in text and math mode.

@@ -738,11 +813,6 @@ mode.

Changelog:

0.1

2013-09-12

----- @@ -763,7 +833,7 @@ mode.

- + @@ -791,62 +861,62 @@ mode.

0.1

2012-06-26

0.4

2013-09-11

move to greek-fontenc, support XeTeX/LuaTeX.

move to greek-fontenc, support XeTeX/LuaTeX.

0.13

2015-09-04

- +
-

Motivation

+

Motivation

By default, the \alpha, \beta, ... macros for Greek letters are only valid in mathematical mode.

With this package, the math macros are redefined to work in both, text and math mode, so that Greek letters can be specified with the established command names in text, too.

-

If used together with the utf8 option of inputenc, literal Unicode +

If used together with the utf8 option of inputenc, literal Unicode characters can be used for Greek symbols in mathematical formulas.

-
+
+
-

Usage

+

Usage

\usepackage{alphabeta}
-

The greek-inputenc package provides support for Unicode (utf-8) input -of Greek characters with 8-bit TeX and the inputenc package:

+

The greek-inputenc package provides support for Unicode (utf-8) input +of Greek characters with 8-bit TeX and the inputenc package:

\usepackage[utf-8]{inputenc}
 \usepackage{alphabeta}
-

Conflicts

+

Conflicts

alphabeta does not work if the utf8x input encoding is selected. (utf8x is an interface to the ucs package which uses a non-compatible definition of \DeclareUnicodeCharacter.)

@@ -854,28 +924,28 @@ non-compatible definition of \DeclareUnicodeChara
-

Implementation

+

Implementation

-

Requirements

+

Requirements

This package extends the textalpha package. Package options are passed on to textalpha:

\RequirePackageWithOptions{textalpha}
-

Just like alphabeta, textalpha is part of greek-fontenc.

+

Just like alphabeta, textalpha is part of greek-fontenc.

This package requires the e-TeX extensions (i.e. a not too old TeX distribution) for the \ifdefined test.

-

It uses the \TextOrMath test from the fixltx2e standard LaTeX package. +

It uses the \TextOrMath test from the fixltx2e standard LaTeX package. fixltx2e is loaded by default since TeXLive 2015. In case of an \TextOrMath undefined error, load it in the document preamble via

\usepackage{fixltx2e}
-

Postpone the re-definitions

+

Postpone the re-definitions

To prevent other packages overwriting the re-defined commands we postpone the next steps until the start of the document body:

\AtBeginDocument{
-

Save math macros

+

Save math macros

Map the standard math commands to maths-specific names:

\let\mathGamma\Gamma
 \let\mathDelta\Delta
@@ -932,7 +1002,7 @@ the next steps until the start of the document body:

\fi
-

Commands to access Greek letters by name

+

Commands to access Greek letters by name

For letters defined in math mode, the commands work in both, text and math.

Some Greek letters look identical to Latin letters and can therefore not be used as variable symbols in math formulas. These letters are not defined in @@ -1002,7 +1072,7 @@ in both, text and math mode.

\renewcommand*{\psi}{\TextOrMath{\textpsi}{\mathpsi}} \renewcommand*{\omega}{\TextOrMath{\textomega}{\mathomega}}
-

Archaic letters

+

Archaic letters

\renewcommand*{\digamma}{\TextOrMath{\textdigamma}{\mathdigamma}} % ϝ
 \providecommand*{\Digamma}{\textDigamma}     % Ϝ
 \providecommand*{\stigma}{\textstigma}       % ϛ
@@ -1016,7 +1086,7 @@ in both, text and math mode.

\providecommand*{\sampi}{\textsampi} % ϡ
-

Variant shape symbols

+

Variant shape symbols

TeX’s concept of “standard” vs. “variant” math symbols does not map to the distinction between GREEK LETTER … vs. GREEK … SYMBOL in the Unicode standard (see test-tuenc-greek.pdf).

@@ -1054,7 +1124,7 @@ math (or, if not supported, the SYMBOL shape):

-

TextCompositeCommands for the generic macros

+

TextCompositeCommands for the generic macros

The NFSS TextComposite mechanism looks for the next token without expanding it. In order to let compositions like \ensuregreek{\'\Alpha} or \ensuregreek{\>"\alpha} work as expected we define TextComposites with the @@ -1068,7 +1138,7 @@ is LGR).

}{}
-

Re-definition for Greek Unicode input in math mode

+

Re-definition for Greek Unicode input in math mode

Check with \ifdefined for the definition of \DeclareUnicodeCharacter. In contrast to \@ifdefined, this works without side-effects. It makes the package dependent on the e-TeX diff --git a/language/greek/greek-fontenc/diacritics.pdf b/language/greek/greek-fontenc/diacritics.pdf deleted file mode 100644 index 5155ca6357..0000000000 Binary files a/language/greek/greek-fontenc/diacritics.pdf and /dev/null differ diff --git a/language/greek/greek-fontenc/diacritics.tex b/language/greek/greek-fontenc/diacritics.tex deleted file mode 100644 index dddfbc2560..0000000000 --- a/language/greek/greek-fontenc/diacritics.tex +++ /dev/null @@ -1,172 +0,0 @@ -% Test definitions for accents and composite accents in Greek -\documentclass[a4paper,polutonikogreek,british]{article} -\pagestyle{empty} -\usepackage[margin=2.9cm]{geometry} -% \usepackage{cmap} % fix search and cut-and-paste in Acrobat Reader - -\usepackage% -{lmodern} -% {gfsartemisia} -% {gfsbaskerville} -% [default]{gfsbodoni} -% [default]{gfscomplutum} -% {gfsdidot} -% [default]{gfsneohellenic} -% {lmodern} \usepackage{gfsporson} \renewcommand*\rmdefault{porson} -% [default]{gfssolomos} -% {kerkis} -% {teubner} -% \renewcommand{\ttdefault}{txtt} - -% Load encoding definitions (after font package) -\usepackage[LGR,T1]{fontenc} -\usepackage{textalpha} - -\usepackage{listings} -\lstset{basicstyle=\ttfamily} - -% Babel package: - -\usepackage{babel} - -% With XeTeX/LuaTeX, load fontspec after babel to use Unicode -% fonts for Latin script and LGR for Greek: -\ifdefined\luatexversion \usepackage{fontspec}\fi -\ifdefined\XeTeXrevision \usepackage{fontspec}\fi - - -% "Lipsiakos" italic font `cbleipzig`: -\newcommand*{\lishape}{\fontencoding{LGR}\fontfamily{cmr}% - \fontshape{li}\selectfont} -\DeclareTextFontCommand{\textli}{\lishape} - - -\begin{document} - -% \selectlanguage{british} - -\title{Greek diacritics with standard accent macros} -\author{G\"unter Milde} -\date{\filedate} -\maketitle - -The font encoding definition file \texttt{lgrenc.def} defines LICR macros -for all non-ASCII characters in the LGR font encoding. Greek accent macros -have names starting with \verb|\acc| followed by the Greek accent name as -used in the Unicode standard (e.g. \verb|\acctonos|). The standard symbol -accents \verb|\' \` \~| behave according to Greek typography if used in the -LGR font encoding. - -The \emph{textalpha} or \emph{alphabeta} packages define the symbol macros -\verb|\<| and \verb|\>| as alias for the breathings (Dasia and Psili).% -\footnote{The definition of the macros - \texttt{\textbackslash<} and \texttt{\textbackslash>} was moved - from the font definition file \texttt{greek-fontenc.def} to - \texttt{textalpha.sty} in order to avoid clashes with local - definitions of this macros in documents using the LGR font - encoding via \emph{fontenc} or \emph{babel}.} -With these packages, all Greek diacritics can be input as backslash followed -by the LGR transliteration.% -\footnote{This makes it easy to follow the advise in - \emph{teubner-doc}: ``typeset your paper with the regular - accent vowel ligatures and [{\ldots}] substitute them in the - final revision with the accented vowel macros only in those - instances where the lack of kerning is disturbing''.} - -The example in babel/contrib/greek/usage.pdf: -% -\begin{quote} \selectlanguage{greek} - T\'i f\'hic? \enj\'ede pa\~id'' - \>eleuj\'eran t\`ac plhs\'ion N\'umfac stefano\~usan, - S\'wstrate, \>er\~wn \'ap\~hljec e\>uj\'uc? -\end{quote} -can be input as -\begin{lstlisting} - T\'i f\'hic? \enj\'ede pa\~id'' - \>eleuj\'eran t\`ac plhs\'ion N\'umfac stefano\~usan, - S\'wstrate, \>er\~wn \'ap\~hljec e\>uj\'uc? -\end{lstlisting} -% -Improvements over the ligature-based approach in LGR: -% -\begin{itemize} - -\item Accents can be placed on any character: - \textgreek{\"k \`l \'m \~'p \>9 \`\>-} - -\item Kerning is preserved - \selectlanguage{greek} - \begin{tabular}[t]{llll} - & \textlatin{roman} & \textlatin{italic} & \textlatin{cbleipzig} \\ - \foreignlanguage{british}{accent macro:} & - a\>ut'os & \emph{a\>ut\'os} & \textli{a\>ut\'os} \\ - \foreignlanguage{british}{transliteration:} & - a>ut'os & \emph{a>ut'os} & \textli{a>ut'os}\\ - \end{tabular} - \selectlanguage{british} - - Like in any font encoding, kerning only works with pre-composed glyphs:\\ - \textgreek{A\"UA $\ne$ A\~UA}, AVA $\ne$ A\'VA. - -\item Compatible with hyperref (see greekhyperref.pdf). - -\item Following Greek typesetting convention, diacritics (except the - dialytika) are placed to the left of capital letters and and dropped - by \verb|\MakeUppercase|: - - \begin{quote} \selectlanguage{greek} - \'antropos $\mapsto$ \MakeUppercase{\'antropos}, - \>'antropos $\mapsto$ \MakeUppercase{\>'antropos},\\ - Aqill\'eas $\mapsto$ \MakeUppercase{Aqill\'eas}, - \>Aqille\'us $\mapsto$ \MakeUppercase{\>Aqille\'us}. - \end{quote} - - The dialytika is printed even in cases where it's not needed - in lowercase: % the "hiatus" feature - \begin{quote} \selectlanguage{greek} - \'aulos $\mapsto$ \MakeUppercase{\'aulos}, - \'>aulos $\mapsto$ \MakeUppercase{\'\>aulos}, - % from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ - m\'aina $\mapsto$ \MakeUppercase{m\'aina},\\ - % from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema - % κέικ, ἀυπνία/αϋπνία - k\'eik, $\mapsto$ \MakeUppercase{k\'eik}, - \>aupn\'ia $\mapsto$ \MakeUppercase{\>aupn\'ia}. - \end{quote} -\end{itemize} - -\selectlanguage{british} Composite diacritics can be specified as -named macro, backslash + LGR transliteration, or combined accent macros, -e.\,g. \textgreek{\~>a} can be written as -\begin{quote} - \verb+\accpsiliperispomeni{a}+, - \verb+\~>a+, \verb+\>~a+, - \verb+\~\>{a}+, or \verb+\~\>a+. -\end{quote} -However, braces in composite accents -(\verb+\~{\>a}+, \verb+\~{>a}+, or \verb+\~{\>{a}}+) -lead to errors. - -\verb+\MakeUppercase+ works with most input variants but fails with a tilde -in a document which does \textbf{not} define the \texttt{greek} or -\texttt{polutonikogreek} language with Babel (which fixes the uccode for -characters used in the LGR transliteration). -Combining ``symbol macros'' (\verb+\>\~+) or reversing the order -(\verb+\~>+) is safe. -% \foreignlanguage{greek}{\~>a \>~a \>\~a \~\>a $\mapsto$ -% \MakeUppercase{\~>a \>~a \>\~a \~\>a}}. - -Accent macros can start with \verb|\a| instead of \verb|\| when the -short form is redefined, e.\,g. inside a \emph{tabbing} environment. -This also works for the new-defined Dasia and Psili shortcuts -(\verb|\a<| and \verb|\a>|): -% -\begin{quote} -\selectlanguage{greek} -\begin{tabbing} -T'i f'hic? \= T\a'i f\a'hic? \\ - \a>enj\a'ede pa\a~id -\end{tabbing} -\end{quote} - -\end{document} diff --git a/language/greek/greek-fontenc/greek-fontenc-doc.html b/language/greek/greek-fontenc/greek-fontenc-doc.html new file mode 100644 index 0000000000..82bd481047 --- /dev/null +++ b/language/greek/greek-fontenc/greek-fontenc-doc.html @@ -0,0 +1,1446 @@ + + + + + + + +greek-fontenc + + + + + +

+

greek-fontenc

+

Greek font encoding definition files

+
+
Version:
+
2.2 (changelog)
+ + +
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.

+
+
Homepage:
+

https://codeberg.org/milde/greek-tex

+
+
Latest Release:
+

https://ctan.org/pkg/greek-fontenc

+
+
+
+

Abstract

+

The greek-fontenc bundle provides LICR[1] macros +for characters from the Greek script and encoding +definition files for Greek text font encodings.

+

Included are also the LaTeX packages textalpha and alphabeta.

+
+ + +
+

TeX files and packages

+
+

Packages

+
+
textalpha.sty: Greek symbols in text
+

Use \textalpha\textOmega or Greek literal characters[2] +independent of font encoding and TeX engine. [textalpha-doc.pdf]

+
+
alphabeta.sty: Greek symbols in text and math
+

Use \alpha\Omega independent of text/math mode, +font encoding, and TeX engine. [alphabeta-doc.pdf]

+
+
+ +
+
+

Font encoding definitions

+
+
greek-fontenc.def
+

Common Greek font encoding definitions

+
+
lgrenc.def
+

LGR Greek font encoding definitions.

+
+
tuenc-greek.def
+

Extended Greek definitions for the TU font encoding

+
+
puenc-greek.def
+

Extended Greek definitions for PDF strings

+
+
+
+
+

Auxiliary files

+
+
alphabeta-lgr.def
+

Composite definitions for alphabeta with 8-bit TeX.

+
+
alphabeta-tuenc.def
+

Composite definitions for alphabeta with XeTeX/LuaTeX.

+
+
greek-euenc.def
+

Backwards compatibility file loading tuenc-greek.def.

+
+
lgr2licr.lua
+

LGR Transcription to Greek LICR transformation. +Provisional.

+
+
+

The source files can be converted with PyLit to reStructuredText and +with Docutils to the HTML documentation.

+
+
+
+

Usage examples and test documents

+
+
LGR test and usage example
+

test-lgrenc.tex, test-lgrenc.pdf

+
+
TU test and usage example
+

test-tuenc-greek.tex, test-tuenc-greek.pdf

+
+
Hyperref test and usage example
+

hyperref-with-greek.tex, hyperref-with-greek.pdf

+
+
Test LICRs with non-Greek legacy 8-bit input encoding
+

test-licr-input.tex, test-licr-input.pdf

+
+
Greek diacritics with standard accent macros
+

diacritics.tex, diacritics.pdf

+
+
+
+
+

Download and Installation

+

The simplest way is to install this package from your distribution using +its installation manager.

+

Alternatively:

+
    +
  • Download the latest release from the package’s CTAN page or a +snapshot of the greek-tex repository.

  • +
  • Unpack the source archive to a temporary location.

  • +
  • Copy/Move/Link files ending in .def or .sty to a suitable place in +the TeX search path.

  • +
+
+
+

Conflicts

+

The arabi package provides the Babel arabic option which loads +arabicfnt.sty for font setup. This package overwrites the LICR macros +\omega and \textomega with font selecting commands. See the report +for Debian bug 858987 for details and the arabi workaround below.

+
+
+

Usage

+

There are several alternatives to set up the support for a Greek font +encoding provided by this bundle, e.g.:

+
+
Babel:
+

Use the greek option with Babel:

+
\usepackage[greek]{babel}
+

This automatically loads lgrenc.def with 8-bit TeX and +tuenc-greek.def with XeTeX/LuaTeX and provides localized auto-strings, +hyphenation and other localizations (see babel-greek).

+

Babel can be used together with textalpha or alphabeta.

+
+
textalpha:
+

Ensure support for Greek characters in text mode:

+
\usepackage{textalpha}
+

eventually with the normalize-symbols option to handle symbol variants +and/or the keep-semicolon option to use the semicolon as erotimatiko +also in LGR

+
\usepackage[normalize-symbols,keep-semicolon]{textalpha}
+

This sets up LICR macros for Greek text charactes under both, 8-bit TeX +and Xe-/LuaTeX. +For details see textalpha-doc.tex and textalpha-doc.pdf (8-bit +TeX) as well as test-tuenc-greek.tex and test-tuenc-greek.pdf +(XeTeX/LuaTeX).

+
+
alphabeta:
+

To use the short macro names (\alpha\Omega) known from math +mode in both, text and math mode, write

+
\usepackage{alphabeta}
+

For details see alphabeta-doc.tex and alphabeta-doc.pdf.

+
+
fontenc:
+

Declare LGR via fontenc. For example, specify T1 (8-bit +Latin) as default font encoding and LGR for Greek with

+
\usepackage[LGR,T1]{fontenc}
+

Note that without textalpha or alphabeta, Greek text macros work +only if the current font encoding supports Greek. See [fntguide] for +details and test-lgrenc.tex for an example.

+

It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding +also with XeTeX/LuaTeX, if the fontenc package is loaded before +Babel, textalpha, or alphabeta, e.g.

+
\usepackage[LGR]{fontenc}
+\usepackage{fontspec}
+\setmainfont{Linux Libertine O} % Latin Modern does not support Greek
+\setsansfont{Linux Biolinum O}
+\usepackage{textalpha}
+

See test-tuenc-greek.tex, test-tuenc-greek.pdf and +test-lgrenc.tex, test-lgrenc.pdf.

+
+
+

To work around the conflict with arabi, it may suffice to ensure greek +is loaded after arabic:

+
\usepackage[arabic,greek,english]{babel}
+

More secure is an explicit reverse-definition, e.g.

+
% save original \omega
+\let\mathomega\omega
+
+\usepackage[utf8]{inputenc}
+\usepackage[LAE,LGR,T1]{fontenc}
+\usepackage[arabic,greek,english]{babel}
+
+% fix arabtex:
+\DeclareTextSymbol{\textomega}{LGR}{119}
+\renewcommand{\omega}{\mathomega}
+
+
+

Greek text font encodings

+

Greek TeX font encodings are the envisaged T7, LGR, and LGI. +Greek letters and symbols are also defined in the Unicode-based font +encodings TU, and PU.

+
+

T7

+

The [encguide] reserves the name T7 for a Greek standard font encoding. +However, up to now, there is no agreement on an implementation because the +restrictions for general text encodings are too severe for typesetting +polytonic Greek.

+
+
+

LGR

+

The LGR font encoding is the de-facto standard for typesetting Greek with +(8-bit) LaTeX. greek-fontenc provides a comprehensive LGR font +encoding definition file.

+

Fonts in this encoding include the CB fonts (matching CM), grtimes +(Greek Times), Kerkis (matching URW Bookman), DejaVu, Libertine GC, and +the GFS fonts. Setup of these fonts as Greek variant to +matching Latin fonts is facilitated by the substitutefont package.

+

The LGR font encoding allows to access Greek characters via an ASCII +transliteration. This enables simple input with a Latin keyboard. +Characters with diacritics can be selected by ligature definitions in the +font (see [greek-usage], [teubner-doc], [cbfonts]).

+

A major drawback of the transliteration is, that you cannot access Latin +letters if LGR is the active font encoding (e.g. in documents or parts of +documents given the Babel language greek or polutionikogreek). +This means that for every Latin-written word or acronym an explicit +language-switch is required. This problem can only be solved via a +font-encoding comprising Latin and Greek like the envisaged T7 or +Unicode (with XeTeX or LuaTeX).

+
+
+

LGI

+

The ‘Ibycus’ fonts from the package ibygrk implement an alternative +transliteration scheme (also explained in [babel-patch]). +It is currently not supported by greek-fontenc.

+

The font encoding file lgienc.def from ibycus-babel provides a basic +setup (without any LICR macros or composite definitions).

+
+
+

TU

+

Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec +(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [ltnews26]. +greek-fontenc adds support for the Greek script (see tuenc-greek).

+

Xe/LuaTeX works with any system-wide installed OpenType font. Suitable +fonts supporting Greek include CM Unicode, Deja Vu, EB Garamond, +the GFS fonts, Libertine OTF, Libertinus, Old Standard, +Tempora, and UM Typewriter (all available on CTAN) but also many commercial +fonts. Unfortunately, the fontspec default, Latin Modern misses most +Greek characters.

+

Older versions of LuaTeX did not apply the NFC normalization. This lead to +suboptimal placing of some diactritics, especially the sub-iota (becoming +unintelligable in combination with small letter eta). This issue if fixed +since at least 2022.

+

The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX +respectively were superseded by TU in the 2017 fontspec release.

+
+
+

PU

+

The package hyperref defines the PU font encoding for use in PDF strings +(ToC, bookmarks) which supports monotonic Greek. greek-fontenc adds +support for polytonic Greek and some archaic characters also supported in +LGR and TU (see hyperref-with-greek.tex, hyperref-with-greek.pdf).

+
+
+
+

Greek LICR macro names

+ +

This bundle provides LaTeX internal character representations (LICR macros) +for Greek letters and diacritics. Macro names were selected based on the +following considerations:

+
+

letters and symbols

+
    +
  • 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.

    +
    +
    +
    Problem:
    +

    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. However, these are not intended for active use.

    +
    +
    +
  • +
  • If there exists a math-mode macro for a symbol, the corresponding text +macro could be formed 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 is +made available as \textvarsigma.

    +
    +
    Problem:
    +

    Symbol variants (see below).

    +
    +
    +
  • +
  • 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 LICR macros, they can be either

    +
      +
    1. used as inspiration for new LICR macro names or

    2. +
    3. converted to LICR macro names via a defined set of transformation rules.

    4. +
    +
    +
    Example:
    +

    \textfinalsigma is a descriptive alias 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”,

    • +
    • 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 (\textcyr).

    • +
    • There are examples of encoding-specific macros +without the text-prefix, especially for letters, see encguide.

    • +
    +
    +
    Contra:
    +
      +
    • Less consistent,

    • +
    • possible name clashes

    • +
    • text prefix marks a macro as confined to text (as opposed to math) +mode,

    • +
    +
    +
    +

    The font encoding definition files use the text prefix for symbols. +Aliases (short forms, compatibility defs, etc.) are defined in +additional packages (e.g. alphabeta.sty, babel-greek, or teubner)

    +
  • +
+
+
+

accent macros

+
    +
  • standard accent macros (\DeclareTextAccent definitions in +latex/base/...) are one-character macros (\' \" ... \u \v ...) .

  • +
  • tipa.sty, xunicode, and ucs use the “text” prefix also for accents.

    +

    However, the Adobe Glyph List For New Fonts maps, e.g., “tonos” and +“dieresistonos” to the spacing characters GREEK TONOS and GREEK DIALYTIKA +TONOS, hence texttonos and textdiaresistonos should be spacing +characters.

    +
  • +
  • textcomp (ts1enc.def) defines \capital... accents (i.e. without +text prefix).

  • +
+

Currently, greek-fontenc uses for diacritics:

+
    +
  • Greek names like in Unicode, and ucsencs.def, and

  • +
  • the prefix \acc to distinguish the macros as TextAaccent and +reduce the risc of name clashes with spacing characters.

  • +
+

For the end-user “symbol macros” (\~ \' \` \" \"' \"` ...) are +provided. (With textalpha or alphabeta also \< and \> for +\accdasia and \accpsili.)

+
+
+

symbol variants

+

Mathematical notation distinguishes variant shapes for beta (β|ϐ), +theta (θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), +and epsilon (ε|ϵ).

+

The variations have no syntactic meaning in Greek text and Greek text +fonts use the shape variants indiscriminately (cf. glyph variants). +The variant shapes are not given separate code-points in the LGR text +font encoding.

+

In mathematical mode, TeX supports the alternative glyph variants with +\var<lettername> macros (variant macros for ϴ, ϐ, and ϰ require +additional packages).

+

Unicode defines separate code points for the symbol variants for use in +mathematical context.[3] Unfortunately, the mapping between Unicode’s +letter/symbol distinction and “normal”/variant in TeX is inconsistent.

+

greek-fontenc provides \text<lettername>symbol LICR macros for the +Greek symbol characters:

+
    +
  • With Unicode fonts, the macros select the GREEK <lettername> SYMBOL``.

  • +
  • With LGR encoded fonts, they report an error by default.

    +

    With the normalize-symbols option of textalpha and alphabeta, +they are mapped to the corresponding letter (loosing the distinction +between the shape variants).

    +
  • +
+

The alphabeta package provides \<lettername>, \var<lettername>, +and \<lettername>symbol in both, text and math mode (cf. Table 1 in +alphabeta-doc-tu.pdf).

+ +
+
+
+

Changelog

+
+
0.9 (2013-07-03)
+
    +
  • greek-fontenc.def “outsourced” from lgrxenc.def

  • +
  • experimental LICRs for XeTeX/LuaTeX.

  • +
+
+
0.9.1 (2013-07-18)
+
    +
  • Bugfix: wrong breathings psilioxia -> dasiaoxia.

  • +
+
+
0.9.2 (2013-07-19)
+
    +
  • Bugfix: Disable composite defs starting with char macro,

  • +
  • Fix “hiatus” handling.

  • +
+
+
0.9.3 (2013-07-24)
+
    +
  • Fix path for \input of greek-fontenc.def.

  • +
+
+
0.9.4 (2013-09-10)
+
    +
  • greek-fontenc.sty: Greek text font encoding setup package.

  • +
  • remove xunicode-greek.sty.

  • +
+
+
0.10 (2013-09-13)
+
    +
  • textalpha and alphabeta moved here from lgrx and updated to work +with XeTeX/LuaTeX.

  • +
  • greek-fontenc.sty removed (obsoleted by textalpha).

  • +
+
+
0.10.1 (2013-10-01)
+
    +
  • Bugfix in greek-euenc.def and alphabeta-euenc.def.

  • +
+
+
0.11 (2013-11-28)
+
    +
  • Compatibility with Xe/LuaTeX in 8-bit mode.

  • +
  • \greekscript TextCommand (cf. [encguide]).

  • +
+
+
0.11.1 (2013-12-01)
+
    +
  • Fix identification of greek-euenc.def.

  • +
+
+
0.11.2 (2014-09-04)
+
    +
  • Documentation update, remove duplicate code.

  • +
+
+
0.12 (2014-12-25)
+
    +
  • Fix auxiliary macro names in textalpha.

  • +
  • Conservative naming: move definition of \< and \> from +greek-fontenc.def to textalpha.sty (Bugreport David Kastrup).

  • +
+
+
0.13 (2015-09-04)
+
    +
  • Support for symbol variants,

  • +
  • keep-semicolon option in textalpha,

  • +
  • \lccode/\uccode corrections for Unicode +(from Apostolos Syropoulos’ xgreek) in greek-euenc.

  • +
  • Do not convert \ypogegrammeni to \prosgegrammeni +with \MakeUppercase.

  • +
+
+
0.13.1 (2015-12-07)
+
+
+
0.13.2 (2016-02-05)
+
    +
  • Support for standard Unicode text font encoding “TU” +(new in fontspec v2.5a).

  • +
+
+
0.13.3 (2019-07-10)
+
+
+
0.13.4 (2019-07-11)
+
    +
  • “Lowercase” \prosgegrammeni -> \ypogegrammeni +but not vice versa.

  • +
+
+
0.14 (2020-02-28)
+
    +
  • Rename greek-euenc to tuenc-greek.

  • +
  • Use \UTFencoding instead of \LastDeclaredEncoding.

  • +
+
+
1.0 (2020-09-25)
+
    +
  • Bugfix in textalpha: Let \greekscript set \encodingdefault.

  • +
  • \textKoppa as alias for \textkoppa in LGR.

  • +
+
+
2.0 (2020-10-30)
+
    +
  • Move common alias definitions to greek-fontenc.def.

  • +
  • textalpha loads TU with Xe/LuaTeX by default and provides +\textmicro and LICR macros for archaic symbols from the +“Greek and Coptic” Unicode block.

  • +
  • Use \UnicodeEncodingName (by the LaTeX kernel) instead of +\UTFencname for the Unicode font encoding name.

  • +
  • Replace utf8 literals in tuenc-greek.def.

  • +
  • New file puenc-greek.def: setup for PU encoding defined by +hyperref for PDF strings.

  • +
  • Don’t use \textcompwordmark as base in accent commands.

  • +
+
+
2.1 (2022-06-14)
+
+
+
2.2 (2023-02-28)
+
    +
  • Use correct glyph for \textanoteleia (middle dot) in LGR.

  • +
  • Test and add composite commands for combinations that are not +converted to pre-composed characters.

  • +
  • Don’t use \makeatother in \AtBeginDocument.

  • +
  • Skip \uccode fixes when ignored by \MakeUppercase.

  • +
  • Various small fixes and documentation update.

  • +
+
+
+
+
+

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.

+
+
+[babel-patch] +

Werner Lemberg, Unicode support for the Greek LGR +encoding Εὔτυπον, τεῦχος № 20, 2008. +http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf

+
+
+[cbfonts] +

Claudio Beccari, The CB Greek fonts, Εὔτυπον, τεῦχος № 21, 2008. +http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf

+
+
+[encguide] +(1,2) +

Frank Mittelbach, Robin Fairbairns, Werner Lemberg, +LaTeX3 Project Team, LaTeX font encodings. +https://mirrors.ctan.org/macros/latex/base/encguide.pdf

+
+
+[fntguide] +

LaTeX3 Project Team, LaTeX2ε font selection. +https://mirrors.ctan.org/macros/latex/base/fntguide.pdf

+
+
+[greek-usage] +

Apostolos Syropoulos, Writing Greek with the greek option +of the babel package, 1997. +https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf

+
+
+[ltnews26] +

LaTeX Project Team, LaTeX News Issue 26, January 2017. +https://www.latex-project.org/news/latex2e-news/ltnews26.pdf

+
+
+[teubner-doc] +

Claudio Beccari, teubner.sty +An extension to the greek option of the babel package, 2011. +https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf

+
+
+
+
+ + diff --git a/language/greek/greek-fontenc/greek-fontenc-doc.rst b/language/greek/greek-fontenc/greek-fontenc-doc.rst new file mode 100644 index 0000000000..0ff78e7238 --- /dev/null +++ b/language/greek/greek-fontenc/greek-fontenc-doc.rst @@ -0,0 +1,624 @@ +************* +greek-fontenc +************* +Greek font encoding definition files +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:Version: 2.2 (changelog_) + +: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. + +:Homepage: https://codeberg.org/milde/greek-tex + +:Latest Release: https://ctan.org/pkg/greek-fontenc + +:Abstract: The `greek-fontenc` bundle provides LICR [#]_ macros + for characters from the Greek script and encoding + definition files for `Greek text font encodings`_. + + Included are also the LaTeX packages textalpha_ and alphabeta_. + +.. [#] `LaTeX internal character representation` (LICR) macros can + serve as a human readable 7-bit-ASCII character encoding that + works unaltered under both, 8-bit TeX and XeTeX/LuaTeX. + Use cases are macro definitions and generated text. + +.. contents:: + + +TeX files and packages +====================== + +Packages +-------- + +.. _textalpha: + +``_: `Greek symbols in text `_ + Use ``\textalpha`` ... ``\textOmega`` or Greek literal characters [#]_ + independent of font encoding and TeX engine. [textalpha-doc.pdf_] + + .. _alphabeta: + +``_: `Greek symbols in text and math `_ + Use ``\alpha`` ... ``\Omega`` independent of text/math mode, + font encoding, and TeX engine. [alphabeta-doc.pdf_] + +.. [#] requires greek-inputenc_ + +Font encoding definitions +------------------------- + +.. _LGR font encoding definition file: + +``_ + `Common Greek font encoding definitions `_ + +``_ + `LGR Greek font encoding definitions. `_ + + .. _tuenc-greek: + +``_ + `Extended Greek definitions for the TU font encoding `_ + +``_ + `Extended Greek definitions for PDF strings `_ + +Auxiliary files +--------------- + +``_ + Composite definitions for alphabeta_ with 8-bit TeX. +``_ + Composite definitions for alphabeta_ with XeTeX/LuaTeX. +``_ + Backwards compatibility file loading tuenc-greek.def_. +``_ + `LGR Transcription to Greek LICR transformation `_. + Provisional. + +The source files can be converted with PyLit_ to reStructuredText_ and +with Docutils_ to the HTML documentation. + + +Usage examples and test documents +================================= + +LGR test and usage example + ``_, ``_ + +TU test and usage example + ``_, ``_ + +Hyperref_ test and usage example + ``_, ``_ + +Test LICRs with non-Greek legacy 8-bit input encoding + ``_, ``_ + +Greek diacritics with standard accent macros + ``_, ``_ + + +Download and Installation +========================= + +The simplest way is to install this package from your distribution using +its installation manager. + +Alternatively: + +* Download the latest `release`_ from the package's `CTAN page`_ or a + snapshot_ of the `greek-tex`_ repository. + +* Unpack the source archive to a temporary location. + +* Copy/Move/Link files ending in ``.def`` or ``.sty`` to a suitable place in + the TeX search path. + +.. _release: + https://mirrors.ctan.org/language/greek/greek-fontenc.zip +.. _CTAN page: https://www.ctan.org/pkg/greek-fontenc +.. _greek-tex: https://codeberg.org/milde/greek-tex/ +.. _snapshot: https://codeberg.org/milde/greek-tex/archive/master.zip + + +Conflicts +========= + +The arabi_ package provides the Babel ``arabic`` option which loads +``arabicfnt.sty`` for font setup. This package overwrites the LICR macros +``\omega`` and ``\textomega`` with font selecting commands. See the report +for Debian `bug 858987`_ for details and the `arabi workaround`_ below. + +.. _bug 858987: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858987 + +Usage +===== + +There are several alternatives to set up the support for a Greek font +encoding provided by this bundle, e.g.: + +Babel: + Use the ``greek`` option with Babel_:: + + \usepackage[greek]{babel} + + This automatically loads ``lgrenc.def`` with 8-bit TeX and + ``tuenc-greek.def`` with XeTeX/LuaTeX and provides localized auto-strings, + hyphenation and other localizations (see babel-greek_). + + Babel can be used together with textalpha_ or alphabeta_. + +textalpha_: + Ensure support for Greek characters in text mode:: + + \usepackage{textalpha} + + eventually with the normalize-symbols_ option to handle `symbol variants`_ + and/or the keep-semicolon_ option to use the `semicolon as erotimatiko`_ + also in LGR :: + + \usepackage[normalize-symbols,keep-semicolon]{textalpha} + + This sets up LICR macros for Greek text charactes under both, 8-bit TeX + and Xe-/LuaTeX. + For details see ``_ and ``_ (8-bit + TeX) as well as ``_ and ``_ + (XeTeX/LuaTeX). + + .. _normalize-symbols: textalpha.sty.html#normalize-symbols + .. _keep-semicolon: textalpha.sty.html#keep-semicolon + .. _semicolon as erotimatiko: textalpha.sty.html#semicolon-as-erotimatiko + +alphabeta_: + To use the short macro names (``\alpha`` ... ``\Omega``) known from math + mode in both, text and math mode, write :: + + \usepackage{alphabeta} + + For details see ``_ and ``_. + +fontenc: + Declare LGR via fontenc_. For example, specify T1 (8-bit + Latin) as default font encoding and LGR for Greek with :: + + \usepackage[LGR,T1]{fontenc} + + Note that without textalpha_ or alphabeta_, Greek text macros work + only if the current font encoding supports Greek. See [fntguide]_ for + details and ``_ for an example. + + It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding + also with XeTeX/LuaTeX, if the fontenc_ package is loaded before + Babel, textalpha_, or alphabeta_, e.g. :: + + \usepackage[LGR]{fontenc} + \usepackage{fontspec} + \setmainfont{Linux Libertine O} % Latin Modern does not support Greek + \setsansfont{Linux Biolinum O} + \usepackage{textalpha} + + See ``_, ``_ and + ``_, ``_. + +.. _arabi workaround: + +To work around the conflict with arabi_, it may suffice to ensure ``greek`` +is loaded after ``arabic``:: + + \usepackage[arabic,greek,english]{babel} + +More secure is an explicit reverse-definition, e.g. :: + + % save original \omega + \let\mathomega\omega + + \usepackage[utf8]{inputenc} + \usepackage[LAE,LGR,T1]{fontenc} + \usepackage[arabic,greek,english]{babel} + + % fix arabtex: + \DeclareTextSymbol{\textomega}{LGR}{119} + \renewcommand{\omega}{\mathomega} + + +Greek text font encodings +========================= + +Greek TeX font encodings are the envisaged T7_, LGR_, and LGI_. +Greek letters and symbols are also defined in the Unicode-based font +encodings TU_, and PU_. + +T7 +-- + +The [encguide]_ reserves the name T7 for a Greek `standard font encoding`. +However, up to now, there is no agreement on an implementation because the +restrictions for general text encodings are too severe for typesetting +polytonic Greek. + +LGR +--- + +The LGR font encoding is the de-facto standard for typesetting Greek with +(8-bit) LaTeX. `greek-fontenc` provides a comprehensive `LGR font +encoding definition file`_. + +Fonts in this encoding include the `CB fonts`_ (matching CM), grtimes_ +(Greek Times), Kerkis_ (matching URW Bookman), DejaVu_, `Libertine GC`_, and +the `GFS fonts`_. Setup of these fonts as Greek variant to +matching Latin fonts is facilitated by the substitutefont_ package. + + +The LGR font encoding allows to access Greek characters via an ASCII +transliteration. This enables simple input with a Latin keyboard. +Characters with diacritics can be selected by ligature definitions in the +font (see [greek-usage]_, [teubner-doc]_, [cbfonts]_). + +A major drawback of the transliteration is, that you cannot access Latin +letters if LGR is the active font encoding (e.g. in documents or parts of +documents given the `Babel` language ``greek`` or ``polutionikogreek``). +This means that for every Latin-written word or acronym an explicit +language-switch is required. This problem can only be solved via a +font-encoding comprising Latin and Greek like the envisaged T7_ or +Unicode (with XeTeX or LuaTeX). + +LGI +--- + +The ‘Ibycus’ fonts from the package ibygrk_ implement an alternative +transliteration scheme (also explained in [babel-patch]_). +It is currently not supported by `greek-fontenc`. + +The font encoding file ``lgienc.def`` from ibycus-babel_ provides a basic +setup (without any LICR macros or composite definitions). + +TU +-- + +Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec_ +(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [ltnews26]_. +`greek-fontenc` adds support for the Greek script (see tuenc-greek_). + +Xe/LuaTeX works with any system-wide installed `OpenType font`_. Suitable +fonts supporting Greek include `CM Unicode`_, `Deja Vu`_, `EB Garamond`_, +the `GFS fonts`_, `Libertine OTF`_, `Libertinus`_, `Old Standard`_, +Tempora_, and `UM Typewriter`_ (all available on CTAN) but also many commercial +fonts. Unfortunately, the fontspec_ default, `Latin Modern`_ misses most +Greek characters. + +Older versions of LuaTeX did not apply the NFC normalization. This lead to +suboptimal placing of some diactritics, especially the sub-iota (becoming +unintelligable in combination with small letter eta). This issue if fixed +since at least 2022. + +The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX +respectively were superseded by TU in the 2017 fontspec_ release. + +PU +-- + +The package hyperref_ defines the PU font encoding for use in PDF strings +(ToC, bookmarks) which supports monotonic Greek. `greek-fontenc` adds +support for polytonic Greek and some archaic characters also supported in +LGR and TU (see ``_, ``_). + + +Greek LICR macro names +====================== + +.. note:: The LICR macro names for Greek symbols are chosen pending + endorsement by the TeX community and related packages. + + Names for archaic characters, accents/diacritics, and + punctuation may change in future versions. + +This bundle provides LaTeX internal character representations (LICR macros) +for Greek letters and diacritics. Macro names were selected based on the +following considerations: + +letters and symbols +------------------- + +* 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``. + + Problem: + 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. However, these are not intended for active use. + +* If there exists a **math-mode macro** for a symbol, the corresponding text + macro could be formed 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 is + made available as ``\textvarsigma``. + + Problem: + `Symbol variants`_ (see below). + +* 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 LICR macros, they can be either + + i. used as inspiration for new LICR macro names or + ii. converted to LICR macro names via a defined set of transformation rules. + + Example: + ``\textfinalsigma`` is a descriptive alias 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", + + ``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 (``\textcyr``). + + There are examples of encoding-specific macros + without the ``text``-prefix, especially for letters, see encguide_. + + Contra: + - Less consistent, + - possible name clashes + - ``text`` prefix marks a macro as confined to text (as opposed to math) + mode, + + The font encoding definition files use the ``text`` prefix for symbols. + Aliases (short forms, compatibility defs, etc.) are defined in + additional packages (e.g. alphabeta.sty_, `babel-greek`_, or teubner_) + + +accent macros +------------- + +* standard accent macros (``\DeclareTextAccent`` definitions in + ``latex/base/...``) are one-character macros (``\' \" ... \u \v ...``) . + +* ``tipa.sty``, xunicode_, and ucs_ use the "text" prefix also for accents. + + However, the `Adobe Glyph List For New Fonts`_ maps, e.g., "tonos" and + "dieresistonos" to the spacing characters GREEK TONOS and GREEK DIALYTIKA + TONOS, hence `\texttonos` and `\textdiaresistonos` should be spacing + characters. + +* textcomp (ts1enc.def) defines ``\capital...`` accents (i.e. without + ``text`` prefix). + +Currently, `greek-fontenc` uses for diacritics: + +- Greek names like in Unicode, and ``ucsencs.def``, and + +- the prefix ``\acc`` to distinguish the macros as `TextAaccent` and + reduce the risc of name clashes with spacing characters. + +For the end-user "symbol macros" (``\~ \' \` \" \"' \"` ...``) are +provided. (With textalpha_ or alphabeta_ also ``\<`` and ``\>`` for +``\accdasia`` and ``\accpsili``.) + + +symbol variants +--------------- + +Mathematical notation distinguishes variant shapes for beta (β|ϐ), +theta (θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), +and epsilon (ε|ϵ). + +The variations have no syntactic meaning in Greek text and Greek text +fonts use the shape variants indiscriminately (cf. `glyph variants`__). +The variant shapes are not given separate code-points in the LGR_ text +font encoding. + +In mathematical mode, TeX supports the alternative glyph variants with +``\var`` macros (variant macros for ϴ, ϐ, and ϰ require +additional packages). + +Unicode defines separate code points for the symbol variants for use in +mathematical context. [#]_ Unfortunately, the mapping between Unicode's +letter/symbol distinction and "normal"/variant in TeX is inconsistent. + +`greek-fontenc` provides ``\textsymbol`` LICR macros for the +Greek symbol characters: + +* With Unicode fonts, the macros select the GREEK SYMBOL``. + +* With LGR encoded fonts, they report an error by default. + + With the ``normalize-symbols`` option of textalpha_ and alphabeta_, + they are mapped to the corresponding letter (loosing the distinction + between the shape variants). + +The `alphabeta`_ package provides ``\``, ``\var``, +and ``\symbol`` in both, text and math mode (cf. Table 1 in +``_). + + +.. [#] However, they are sometimes also used in place of the + corresponding letter characters in Unicode-encoded text. + +__ http://en.wikipedia.org/wiki/Greek_alphabet#Glyph_variants + +Changelog +========= + +0.9 (2013-07-03) + - ``greek-fontenc.def`` "outsourced" from ``lgrxenc.def`` + - experimental LICRs for XeTeX/LuaTeX. +0.9.1 (2013-07-18) + - Bugfix: wrong breathings psilioxia -> dasiaoxia. +0.9.2 (2013-07-19) + - Bugfix: Disable composite defs starting with char macro, + - Fix "hiatus" handling. +0.9.3 (2013-07-24) + - Fix path for ``\input`` of ``greek-fontenc.def``. +0.9.4 (2013-09-10) + - ``greek-fontenc.sty``: Greek text font encoding setup package. + - remove ``xunicode-greek.sty``. +0.10 (2013-09-13) + - textalpha_ and alphabeta_ moved here from lgrx and updated to work + with XeTeX/LuaTeX. + - ``greek-fontenc.sty`` removed (obsoleted by textalpha_). +0.10.1 (2013-10-01) + - Bugfix in ``greek-euenc.def`` and ``alphabeta-euenc.def``. +0.11 (2013-11-28) + - Compatibility with Xe/LuaTeX in 8-bit mode. + - ``\greekscript`` *TextCommand* (cf. [encguide]_). +0.11.1 (2013-12-01) + - Fix identification of ``greek-euenc.def``. +0.11.2 (2014-09-04) + - Documentation update, remove duplicate code. +0.12 (2014-12-25) + - Fix auxiliary macro names in textalpha_. + - Conservative naming: move definition of ``\<`` and ``\>`` from + ``greek-fontenc.def`` to ``textalpha.sty`` (Bugreport David Kastrup). +0.13 (2015-09-04) + - Support for `symbol variants`_, + - ``keep-semicolon`` option in textalpha_, + - ``\lccode``/``\uccode`` corrections for Unicode + (from Apostolos Syropoulos’ xgreek_) in greek-euenc. + - Do not convert ``\ypogegrammeni`` to ``\prosgegrammeni`` + with ``\MakeUppercase``. +0.13.1 (2015-12-07) + - Fix `rho with dasia bug`__ in lgrenc.def (Linus Romer). +0.13.2 (2016-02-05) + - Support for standard Unicode text font encoding "TU" + (new in fontspec v2.5a). +0.13.3 (2019-07-10) + - Drop error font declaration (cf. `ltxbugs 4399`_). +0.13.4 (2019-07-11) + - "Lowercase" ``\prosgegrammeni`` -> ``\ypogegrammeni`` + but not vice versa. +0.14 (2020-02-28) + - Rename ``greek-euenc`` to ``tuenc-greek``. + - Use ``\UTFencoding`` instead of ``\LastDeclaredEncoding``. +1.0 (2020-09-25) + - Bugfix in textalpha_: Let ``\greekscript`` set ``\encodingdefault``. + - ``\textKoppa`` as alias for ``\textkoppa`` in LGR. +2.0 (2020-10-30) + - Move common alias definitions to ``greek-fontenc.def``. + - textalpha_ loads TU with Xe/LuaTeX by default and provides + ``\textmicro`` and LICR macros for archaic symbols from the + "Greek and Coptic" Unicode block. + - Use ``\UnicodeEncodingName`` (by the LaTeX kernel) instead of + ``\UTFencname`` for the Unicode font encoding name. + - Replace utf8 literals in ``tuenc-greek.def``. + - New file ``puenc-greek.def``: setup for PU encoding defined by + hyperref_ for PDF strings. + - Don't use ``\textcompwordmark`` as base in accent commands. +2.1 (2022-06-14) + - Support the correct spelling ``\guillemet…`` for « and ». + See https://github.com/latex3/latex2e/issues/65 +2.2 (2023-02-28) + - Use correct glyph for ``\textanoteleia`` (middle dot) in LGR. + - Test and add composite commands for combinations that are not + converted to pre-composed characters. + - Don't use ``\makeatother`` in ``\AtBeginDocument``. + - Skip ``\uccode`` fixes when ignored by ``\MakeUppercase``. + - Various small fixes and documentation update. + +__ http://tex.stackexchange.com/questions/281631/greek-small-rho-with-dasia-and-also-psili-problem-with-accent-and-lgr-encodin +.. _ltxbugs 4399: + https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex%2F4399&search= + + +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. + +.. [babel-patch] Werner Lemberg, `Unicode support for the Greek LGR + encoding` Εὔτυπον, τεῦχος № 20, 2008. + http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf +.. [cbfonts] Claudio Beccari, `The CB Greek fonts`, Εὔτυπον, τεῦχος № 21, 2008. + http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf +.. [encguide] Frank Mittelbach, Robin Fairbairns, Werner Lemberg, + LaTeX3 Project Team, `LaTeX font encodings`. + https://mirrors.ctan.org/macros/latex/base/encguide.pdf +.. [fntguide] LaTeX3 Project Team, `LaTeX2ε font selection`. + https://mirrors.ctan.org/macros/latex/base/fntguide.pdf +.. [greek-usage] Apostolos Syropoulos, `Writing Greek with the greek option + of the babel package`, 1997. + https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf +.. [ltnews26] LaTeX Project Team, `LaTeX News` Issue 26, January 2017. + https://www.latex-project.org/news/latex2e-news/ltnews26.pdf +.. [teubner-doc] Claudio Beccari, ``teubner.sty`` + `An extension to the greek option of the babel package`, 2011. + https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf + +.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt +.. _PyLit: https://pypi.org/project/pylit/ +.. _reStructuredText: https://docutils.sourceforge.io/rst.html +.. _Docutils: https://docutils.sourceforge.io/rst.html + +.. _Adobe Glyph List For New Fonts: + http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/aglfn.txt +.. _Adobe Glyph List: + http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt +.. _Unicode names list: http://www.unicode.org/Public/UNIDATA/NamesList.txt +.. _XML Entity Definitions for Characters: + http://www.w3.org/TR/xml-entity-names/ +.. _CB fonts: https://ctan.org/pkg/cbgreek-complete +.. _CM Unicode: https://ctan.org/pkg/cm-unicode +.. _Deja Vu: http://dejavu-fonts.org +.. _EB Garamond: https://ctan.org/pkg/ebgaramond +.. _GFS fonts: https://ctan.org/pkg/gfs +.. _Kerkis: https://ctan.org/pkg/kerkis +.. _Latin Modern: http://www.gust.org.pl/projects/e-foundry/latin-modern +.. _Libertine OTF: https://ctan.org/pkg/libertineotf +.. _Libertine GC: https://ctan.org/pkg/libertinegc +.. _Libertinus: https://ctan.org/pkg/libertinus +.. _Old Standard: https://ctan.org/pkg/oldstandard +.. _OpenType Font: https://ctan.org/topic/font-otf +.. _UM Typewriter: https://ctan.org/pkg/umtypewriter +.. _amssymb: https://ctan.org/pkg/amsfonts +.. _arabi: https://ctan.org/pkg/arabi +.. _babel-greek: https://ctan.org/pkg/babel-greek +.. _babel: https://ctan.org/pkg/babel +.. _dejavu: https://ctan.org/pkg/dejavu +.. _fontenc: https://ctan.org/pkg/fontenc +.. _fontspec: https://ctan.org/pkg/fontspec +.. _greek-inputenc: https://ctan.org/pkg/greek-inputenc +.. _grtimes: https://ctan.org/pkg/grtimes +.. _hyperref: https://ctan.org/pkg/hyperref +.. _ibycus-babel: https://ctan.org/pkg/ibycus-babel +.. _ibygrk: https://ctan.org/pkg/ibygrk +.. _lgrx: https://ctan.org/pkg/lgrx +.. _libertine: https://ctan.org/pkg/libertine-legacy +.. _lua-uni-algos: https://ctan.org/pkg/lua-uni-algos +.. _substitutefont: https://ctan.org/pkg/substitutefont +.. _tempora: https://ctan.org/pkg/tempora +.. _teubner: https://ctan.org/pkg/teubner +.. _ucs: https://ctan.org/pkg/unicode +.. _unicode-math: https://ctan.org/pkg/unicode-math +.. _xgreek: https://ctan.org/pkg/xgreek +.. _xunicode: https://ctan.org/pkg/xunicode diff --git a/language/greek/greek-fontenc/greek-fontenc.def b/language/greek/greek-fontenc/greek-fontenc.def index 8f90f9362e..d7db6ff2ce 100644 --- a/language/greek/greek-fontenc/greek-fontenc.def +++ b/language/greek/greek-fontenc/greek-fontenc.def @@ -12,24 +12,12 @@ % :: \ProvidesFile{greek-fontenc.def} -[2020/10/30 2.0 Common Greek font encoding definitions] +[2023/02/28 2.2 Common Greek font encoding definitions] % :Abstract: This file provides definitions that are shared between % font encodings providing Greek characters. % -% Changelog: -% .. class:: borderless -% -% ====== ============ ========================================================= -% 0.9 2013-07-03 code "outsourced" from lgrxenc.def -% 0.9.1 2013-07-17 composite definitions starting with standard accent cmds -% 0.11 2013-11-28 ``\greekscript`` TextCommand -% 0.12 2014-12-12 Remove symbol macros for breathing accents. -% 0.13 2015-08-04 No @uclclist entry for ypogegrammeni/prosgegrammeni. -% 0.13.4 2019-07-10 ``@uclclist`` entry for ``\prosgegrammeni``. -% 1.0 2020-09-25 ``\textKoppagreek`` and ``\textstigmagreek`` aliases. -% 2.0 2020/10/30 Alias definitions matching mathematical variant symbols. -% ====== ============ ========================================================= +% .. contents:: % % Usage % ----- @@ -54,7 +42,7 @@ % ``\ensuregreek{A}\ensuregreek{\Upsilon}``) is preserved. This allows, e.g., % wrapping of compound Unicode character definitions. :: -\ProvideTextCommand{\ensuregreek}{\LastDeclaredEncoding}[1]{#1} +\ProvideTextCommand{\ensuregreek}{\LastDeclaredEncoding}{\@firstofone} % The ``\greekscript`` declaration switches to a font encoding supporting % the Greek script, if required. The following definition announces the @@ -68,8 +56,8 @@ % % Aliases are defined via `DeclareTextCommand` so that up/downcasing works % without the need for additional uclclist_ entries. - - +% +% % Names matching mathematical variant symbols:: % \var... matching GREEK ... SYMBOL @@ -86,18 +74,19 @@ % Compatibility aliases for hyperref_'s puenc.def:: +\DeclareTextCommand{\textnumeralsigngreek}{\LastDeclaredEncoding}{\textdexiakeraia} +\DeclareTextCommand{\textnumeralsignlowergreek}{\LastDeclaredEncoding}{\textaristerikeraia} + \DeclareTextCommand{\textmugreek}{\LastDeclaredEncoding}{\textmu} -\DeclareTextCommand{\textkoppagreek}{\LastDeclaredEncoding}{\textkoppa} -\DeclareTextCommand{\textKoppagreek}{\LastDeclaredEncoding}{\textKoppa} \DeclareTextCommand{\textStigmagreek}{\LastDeclaredEncoding}{\textStigma} \DeclareTextCommand{\textstigmagreek}{\LastDeclaredEncoding}{\textstigma} +\DeclareTextCommand{\textDigammagreek}{\LastDeclaredEncoding}{\textDigamma} +\DeclareTextCommand{\textdigammagreek}{\LastDeclaredEncoding}{\textdigamma} +\DeclareTextCommand{\textKoppagreek}{\LastDeclaredEncoding}{\textKoppa} +\DeclareTextCommand{\textkoppagreek}{\LastDeclaredEncoding}{\textkoppa} \DeclareTextCommand{\textSampigreek}{\LastDeclaredEncoding}{\textSampi} \DeclareTextCommand{\textsampigreek}{\LastDeclaredEncoding}{\textsampi} -\DeclareTextCommand{\textdigammagreek}{\LastDeclaredEncoding}{\textdigamma} -\DeclareTextCommand{\textDigammagreek}{\LastDeclaredEncoding}{\textDigamma} -\DeclareTextCommand{\textnumeralsigngreek}{\LastDeclaredEncoding}{\textdexiakeraia} -\DeclareTextCommand{\textnumeralsignlowergreek}{\LastDeclaredEncoding}{\textaristerikeraia} % Names from babel_ and teubner_ (do we want to define them here as alias?) % @@ -142,7 +131,7 @@ % ~~~~~~~~~~~~~~~~~~~~ % % Composite accents can be input as sequence of simple diacritics (in -% arbitrary order) via named macro, symbol macro and "transcription +% arbitrary order) via named macro, symbol macro and "transliteration % characters", e.g. one of % % .. code:: latex @@ -156,13 +145,14 @@ % 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 +% The composition with simple "transliteration characters" must also be defined % for the symbol macros, otherwise it fails with ``\Makeuppercase``. % -% For Unicode encodings (where they do not resolve to Greek named macros, +% For Unicode encodings (where they do not resolve to Greek named macros), % composite definitions starting with standard macros are requried:: \DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\acctonos}{\accdialytikatonos} +\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\accoxia}{\accdialytikatonos} \DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\'}{\accdialytikatonos} \DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{'}{\accdialytikatonos} \DeclareTextCompositeCommand{\"}{\LastDeclaredEncoding}{\'}{\accdialytikatonos} @@ -231,6 +221,7 @@ \DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{>}{\accpsiliperispomeni} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\acctonos}{\accpsilioxia} +\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accoxia}{\accpsilioxia} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\'}{\accpsilioxia} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{'}{\accpsilioxia} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accvaria}{\accpsilivaria} @@ -241,6 +232,7 @@ \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{~}{\accpsiliperispomeni} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\acctonos}{\accdasiaoxia} +\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accoxia}{\accdasiaoxia} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\'}{\accdasiaoxia} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{'}{\accdasiaoxia} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accvaria}{\accdasiavaria} @@ -254,23 +246,37 @@ % UPPERCASE % ~~~~~~~~~ % -% If UPPERCASE (all-caps) is generated with ``\MakeUppercase``, macro -% substitutions in the ``\@uclclist`` apply. This can be used to drop the -% diacritics (except dialytika and `iota subscript`__). Different conventions -% exist for the `treatment of the iota subscript with uppercase letters`__. In -% the CB Fonts, a small capital adscript iota is used. +% UPPERCASE (all-caps) is generated with ``\MakeUppercase``. The +% implementation of this command changed in June 2022 [ltnews35]_. +% +% According to Greek typographical tradition, diacritics (except dialytika, +% iota subscript, macron, and breve) are placed before capital letters in +% Titlecase and dropped in UPPERCASE. +% +% Different conventions exist for the treatment of the `mute iota`_ with +% uppercase letters. The traditional typographic form and the most common +% used in Greece is a subscript, corresponding to the COMBINING GREEK +% YPOGEGRAMMENI (U+0345). Even if the pre-composed characters are named ... +% WITH [... AND] PROSGEGRAMMENI, capitalization should not use the GREEK +% PROSGEGRAMMENI (U+1FBE) [Nicholas-03]_, [Haralambous-98]_. Upper case +% glyphs with adscript are a stylistic choice, provided by the font. In the +% CB Fonts, a small capital adscript iota is used. +% +% Up to 2022/06, macro substitutions in the ``\@uclclist`` could be used to +% get the expected behaviour: % -% __ https://en.wikipedia.org/wiki/Iota_subscript -% __ https://opoudjis.net/unicode/unicode_adscript.html % % @uclclist extension % """"""""""""""""""" % -% Based on the `babel patch`_ and ``fontenc.sty``. +% Based on Werner Lemberg's 2008 `babel patch`_ and ``fontenc.sty``. % % The definition of an auxiliary, self-resetting macro makes this idempotent % (only the first use of this function will expand the ``@uclclist``). -% The second and third lines are TeX' way of writing ``uclclist += …``:: +% The second and third lines are TeX' way of writing ``uclclist += …`` +% +% The ``\LGR@…`` auxiliary macros are defined below. +% :: \providecommand*\update@uclc@with@greek{% \expandafter\def\expandafter\@uclclist\expandafter{% @@ -330,7 +336,6 @@ \update@uclc@with@greek - % Substitution macros % """"""""""""""""""" % @@ -338,16 +343,17 @@ \DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1} - % Keep dialytika: Define a dummy alias so that downcasing with % ``\MakeLowercase`` does not convert a simple dialytika to a composite % accent:: \DeclareTextCommand{\LGR@accDialytika}{\LastDeclaredEncoding}{\accdialytika} \DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@hiatus}{\accdialytika} +\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@accdropped}{\accdialytika} -% Convert ``\prosgegrammeni`` (adscript iota) to ``\ypogegrammeni`` -% (subscript iota) but not vice versa:: +% The prosgegrammeni (adscript iota) is used only with capital letters. +% We define a dummy macro to enable the conversion of ``\prosgegrammeni`` +% to ``\ypogegrammeni`` (subscript iota) but not vice versa:: \DeclareTextCommand{\LGR@ypogegrammeni}{\LastDeclaredEncoding}{\ypogegrammeni} @@ -388,26 +394,53 @@ \reserved@b } - -% .. References -% ---------- +% Changes +% ------- +% +% .. class:: borderless +% +% ====== ============ ======================================================== +% 0.9 2013-07-03 code "outsourced" from lgrxenc.def +% 0.9.1 2013-07-17 composite definitions starting with standard accent cmds +% 0.11 2013-11-28 ``\greekscript`` TextCommand +% 0.12 2014-12-12 Remove symbol macros for breathing accents. +% 0.13 2015-08-04 No @uclclist entry for ypogegrammeni/prosgegrammeni. +% 0.13.4 2019-07-10 ``@uclclist`` entry for ``\prosgegrammeni``. +% 1.0 2020-09-25 ``\textKoppagreek`` and ``\textstigmagreek`` aliases. +% 2.0 2020/10/30 Alias definitions matching mathematical variant symbols. +% 2.2 2023-02-28 Add missing accent composite commands. +% ====== ============ ======================================================== +% +% +% References +% ---------- +% +% .. [Haralambous-98] Yannis Haralambous +% `From Unicode to Typography, a Case Study: the Greek Script`, 1998. +% https://hal.science/hal-02101618 +% .. [ltnews35] LaTeX Project Team `LaTeX News 35`, June 2022. +% https://www.latex-project.org/news/latex2e-news/ltnews35.pdf +% .. [Nicholas-03] Nick Nicholas `Titlecase and Adscripts` 2003. +% https://opoudjis.net/unicode/unicode_adscript.html +% +% .. _mute iota: https://en.wikipedia.org/wiki/Iota_subscript % % .. _alphabeta: alphabeta.sty.html -% .. _athnum: http://ctan.org/pkg/athnum -% .. _Babel: http://ctan.org/pkg/babel +% .. _athnum: https://ctan.org/pkg/athnum +% .. _Babel: https://ctan.org/pkg/babel % .. _babel patch: http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf -% .. _fntguide: http://mirror.ctan.org/macros/latex/base/fntguide.pdf -% .. _fontenc: http://ctan.org/pkg/fontenc -% .. _hyperref: http://ctan.org/pkg/hyperref -% .. _ibycus: http://ctan.org/pkg/ibycus-babel +% .. _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: http://ctan.org/pkg/lgrx -% .. _ltxcmds: http://ctan.org/pkg/ltxcmds -% .. _teubner: http://ctan.org/pkg/teubner +% .. _lgrenc.def: lgrenc.def.html +% .. _teubner: https://ctan.org/pkg/teubner % .. _teubner-doc: -% http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf +% https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf % .. _textalpha: textalpha.sty.html -% .. _ucs: http://ctan.org/pkg/unicode -% -% .. _lgrenc.def: lgrenc.def.html % .. _tuenc-greek.def: tuenc-greek.def.html +% .. _ucs: https://ctan.org/pkg/unicode +% +% +% diff --git a/language/greek/greek-fontenc/greek-fontenc.def.html b/language/greek/greek-fontenc/greek-fontenc.def.html index eb428d0557..488bee24e9 100644 --- a/language/greek/greek-fontenc/greek-fontenc.def.html +++ b/language/greek/greek-fontenc/greek-fontenc.def.html @@ -1,18 +1,19 @@ - - -greek-fontenc.def + + + +greek-fontenc.def - +

greek-fontenc.def

Common Greek font encoding definitions

- + -
Licence
+
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.

-
Identification
+
Identification:
\ProvidesFile{greek-fontenc.def}
-[2020/10/30 2.0 Common Greek font encoding definitions]
+[2023/02/28 2.2 Common Greek font encoding definitions]
-
+

Abstract

This file provides definitions that are shared between font encodings providing Greek characters.

-
-
Changelog:
-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0.9

2013-07-03

code “outsourced” from lgrxenc.def

0.9.1

2013-07-17

composite definitions starting with standard accent cmds

0.11

2013-11-28

\greekscript TextCommand

0.12

2014-12-12

Remove symbol macros for breathing accents.

0.13

2015-08-04

No @uclclist entry for ypogegrammeni/prosgegrammeni.

0.13.4

2019-07-10

@uclclist entry for \prosgegrammeni.

1.0

2020-09-25

\textKoppagreek and \textstigmagreek aliases.

2.0

2020/10/30

Alias definitions matching mathematical variant symbols.

-
-
+
-

Usage

+

Usage

This file is input by the font encoding definition files lgrenc.def. and tuenc-greek.def.

-

Implementation

+

Implementation

-

ensuregreek, greekscript

+

ensuregreek, greekscript

Provide “empty” encoding-specific definitions for \ensuregreek and \greekscript. The definitions in this file make the font encoding fit for use with the Greek script. (See textalpha.sty for default @@ -797,14 +849,14 @@ in a font encoding with support for Greek. If the active font encoding supports it, kerning between adjacent command calls (e.g. \ensuregreek{A}\ensuregreek{\Upsilon}) is preserved. This allows, e.g., wrapping of compound Unicode character definitions.

-
\ProvideTextCommand{\ensuregreek}{\LastDeclaredEncoding}[1]{#1}
+
\ProvideTextCommand{\ensuregreek}{\LastDeclaredEncoding}{\@firstofone}

The \greekscript declaration switches to a font encoding supporting the Greek script, if required. The following definition announces the \LastDeclaredEncoding as Greek-supporting:

\ProvideTextCommand{\greekscript}{\LastDeclaredEncoding}{}
-

Aliases

+

Aliases

Aliases are defined via DeclareTextCommand so that up/downcasing works without the need for additional uclclist entries.

Names matching mathematical variant symbols:

@@ -819,20 +871,20 @@ without the need for additional u \DeclareTextCommand{\textvarepsilon}{\LastDeclaredEncoding}{\textepsilon} % ε \DeclareTextCommand{\textvarphi}{\LastDeclaredEncoding}{\textphi} % φ \DeclareTextCommand{\textvarsigma}{\LastDeclaredEncoding}{\textfinalsigma} % ς -

Compatibility aliases for hyperref’s puenc.def:

-
\DeclareTextCommand{\textmugreek}{\LastDeclaredEncoding}{\textmu}
-\DeclareTextCommand{\textkoppagreek}{\LastDeclaredEncoding}{\textkoppa}
-\DeclareTextCommand{\textKoppagreek}{\LastDeclaredEncoding}{\textKoppa}
+

Compatibility aliases for hyperref’s puenc.def:

+
\DeclareTextCommand{\textnumeralsigngreek}{\LastDeclaredEncoding}{\textdexiakeraia}
+\DeclareTextCommand{\textnumeralsignlowergreek}{\LastDeclaredEncoding}{\textaristerikeraia}
+
+\DeclareTextCommand{\textmugreek}{\LastDeclaredEncoding}{\textmu}
 \DeclareTextCommand{\textStigmagreek}{\LastDeclaredEncoding}{\textStigma}
 \DeclareTextCommand{\textstigmagreek}{\LastDeclaredEncoding}{\textstigma}
-\DeclareTextCommand{\textSampigreek}{\LastDeclaredEncoding}{\textSampi}
-\DeclareTextCommand{\textsampigreek}{\LastDeclaredEncoding}{\textsampi}
-\DeclareTextCommand{\textdigammagreek}{\LastDeclaredEncoding}{\textdigamma}
 \DeclareTextCommand{\textDigammagreek}{\LastDeclaredEncoding}{\textDigamma}
-
-\DeclareTextCommand{\textnumeralsigngreek}{\LastDeclaredEncoding}{\textdexiakeraia}
-\DeclareTextCommand{\textnumeralsignlowergreek}{\LastDeclaredEncoding}{\textaristerikeraia}
-

Names from babel and teubner (do we want to define them here as alias?)

+\DeclareTextCommand{\textdigammagreek}{\LastDeclaredEncoding}{\textdigamma} +\DeclareTextCommand{\textKoppagreek}{\LastDeclaredEncoding}{\textKoppa} +\DeclareTextCommand{\textkoppagreek}{\LastDeclaredEncoding}{\textkoppa} +\DeclareTextCommand{\textSampigreek}{\LastDeclaredEncoding}{\textSampi} +\DeclareTextCommand{\textsampigreek}{\LastDeclaredEncoding}{\textsampi}
+

Names from babel and teubner (do we want to define them here as alias?)

\DeclareTextCommand{\anwtonos}{\LastDeclaredEncoding}{\textdexiakeraia}     % ʹ
 \DeclareTextCommand{\katwtonos}{\LastDeclaredEncoding}{\textaristerikeraia} % ͵

Two Unicode code points and names for one character:

@@ -858,9 +910,9 @@ table, LCI encoding)?

\DeclareTextCommand{\)}{\LastDeclaredEncoding}{\accpsili}
-

Composite diacritics

+

Composite diacritics

Composite accents can be input as sequence of simple diacritics (in -arbitrary order) via named macro, symbol macro and “transcription +arbitrary order) via named macro, symbol macro and “transliteration characters”, e.g. one of

\accdialyticavaria\textalpha,
 \accdialytica\accvaria\textalpha,
@@ -869,11 +921,12 @@ characters”, e.g. one of

\'"\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 +

The composition with simple “transliteration characters” must also be defined for the symbol macros, otherwise it fails with \Makeuppercase.

-

For Unicode encodings (where they do not resolve to Greek named macros, +

For Unicode encodings (where they do not resolve to Greek named macros), composite definitions starting with standard macros are requried:

\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\acctonos}{\accdialytikatonos}
+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\accoxia}{\accdialytikatonos}
 \DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\'}{\accdialytikatonos}
 \DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{'}{\accdialytikatonos}
 \DeclareTextCompositeCommand{\"}{\LastDeclaredEncoding}{\'}{\accdialytikatonos}
@@ -942,6 +995,7 @@ composite definitions starting with standard macros are requried:

\DeclareTextCompositeCommand{\~}{\LastDeclaredEncoding}{>}{\accpsiliperispomeni} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\acctonos}{\accpsilioxia} +\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accoxia}{\accpsilioxia} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\'}{\accpsilioxia} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{'}{\accpsilioxia} \DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{\accvaria}{\accpsilivaria} @@ -952,6 +1006,7 @@ composite definitions starting with standard macros are requried:

\DeclareTextCompositeCommand{\accpsili}{\LastDeclaredEncoding}{~}{\accpsiliperispomeni} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\acctonos}{\accdasiaoxia} +\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accoxia}{\accdasiaoxia} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\'}{\accdasiaoxia} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{'}{\accdasiaoxia} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accvaria}{\accdasiavaria} @@ -961,18 +1016,29 @@ composite definitions starting with standard macros are requried:

\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\~}{\accdasiaperispomeni}
-

UPPERCASE

-

If UPPERCASE (all-caps) is generated with \MakeUppercase, macro -substitutions in the \@uclclist apply. This can be used to drop the -diacritics (except dialytika and iota subscript). Different conventions -exist for the treatment of the iota subscript with uppercase letters. In -the CB Fonts, a small capital adscript iota is used.

+

UPPERCASE

+

UPPERCASE (all-caps) is generated with \MakeUppercase. The +implementation of this command changed in June 2022 [ltnews35].

+

According to Greek typographical tradition, diacritics (except dialytika, +iota subscript, macron, and breve) are placed before capital letters in +Titlecase and dropped in UPPERCASE.

+

Different conventions exist for the treatment of the mute iota with +uppercase letters. The traditional typographic form and the most common +used in Greece is a subscript, corresponding to the COMBINING GREEK +YPOGEGRAMMENI (U+0345). Even if the pre-composed characters are named … +WITH [… AND] PROSGEGRAMMENI, capitalization should not use the GREEK +PROSGEGRAMMENI (U+1FBE) [Nicholas-03], [Haralambous-98]. Upper case +glyphs with adscript are a stylistic choice, provided by the font. In the +CB Fonts, a small capital adscript iota is used.

+

Up to 2022/06, macro substitutions in the \@uclclist could be used to +get the expected behaviour:

-

@uclclist extension

-

Based on the babel patch and fontenc.sty.

+

@uclclist extension

+

Based on Werner Lemberg’s 2008 babel patch and fontenc.sty.

The definition of an auxiliary, self-resetting macro makes this idempotent (only the first use of this function will expand the @uclclist). -The second and third lines are TeX’ way of writing uclclist += …:

+The second and third lines are TeX’ way of writing uclclist += …

+

The \LGR@… auxiliary macros are defined below.

\providecommand*\update@uclc@with@greek{%
   \expandafter\def\expandafter\@uclclist\expandafter{%
     \@uclclist
@@ -1030,20 +1096,22 @@ The second and third lines are TeX’ way of writing \update@uclc@with@greek
-

Substitution macros

+

Substitution macros

Drop diacritics (The argument passing ensures that kerning is preserved)

\DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1}

Keep dialytika: Define a dummy alias so that downcasing with \MakeLowercase does not convert a simple dialytika to a composite accent:

\DeclareTextCommand{\LGR@accDialytika}{\LastDeclaredEncoding}{\accdialytika}
-\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@hiatus}{\accdialytika}
-

Convert \prosgegrammeni (adscript iota) to \ypogegrammeni -(subscript iota) but not vice versa:

+\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@hiatus}{\accdialytika} +\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@accdropped}{\accdialytika} +

The prosgegrammeni (adscript iota) is used only with capital letters. +We define a dummy macro to enable the conversion of \prosgegrammeni +to \ypogegrammeni (subscript iota) but not vice versa:

\DeclareTextCommand{\LGR@ypogegrammeni}{\LastDeclaredEncoding}{\ypogegrammeni}
-

Mark hiatus

+

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 (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, @@ -1069,11 +1137,73 @@ that does not skip over spaces.

\ifx\@let@token\reserved@d \let\reserved@b\reserved@a \fi \reserved@b } -
+
+

Changes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

0.9

2013-07-03

code “outsourced” from lgrxenc.def

0.9.1

2013-07-17

composite definitions starting with standard accent cmds

0.11

2013-11-28

\greekscript TextCommand

0.12

2014-12-12

Remove symbol macros for breathing accents.

0.13

2015-08-04

No @uclclist entry for ypogegrammeni/prosgegrammeni.

0.13.4

2019-07-10

@uclclist entry for \prosgegrammeni.

1.0

2020-09-25

\textKoppagreek and \textstigmagreek aliases.

2.0

2020/10/30

Alias definitions matching mathematical variant symbols.

2.2

2023-02-28

Add missing accent composite commands.

+
+
+

References

+
+
+[Haralambous-98] +

Yannis Haralambous +From Unicode to Typography, a Case Study: the Greek Script, 1998. +https://hal.science/hal-02101618

+
+
+[ltnews35] +

LaTeX Project Team LaTeX News 35, June 2022. +https://www.latex-project.org/news/latex2e-news/ltnews35.pdf

+
+
+[Nicholas-03] +

Nick Nicholas Titlecase and Adscripts 2003. +https://opoudjis.net/unicode/unicode_adscript.html

+
+
+
diff --git a/language/greek/greek-fontenc/greek-fontenc.html b/language/greek/greek-fontenc/greek-fontenc.html deleted file mode 100644 index a1fcfab7ac..0000000000 --- a/language/greek/greek-fontenc/greek-fontenc.html +++ /dev/null @@ -1,710 +0,0 @@ - - - - - - -greek-fontenc - - - - - - - -
-

greek-fontenc

-

Greek font encoding definition files

-
-
Author:
-

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

-

LaTeX internal character representation (LICR) macros are a -verbose but failsafe 7-bit ASCII encoding that works unaltered -under both, 8-bit TeX and XeTeX/LuaTeX. Use cases are macro -definitions and generated text

-

This bundle provides LICR macros for characters from the -Greek script and encoding definition files for -Greek text font encodings for use with fontenc (8-bit TeX) -or fontspec (XeTeX/LuaTeX).

-

Included are also the LaTeX packages textalpha and alphabeta.

-
- -
-

Changelog

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0.9

2013-07-03

greek-fontenc.def “outsourced” from lgrxenc.def

-

experimental files xunicode-greek.sty and -greek-euenc.def: LICRs for XeTeX/LuaTeX.

0.9.1

2013-07-18

Bugfix: wrong breathings psilioxia -> dasiaoxia.

0.9.2

2013-07-19

Bugfix: Disable composite defs starting with char macro,

-

fix “hiatus” handling.

0.9.3

2013-07-24

Fix “input” path in xunicode-greek and greek-euenc.def.

0.9.4

2013-09-10

greek-fontenc.sty: Greek text font encoding setup package,

-

remove xunicode-greek.sty.

0.10

2013-09-13

textalpha.sty and alphabeta.sty moved here from lgrx and -updated to work with XeTeX/LuaTeX.

-

greek-fontenc.sty removed (obsoleted by textalpha.sty).

0.10.1

2013-10-01

Bugfix in greek-euenc.def and alphabeta-euenc.def.

0.11

2013-11-28

Compatibility with Xe/LuaTeX in 8-bit mode,

-

\greekscript TextCommand.

0.11.1

2013-12-01

Fix identification of greek-euenc.def.

0.11.2

2014-09-04

Documentation update, remove duplicate code.

0.12

2014-12-25

Fix auxiliary macro names in textalpha.

-

Conservative naming: move definition of \< and \> -from greek-fontenc.def to textalpha.sty -(Bugreport David Kastrup). -Documentation update.

0.13

2015-09-04

Support for symbol variants,

-

keep-semicolon option in textalpha,

-

\lccode/\uccode corrections for Unicode -(from Apostolos Syropoulos’ xgreek) in greek-euenc,

-

Do not convert \ypogegrammeni to \prosgegrammeni -with \MakeUppercase.

0.13.1

2015-12-07

Fix rho with dasia bug in lgrenc.def (Linus Romer).

0.13.2

2016-02-05

Support for standard Unicode text font encoding “TU” -(new in fontspec v2.5a).

0.13.3

2019-07-10

Drop error font declaration (cf. ltxbugs 4399).

0.13.4

2019-07-11

@uclclist entry for \prosgegrammeni.

-

Documentation update.

0.14

2020-02-28

Update test for Unicode fonts. -Rename greek-euenc to tuenc-greek.

-

Use \UTFencoding instead of \LastDeclaredEncoding.

1.0

2020-09-25

Bugfix in textalpha: Let \greekscript set -\encodingdefault.

-

\textKoppa as alias for \textkoppa in LGR.

-

Update URLs.

2.0

2020-10-30

Move common alias definitions to greek-fontenc.def.

-

textalpha loads TU with Xe/LuaTeX by default and -provides \textmicro and LICR macros for archaic -symbols from the Greek and Coptic Unicode block.

-

Use \UnicodeEncodingName (by the LaTeX kernel) instead -of \UTFencname for the Unicode font encoding name.

-

Replace utf8 literals in tuenc-greek.def.

-

New file puenc-greek.def: setup for PU encoding -(defined by hyperref for PDF strings).

-

Don’t use \textcompwordmark as base in accent commands.

-

Documentation update.

2.1

2022-06-14

Support the correct spelling \guillemet… for « and ». -See https://github.com/latex3/latex2e/issues/65

-
-
-

TeX files

-
-
lgrenc.def
-

LGR Greek font encoding definitions.

-

This file is the successor of the basic LGR encoding definition file which -comes with babel’s Greek support and the now obsolete lgrx bundle.

-
-
tuenc-greek.def
-

Font setup for Greek with XeTeX/LuaTeX.

-
-
puenc-greek.def
-

Greek LICR definitions for PDF strings.

-
-
greek-fontenc.def
-

Common Greek font encoding definitions.

-
-
greek-euenc.def
-

Backwards compatibility file loading tuenc-greek.

-
-
textalpha.sty
-

Greek symbols in text

-

Use \textalpha\textOmega independent of font encoding and TeX -engine.

-
-
alphabeta.sty
-

Greek symbols in text and math.

-

Use \alpha\Omega independent of text/math mode, font -encoding, and TeX engine.

-
-
alphabeta-lgr.def
-

Composite definitions for 8-bit TeX..

-
-
alphabeta-tuenc.def
-

Composite definitions with XeTeX/LuaTeX..

-
-
-
-
-

Literate source files were converted with PyLit to reStructuredText and -with Docutils to the HTML documentation.

-
-
-

Documentation and test documents

-
-
Overview:
-

README, greek-fontenc.html

-
-
textalpha package documentation:
-

textalpha-doc.tex, textalpha-doc.pdf, textalpha-tu.pdf

-
-
alphabeta package documentation:
-

alphabeta-doc.tex, alphabeta-doc.pdf, alphabeta-tu.pdf

-
-
LGR test and usage example
-

test-lgrenc.tex, test-lgrenc.pdf

-
-
TU test and usage example
-

test-tuenc-greek.tex, test-tuenc-greek.pdf

-
-
Hyperref test and usage example
-

hyperref-with-greek.tex, hyperref-with-greek.pdf

-
-
Test with input encodings other than utf-8
-

test-inputenc.tex, test-inputenc.pdf

-
-
Greek diacritics with standard accent macros
-

diacritics.tex, diacritics.pdf

-
-
-
-
-

Experimental files

-

These files are still in development and will eventually be moved to/merged -with other packages or removed in future versions:

-
-
lgr2licr.lua
-

LGR Transcription to Greek LICR transformation

-
-
-
-
-

Installation

-

If possible, get the bundle from your distribution using its installation -manager.

-

Otherwise, make sure LaTeX can find the package and definition files:

-
    -
  • Download and unpack greek-fontenc.zip.

  • -
  • Copy/Move/Link files ending in .def or .sty to a suitable place in -the “TeX Directory Structure” (TDS) and run texhash, or place them in -the current working directory (e.g. for testing).

  • -
-
-
-

Conflicts

-

The arabi package provides the Babel arabic option which loads -arabicfnt.sty for font setup. This package overwrites the LICR macros -\omega and \textomega with font selecting commands. See the report -for Debian bug 858987 for details and the arabi workaround below.

-
-
-

Usage

-

There are several alternatives to set up the support for a Greek font -encoding provided by this bundle, e.g.:

-
-
Babel:
-

Use the greek option with Babel:

-
\usepackage[greek]{babel}
-

This automatically loads lgrenc.def with 8-bit TeX and -tuenc-greek.def with XeTeX/LuaTeX and provides localized auto-strings, -hyphenation and other localizations (see babel-greek).

-

Babel can be used together with textalpha or alphabeta.

-
-
textalpha:
-

Ensure support for Greek characters in text mode:

-
\usepackage{textalpha}
-

eventually with the normalize-symbols option to handle symbol variants -and/or the keep-semicolon option to use the semicolon as erotimatiko -also in LGR

-
\usepackage[normalize-symbols,keep-semicolon]{textalpha}
-

This sets up LICR macros for Greek text charactes under both, 8-bit TeX -and Xe-/LuaTeX. -For details see textalpha-doc.tex and textalpha-doc.pdf (8-bit -TeX) as well as test-tuenc-greek.tex and test-tuenc-greek.pdf -(XeTeX/LuaTeX).

-
-
alphabeta:
-

To use the short macro names (\alpha\Omega) known from math -mode in both, text and math mode, write

-
\usepackage{alphabeta}
-

For details see alphabeta-doc.tex and alphabeta-doc.pdf.

-
-
fontenc:
-

Declare LGR via fontenc. For example, specify T1 (8-bit -Latin) as default font encoding and LGR for Greek with

-
\usepackage[LGR,T1]{fontenc}
-

Note that without textalpha or alphabeta, Greek text macros work -only if the current font encoding supports Greek. See [fntguide] for -details and test-lgrenc.tex for an example.

-

It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding -also with XeTeX/LuaTeX, if the fontenc package is loaded before -Babel, textalpha, or alphabeta, e.g.

-
\usepackage[LGR]{fontenc}
-\usepackage{fontspec}
-\setmainfont{Linux Libertine O} % Latin Modern does not support Greek
-\setsansfont{Linux Biolinum O}
-\usepackage{textalpha}
-

See test-tuenc-greek.tex, test-tuenc-greek.pdf and -test-lgrenc.tex, test-lgrenc.pdf.

-
-
-

To work around the conflict with arabi, it may suffice to ensure greek -is loaded after arabic:

-
\usepackage[arabic,greek,english]{babel}
-

More secure is an explicit reverse-definition, e.g.

-
% save original \omega
-\let\mathomega\omega
-
-\usepackage[utf8]{inputenc}
-\usepackage[LAE,LGR,T1]{fontenc}
-\usepackage[arabic,greek,english]{babel}
-
-% fix arabtex:
-\DeclareTextSymbol{\textomega}{LGR}{119}
-\renewcommand{\omega}{\mathomega}
-
-
-

Greek text font encodings

-

Greek TeX font encodings are the envisaged T7, LGR, and LGI. -Greek letters and symbols are also defined in the Unicode-based font -encodings TU, and PU.

-
-

T7

-

The [encguide] reserves the name T7 for a Greek standard font encoding. -However, up to now, there is no agreement on an implementation because the -restrictions for general text encodings are too severe for typesetting -polytonic Greek.

-
-
-

LGR

-

The LGR font encoding is the de-facto standard for typesetting Greek with -(8-bit) LaTeX. greek-fontenc provides a comprehensive LGR font -encoding definition file.

-

Fonts in this encoding include the CB fonts (matching CM), grtimes -(Greek Times), Kerkis (matching URW Bookman), DejaVu, Libertine GC, and -the GFS fonts. Setup of these fonts as Greek variant to -matching Latin fonts is facilitated by the substitutefont package.

-

The LGR font encoding allows to access Greek characters via an ASCII -transliteration. This enables simple input with a Latin keyboard. -Characters with diacritics can be selected by ligature definitions in the -font (see [greek-usage], [teubner-doc], [cbfonts]).

-

A major drawback of the transliteration is, that you cannot access Latin -letters if LGR is the active font encoding (e.g. in documents or parts of -documents given the Babel language greek or polutionikogreek). -This means that for every Latin-written word or acronym an explicit -language-switch is required. This problem can only be solved via a -font-encoding comprising Latin and Greek like the envisaged T7 or -Unicode (with XeTeX or LuaTeX).

-
-
-

LGI

-

The ‘Ibycus’ fonts from the package ibygrk implement an alternative -transliteration scheme (also explained in [babel-patch]). -It is currently not supported by greek-fontenc.

-

The font encoding file lgienc.def from ibycus-babel provides a basic -setup (without any LICR macros or composite definitions).

-
-
-

TU

-

Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec -(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [LaTeX2e News Issue 26]_. -greek-fontenc adds support for the Greek script (see tuenc-greek).

-

Xe/LuaTeX works with any system-wide installed OpenType font. Suitable -fonts supporting Greek include CM Unicode, Deja Vu, EB Garamond, -the GFS fonts, Libertine OTF, Libertinus, Old Standard, -Tempora, and UM Typewriter (all available on CTAN) but also many commercial -fonts. Unfortunately, the fontspec default, Latin Modern misses most -Greek characters.

-

XeTeX uses the Unicode NFC normalization, so that combining characters -are merged with the base character if a pre-composed character exists. This -results in better looking output for characters with multiple diacritics. -Unfortunately, LuaTeX does not apply the NFC normalization. This leads to -suboptimal placing of some diactritics, especially the sub-iota (becoming -unintelligable in combination with small letter eta).

-

TODO: The lua-uni-algos package may be helpfull to implement a NTC -normalization to Greek text in LuaTeX.

-

The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX -respectively were superseded by TU in the 2017 fontspec release.

-
-
-

PU

-

The package hyperref defines the PU font encoding for use in PDF strings -(ToC, bookmarks) which supports monotonic Greek. greek-fontenc adds -support for polytonic Greek and some archaic characters also supported in -LGR and TU (see hyperref-with-greek.tex, hyperref-with-greek.pdf).

-
-
-
-

Selecting Greek LICR macro names

- -

This bundle provides LaTeX internal character representations (LICR macros) -for Greek letters and diacritics. Macro names were selected based on the -following considerations:

-
-

letters and symbols

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

    -
    -
    -
    Problem:
    -

    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. However, these are not intended for active use.

    -
    -
    -
  • -
  • If there exists a math-mode macro for a symbol, the corresponding text -macro could be formed 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 is -made available as \textvarsigma.

    -
    -
    Problem:
    -

    The math macros for the symbol variants \varepsilon and -\varphi map to characters named “GREEK SMALL LETTER …”, while -\vartheta, \varkappa, \varrho, and \varpi map to “GREEK -… SYMBOL” Unicode characters. (See also section 5.5.3 of the -unicode-math documentation.)

    -
    -
    -
  • -
  • 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 LICR macros, they can be either

    -
      -
    1. used as inspiration for new LICR macro names or

    2. -
    3. converted to LICR macro names via a defined set of transformation rules.

    4. -
    -
    -
    Example:
    -

    \textfinalsigma is a descriptive alias 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”,

    • -
    • 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).

    • -
    • There are examples of encoding-specific macros -without the text-prefix, especially for letters, see encguide.

    • -
    -
    -
    Contra:
    -
      -
    • Less consistent,

    • -
    • possible name clashes

    • -
    • text prefix marks a macro as confined to text (as opposed to math) -mode,

    • -
    -
    -
    -

    The font encoding definition files use the text prefix for symbols. -Aliases (short forms, compatibility defs, etc.) are defined in -additional packages (e.g. alphabeta.sty, babel-greek, or teubner)

    -
  • -
-
-
-

accent macros

-
    -
  • standard accent macros (\DeclareTextAccent definitions in -latex/base/...) are one-symbol macros (\' \" ... \u \v ...) .

  • -
  • tipa.sty, xunicode, and ucs use the “text” prefix also for accents.

    -

    However, the Adobe Glyph List For New Fonts maps, e.g., “tonos” and -“dieresistonos” to the spacing characters GREEK TONOS and GREEK DIALYTIKA -TONOS, hence texttonos and textdiaresistonos should be spacing -characters.

    -
  • -
  • textcomp (ts1enc.def) defines \capital... accents (i.e. without -text prefix).

  • -
-

Currently, greek-fontenc uses for diacritics:

-
    -
  • Greek names like in Unicode, and ucsencs.def, and

  • -
  • 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. (The non-standard macros \< and \> only with -textalpha or alphabeta.)

-
-
-

symbol variants

-

See also http://en.wikipedia.org/wiki/Greek_alphabet#Glyph_variants

-

Mathematical notation distinguishes variant shapes for beta (β|ϐ), theta -(θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), and epsilon -(ε|ϵ). The variations have no syntactic meaning in Greek text and Greek -text fonts use the shape variants indiscriminately.

-

Unicode defines separate code points for the symbol variants for use in -mathematical context. However, they are sometimes also used in place of the -corresponding letter characters in Unicode-encoded text.

-

The variant shapes are not given separate code-points in the LGR font -encoding.

-

In mathematical mode, TeX supports the distinction between θ|ϑ, π|ϖ, φ|ϕ, -ρ|ϱ, and ε|ϵ with \var<lettername> macros. However, the mapping of -letter/symbol in Unicode to “normal”/variant in TeX is inconsistent -and variant macros for ϴ ϐ, and ϰ are not available without additional -packages (e.g. amssymb provides ϰ as \varkappa).

-

greek-fontenc provides \text<lettername>symbol LICR macros for these -characters:

-
    -
  • With Unicode fonts, the macros select the GREEK -<lettername> SYMBOL``.

  • -
  • With LGR encoded fonts, they report an error by default and are mapped to -the corresponding letter with the normalize-symbols option of -textalpha and alphabeta (loosing the distinction between the shape -variants).

  • -
-
-
-
-

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.

-
-
-[fntguide] -

LaTeX3 Project Team, LaTeX2ε font selection, 2005. -http://mirror.ctan.org/macros/latex/base/fntguide.pdf

-
-
-[encguide] -

Frank Mittelbach, Robin Fairbairns, Werner Lemberg, -LaTeX3 Project Team, LaTeX font encodings, 2006. -http://mirror.ctan.org/macros/latex/base/encguide.pdf

-
-
-[greek-usage] -

Apostolos Syropoulos, Writing Greek with the greek option -of the babel package, 1997. -http://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf

-
-
-[cbfonts] -

Claudio Beccari, The CB Greek fonts, Εὔτυπον, τεῦχος № 21, 2008. -http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf

-
-
-[teubner-doc] -

Claudio Beccari, teubner.sty -An extension to the greek option of the babel package, 2011. -http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf

-
-
- -
-
-[babel-patch] -

Werner Lemberg, Unicode support for the Greek LGR -encoding Εὔτυπον, τεῦχος № 20, 2008. -http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf

-
-
-
-
- - diff --git a/language/greek/greek-fontenc/hyperref-with-greek.pdf b/language/greek/greek-fontenc/hyperref-with-greek.pdf index 6b3bca1cdb..12a6b3c613 100644 Binary files a/language/greek/greek-fontenc/hyperref-with-greek.pdf and b/language/greek/greek-fontenc/hyperref-with-greek.pdf differ diff --git a/language/greek/greek-fontenc/hyperref-with-greek.tex b/language/greek/greek-fontenc/hyperref-with-greek.tex index e0c8d94b15..c8906a36d2 100644 --- a/language/greek/greek-fontenc/hyperref-with-greek.tex +++ b/language/greek/greek-fontenc/hyperref-with-greek.tex @@ -1,16 +1,21 @@ \documentclass{article} -\usepackage[LGR,T1]{fontenc} -\usepackage{lmodern} \usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref} % \usepackage{bookmark} +\usepackage[LGR,T1]{fontenc} +\usepackage{lmodern} + \usepackage[greek,english]{babel} \usepackage[normalize-symbols]{alphabeta} \usepackage[utf8]{inputenc} % \pagestyle{headings} +\IfFormatAtLeastTF{2022/06/01} + {\newcommand*{\testnewmakeuppercase}{\MakeUppercase}} + {\newcommand*{\testnewmakeuppercase}{\relax}} + \begin{document} \title{Greek and hyperref} @@ -39,39 +44,37 @@ All utf8-encoded literal Unicode characters work in PDF strings. With \emph{greek-fontenc} and \emph{greek-inputenc}, this enables use of all Greek character in text and PDF strings. +With the \emph{textalpha} package, Greek letters can be used without +explicit change of the font encoding or Babel language (with some caveats, +see textalpha-doc.pdf). +For correct hyphenation and other fixes, mark Greek text parts with the +Babel language \texttt{greek}. There should be no space around a language +switch: |\foreignlanguage{greek}{λογος}| + \section{Transcription: \ensuregreek{logos}, \foreignlanguage{greek}{logos}} -\textbackslash{}textgreek + LGR transcription or -Greek language (babel) + LGR transcription: +Text input using the Latin transliteration: In the PDF-bookmark are Latin letters instead of Greek ones. - \section{Macros: - \textlambda\textomicron\textgamma\textomicron\textvarsigma{}, - \lambda\omicron\gamma\omicron\varsigma{}, - λογος} - -\emph{textalpha} package with \textbackslash{}textalpha \ldots -\textbackslash{}textomega macros or \emph{alphabeta} package with -\textbackslash{}alpha \ldots \textbackslash{}Omega macros. With 8-bit TeX -engines (pdflatex), literal Greek Unicode characters are converted to LICR -Macros, too. + \foreignlanguage{greek}{% + \textlambda\textomicron\textgamma\textomicron\textvarsigma}, + \textlambda\textomicron\textgamma\textomicron\textvarsigma{}, + \lambda\omicron\gamma\omicron\varsigma{}, + λογος, + } + +\emph{Babel-Greek} or \emph{textalpha} package with \verb|\textalpha| \ldots +\verb|textomega| macros; \emph{alphabeta} package with +\verb|alpha| \ldots \verb|Omega| macros. +With 8-bit TeX (pdflatex), literal Greek Unicode characters are +converted to LICR Macros, too. Works, if the \texttt{unicode} or \texttt{pdfencoding=auto} option is given to \emph{hyperref}.% \footnote{With the ``xpdf'' viewer, Greek letters are not shown in PDF bookmarks.} -The generic short macros from the \emph{alphabeta} package result in -hyperref warnings. See \href{alphabeta-doc.pdf}{alphabeta-doc.pdf} and -\href{alphabeta-doc.tex}{alphabeta-doc.tex} -for details and workarounds. - - -\section{LGR + Macros: \foreignlanguage{greek}{ - \textlambda\textomicron\textgamma\textomicron\textvarsigma{}}} - -LICR-macro input works also if the font encoding is LGR. \section{% Kerning: \textAlpha\textUpsilon\textLambda{} @@ -219,120 +222,120 @@ works fine. }} -Currently, there is no hyperref support for LICR input with non-standard -accents or combined diacritics characters. +\emph{textalpha} load definitions for LICR input with non-standard +accents or combined diacritics characters also for PU (hyperref). \subsection{\ensuregreek{ - \accpsili\textalpha - \accdasia\textalpha - \accpsili`\textalpha - \accdasia`\textalpha - \accpsili'\textalpha - \accdasia'\textalpha + \>\textalpha + \<\textalpha + \>`\textalpha + \<`\textalpha + \>'\textalpha + \<'\textalpha \~>\textalpha \~<\textalpha - \accpsili\textAlpha - \accdasia\textAlpha - \accpsili`\textAlpha - \accdasia`\textAlpha - \accpsili'\textAlpha - \accdasia'\textAlpha + \>\textAlpha + \<\textAlpha + \>`\textAlpha + \<`\textAlpha + \>'\textAlpha + \<'\textAlpha \~>\textAlpha \~<\textAlpha }} \subsection{\ensuregreek{ - \accpsili\textepsilon - \accdasia\textepsilon - \accpsili`\textepsilon - \accdasia`\textepsilon - \accpsili'\textepsilon - \accdasia'\textepsilon - \accpsili\textEpsilon - \accdasia\textEpsilon - \accpsili`\textEpsilon - \accdasia`\textEpsilon - \accpsili'\textEpsilon - \accdasia'\textEpsilon + \>\textepsilon + \<\textepsilon + \>`\textepsilon + \<`\textepsilon + \>'\textepsilon + \<'\textepsilon + \>\textEpsilon + \<\textEpsilon + \>`\textEpsilon + \<`\textEpsilon + \>'\textEpsilon + \<'\textEpsilon }} \subsection{\ensuregreek{ - \accpsili\texteta - \accdasia\texteta - \accpsili`\texteta - \accdasia`\texteta - \accpsili'\texteta - \accdasia'\texteta + \>\texteta + \<\texteta + \>`\texteta + \<`\texteta + \>'\texteta + \<'\texteta \~>\texteta \~<\texteta - \accpsili\textEta - \accdasia\textEta - \accpsili`\textEta - \accdasia`\textEta - \accpsili'\textEta - \accdasia'\textEta + \>\textEta + \<\textEta + \>`\textEta + \<`\textEta + \>'\textEta + \<'\textEta \~>\textEta \~<\textEta }} \subsection{\ensuregreek{ - \accpsili\textiota - \accdasia\textiota - \accpsili`\textiota - \accdasia`\textiota - \accpsili'\textiota - \accdasia'\textiota + \>\textiota + \<\textiota + \>`\textiota + \<`\textiota + \>'\textiota + \<'\textiota \~>\textiota \~<\textiota - \accpsili\textIota - \accdasia\textIota - \accpsili`\textIota - \accdasia`\textIota - \accpsili'\textIota - \accdasia'\textIota + \>\textIota + \<\textIota + \>`\textIota + \<`\textIota + \>'\textIota + \<'\textIota \~>\textIota \~<\textIota }} \subsection{\ensuregreek{ - \accpsili\textomicron - \accdasia\textomicron - \accpsili`\textomicron - \accdasia`\textomicron - \accpsili'\textomicron - \accdasia'\textomicron - \accpsili\textOmicron - \accdasia\textOmicron - \accpsili`\textOmicron - \accdasia`\textOmicron - \accpsili'\textOmicron - \accdasia'\textOmicron + \>\textomicron + \<\textomicron + \>`\textomicron + \<`\textomicron + \>'\textomicron + \<'\textomicron + \>\textOmicron + \<\textOmicron + \>`\textOmicron + \<`\textOmicron + \>'\textOmicron + \<'\textOmicron }} \subsection{\ensuregreek{ - \accpsili\textupsilon - \accdasia\textupsilon - \accpsili`\textupsilon - \accdasia`\textupsilon - \accpsili'\textupsilon - \accdasia'\textupsilon + \>\textupsilon + \<\textupsilon + \>`\textupsilon + \<`\textupsilon + \>'\textupsilon + \<'\textupsilon \~>\textupsilon \~<\textupsilon - \accdasia\textUpsilon - \accdasia`\textUpsilon - \accdasia'\textUpsilon + \<\textUpsilon + \<`\textUpsilon + \<'\textUpsilon \~<\textUpsilon }} \subsection{\ensuregreek{ - \accpsili\textomega - \accdasia\textomega - \accpsili`\textomega - \accdasia`\textomega - \accpsili'\textomega - \accdasia'\textomega + \>\textomega + \<\textomega + \>`\textomega + \<`\textomega + \>'\textomega + \<'\textomega \~>\textomega \~<\textomega - \accpsili\textOmega - \accdasia\textOmega - \accpsili`\textOmega - \accdasia`\textOmega - \accpsili'\textOmega - \accdasia'\textOmega + \>\textOmega + \<\textOmega + \>`\textOmega + \<`\textOmega + \>'\textOmega + \<'\textOmega \~>\textOmega \~<\textOmega }} @@ -353,56 +356,56 @@ accents or combined diacritics characters. \accoxia\textomega }} \subsection{\ensuregreek{ - \accpsili\textalpha\ypogegrammeni - \accdasia\textalpha\ypogegrammeni - \accpsili`\textalpha\ypogegrammeni - \accdasia`\textalpha\ypogegrammeni - \accpsili'\textalpha\ypogegrammeni - \accdasia'\textalpha\ypogegrammeni + \>\textalpha\ypogegrammeni + \<\textalpha\ypogegrammeni + \>`\textalpha\ypogegrammeni + \<`\textalpha\ypogegrammeni + \>'\textalpha\ypogegrammeni + \<'\textalpha\ypogegrammeni \~>\textalpha\ypogegrammeni \~<\textalpha\ypogegrammeni - \accpsili\textAlpha\ypogegrammeni - \accdasia\textAlpha\ypogegrammeni - \accpsili`\textAlpha\ypogegrammeni - \accdasia`\textAlpha\ypogegrammeni - \accpsili'\textAlpha\ypogegrammeni - \accdasia'\textAlpha\ypogegrammeni + \>\textAlpha\ypogegrammeni + \<\textAlpha\ypogegrammeni + \>`\textAlpha\ypogegrammeni + \<`\textAlpha\ypogegrammeni + \>'\textAlpha\ypogegrammeni + \<'\textAlpha\ypogegrammeni \~>\textAlpha\ypogegrammeni \~<\textAlpha\ypogegrammeni }} \subsection{\ensuregreek{ - \accpsili\texteta\ypogegrammeni - \accdasia\texteta\ypogegrammeni - \accpsili`\texteta\ypogegrammeni - \accdasia`\texteta\ypogegrammeni - \accpsili'\texteta\ypogegrammeni - \accdasia'\texteta\ypogegrammeni + \>\texteta\ypogegrammeni + \<\texteta\ypogegrammeni + \>`\texteta\ypogegrammeni + \<`\texteta\ypogegrammeni + \>'\texteta\ypogegrammeni + \<'\texteta\ypogegrammeni \~>\texteta\ypogegrammeni \~<\texteta\ypogegrammeni - \accpsili\textEta\ypogegrammeni - \accdasia\textEta\ypogegrammeni - \accpsili`\textEta\ypogegrammeni - \accdasia`\textEta\ypogegrammeni - \accpsili'\textEta\ypogegrammeni - \accdasia'\textEta\ypogegrammeni + \>\textEta\ypogegrammeni + \<\textEta\ypogegrammeni + \>`\textEta\ypogegrammeni + \<`\textEta\ypogegrammeni + \>'\textEta\ypogegrammeni + \<'\textEta\ypogegrammeni \~>\textEta\ypogegrammeni \~<\textEta\ypogegrammeni }} \subsection{\ensuregreek{ - \accpsili\textomega\ypogegrammeni - \accdasia\textomega\ypogegrammeni - \accpsili`\textomega\ypogegrammeni - \accdasia`\textomega\ypogegrammeni - \accpsili'\textomega\ypogegrammeni - \accdasia'\textomega\ypogegrammeni + \>\textomega\ypogegrammeni + \<\textomega\ypogegrammeni + \>`\textomega\ypogegrammeni + \<`\textomega\ypogegrammeni + \>'\textomega\ypogegrammeni + \<'\textomega\ypogegrammeni \~>\textomega\ypogegrammeni \~<\textomega\ypogegrammeni - \accpsili\textOmega\ypogegrammeni - \accdasia\textOmega\ypogegrammeni - \accpsili`\textOmega\ypogegrammeni - \accdasia`\textOmega\ypogegrammeni - \accpsili'\textOmega\ypogegrammeni - \accdasia'\textOmega\ypogegrammeni + \>\textOmega\ypogegrammeni + \<\textOmega\ypogegrammeni + \>`\textOmega\ypogegrammeni + \<`\textOmega\ypogegrammeni + \>'\textOmega\ypogegrammeni + \<'\textOmega\ypogegrammeni \~>\textOmega\ypogegrammeni \~<\textOmega\ypogegrammeni }} @@ -419,9 +422,9 @@ accents or combined diacritics characters. \accvaria\textAlpha \accoxia\textAlpha \textAlpha\ypogegrammeni - \accpsili{ } + \>{ } { }\prosgegrammeni - \accpsili{ } + \>{ } }} \subsection{\ensuregreek{ \accperispomeni\textcompwordmark @@ -436,8 +439,8 @@ accents or combined diacritics characters. \accvaria\textEta \accoxia\textEta \textEta\ypogegrammeni - \accpsili`{ } - \accpsili'{ } + \>`{ } + \>'{ } \~>{ } }} \subsection{\ensuregreek{ @@ -451,8 +454,8 @@ accents or combined diacritics characters. \=\textIota \accvaria\textIota \accoxia\textIota - \accdasia`{ } - \accpsili'{ } + \<`{ } + \>'{ } \~<{ } }} \subsection{\ensuregreek{ @@ -460,15 +463,15 @@ accents or combined diacritics characters. \=\textupsilon \`"\textupsilon \'"\textupsilon - \accpsili\textrho - \accdasia\textrho + \>\textrho + \<\textrho \~\textupsilon \~"\textupsilon \u\textUpsilon \=\textUpsilon \accvaria\textUpsilon \accoxia\textUpsilon - \accdasia\textRho + \<\textRho \`"{ } \'"{ } \accvaria{ } @@ -485,25 +488,41 @@ accents or combined diacritics characters. \accoxia\textOmega \textOmega\ypogegrammeni \accoxia{ } - \accdasia{ } + \<{ } }} \section{Makeuppercase} According to Greek typesetting conventions, -diacritics (except the dialytika) are dropped in ALL CAPS. +diacritics (except the dialytika) are dropped in UPPERCASE. + +The LaTeX \verb|\Makeuppercase| implementation changed fundamentally +with the release in 06/2022.\footnote{% + This change cannot be reverted with the rollback mechanism + ``for technical reasons''.} +\verb|\Makeuppercase| is now supported PDF-strings. +Greek typesetting rules are ony applied if the text language is +set to \texttt{greek} with Babel's \verb|\setlanguage| or +\verb|\foreignlanguage|. + +The changes broke the support for upcasing of polutonic Greek (combined +accents) with LICR input and of Greek with the LGR Latin transliteration. +Restoring support is currently (2023/02/10) worked on. + +\selectlanguage{greek} +\subsection{\testnewmakeuppercase{ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏ}} -However, \verb|\Makeuppercase| is not supported in PDF-strings, so we -do not need to care for this. +\selectlanguage{english} +\verb|Makeuppercase| is not supported in PDF strings with LaTeX versions +older than 06/2022. \section{Conclusion} -For Greek text parts in section headers use either literal Unicode -characters% -\footnote{Pre-composed Unicode characters must be used for multi-accented -letters or non-standard accents. Combining Unicode characters do not work -with inputenc and 8-bit LaTeX – this is a general restriction.} or macros. -For proper kerning in the main document, combine this with the -\verb+\textgreek+ or \verb+\foreignlanguage{greek}+ macros. +For Greek text parts in section headers use either literal Unicode characters% + \footnote{Pre-composed Unicode characters must be used for multi-accented + letters or non-standard accents. Combining Unicode characters do not work + with inputenc and 8-bit LaTeX – this is a general restriction.} +or macros. For proper kerning und upcasing in the main document, set the +language with \verb|\foreignlanguage{greek}|. \end{document} diff --git a/language/greek/greek-fontenc/lgr2licr.lua b/language/greek/greek-fontenc/lgr2licr.lua index 74d52f0c92..440380ae28 100755 --- a/language/greek/greek-fontenc/lgr2licr.lua +++ b/language/greek/greek-fontenc/lgr2licr.lua @@ -2,23 +2,23 @@ -- LGR Transcription to Greek LICR transformation -- ********************************************** --- +-- -- :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. --- +-- -- .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt --- +-- -- The LGR font encoding is the de-facto standard for Greek typesetting with --- LaTeX. This file provides a translation from the Latin transcription defined +-- LaTeX. This file provides a translation from the Latin transliteration defined -- by LGR into the LaTeX Internal Character Representation (LICR) macros. --- +-- -- :: usage = [[ Usage: lua lgr2licr.lua [OPTIONS] [STRING] - Convert STRING from Latin transcription to LICR macros for Greek symbols. + Convert STRING from Latin transliteration to LICR macros for Greek symbols. (This dumb conversion fails if the string contains TeX macros.) Without argument, the script reads from standard input like a redirected file. End interactive input with Ctrl-D. @@ -47,8 +47,8 @@ else s = io.read("*all") end --- The mapping from the LGR Latin transcription to LICR macros:: - +-- The mapping from the LGR Latin transliteration to LICR macros:: + LGR_map = { A = "\\textAlpha{}", B = "\\textBeta{}", @@ -74,7 +74,7 @@ LGR_map = { Q = "\\textChi{}", Y = "\\textPsi{}", W = "\\textOmega{}", - + a = "\\textalpha{}", b = "\\textbeta{}", g = "\\textgamma{}", @@ -101,7 +101,7 @@ LGR_map = { y = "\\textpsi{}", w = "\\textomega{}", v = "\\noboundary{}", - + ["'"] = "\\'", ["`"] = "\\`", ["~"] = "\\~", @@ -114,7 +114,7 @@ LGR_map = { } -- Return substitution string for 3 captures: --- +-- -- `c1` backslash -- `c2` a-zA-Z -- `c3` any other char @@ -155,15 +155,15 @@ s = string.gsub(s, "{}([^ a-zA-Z])", "%1") s = string.gsub(s, "\\textautosigma\\noboundary", "\\textsigma") -- sv s = string.gsub(s, "\\textautosigma(\\['`~<>|\"])", "\\textsigma%1") -- accents -s = string.gsub(s, "\\textautosigma([-%s!#$%%&%(%)*+,./0-9:=%[%]{|}])", +s = string.gsub(s, "\\textautosigma([-%s!#$%%&%(%)*+,./0-9:=%[%]{|}])", "\\textfinalsigma%1") s = string.gsub(s, "\\textautosigma(\\textquote)", "\\textfinalsigma%1") s = string.gsub(s, "\\textautosigma(\\texterotimatiko)", "\\textfinalsigma%1") s = string.gsub(s, "\\textautosigma(\\textanoteleia)", "\\textfinalsigma%1") - + s = string.gsub(s, "\\textautosigma$", "\\textfinalsigma") -- Write the result to stdout:: - + io.write(s) diff --git a/language/greek/greek-fontenc/lgr2licr.lua.html b/language/greek/greek-fontenc/lgr2licr.lua.html index df32b6ba5d..6fc3143515 100644 --- a/language/greek/greek-fontenc/lgr2licr.lua.html +++ b/language/greek/greek-fontenc/lgr2licr.lua.html @@ -2,13 +2,790 @@ + - -LGR Transcription to Greek LICR transformation +LGR Transcription to Greek LICR transformation - - + +
@@ -24,11 +801,11 @@ version 1.3 of this license or any later version.

The LGR font encoding is the de-facto standard for Greek typesetting with -LaTeX. This file provides a translation from the Latin transcription defined +LaTeX. This file provides a translation from the Latin transliteration defined by LGR into the LaTeX Internal Character Representation (LICR) macros.

usage = [[
 Usage: lua lgr2licr.lua [OPTIONS] [STRING]
-  Convert STRING from Latin transcription to LICR macros for Greek symbols.
+  Convert STRING from Latin transliteration to LICR macros for Greek symbols.
   (This dumb conversion fails if the string contains TeX macros.)
   Without argument, the script reads from standard input like a
   redirected file. End interactive input with Ctrl-D.
@@ -54,7 +831,7 @@ else
     -- s = "\\emph{x\\'us}"
     s = io.read("*all")
 end
-

The mapping from the LGR Latin transcription to LICR macros:

+

The mapping from the LGR Latin transliteration to LICR macros:

LGR_map = {
   A = "\\textAlpha{}",
   B = "\\textBeta{}",
diff --git a/language/greek/greek-fontenc/lgrenc.def b/language/greek/greek-fontenc/lgrenc.def
index 2558c9729f..d1c748b466 100644
--- a/language/greek/greek-fontenc/lgrenc.def
+++ b/language/greek/greek-fontenc/lgrenc.def
@@ -58,6 +58,8 @@
 %                      (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``.
 % ====== ============  ========================================================
 %
 % Usage
@@ -97,7 +99,7 @@
 % ::
 
 \ProvidesFile{lgrenc.def}
-[2022/06/14 2.1 LGR Greek font encoding definitions]
+[2023/02/28 2.2 LGR Greek font encoding definitions]
 % Copyright © 2010 Günter Milde
 % This file is part of the "greek-fontenc" package.
 % It may be distributed and/or modified under the
@@ -127,7 +129,7 @@
 % Greek Alphabet
 % """"""""""""""
 %
-% Greek letters are accessible by the Latin transcription, but the mapping is
+% 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
@@ -225,7 +227,7 @@
 \DeclareTextSymbol{\textStigma}{LGR}{22}      % Ϛ in some fonts ϹΤ ligature
 \DeclareTextSymbol{\textSampi}{LGR}{23}       % Ϡ
 \DeclareTextSymbol{\textsampi}{LGR}{27}       % ϡ
-\DeclareTextSymbol{\textanoteleia}{LGR}{38}   % ·
+\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)
@@ -274,9 +276,9 @@
 \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{\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
@@ -293,7 +295,7 @@
 \DeclareTextSymbol{\textendash}{LGR}{0}          % EN DASH
 \DeclareTextSymbol{\textquoteleft}{LGR}{28}      % ‘
 \DeclareTextSymbol{\textquoteright}{LGR}{29}     % ’
-\DeclareTextSymbol{\textperiodcentered}{LGR}{38} % · = \textanoteleia
+\DeclareTextSymbol{\textperiodcentered}{LGR}{59} % · = \textanoteleia
 \DeclareTextSymbol{\textcompwordmark}{LGR}{118}  % ZERO WIDTH NO JOINER
 \DeclareTextSymbol{\textemdash}{LGR}{127}        % EM DASH
 
@@ -390,7 +392,7 @@
 %
 % 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
+% font-encoding definition file as they require ``\ensureascii`` which is
 % defined in ``babel.def``. They were moved to ``greek.ldf``.
 %
 % Diacritics
@@ -436,14 +438,14 @@
 \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
+% 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}  % ι "capital" sub-iota
-\DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ "small" sub-iota
+\DeclareTextSymbol{\prosgegrammeni}{LGR}{8}  % ι adscript mute iota (spacing)
+\DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ subscript mute iota (combining)
 
-% __ http://en.wikipedia.org/wiki/Hypogegrammeni
+% __ http://en.wikipedia.org/wiki/Iota_subscript
 %
 % Composite diacritics::
 
@@ -496,7 +498,7 @@
 % """"""""""""""""""""
 %
 % Composite accents can be input as sequence of simple diacritics (in
-% arbitrary order) via named macro, symbol macro and "transcription
+% arbitrary order) via named macro, symbol macro and "transliteration
 % characters", e.g. ``\accdialytica\accvaria\textalpha``, ``\"\'\textalpha``,
 % ``\"'\textalpha``, or ``\'"\textalpha``.
 %
@@ -920,22 +922,22 @@
 %
 % .. _README: README.html
 % .. _alphabeta: alphabeta.sty.html
-% .. _athnum: http://ctan.org/pkg/athnum
-% .. _Babel: http://ctan.org/pkg/babel
-% .. _babel-greek: http://ctan.org/pkg/babel-greek
+% .. _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: http://mirror.ctan.org/macros/latex/base/fntguide.pdf
-% .. _fontenc:  http://ctan.org/pkg/fontenc
-% .. _hyperref: http://ctan.org/pkg/hyperref
-% .. _ibycus: http://ctan.org/pkg/ibycus-babel
+% .. _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: http://ctan.org/pkg/lgrx
-% .. _ltxcmds: http://ctan.org/pkg/ltxcmds
-% .. _teubner: http://ctan.org/pkg/teubner
+% .. _lgrx: https://ctan.org/pkg/lgrx
+% .. _ltxcmds: https://ctan.org/pkg/ltxcmds
+% .. _teubner: https://ctan.org/pkg/teubner
 % .. _teubner-doc:
-%     http://mirror.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf
+%     https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf
 % .. _textalpha: textalpha.sty.html
-% .. _ucs: http://ctan.org/pkg/unicode
-% .. _xunicode: http://ctan.org/pkg/xunicode
+% .. _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=
diff --git a/language/greek/greek-fontenc/lgrenc.def.html b/language/greek/greek-fontenc/lgrenc.def.html
index 0c2330ae62..cfc8a71301 100644
--- a/language/greek/greek-fontenc/lgrenc.def.html
+++ b/language/greek/greek-fontenc/lgrenc.def.html
@@ -2,13 +2,790 @@
 
 
 
+
 
-
-lgrenc.def
 
+lgrenc.def
 
-
-
+
+
 
 
 
@@ -82,7 +859,7 @@ package.

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.

+lgrx bundle. With version 0.8, it moved to greek-fontenc/lgrx.def.

@@ -134,7 +911,7 @@ package.

- + @@ -217,13 +994,18 @@ package.

+ + + +

0.1

0.8

2013-05-13

rename to lgrenc.def (superseding the babel version),

rename to lgrenc.def (superseding the babel version),

2022-06-14

Support the correct spelling \guillemet… for « ».

2.2

2023-02-28

Fix character used for ano \textanoteleia and +\textperiodcentered.

Usage

-

Load this file by calling fontenc with the LGR option -or indirectly via the babel, textalpha or alphabeta packages.

+

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):

@@ -255,7 +1037,7 @@ anyway.

Identification

\ProvidesFile{lgrenc.def}
-[2022/06/14 2.1 LGR Greek font encoding definitions]
+[2023/02/28 2.2 LGR Greek font encoding definitions]
 % Copyright © 2010 Günter Milde
 % This file is part of the "greek-fontenc" package.
 % It may be distributed and/or modified under the
@@ -263,7 +1045,7 @@ anyway.

% version 1.3 of this license or any later version.

You can test the version date using

\@ifl@ter {extension}{filename}{date}{YES}{NO}
-

or using ltxcmds\@iffilelater.

+

or using ltxcmds\@iffilelater.

Base setup

@@ -275,13 +1057,13 @@ anyway.

Text symbols

Greek Alphabet

-

Greek letters are accessible by the Latin transcription, but the mapping is +

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 +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 +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}
@@ -340,7 +1122,7 @@ encoding.

Additional Greek symbols

Ancient Greek Numbers (Athenian Numerals)
-

Names from ucs (ucsencs.def) +

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
@@ -349,9 +1131,9 @@ encoding.

Archaic letters
-

Names after teubner and ucs.

+

Names after teubner and ucs.

ϟ (capital numeral koppa) not distinct in LGR but required for -\Greeknumeral in babel-greek +\Greeknumeral in babel-greek (defining as alias command calling \textkoppa leads to an infinte loop with \MakeUppercase):

\DeclareTextSymbol{\textstigma}{LGR}{6}       % ϛ
@@ -363,7 +1145,7 @@ with \MakeUppercase):

\DeclareTextSymbol{\textStigma}{LGR}{22} % Ϛ in some fonts ϹΤ ligature \DeclareTextSymbol{\textSampi}{LGR}{23} % Ϡ \DeclareTextSymbol{\textsampi}{LGR}{27} % ϡ -\DeclareTextSymbol{\textanoteleia}{LGR}{38} % · +\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)
@@ -371,7 +1153,7 @@ with \MakeUppercase):

Numeral signs

See also http://en.wikipedia.org/wiki/Greek_numerals

-

Names from ucs:

+

Names from ucs:

\DeclareTextSymbol{\textdexiakeraia}{LGR}{254}      % ʹ (Dexia keraia)
 \DeclareTextSymbol{\textaristerikeraia}{LGR}{255}   % ͵ (Aristeri keraia)
@@ -425,7 +1207,7 @@ provide fallback LICR macros with detailed error reporting:

\DeclareTextSymbol{\textendash}{LGR}{0}          % EN DASH
 \DeclareTextSymbol{\textquoteleft}{LGR}{28}      % ‘
 \DeclareTextSymbol{\textquoteright}{LGR}{29}     % ’
-\DeclareTextSymbol{\textperiodcentered}{LGR}{38} % · = \textanoteleia
+\DeclareTextSymbol{\textperiodcentered}{LGR}{59} % · = \textanoteleia
 \DeclareTextSymbol{\textcompwordmark}{LGR}{118}  % ZERO WIDTH NO JOINER
 \DeclareTextSymbol{\textemdash}{LGR}{127}        % EM DASH

T1:

@@ -474,7 +1256,7 @@ to the Greek letters:

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 +disambiguate), but leads to ambiguity with Unicode fonts. xunicode uses the gr infix and alias names to disambiguate:

  • 03B3 \textgrgamma

  • @@ -497,7 +1279,7 @@ systematical basis:

    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 +of the teubner package to form an extensible, hat-like bracket. In CB.enc, they are mapped to

    16–MODIFIER LETTER LOW ACUTE ACCENT @@ -508,7 +1290,7 @@ 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 +font-encoding definition file as they require \ensureascii which is defined in babel.def. They were moved to greek.ldf.

@@ -522,7 +1304,7 @@ definitions.

  • 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).

  • +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 @@ -533,11 +1315,11 @@ conventions (cf. UPPERCASE b

Named macros

-

Definitions are based on the teubner package by Claudio Beccari, the ucs +

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.

+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)
@@ -545,11 +1327,11 @@ two-letter teub
 \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 +

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}  % ι "capital" sub-iota
-\DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ "small" sub-iota
+
\DeclareTextSymbol{\prosgegrammeni}{LGR}{8}  % ι adscript mute iota (spacing)
+\DeclareTextSymbol{\ypogegrammeni}{LGR}{124} % ͺ subscript mute iota (combining)

Composite diacritics:

%                                                       Teubner name
 \DeclareTextAccent{\accdialytikaperispomeni}{LGR}{32} % Cd
@@ -592,7 +1374,7 @@ shared by font encodings providing Greek characters:

Composite diacritics

Composite accents can be input as sequence of simple diacritics (in -arbitrary order) via named macro, symbol macro and “transcription +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 @@ -602,7 +1384,7 @@ definitions.

Pre-composed letters

Small letters with diacritics
-

(from teubner with changed names of the composite accents):

+

(from teubner with changed names of the composite accents):

\DeclareTextComposite{\accvaria}{LGR}{a}{128}
 \DeclareTextComposite{\accdasia}{LGR}{a}{129}
 \DeclareTextComposite{\accpsili}{LGR}{a}{130}
diff --git a/language/greek/greek-fontenc/makeattest.pdf b/language/greek/greek-fontenc/makeattest.pdf
deleted file mode 100644
index 252610ab8d..0000000000
Binary files a/language/greek/greek-fontenc/makeattest.pdf and /dev/null differ
diff --git a/language/greek/greek-fontenc/makeattest.tex b/language/greek/greek-fontenc/makeattest.tex
deleted file mode 100644
index c7f733b748..0000000000
--- a/language/greek/greek-fontenc/makeattest.tex
+++ /dev/null
@@ -1,26 +0,0 @@
-\documentclass{article}
-
-\usepackage{lmodern}
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
-\usepackage{textalpha}
-
-\usepackage[unicode]{hyperref}
-
-\begin{document}
-
-Test the problem with `makeatother' in textalpha.sty.
-
-\section{Ἀριστοτέλης}
-
-When commenting out the `makeat...' lines, there is
-spurious output (command parts from the indirectly loaded greek-fontenc)
-before the document starts.
-
-\section{\ensuregreek{\accpsili\textAlpha\textrho\textiota\textsigma\texttau
-  \textomicron\texttau\'\textepsilon\textlambda\texteta\textfinalsigma}}
-
-Without loading `puenc.def', this heading becomes
->Αριστοτέλη in the PDF sidebar.
-
-\end{document}
diff --git a/language/greek/greek-fontenc/puenc-greek.def b/language/greek/greek-fontenc/puenc-greek.def
index 997e9e6635..fdc51336b5 100644
--- a/language/greek/greek-fontenc/puenc-greek.def
+++ b/language/greek/greek-fontenc/puenc-greek.def
@@ -1,9 +1,11 @@
+% +++++++++++++++
 % puenc-greek.def
 % +++++++++++++++
+%
 % Greek LICR definitions for PDF strings (hyperref)
 % *************************************************
 %
-% :Copyright: © 2020 Günter Milde
+% :Copyright: © 2020, 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.
@@ -11,18 +13,20 @@
 %  ::
 
 \ProvidesFile{puenc-greek.def}
-[2020/10/18 2.0 Greek LICRs for PDF strings]
+[2023/02/28 2.2 Greek LICRs for PDF strings]
 
 % :abstract:
-%   Support for Greek LICR macros in PDF bookmarks. Extends puenc.def_.
+%   Support for Greek LICR macros in PDF bookmarks. Extends ``puenc.def``
+%   and supersedes ``puenc-greekbasic.def`` from the hyperref_ package.
 %   Used by babel-greek_ and textalpha_.
 %
-% **History**:
+% **Changelog**:
 %   .. class:: borderless
 %
-%   ====== ==========  ========================================================
-%   2.0    2020-10-18  initial version
-%   ====== ==========  ========================================================
+%   ====== =========== =======================================================
+%   2.0    2020-10-18  Initial version.
+%   2.2    2023-02-28  Add compatibility definitions for hyperref.
+%   ====== =========== =======================================================
 %
 % Diacritics
 % ==========
@@ -89,27 +93,18 @@
 % Greek and Coptic
 % ----------------
 %
+% Without coptic and archaic letters (except the ones used in Greek numerals).
 % ::
 
-% 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           % ͳ
-\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164} % ʹ \anwtonos, \textnumeralsigngreek
-\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165} % ͵ \katwtonos, \textnumeralsignlowergreek
-% 0376  GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA    % Ͷ
-% 0377  GREEK SMALL LETTER PAMPHYLIAN DIGAMMA      % ͷ
+% NR    Unicode Name                               %   PU name (alias in greek-fontenc.def)
+\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164} % ʹ  \textnumeralsigngreek
+\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165} % ͵ \textnumeralsignlowergreek
 
 % 037A  GREEK YPOGEGRAMMENI (use \textcompwordmark\ypogegrammeni) % ͺ
-% 037B  GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-% 037C  GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-% 037D  GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-
 % Erotimatiko: use 003B SEMICOLON, not 037E GREEK QUESTION MARK; dont use the
 % literal char, as it is active with textalpha's "keep-semicolon" option::
 
-\DeclareTextCommand{\texterotimatiko}{PU}{\80\073} 
+\DeclareTextCommand{\texterotimatiko}{PU}{\80\073}
 
 \DeclareTextCompositeCommand{\'}{PU}{\@empty}{\83\204} % ΄ 0384 GREEK TONOS
 \DeclareTextCompositeCommand{\'}{PU}{\ }{\83\204} % ΄ 0384 GREEK TONOS
@@ -149,12 +144,14 @@
 \DeclareTextCommand{\textPsi}{PU}{\83\250} % Ψ "03A8
 \DeclareTextCommand{\textOmega}{PU}{\83\251} % Ω "03A9
 \DeclareTextCompositeCommand{\"}{PU}{\textIota}{\83\252} % Ϊ "03AA
+\DeclareTextCommand{\textIotadieresis}{PU}{\83\252}% U+03AA
 \DeclareTextCompositeCommand{\"}{PU}{\textUpsilon}{\83\253} % Ϋ "03AB
 \DeclareTextCompositeCommand{\'}{PU}{\textalpha}{\83\254} % ά "03AC
 \DeclareTextCompositeCommand{\'}{PU}{\textepsilon}{\83\255} % έ "03AD
 \DeclareTextCompositeCommand{\'}{PU}{\texteta}{\83\256} % ή "03AE
 \DeclareTextCompositeCommand{\'}{PU}{\textiota}{\83\257} % ί "03AF
 \DeclareTextCompositeCommand{\accdialytikatonos}{PU}{\textupsilon}{\83\260} % ΰ "03B0
+\DeclareTextCompositeCommand{\"}{PU}{\textupsilonacute}{\83\260}% U+03B0
 \DeclareTextCommand{\textalpha}{PU}{\83\261} % α "03B1
 \DeclareTextCommand{\textbeta}{PU}{\83\262} % β "03B2
 \DeclareTextCommand{\textgamma}{PU}{\83\263} % γ "03B3
@@ -172,7 +169,7 @@
 \DeclareTextCommand{\textomicron}{PU}{\83\277} % ο "03BF
 \DeclareTextCommand{\textpi}{PU}{\83\300} % π "03C0
 \DeclareTextCommand{\textrho}{PU}{\83\301} % ρ "03C1
-\DeclareTextCommand{\textfinalsigma}{PU}{\83\302} % ς "03C2 final sigma
+\DeclareTextCommand{\textfinalsigma}{PU}{\83\302} % ς "03C2 \textvarsigma
 \DeclareTextCommand{\textsigma}{PU}{\83\303} % σ "03C3
 \DeclareTextCommand{\texttau}{PU}{\83\304} % τ "03C4
 \DeclareTextCommand{\textupsilon}{PU}{\83\305} % υ "03C5
@@ -180,11 +177,11 @@
 \DeclareTextCommand{\textchi}{PU}{\83\307} % χ "03C7
 \DeclareTextCommand{\textpsi}{PU}{\83\310} % ψ "03C8
 \DeclareTextCommand{\textomega}{PU}{\83\311} % ω "03C9
-
 \DeclareTextCompositeCommand{\"}{PU}{\textiota}{\83\312}% ϊ "03CA
 \DeclareTextCompositeCommand{\"}{PU}{\textupsilon}{\83\313}% ϋ "03CB
 \DeclareTextCompositeCommand{\'}{PU}{\textomicron}{\83\314}% ό "03CC
 \DeclareTextCompositeCommand{\'}{PU}{\textupsilon}{\83\315}% ύ "03CD
+\DeclareTextCommand{\textupsilonacute}{PU}{\83\315}% U+03CD
 \DeclareTextCompositeCommand{\'}{PU}{\textomega}{\83\316}% ώ "03CE
 
 % Archaic letters (still used in Greek numerals)
@@ -198,25 +195,26 @@
 
 \DeclareTextCommand{\textQoppa}{PU}{\83\330} % Ϙ "03D8
 \DeclareTextCommand{\textqoppa}{PU}{\83\331} % ϙ "03D9
-\DeclareTextCommand{\textStigma}{PU}{\83\332} % Ϛ "03DA
-\DeclareTextCommand{\textstigma}{PU}{\83\333} % ϛ "03DB
-\DeclareTextCommand{\textDigamma}{PU}{\83\334} % Ϝ "03DC
-\DeclareTextCommand{\textdigamma}{PU}{\83\335} % ϝ "03DD
-\DeclareTextCommand{\textKoppa}{PU}{\83\336} % Ϟ "03DE in LGR identic to \textkoppa
-\DeclareTextCommand{\textkoppa}{PU}{\83\337} % ϟ "03DF \koppa, \textqoppa [sic!]
-\DeclareTextCommand{\textSampi}{PU}{\83\340} % Ϡ "03E0
-\DeclareTextCommand{\textsampi}{PU}{\83\341} % ϡ "03E1
+\DeclareTextCommand{\textStigma}{PU}{\83\332} % Ϛ "03DA  \textStigmagreek
+\DeclareTextCommand{\textstigma}{PU}{\83\333} % ϛ "03DB	 \textstigmagreek
+\DeclareTextCommand{\textDigamma}{PU}{\83\334} % Ϝ "03DC \textDigammagreek
+\DeclareTextCommand{\textdigamma}{PU}{\83\335} % ϝ "03DD \textdigammagreek
+\DeclareTextCommand{\textKoppa}{PU}{\83\336} % Ϟ "03DE   \textKoppagreek  in LGR identic to \textkoppa
+\DeclareTextCommand{\textkoppa}{PU}{\83\337} % ϟ "03DF   \textkoppagreek
+\DeclareTextCommand{\textSampi}{PU}{\83\340} % Ϡ "03E0	 \textSampigreek
+\DeclareTextCommand{\textsampi}{PU}{\83\341} % ϡ "03E1	 \textsampigreek
 
 \DeclareTextCommand{\textkappasymbol}{PU}{\83\360} % ϰ "03F0
 \DeclareTextCommand{\textrhosymbol}{PU}{\83\361} % ϱ "03F1
 
 \DeclareTextCommand{\textThetasymbol}{PU}{\83\364} % ϴ "03F4
 \DeclareTextCommand{\textepsilonsymbol}{PU}{\83\365} % ϵ "03F5
+\DeclareTextCommand{\textbackepsilon}{PU}{\83\366} % ϶ "03F6 # not in LGR
 
-% Dummy definition (\textautosigma is lowercase of \textSigma)
-% TODO: implement autosigma for PU and TU::
+% ``\textautosigma`` is lowercase of \textSigma
+% (since 2022/06, ``\MakeLowercase`` use a context-sensitive sigma) ::
 
-\ProvideTextCommand{\textautosigma}{PU}{\textsigma}
+\ProvideTextCommand{\textautosigma}{PU}{\MakeLowercase{\textSigma}}
 
 
 % Greek Extended
@@ -398,7 +396,7 @@
 \DeclareTextCompositeCommand{\accdasiaoxia}{PU}{\ }{\9037\336} % ῞
 \DeclareTextCompositeCommand{\accdasiaperispomeni}{PU}{\@empty}{\9037\337} % ῟
 \DeclareTextCompositeCommand{\accdasiaperispomeni}{PU}{\ }{\9037\337} % ῟
-                                                                              
+
 \DeclareTextCompositeCommand{\u}{PU}{\textupsilon}{\9037\340} % ῠ
 \DeclareTextCompositeCommand{\=}{PU}{\textupsilon}{\9037\341} % ῡ
 \DeclareTextCompositeCommand{\accdialytikavaria}{PU}{\textupsilon}{\9037\342} % ῢ
@@ -452,3 +450,13 @@
 \DeclareTextCommand{\textpentehekaton}{PU}{𐅅} % "10145 GREEK ACROPHONIC ATTIC FIVE HUNDRED
 \DeclareTextCommand{\textpenteqilioi}{PU}{𐅆}  % "10146 GREEK ACROPHONIC ATTIC FIVE THOUSAND
 \DeclareTextCommand{\textpentemuria}{PU}{𐅇}   % "10147 GREEK ACROPHONIC ATTIC FIFTY THOUSAND
+
+
+% .. References
+%
+% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
+% .. _babel-greek: https://ctan.org/pkg/babel-greek
+% .. _greek-fontenc.def: greek-fontenc.def.html
+% .. _grnumalt: https://ctan.org/pkg/grnumalt
+% .. _hyperref: https://ctan.org/pkg/hyperref
+% .. _textalpha: textalpha.sty.html
diff --git a/language/greek/greek-fontenc/puenc-greek.def.html b/language/greek/greek-fontenc/puenc-greek.def.html
index 68ad597359..0743c622df 100644
--- a/language/greek/greek-fontenc/puenc-greek.def.html
+++ b/language/greek/greek-fontenc/puenc-greek.def.html
@@ -1,18 +1,19 @@
 
 
 
-
-
+
+
+
+
 puenc-greek.def
-
 
 
 
@@ -717,36 +792,35 @@ aside.sidebar,
 

puenc-greek.def

Greek LICR definitions for PDF strings (hyperref)

- - -
Licence
+ + +
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.

-
Identification
+
Identification:
\ProvidesFile{puenc-greek.def}
-[2020/10/18 2.0 Greek LICRs for PDF strings]
+[2023/02/28 2.2 Greek LICRs for PDF strings]
-
+

Abstract

Support for Greek LICR macros in PDF bookmarks. Extends puenc.def -from the hyperref package. -Used by babel-greek and textalpha.

+and supersedes puenc-greekbasic.def from the hyperref package. +Used by babel-greek and textalpha.

-
History:
+
Changelog:
----- - + + + + +

2.0

2020-10-18

initial version

Initial version.

2.2

2023-02-28

Add compatibility definitions for hyperref.

@@ -798,20 +872,12 @@ Distinguish MICRO SIGN from letter mu:

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           % ͳ
-\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164} % ʹ \anwtonos, \textnumeralsigngreek
-\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165} % ͵ \katwtonos, \textnumeralsignlowergreek
-% 0376  GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA    % Ͷ
-% 0377  GREEK SMALL LETTER PAMPHYLIAN DIGAMMA      % ͷ
+

Without coptic and archaic letters (except the ones used in Greek numerals).

+
% NR    Unicode Name                               %   PU name (alias in greek-fontenc.def)
+\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164} % ʹ  \textnumeralsigngreek
+\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165} % ͵ \textnumeralsignlowergreek

037A GREEK YPOGEGRAMMENI (use textcompwordmarkypogegrammeni) % ͺ -037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL -037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL -037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL

-

Erotimatiko: use 003B SEMICOLON, not 037E GREEK QUESTION MARK; dont use the +Erotimatiko: use 003B SEMICOLON, not 037E GREEK QUESTION MARK; dont use the literal char, as it is active with textalpha’s “keep-semicolon” option:

\DeclareTextCommand{\texterotimatiko}{PU}{\80\073}
 
@@ -853,12 +919,14 @@ literal char, as it is active with textalpha’s “keep-semicolon” option:

Archaic letters (still used in Greek numerals) and symbol variants:

@@ -900,23 +968,24 @@ and symbol variants:

\DeclareTextCommand{\textQoppa}{PU}{\83\330} % Ϙ "03D8 \DeclareTextCommand{\textqoppa}{PU}{\83\331} % ϙ "03D9 -\DeclareTextCommand{\textStigma}{PU}{\83\332} % Ϛ "03DA -\DeclareTextCommand{\textstigma}{PU}{\83\333} % ϛ "03DB -\DeclareTextCommand{\textDigamma}{PU}{\83\334} % Ϝ "03DC -\DeclareTextCommand{\textdigamma}{PU}{\83\335} % ϝ "03DD -\DeclareTextCommand{\textKoppa}{PU}{\83\336} % Ϟ "03DE in LGR identic to \textkoppa -\DeclareTextCommand{\textkoppa}{PU}{\83\337} % ϟ "03DF \koppa, \textqoppa [sic!] -\DeclareTextCommand{\textSampi}{PU}{\83\340} % Ϡ "03E0 -\DeclareTextCommand{\textsampi}{PU}{\83\341} % ϡ "03E1 +\DeclareTextCommand{\textStigma}{PU}{\83\332} % Ϛ "03DA \textStigmagreek +\DeclareTextCommand{\textstigma}{PU}{\83\333} % ϛ "03DB \textstigmagreek +\DeclareTextCommand{\textDigamma}{PU}{\83\334} % Ϝ "03DC \textDigammagreek +\DeclareTextCommand{\textdigamma}{PU}{\83\335} % ϝ "03DD \textdigammagreek +\DeclareTextCommand{\textKoppa}{PU}{\83\336} % Ϟ "03DE \textKoppagreek in LGR identic to \textkoppa +\DeclareTextCommand{\textkoppa}{PU}{\83\337} % ϟ "03DF \textkoppagreek +\DeclareTextCommand{\textSampi}{PU}{\83\340} % Ϡ "03E0 \textSampigreek +\DeclareTextCommand{\textsampi}{PU}{\83\341} % ϡ "03E1 \textsampigreek \DeclareTextCommand{\textkappasymbol}{PU}{\83\360} % ϰ "03F0 \DeclareTextCommand{\textrhosymbol}{PU}{\83\361} % ϱ "03F1 \DeclareTextCommand{\textThetasymbol}{PU}{\83\364} % ϴ "03F4 -\DeclareTextCommand{\textepsilonsymbol}{PU}{\83\365} % ϵ "03F5
-

Dummy definition (textautosigma is lowercase of textSigma) -TODO: implement autosigma for PU and TU:

-
\ProvideTextCommand{\textautosigma}{PU}{\textsigma}
+\DeclareTextCommand{\textepsilonsymbol}{PU}{\83\365} % ϵ "03F5 +\DeclareTextCommand{\textbackepsilon}{PU}{\83\366} % ϶ "03F6 # not in LGR
+

\textautosigma is lowercase of textSigma +(since 2022/06, \MakeLowercase use a context-sensitive sigma)

+
\ProvideTextCommand{\textautosigma}{PU}{\MakeLowercase{\textSigma}}

Greek Extended

@@ -1134,7 +1203,7 @@ block.

Ancient Greek Numbers

TODO: map other chars to corresponding Greek letters. -See also the grnumalt package.

+See also the grnumalt package.

Definition with literal Unicode characters, because the code-point has 5 hexadecimal digits:

\DeclareTextCommand{\textpentedeka}{PU}{𐅄}    % "10144 GREEK ACROPHONIC ATTIC FIFTY
diff --git a/language/greek/greek-fontenc/test-diacritics.pdf b/language/greek/greek-fontenc/test-diacritics.pdf
new file mode 100644
index 0000000000..bb990fdcc9
Binary files /dev/null and b/language/greek/greek-fontenc/test-diacritics.pdf differ
diff --git a/language/greek/greek-fontenc/test-diacritics.tex b/language/greek/greek-fontenc/test-diacritics.tex
new file mode 100644
index 0000000000..a098793082
--- /dev/null
+++ b/language/greek/greek-fontenc/test-diacritics.tex
@@ -0,0 +1,345 @@
+% Test definitions for accents and composite accents in Greek
+% \RequirePackage{latexbug}
+\documentclass[a4paper]{article}
+\usepackage{lmodern}
+
+% Load encoding definitions
+% \usepackage[LGR,T1]{fontenc}
+\usepackage{textalpha}  % "Greek script everywhere"
+
+% With TL22, the special handling of Greek UPPERCASE is only triggered
+% if the text language is set to "greek" with Babel:
+%
+\usepackage[greek,english]{babel}  % babel-greek
+% \usepackage[greek,english,provide=*]{babel}    % Babel's Greek "ini"
+%
+% However, currently, with TL22 and Babel, we get
+% ...
+% (That makes 100 errors; please try again.)
+% ...
+% ==> Fatal error occurred, no output PDF file produced!
+
+\IfFormatAtLeastTF{2022/06/01}
+  {\newcommand*{\uppercaseversion}{new (post-2022/06/01)}}
+  {\newcommand*{\uppercaseversion}{old (pre-2022/06/01)}}
+
+\begin{document}
+
+\section*{Test Greek diacritics with 8-bit TeX}
+
+This document tests support for the Greek non-standard LGR fonts with the
+contributed packages \emph{greek-fontenc} and \emph{greek-inputenc}.
+It is compiled with the
+\textbf{\uppercaseversion{}} \verb|\MakeUppercase| version.
+
+
+The LGR font encoding definition file \texttt{lgrenc.def} defines LICR macros
+for all non-ASCII characters in the LGR font encoding and loads definitions
+shared with the TU font encoding from \texttt{greek-fontenc.def}.
+
+In addition to the LICR, Greek letters can also be input via a Latin
+transliteration.
+
+Greek accent macros have names starting with \verb|\acc| followed by the
+Greek accent name as used in the Unicode standard (e.g. \verb|\acctonos|).
+The standard symbol accents \verb|\' \` \~ \"| behave according to Greek
+typography if used in the LGR font encoding.
+
+Apart from the diacritical marks native to Greek itself, linguists also
+regularly mark vowel length with macrons (¯) and breves (˘).
+Both keep the ``Latin'' behaviour also with capital Greek letters.
+
+The \emph{textalpha} or \emph{alphabeta} packages define the symbol macros
+\verb|\<| and \verb|\>| as alias for the breathings (Dasia and Psili).
+
+Diacritics can be specified as named macro, short macro, or combined accent
+macros, e.\,g.
+\verb| \accpsiliperispomeni{w} \accpsili\accperispomeni w| and
+\verb|\>\~w \~>{w} \~\>w \>~w| all become
+%
+\newcommand*{\accsample}{\accpsiliperispomeni{w} \accpsili\accperispomeni w
+                         \>\~w \~>{w} \~\>w \>~w}
+\ensuregreek{\accsample}.
+
+The pre-June 22 version of \verb+\MakeUppercase+ works correctly, with one
+exception: There is a spurious space in upcased combined accents with a
+literal tilde like \verb|\>~|. This can be fixed by using a tilde accent
+(\verb|\>\~| or \verb|\~>|) or loading Babel with the "greek" language option
+(even in text parts only changing the font encoding without selecting the
+Greek language).
+\begin{quote}
+  \ensuregreek{\accsample\ $\mapsto$ \MakeUppercase{\accsample}}
+\end{quote}
+
+Test the upcasing of the different input methods:
+
+\subsection*{Accent macro + Latin transliteration}
+
+\begin{quotation}
+  single accent (named, [alias], short)
+
+  \ensuregreek{\acctonos w \accoxia w \'w
+     \MakeUppercase{\acctonos w \accoxia w \'w}}
+
+  \ensuregreek{\accvaria w \`w \MakeUppercase{\accvaria w \`w}}
+
+  \ensuregreek{\accperispomeni w \~w \MakeUppercase{\accperispomeni w \~w}}
+
+  \ensuregreek{\accdasia w \w \MakeUppercase{\accpsili w \>w}}
+
+  \ensuregreek{\accdialytika u \"u \MakeUppercase{\accdialytika u \"u}}
+
+  \ensuregreek{w\ypogegrammeni{} w| \MakeUppercase{w\ypogegrammeni{} w|}}
+
+  combined accents (name, name+name, short+short, short+char)
+
+    \ensuregreek{\accdasiaperispomeni w     \accdasia\accperispomeni     w \<\~w \~\~w \~>w
+  \MakeUppercase{\accpsiliperispomeni w     \accpsili\accperispomeni     w \>\~w \~>w}}
+
+    \ensuregreek{\accpsilioxia        w     \accpsili\accoxia  w         \>\'w \>'w
+  \MakeUppercase{\accpsilioxia        w     \accpsili\accoxia  w         \>\'w \>'w}}
+
+    \ensuregreek{\accpsilivaria       w     \accpsili\accvaria w         \>\`w \>`w
+  \MakeUppercase{\accpsilivaria       w     \accpsili\accvaria w         \>\`w \>`w}}
+
+    \ensuregreek{\accdialytikaperispomeni u \accdialytika\accperispomeni u \"\~u \~"u
+  \MakeUppercase{\accdialytikaperispomeni u \accdialytika\accperispomeni u \"\~u \~"u}}
+
+    \ensuregreek{\accdialytikatonos   u     \accdialytika\acctonos u     \"\'u \"'u
+  \MakeUppercase{\accdialytikatonos   u     \accdialytika\acctonos u     \"\'u \"'u}}
+
+    \ensuregreek{\accdialytikavaria   u     \accdialytika\accvaria u     \"\`u \"`u
+  \MakeUppercase{\accdialytikavaria   u     \accdialytika\accvaria u     \"\`u \"`u}}
+
+    \ensuregreek{\accpsilivaria w\ypogegrammeni{} \accpsili\accvaria w| \>\`w| \>`w|
+  \MakeUppercase{\accpsilivaria w\ypogegrammeni{} \accpsili\accvaria w| \>\`w| \>`w|}}
+
+\end{quotation}
+
+With TeXLive 2020 (Debian/stable), all accents except dialytika and
+ypogegrammeni/prosgegrammeni are dropped in ALL CAPS.
+
+With current (2023/01/28) TeXLive, upcasing short accent macros does no
+longer work as expected: accents are not dropped.
+
+The mute iota is kept (as expected).
+
+\subsection*{Accent macro + Latin transliteration}
+
+\begin{quotation}
+  single accent (named, [alias], short)
+
+  \ensuregreek{\acctonos \textomega{} \accoxia \textomega{} \'\textomega{}
+     \MakeUppercase{\acctonos \textomega{} \accoxia \textomega{} \'\textomega{}}}
+
+  \ensuregreek{\accvaria \textomega{} \`\textomega{} \MakeUppercase{\accvaria \textomega{} \`\textomega{}}}
+
+  \ensuregreek{\accperispomeni \textomega{} \~\textomega{} \MakeUppercase{\accperispomeni \textomega{} \~\textomega{}}}
+
+  \ensuregreek{\accdasia \textomega{} \<\textomega{} \MakeUppercase{\accdasia \textomega{} \<\textomega{}}}
+
+  \ensuregreek{\accpsili \textomega{} \>\textomega{} \MakeUppercase{\accpsili \textomega{} \>\textomega{}}}
+
+  \ensuregreek{\accdialytika \textupsilon{} \"\textupsilon{} \MakeUppercase{\accdialytika \textupsilon{} \"\textupsilon{}}}
+
+  \ensuregreek{\textomega\ypogegrammeni{} \textomega| \MakeUppercase{\textomega\ypogegrammeni{} \textomega|}}
+
+  combined accents (name, name+name, short+short, short+char)
+
+    \ensuregreek{\accdasiaperispomeni \textomega{}     \accdasia\accperispomeni     \textomega{} \<\~\textomega{} \~<\textomega{}
+  \MakeUppercase{\accdasiaperispomeni \textomega{}     \accdasia\accperispomeni     \textomega{} \<\~\textomega{} \~<\textomega{}}}
+
+    \ensuregreek{\accdasiavaria       \textomega{}     \accdasia\accvaria           \textomega{} \<\`\textomega{} \<`\textomega{}
+  \MakeUppercase{\accdasiavaria       \textomega{}     \accdasia\accvaria           \textomega{} \<\`\textomega{} \<`\textomega{}}}
+
+    \ensuregreek{\accdasiaoxia        \textomega{}     \accdasia\accoxia            \textomega{} \<\'\textomega{} \<'\textomega{}
+  \MakeUppercase{\accdasiaoxia        \textomega{}     \accdasia\accoxia            \textomega{} \<\'\textomega{} \<'\textomega{}}}
+
+    \ensuregreek{\accpsiliperispomeni \textomega{}     \accpsili\accperispomeni     \textomega{} \>\~\textomega{} \~>\textomega{}
+  \MakeUppercase{\accpsiliperispomeni \textomega{}     \accpsili\accperispomeni     \textomega{} \>\~\textomega{} \~>\textomega{}}}
+
+    \ensuregreek{\accpsilioxia        \textomega{}     \accpsili\accoxia  \textomega{}         \>\'\textomega{} \>'\textomega{}
+  \MakeUppercase{\accpsilioxia        \textomega{}     \accpsili\accoxia  \textomega{}         \>\'\textomega{} \>'\textomega{}}}
+
+    \ensuregreek{\accpsilivaria       \textomega{}     \accpsili\accvaria \textomega{}         \>\`\textomega{} \>`\textomega{}
+  \MakeUppercase{\accpsilivaria       \textomega{}     \accpsili\accvaria \textomega{}         \>\`\textomega{} \>`\textomega{}}}
+
+    \ensuregreek{\accdialytikaperispomeni \textupsilon{} \accdialytika\accperispomeni \textupsilon{} \"\~\textupsilon{} \~"\textupsilon{}
+  \MakeUppercase{\accdialytikaperispomeni \textupsilon{} \accdialytika\accperispomeni \textupsilon{} \"\~\textupsilon{} \~"\textupsilon{}}}
+
+    \ensuregreek{\accdialytikatonos   \textupsilon{}     \accdialytika\acctonos \textupsilon{}     \"\'\textupsilon{} \"'\textupsilon{}
+  \MakeUppercase{\accdialytikatonos   \textupsilon{}     \accdialytika\acctonos \textupsilon{}     \"\'\textupsilon{} \"'\textupsilon{}}}
+
+    \ensuregreek{\accdialytikavaria   \textupsilon{}     \accdialytika\accvaria \textupsilon{}     \"\`\textupsilon{} \"`\textupsilon{}
+  \MakeUppercase{\accdialytikavaria   \textupsilon{}     \accdialytika\accvaria \textupsilon{}     \"\`\textupsilon{} \"`\textupsilon{}}}
+
+    \ensuregreek{\accpsilivaria \textomega\ypogegrammeni{} \accpsili\accvaria \textomega| \>\`\textomega| \>`\textomega|
+  \MakeUppercase{\accpsilivaria \textomega\ypogegrammeni{} \accpsili\accvaria \textomega| \>\`\textomega| \>`\textomega|}}
+
+\end{quotation}
+
+With TeXLive 2020 (Debian/stable), all Greek accents except dialytika and
+prosgegrammeni are dropped in ALL CAPS. (The standard accents macron and
+breve are kept as well.)
+
+With current (2023/01/28) TeXLive, upcasing the \verb|\~| accent macro and
+combining accents with dialytika (\verb|\~" \"' \"`|) does no longer work as
+expected: accents are not dropped (only the dialytika, macron and breve must
+be kept).
+
+Upcasing keeps the mute iota (as expected).
+
+\subsection*{Accent macro + literal Greek character}
+Accent + literal Greek (utf-8) character is not supported in 8-bit TeX.
+
+
+\subsection*{The hiatus feature}
+
+Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if
+placed on the first vowel of a diphthong.
+A dialytika must be placed on the second vowel if they are dropped:
+
+\newcommand{\Hiatus}{\acctonos\textalpha\textiota,
+                     \acctonos\textalpha\textupsilon,
+                     \acctonos\textepsilon\textiota,
+                     \accdasiaoxia\textalpha\textiota,
+                     \accdasiaoxia\textalpha\textupsilon,
+                     \accdasiaoxia\textepsilon\textiota}%
+Named + LICR:
+\ensuregreek{\Hiatus\ $\mapsto$ \MakeUppercase{\Hiatus}}.
+
+\renewcommand{\Hiatus}{\'\textalpha\textiota,
+                       \'\textalpha\textupsilon,
+     		       \'\textepsilon\textiota,
+                       \'>\textalpha\textiota,
+                       \'>\textalpha\textupsilon,
+                       \'>\textepsilon\textiota}%
+Short + LICR:
+\ensuregreek{\Hiatus\ $\mapsto$ \MakeUppercase{\Hiatus}}.
+
+\renewcommand{\Hiatus}{\acctonos ai,
+                       \acctonos au,
+                       \acctonos ei,
+                       \accdasiaoxia ai,
+                       \accdasiaoxia au,
+                       \accdasiaoxia ei}%
+Named + transliteration:
+\ensuregreek{\Hiatus\ $\mapsto$ \MakeUppercase{\Hiatus}}.
+
+\renewcommand{\Hiatus}{\'ai,
+                       \'au,
+                       \'ei,
+                       \'>ai,
+                       \'>au,
+                       \'>ei}%
+Short + transliteration:
+\ensuregreek{\Hiatus\ $\mapsto$ \MakeUppercase{\Hiatus}}.
+
+In current TeXLive, the \emph{hiatus} feature keeps working with named
+accend macros but fails with short accent macros.
+
+
+\subsection*{Pre-composed literal Greek character}
+
+The Greek and Coptic Unicode Block
+
+\newcommand{\GreekAndCoptic}{%
+                   ͺ ; ΄   ΅    Ά ·  Έ  Ή  Ί  Ό  Ύ  Ώ  \\
+               ΐ Α Β Γ  Δ Ε Ζ Η Θ Ι  Κ  Λ  Μ  Ν  Ξ  Ο  \\
+               Π Ρ   Σ  Τ Υ Φ Χ Ψ Ω  Ϊ  Ϋ  ά  έ  ή  ί  \\
+               ΰ α β γ  δ ε ζ η θ ι  κ  λ  μ  ν  ξ  ο  \\
+               π ρ ς σ  τ υ φ χ ψ ω  ϊ  ϋ  ό  ύ  ώ     \\
+}
+\begin{quote}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \greekscript
+  \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \greekscript
+  \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+% MakeLowercase:
+% \begin{quote}
+%   \greekscript
+%   \MakeLowercase{\GreekAndCoptic}
+% \end{quote}
+
+Greek extended Unicode block
+
+\newcommand{\GreekExtended}{\raggedright
+  ἀ   ἁ   ἂ   ἃ   ἄ   ἅ   ἆ    ἇ    Ἀ   Ἁ   Ἂ   Ἃ   Ἄ   Ἅ   Ἆ  Ἇ \\
+  ἐ   ἑ   ἒ   ἓ   ἔ   ἕ \ \  \ \    Ἐ   Ἑ   Ἒ   Ἓ   Ἔ   Ἕ        \\
+  ἠ   ἡ   ἢ   ἣ   ἤ   ἥ   ἦ    ἧ    Ἠ   Ἡ   Ἢ   Ἣ   Ἤ   Ἥ   Ἦ  Ἧ \\
+  ἰ   ἱ   ἲ   ἳ   ἴ   ἵ   ἶ    ἷ    Ἰ   Ἱ   Ἲ   Ἳ   Ἴ   Ἵ   Ἶ  Ἷ \\
+  ὀ   ὁ   ὂ   ὃ   ὄ   ὅ \ \  \ \    Ὀ   Ὁ   Ὂ   Ὃ   Ὄ   Ὅ        \\
+  ὐ   ὑ   ὒ   ὓ   ὔ   ὕ   ὖ    ὗ  \ \   Ὑ \ \   Ὓ \ \   Ὕ \ \  Ὗ \\
+  ὠ   ὡ   ὢ   ὣ   ὤ   ὥ   ὦ    ὧ    Ὠ   Ὡ   Ὢ   Ὣ   Ὤ   Ὥ   Ὦ  Ὧ \\
+  ὰ   ά   ὲ   έ   ὴ   ή   ὶ    ί    ὸ   ό   ὺ   ύ   ὼ   ώ        \\
+  ᾀ   ᾁ   ᾂ   ᾃ   ᾄ   ᾅ   ᾆ    ᾇ    ᾈ   ᾉ   ᾊ   ᾋ   ᾌ   ᾍ   ᾎ  ᾏ \\
+  ᾐ   ᾑ   ᾒ   ᾓ   ᾔ   ᾕ   ᾖ    ᾗ    ᾘ   ᾙ   ᾚ   ᾛ   ᾜ   ᾝ   ᾞ  ᾟ \\
+  ᾠ   ᾡ   ᾢ   ᾣ   ᾤ   ᾦ   ᾧ    ᾥ    ᾨ   ᾩ   ᾪ   ᾫ   ᾬ   ᾭ   ᾮ  ᾯ \\
+  ᾰ   ᾱ   ᾲ   ᾳ   ᾴ \ \   ᾶ    ᾷ    Ᾰ   Ᾱ   Ὰ   Ά   ᾼ   ᾽   ι  ᾿ \\
+  ῀   ῁   ῂ   ῃ   ῄ \ \   ῆ    ῇ    Ὲ   Έ   Ὴ   Ή   ῌ   ῍      ῏ \\
+  ῐ   ῑ   ῒ   ΐ \ \ \ \   ῖ    ῗ    Ῐ   Ῑ   Ὶ   Ί \ \   ῝      ῟ \\
+  ῠ   ῡ   ῢ   ΰ \ \ \ \   ῤ    ῥ    ῦ   ῧ   Ὺ   Ύ   Ῥ   ῭      ` \\
+ \ \ \ \  ῲ   ῳ   ῴ \ \   ῶ    ῷ    Ὸ   Ό   Ὼ   Ώ   ῼ   ´        \\
+}
+
+\begin{quote}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \greekscript
+  \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \greekscript
+  \MakeUppercase{\GreekExtended}
+\end{quote}
+
+% MakeLowercase:
+% \begin{quote}
+%   % \selectlanguage{greek}
+%   \greekscript
+%   \MakeLowercase{\GreekExtended}
+% \end{quote}
+
+With TeXLive 2020 (Debian/stable), all Greek accents except dialytika and
+prosgegrammeni are dropped in UPPERCASE and kept in lowercase. No errors.
+
+With current (2023/01/28) TeXLive:
+
+Upcasing leads to ``Unicode errors'' (``combining characters not set not set
+up for use with LaTeX'') although no combining characters are used in the
+source.
+
+Accents are not dropped (with some exceptions).
+
+The sub-iota became a capital iota (solved by an update to MakeUppercase).
+
+\end{document}
diff --git a/language/greek/greek-fontenc/test-inputenc.pdf b/language/greek/greek-fontenc/test-inputenc.pdf
deleted file mode 100644
index 2c5e2d6fbc..0000000000
Binary files a/language/greek/greek-fontenc/test-inputenc.pdf and /dev/null differ
diff --git a/language/greek/greek-fontenc/test-inputenc.tex b/language/greek/greek-fontenc/test-inputenc.tex
deleted file mode 100644
index 52e5248eb2..0000000000
--- a/language/greek/greek-fontenc/test-inputenc.tex
+++ /dev/null
@@ -1,670 +0,0 @@
-\documentclass[a4paper]{article}
-% \usepackage{textcomp}
-\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
-% \usepackage{bookmark}
-% \usepackage{parskip}
-\usepackage{amssymb}
-
-% This file uses only ASCII input but we test the result of "inputenc" on
-% the Greek font setup for TU and PU:
-
-% test with different input encoding (before Greek font setup)
-\usepackage[latin1]{luainputenc}
-% -> errors with LuaTeX:
-%      ! Missing \endcsname inserted.
-%       
-%      \pm 
-%      l.118 ...and{\~}{\UnicodeEncodingName}{α}{ᾶ}
-%      ...
-
-
-\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
-  % Unicode font setup:
-  \usepackage{fontspec}
-  % \setmainfont{DejaVu Serif} # no YPOGEGRAMMENI
-  % \setsansfont{DejaVu Sans}
-  % \setmainfont{cmunrm.otf} % CMU Serif % many missing characters :(
-  % \setmainfont{FreeSerif}
-  \setmainfont{Linux Libertine O}
-  \setsansfont{Linux Biolinum O}
-\else
-  \usepackage[LGR,T1]{fontenc}
-  \usepackage{lmodern}
-\fi
-
-\usepackage[normalize-symbols]{textalpha}
-
-
-\ProvideTextCommandDefault{\textvarpi}{missing}
-\ProvideTextCommandDefault{\textvarrho}{missing}
-\ProvideTextCommandDefault{\textvartheta}{missing}
-\ProvideTextCommandDefault{\textvarTheta}{missing}
-\ProvideTextCommandDefault{\textvarepsilon}{missing}
-\ProvideTextCommandDefault{\textvarphi}{missing}
-\ProvideTextCommandDefault{\textvarbeta}{missing}
-\ProvideTextCommandDefault{\textvarkappa}{missing}
-\DeclareTextSymbolDefault{\textschwa}{LGR}
-
-\ProvideTextCommandDefault{\textmicro}{\textmu}
-
-% test with different input encoding (after Greek font setup)
-% \usepackage[latin1]{luainputenc}
-
-\begin{document}
-
-% place the hypersetup after the document start if extra Greek
-% characters are required:
-\hypersetup{pdfauthor=\textTau\'<\textepsilon\textsigma\textthetasymbol}
-
-\title{Test font setup for Greek with inputenc/luainputenc}
-\author{G\"unter Milde}
-\date{2020/10/30}
-\maketitle
-
-\tableofcontents
-
-
-\section{LICR input%
-         \label{licr}}
-
-The LaTeX internal character representation (LICR) is a verbose,
-fail-safe 7-bit ASCII encoding that can be used unaltered under both, 8-bit
-TeX and XeTeX/LuaTeX. Use cases are macro definitions and generated text.
-
-See the source of this document,
-\texttt{test-inputenc.tex} for the input used
-in the examples below.
-
-
-\subsection{Greek alphabet}
-
-Greek letters via LICR macros:
-\begin{quote}
-  \textAlpha{} \textBeta{} \textGamma{} \textDelta{} \textEpsilon{}
-  \textZeta{} \textEta{} \textTheta{} \textIota{} \textKappa{}
-  \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \textPi{}
-  \textRho{} \textSigma{} \textTau{} \textUpsilon{} \textPhi{}
-  \textChi{} \textPsi{} \textOmega{}
-
-  \textalpha{} \textbeta{} \textgamma{} \textdelta{} \textepsilon{}
-  \textzeta{} \texteta{} \texttheta{} \textiota{} \textkappa{}
-  \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \textpi{}
-  \textrho{} \textsigma{} \texttau{} \textupsilon{}
-  \textphi{} \textchi{} \textpsi{} \textomega{}
-\end{quote}
-The small sigma is set with a different
-glyph if it ends a word:
-\begin{quote}
-  \textsigma{}       \verb|textsigma|\\
-  \textfinalsigma{}  \verb|textfinalsigma| or \verb|textvarsigma|
-\end{quote}
-The \verb|\textautosigma| macro, which automatically chooses the
-glyph according to the position, is not implemented for Unicode fonts.
-
-\subsection{Diacritics}
-
-Greek accents are
-tonos = oxia, varia, psili, dasia, dialytika, and perispomeni.
-
-Greek diacritics can be input by named macro or symbol macro:
-\begin{quote}
-  \acctonos\textalpha       \'\textalpha{}  \acctonos       x\'x
-  \accvaria\textalpha       \`\textalpha{}  \accvaria       x\`x
-  \accdialytika\textiota{}  \"\textiota{}   \accdialytika   x\"x
-  \accperispomeni\textalpha \~\textalpha{}  \accperispomeni x\~x
-  \accpsili\textalpha       \>\textalpha{}  \accpsili       x\>x
-  \accdasia\textalpha       \<\textalpha{}  \accdasia       x\\textalpha
-  \~<\textalpha
-  \accpsili\textAlpha
-  \accdasia\textAlpha
-  \accpsili`\textAlpha
-  \accdasia`\textAlpha
-  \accpsili'\textAlpha
-  \accdasia'\textAlpha
-  \~>\textAlpha
-  \~<\textAlpha
-}}
-\subsection{\ensuregreek{1F10
-  \accpsili\textepsilon
-  \accdasia\textepsilon
-  \accpsili`\textepsilon
-  \accdasia`\textepsilon
-  \accpsili'\textepsilon
-  \accdasia'\textepsilon
-  \accpsili\textEpsilon
-  \accdasia\textEpsilon
-  \accpsili`\textEpsilon
-  \accdasia`\textEpsilon
-  \accpsili'\textEpsilon
-  \accdasia'\textEpsilon
-}}
-\subsection{\ensuregreek{1F20
-  \accpsili\texteta
-  \accdasia\texteta
-  \accpsili`\texteta
-  \accdasia`\texteta
-  \accpsili'\texteta
-  \accdasia'\texteta
-  \~>\texteta
-  \~<\texteta
-  \accpsili\textEta
-  \accdasia\textEta
-  \accpsili`\textEta
-  \accdasia`\textEta
-  \accpsili'\textEta
-  \accdasia'\textEta
-  \~>\textEta
-  \~<\textEta
-}}
-\subsection{\ensuregreek{1F30
-  \accpsili\textiota
-  \accdasia\textiota
-  \accpsili`\textiota
-  \accdasia`\textiota
-  \accpsili'\textiota
-  \accdasia'\textiota
-  \~>\textiota
-  \~<\textiota
-  \accpsili\textIota
-  \accdasia\textIota
-  \accpsili`\textIota
-  \accdasia`\textIota
-  \accpsili'\textIota
-  \accdasia'\textIota
-  \~>\textIota
-  \~<\textIota
-}}
-\subsection{\ensuregreek{1F40
-  \accpsili\textomicron
-  \accdasia\textomicron
-  \accpsili`\textomicron
-  \accdasia`\textomicron
-  \accpsili'\textomicron
-  \accdasia'\textomicron
-  \accpsili\textOmicron
-  \accdasia\textOmicron
-  \accpsili`\textOmicron
-  \accdasia`\textOmicron
-  \accpsili'\textOmicron
-  \accdasia'\textOmicron
-}}
-\subsection{\ensuregreek{1F50
-  \accpsili\textupsilon
-  \accdasia\textupsilon
-  \accpsili`\textupsilon
-  \accdasia`\textupsilon
-  \accpsili'\textupsilon
-  \accdasia'\textupsilon
-  \~>\textupsilon
-  \~<\textupsilon
-  \accdasia\textUpsilon
-  \accdasia`\textUpsilon
-  \accdasia'\textUpsilon
-  \~<\textUpsilon
-}}
-\subsection{\ensuregreek{1F60
-  \accpsili\textomega
-  \accdasia\textomega
-  \accpsili`\textomega
-  \accdasia`\textomega
-  \accpsili'\textomega
-  \accdasia'\textomega
-  \~>\textomega
-  \~<\textomega
-  \accpsili\textOmega
-  \accdasia\textOmega
-  \accpsili`\textOmega
-  \accdasia`\textOmega
-  \accpsili'\textOmega
-  \accdasia'\textOmega
-  \~>\textOmega
-  \~<\textOmega
-}}
-\subsection{\ensuregreek{1F70
-  \accvaria\textalpha
-  \accoxia\textalpha
-  \accvaria\textepsilon
-  \accoxia\textepsilon
-  \accvaria\texteta
-  \accoxia\texteta
-  \accvaria\textiota
-  \accoxia\textiota
-  \accvaria\textomicron
-  \accoxia\textomicron
-  \accvaria\textupsilon
-  \accoxia\textupsilon
-  \accvaria\textomega
-  \accoxia\textomega
-}}
-\subsection{\ensuregreek{1F80
-  \accpsili\textalpha\ypogegrammeni
-  \accdasia\textalpha\ypogegrammeni
-  \accpsili`\textalpha\ypogegrammeni
-  \accdasia`\textalpha\ypogegrammeni
-  \accpsili'\textalpha\ypogegrammeni
-  \accdasia'\textalpha\ypogegrammeni
-  \~>\textalpha\ypogegrammeni
-  \~<\textalpha\ypogegrammeni
-  \accpsili\textAlpha\ypogegrammeni
-  \accdasia\textAlpha\ypogegrammeni
-  \accpsili`\textAlpha\ypogegrammeni
-  \accdasia`\textAlpha\ypogegrammeni
-  \accpsili'\textAlpha\ypogegrammeni
-  \accdasia'\textAlpha\ypogegrammeni
-  \~>\textAlpha\ypogegrammeni
-  \~<\textAlpha\ypogegrammeni
-}}
-\subsection{\ensuregreek{1F90
-  \accpsili\texteta\ypogegrammeni
-  \accdasia\texteta\ypogegrammeni
-  \accpsili`\texteta\ypogegrammeni
-  \accdasia`\texteta\ypogegrammeni
-  \accpsili'\texteta\ypogegrammeni
-  \accdasia'\texteta\ypogegrammeni
-  \~>\texteta\ypogegrammeni
-  \~<\texteta\ypogegrammeni
-  \accpsili\textEta\ypogegrammeni
-  \accdasia\textEta\ypogegrammeni
-  \accpsili`\textEta\ypogegrammeni
-  \accdasia`\textEta\ypogegrammeni
-  \accpsili'\textEta\ypogegrammeni
-  \accdasia'\textEta\ypogegrammeni
-  \~>\textEta\ypogegrammeni
-  \~<\textEta\ypogegrammeni 
-}}
-\subsection{\ensuregreek{1FA0
-  \accpsili\textomega\ypogegrammeni
-  \accdasia\textomega\ypogegrammeni
-  \accpsili`\textomega\ypogegrammeni
-  \accdasia`\textomega\ypogegrammeni
-  \accpsili'\textomega\ypogegrammeni
-  \accdasia'\textomega\ypogegrammeni
-  \~>\textomega\ypogegrammeni
-  \~<\textomega\ypogegrammeni
-  \accpsili\textOmega\ypogegrammeni
-  \accdasia\textOmega\ypogegrammeni
-  \accpsili`\textOmega\ypogegrammeni
-  \accdasia`\textOmega\ypogegrammeni
-  \accpsili'\textOmega\ypogegrammeni
-  \accdasia'\textOmega\ypogegrammeni
-  \~>\textOmega\ypogegrammeni
-  \~<\textOmega\ypogegrammeni
-}}
-\subsection{\ensuregreek{1FB0
-  \u\textalpha
-  \=\textalpha
-  \accvaria\textalpha\ypogegrammeni
-  \textalpha\ypogegrammeni
-  \accoxia\textalpha\ypogegrammeni
-  \~\textalpha
-  \~\textalpha\ypogegrammeni
-  \u\textAlpha
-  \=\textAlpha
-  \accvaria\textAlpha
-  \accoxia\textAlpha
-  \textAlpha\ypogegrammeni
-  \accpsili{ }
-  \prosgegrammeni
-  \accpsili{ }
-}}
-
-\subsection{\ensuregreek{1FC0
-  \accperispomeni{ }
-  \"\~{ }
-  \accvaria\texteta\ypogegrammeni
-  \texteta\ypogegrammeni
-  \accoxia\texteta\ypogegrammeni
-  \~\texteta
-  \~\texteta\ypogegrammeni
-  \accvaria\textEpsilon
-  \accoxia\textEpsilon
-  \accvaria\textEta
-  \accoxia\textEta
-  \textEta\ypogegrammeni
-  \accpsili`{ }
-  \accpsili'{ }
-  \~>{ }
-}}
-
-\subsection{\ensuregreek{1FD0
-  \u\textiota
-  \=\textiota
-  \`"\textiota
-  \'"\textiota
-  \~\textiota
-  \~"\textiota
-  \u\textIota
-  \=\textIota
-  \accvaria\textIota
-  \accoxia\textIota
-  \accdasia`{ }
-  \accpsili'{ }
-  \~<{ }
-}}
-\subsection{\ensuregreek{1FE0
-  \u\textupsilon
-  \=\textupsilon
-  \`"\textupsilon
-  \'"\textupsilon
-  \accpsili\textrho
-  \accdasia\textrho
-  \~\textupsilon
-  \~"\textupsilon
-  \u\textUpsilon
-  \=\textUpsilon
-  \accvaria\textUpsilon
-  \accoxia\textUpsilon
-  \accdasia\textRho
-  \`"{ }
-  \'"{ }
-  \accvaria{ }
-}}
-\subsection{\ensuregreek{1FF0
-  \accvaria\textomega\ypogegrammeni
-  \textomega\ypogegrammeni
-  \accoxia\textomega\ypogegrammeni
-  \~\textomega
-  \~\textomega\ypogegrammeni
-  \accvaria\textOmicron
-  \accoxia\textOmicron
-  \accvaria\textOmega
-  \accoxia\textOmega
-  \textOmega\ypogegrammeni
-  \accoxia{ }
-  \accdasia{ }
-}}
-
-
-\end{document}
diff --git a/language/greek/greek-fontenc/test-lgrenc.pdf b/language/greek/greek-fontenc/test-lgrenc.pdf
index 5346faefa8..6adb474ee8 100644
Binary files a/language/greek/greek-fontenc/test-lgrenc.pdf and b/language/greek/greek-fontenc/test-lgrenc.pdf differ
diff --git a/language/greek/greek-fontenc/test-lgrenc.tex b/language/greek/greek-fontenc/test-lgrenc.tex
index d6c52cc48b..4ba10eeb92 100644
--- a/language/greek/greek-fontenc/test-lgrenc.tex
+++ b/language/greek/greek-fontenc/test-lgrenc.tex
@@ -16,7 +16,8 @@
 % \renewcommand{\ttdefault}{txtt}
 
 \usepackage{parskip}
-\usepackage{textcomp}
+
+\usepackage{amssymb}
 
 \usepackage[LGR,T1]{fontenc}
 
@@ -58,9 +59,18 @@
 \newcommand{\LGR}{\fontencoding{LGR}\selectfont}
 \newcommand{\Latin}{\fontencoding{\encodingdefault}\selectfont}
 
+% Auxiliary macros:
+
+\newcommand*{\missing}{\ensuremath{\oslash}}
+% varkappa, only defined with amssymb and similar
+\providecommand*{\varkappa}{\missing}
+% varbeta and varTheta only defined with unicode-math
+\providecommand*{\varbeta}{\missing}
+
 \newcommand{\cs}[1]{\texttt{\textbackslash#1}}
 \newcommand{\cssample}[1]{\LGR\csname#1\endcsname{} \Latin \cs{#1}}
 
+
 \begin{document}
 
 \title{Test LGR font encoding definitions}
@@ -116,6 +126,7 @@ LGR: \LGR
 + - =  -- --- [ () ]
 \Latin
 \begin{quote}
+  \raggedright
   \cssample{textless} \\
   \cssample{textgreater} \\
   \cssample{textbraceleft} \\
@@ -187,25 +198,21 @@ AY fi \LGR AU "i $\mapsto$
 
 Some ASCII symbols are replaced by different symbols in LGR encoding
 other symbols are composed from Latin letters and show Greek letters in LGR.
-\emph{babel-greek} redefines some with \verb|\latintext|, however this
-cannot be done in a font encoding definition file.
+\emph{babel-greek} redefines some affected macros to use a standard font
+encoding, however this cannot be done in a font encoding definition file.
 
-Beware that \texttt{"\#\&';<>?@} becomes
-\LGR \texttt{"\#\&';<>?@}.
+Beware that \texttt{" \# \& ' ; < > ? @} becomes
+\LGR " \# \& ' ; < > ? @
 \Latin
 
-The \emph{textcomp} package provides pre-composed coyright \textcopyright{},
+The \emph{textcomp} package\footnote{loaded by default in not too old LaTeX}
+provides pre-composed coyright \textcopyright{},
 registered \textregistered{} and trademark \texttrademark{} symbols that
 work in all font encodings.
-In LGR (%
-\ifdefined \textcompsubstdefault
-  with
-\else
-  without
-\fi
-textcomp), they come out as: \cssample{textcopyright},
+In LGR they come out as: \cssample{textcopyright},
 \cssample{textregistered}, \cssample{texttrademark}.
 
+
 \emph{textcomp} also provides the upright MICRO SIGN and OHM SIGN for SI
 units: R = 5\,\textmu\textohm
 
@@ -219,7 +226,7 @@ In LGR, \cs{textmicro} and \cs{textohm} are aliases to \cs{textmu} and
 
 \subsection{Greek alphabet}
 
-Greek letters via Latin transcription and LICR macros:
+Greek letters via Latin transliteration and LICR macros:
 
 \begin{quote}
   \LGR
@@ -247,33 +254,31 @@ The small sigma is set with a different glyph if it ends a word:
   \cssample{textfinalsigma}
 \end{quote}
 
-In the Latin transcription, the letter `s' stands for \verb|\textautosigma|
+In the Latin transliteration, the letter `s' stands for \verb|\textautosigma|
 which automatically chooses the glyph according to the position.
 
 \subsection{additional Greek symbols}
 
 \begin{quote}
+  \raggedright
   \cssample{textkoppa} (numeral koppa = 90) \\ % ϟ
   \cssample{textKoppa} (numeral Koppa = 90)%   % Ϟ
-  \footnote{Modern typographical practice normally does not observe a
-            contrast between uppercase and lowercase forms for numeric koppa.
-            % https://en.wikipedia.org/wiki/Koppa_(letter)
-            In LGR, there is  no separate code point for Koppa.} \\
-  \cssample{textqoppa} (archaic koppa)   \\ % ϙ
-  \cssample{textQoppa} (archaic Koppa)   \\ % Ϙ
-  \cssample{textstigma}                  \\ % ϛ
+  \footnote{In LGR, there is  no separate code point for uppercase koppa.} \\
+  \cssample{textqoppa} (archaic koppa)      \\ % ϙ
+  \cssample{textQoppa} (archaic Koppa)      \\ % Ϙ
+  \cssample{textstigma}                     \\ % ϛ
   \cssample{textvarstigma} \\ % no separate Unicode character
   \cssample{textStigma} (Sigma-Tau-Ligature in CB-fonts)%
   \footnote{the name ``stigma'' originally applied to a medieval sigma-tau
             ligature, whose shape was confusingly similar to the cursive
-            digamma}                      \\ % Ϛ
-  \cssample{textsampi}  \\ % ϡ
-  \cssample{textSampi}  \\ % Ϡ
-  \cssample{textdigamma}  \\ % ϝ (\digamma used by amsmath!)
-  \cssample{textDigamma}  \\ % Ϝ
+            digamma}                        \\ % Ϛ
+  \cssample{textsampi}                      \\ % ϡ
+  \cssample{textSampi}                      \\ % Ϡ
+  \cssample{textdigamma}                    \\ % ϝ (\digamma used by amsmath!)
+  \cssample{textDigamma}                    \\ % Ϝ
   % numeral signs: http://en.wikipedia.org/wiki/Greek_numerals
-  \cssample{textdexiakeraia} (Dexia keraia)\\ % ʹ
-  \cssample{textaristerikeraia} (Aristeri keraia)\\ % ͵
+  \cssample{textdexiakeraia} (dexia keraia) \\ % ʹ
+  \cssample{textaristerikeraia} (aristeri keraia)\\ % ͵
 
 \end{quote}
 
@@ -338,20 +343,22 @@ Aliases are defined in the included file
 Names matching mathematical variant symbols:
 
 \begin{quote}
+  \raggedright
   \cssample{textvarepsilon} = \cssample{textepsilon}   \\   % ε
-  \cssample{textvarphi} = \cssample{textphi} 	       \\   % φ
+  \cssample{textvarphi} = \cssample{textphi}           \\   % φ
   \cssample{textvarsigma} = \cssample{textfinalsigma}  \\   % ς
 \end{quote}
 Compatibility aliases for hyperref’s puenc.def:
 \begin{quote}
+  \raggedright
   \cssample{textmugreek} = \cssample{textmu}           \\
-  \cssample{textkoppagreek} = \cssample{textkoppa}	\\
-  \cssample{textKoppagreek} = \cssample{textKoppa}	\\
-  \cssample{textStigmagreek} = \cssample{textStigma}	\\
-  \cssample{textstigmagreek} = \cssample{textstigma}	\\
-  \cssample{textSampigreek} = \cssample{textSampi}	\\
-  \cssample{textsampigreek} = \cssample{textsampi}	\\
-  \cssample{textdigammagreek} = \cssample{textdigamma}	\\
+  \cssample{textkoppagreek} = \cssample{textkoppa}     \\
+  \cssample{textKoppagreek} = \cssample{textKoppa}     \\
+  \cssample{textStigmagreek} = \cssample{textStigma}   \\
+  \cssample{textstigmagreek} = \cssample{textstigma}   \\
+  \cssample{textSampigreek} = \cssample{textSampi}     \\
+  \cssample{textsampigreek} = \cssample{textsampi}     \\
+  \cssample{textdigammagreek} = \cssample{textdigamma} \\
   \cssample{textDigammagreek} = \cssample{textDigamma} \\
   \cssample{textnumeralsigngreek} = \cssample{textdexiakeraia} \\
   \cssample{textnumeralsignlowergreek} = \cssample{textaristerikeraia}
@@ -365,15 +372,16 @@ Two Unicode code points and names for one character:
 \subsection{symbol variants}
 
 Mathematical notation distinguishes variant shapes for pi ($\pi|\varpi$),
-rho ($\rho|\varrho$), theta ($\theta|\vartheta$), beta, and kappa
-(characters for the last two symbols are not included in TeX's standard 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.
+rho ($\rho|\varrho$), theta ($\theta|\vartheta$), beta ($\beta|\varbeta$),
+and kappa ($\kappa|\varkappa$) (characters for the last two variant symbols
+are not included in TeX's standard 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
+interchangeably.
 
 \section{Diacritics}
 
-Capital Greek letters have Greek diacritics (except the dialytika and
+Capital Greek letters have diacritics (except dialytika, breve, macron, and
 sub-iota) to the left (instead of above) and drop them if text is set in
 UPPERCASE. This is implemented for all combinations that are used in Greek
 texts (i.e. for which pre-composed Unicode character exist), but not for,
@@ -547,7 +555,7 @@ MakeUppercase, unless Babel is loaded and the current language is Greek
 
 \Latin Accent macros can start with \verb|\a| instead of \verb|\| when the
 short form is redefined, e.\,g. inside a \emph{tabbing} environment.
-This also works for the locally defined Dasia and Psili shortcuts \verb|\<|
+This also works for the locally defined dasia and psili shortcuts \verb|\<|
 and \verb|\>|:
 \begin{quote}
   \begin{tabbing}
@@ -591,8 +599,11 @@ dialytika must be placed on the second vowel if they are dropped: \LGR
   m\'aina $\mapsto$ \MakeUppercase{m\'aina},
   % from  http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
   % κέικ, ἀυπνία/αϋπνία
-  k\'eik, $\mapsto$ \MakeUppercase{k\'eik}
-  \>aupn\'ia $\mapsto$ \MakeUppercase{\>aupn\'ia}
+  k\'eik $\mapsto$ \MakeUppercase{k\'eik},
+  \>aupn\'ia $\mapsto$ \MakeUppercase{\>aupn\'ia},
+  % from http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
+  % ρωμέικα
+  rwm\'eika $\mapsto$ \MakeUppercase{rwm\'eika}
 \end{quote}
 
 \newpage
@@ -606,27 +617,30 @@ Kerning (see the input):
 \newcommand\md{\textcompwordmark}
 \newcommand\MU{\MakeUppercase}
 
-  \md \MU{ AO    AY    AI    AU    RA    OA    UA    DU}    [ \\
-\<\md \MU{ \\md \MU{ \>AO  \>AY  \>AI  \>AU  \>RA  \>OA  U\>A  D\>U}  [ \\
-\>'\md\MU{ \>'AO \>'AY \>'AI \>'AU \>'RA \>'OA U\>'A D\>'U} [ \\
-\'\md \MU{ \'AO  \'AY  \'AI  \'AU  \'RA  \'OA  U\'A  D\'U}  [ \\
-\>`\md\MU{ \>`AO \>`AY \>`AI \>`AU \>`RA \>`OA U\>`A D\>`U} [ \\
-\<'\md\MU{ \<'AO \<'AY \<'AI \<'AU \<'RA \<'OA U\<'A D\<'U} [ \\
-\`\md \MU{ \`AO  \`AY  \`AI  \`AU  \`RA  \`OA  U\`A  D\`U}  [ \\
-\<`\md\MU{ \<`AO \<`AY \<`AI \<`AU \<`RA \<`OA U\<`A D\<`U} [ \\
-\~\md \MU{ \~AO  \~AY  \~AI  \~AU  \~RA  \~OA  U\~A  D\~U}  [ \\
-\~>\md\MU{ \~>AO \~>AY \~>AI \~>AU \~>RA \~>OA U\~>A D\~>U} [ \\
-\~<\md\MU{ \~\md \MU{ \>AO  \>AY  \>AI  \>AU  \>RA  \>OA  U\>A  D\>U}  [ \\
+  \>'\md\MU{ \>'AO \>'AY \>'AI \>'AU \>'RA \>'OA U\>'A D\>'U} [ \\
+  \'\md \MU{ \'AO  \'AY  \'AI  \'AU  \'RA  \'OA  U\'A  D\'U}  [ \\
+  \>`\md\MU{ \>`AO \>`AY \>`AI \>`AU \>`RA \>`OA U\>`A D\>`U} [ \\
+  \<'\md\MU{ \<'AO \<'AY \<'AI \<'AU \<'RA \<'OA U\<'A D\<'U} [ \\
+  \`\md \MU{ \`AO  \`AY  \`AI  \`AU  \`RA  \`OA  U\`A  D\`U}  [ \\
+  \<`\md\MU{ \<`AO \<`AY \<`AI \<`AU \<`RA \<`OA U\<`A D\<`U} [ \\
+  \~\md \MU{ \~AO  \~AY  \~AI  \~AU  \~RA  \~OA  U\~A  D\~U}  [ \\
+  \~>\md\MU{ \~>AO \~>AY \~>AI \~>AU \~>RA \~>OA U\~>A D\~>U} [ \\
+  \~<\md\MU{ \~ errors with LuaTeX:
+%      ! Missing \endcsname inserted.
+%      
+%      \pm
+%      l.118 ...and{\~}{\UnicodeEncodingName}{α}{ᾶ}
+%      ...
+
+
+\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
+  % Unicode font setup:
+  \usepackage{fontspec}
+  % \setmainfont{DejaVu Serif} # no YPOGEGRAMMENI
+  % \setsansfont{DejaVu Sans}
+  % \setmainfont{cmunrm.otf} % CMU Serif % many missing characters :(
+  % \setmainfont{FreeSerif}
+  \setmainfont{Linux Libertine O}
+  \setsansfont{Linux Biolinum O}
+\else
+  \usepackage[LGR,T1]{fontenc}
+  \usepackage{lmodern}
+\fi
+
+\usepackage[normalize-symbols]{textalpha}
+
+
+\ProvideTextCommandDefault{\textvarpi}{missing}
+\ProvideTextCommandDefault{\textvarrho}{missing}
+\ProvideTextCommandDefault{\textvartheta}{missing}
+\ProvideTextCommandDefault{\textvarTheta}{missing}
+\ProvideTextCommandDefault{\textvarepsilon}{missing}
+\ProvideTextCommandDefault{\textvarphi}{missing}
+\ProvideTextCommandDefault{\textvarbeta}{missing}
+\ProvideTextCommandDefault{\textvarkappa}{missing}
+\DeclareTextSymbolDefault{\textschwa}{LGR}
+
+\ProvideTextCommandDefault{\textmicro}{\textmu}
+
+% test with different input encoding (after Greek font setup)
+% \usepackage[latin1]{luainputenc}
+
+\begin{document}
+
+% place the hypersetup after the document start if extra Greek
+% characters are required:
+\hypersetup{pdfauthor=\textTau\'<\textepsilon\textsigma\textthetasymbol}
+
+\title{Test Greek LaTeX internal character representations (LICR macros)}
+\author{G\"unter Milde}
+\date{2020/10/30}
+\maketitle
+
+\tableofcontents
+
+
+\section{LICR input%
+         \label{licr}}
+
+The LaTeX internal character representation (LICR) is a verbose,
+fail-safe 7-bit ASCII encoding that can be used unaltered under both, 8-bit
+TeX and XeTeX/LuaTeX. Use cases are macro definitions and generated text.
+
+See the source of this document,
+\texttt{test-inputenc.tex} for the input used
+in the examples below.
+
+
+\subsection{Greek alphabet}
+
+Greek letters via LICR macros:
+\begin{quote}
+  \textAlpha{} \textBeta{} \textGamma{} \textDelta{} \textEpsilon{}
+  \textZeta{} \textEta{} \textTheta{} \textIota{} \textKappa{}
+  \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \textPi{}
+  \textRho{} \textSigma{} \textTau{} \textUpsilon{} \textPhi{}
+  \textChi{} \textPsi{} \textOmega{}
+
+  \textalpha{} \textbeta{} \textgamma{} \textdelta{} \textepsilon{}
+  \textzeta{} \texteta{} \texttheta{} \textiota{} \textkappa{}
+  \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \textpi{}
+  \textrho{} \textsigma{} \texttau{} \textupsilon{}
+  \textphi{} \textchi{} \textpsi{} \textomega{}
+\end{quote}
+The small sigma is set with a different
+glyph if it ends a word:
+\begin{quote}
+  \textsigma{}       \verb|textsigma|\\
+  \textfinalsigma{}  \verb|textfinalsigma| or \verb|textvarsigma|
+\end{quote}
+With Unicode fonts (Xe/LuaTeX, font encoding TU), the \verb|\textautosigma|
+macro (which automatically chooses the glyph according to the position)
+does not work with LaTeX versions older than 2022/06 (requires the new
+\verb|\MakeLowercase| implementation).
+
+\subsection{Diacritics}
+
+Greek accents are
+tonos = oxia, varia, psili, dasia, dialytika, and perispomeni.
+
+Greek diacritics can be input by named macro or symbol macro:
+\begin{quote}
+  \acctonos\textalpha       \'\textalpha{}  \acctonos       x\'x
+  \accvaria\textalpha       \`\textalpha{}  \accvaria       x\`x
+  \accdialytika\textiota{}  \"\textiota{}   \accdialytika   x\"x
+  \accperispomeni\textalpha \~\textalpha{}  \accperispomeni x\~x
+  \accpsili\textalpha       \>\textalpha{}  \accpsili       x\>x
+  \accdasia\textalpha       \<\textalpha{}  \accdasia       x\\textalpha
+  \~<\textalpha
+  \accpsili\textAlpha
+  \accdasia\textAlpha
+  \accpsili`\textAlpha
+  \accdasia`\textAlpha
+  \accpsili'\textAlpha
+  \accdasia'\textAlpha
+  \~>\textAlpha
+  \~<\textAlpha
+}}
+\subsection{1F10 \ensuregreek{
+  \accpsili\textepsilon
+  \accdasia\textepsilon
+  \accpsili`\textepsilon
+  \accdasia`\textepsilon
+  \accpsili'\textepsilon
+  \accdasia'\textepsilon
+  \accpsili\textEpsilon
+  \accdasia\textEpsilon
+  \accpsili`\textEpsilon
+  \accdasia`\textEpsilon
+  \accpsili'\textEpsilon
+  \accdasia'\textEpsilon
+}}
+\subsection{1F20 \ensuregreek{
+  \accpsili\texteta
+  \accdasia\texteta
+  \accpsili`\texteta
+  \accdasia`\texteta
+  \accpsili'\texteta
+  \accdasia'\texteta
+  \~>\texteta
+  \~<\texteta
+  \accpsili\textEta
+  \accdasia\textEta
+  \accpsili`\textEta
+  \accdasia`\textEta
+  \accpsili'\textEta
+  \accdasia'\textEta
+  \~>\textEta
+  \~<\textEta
+}}
+\subsection{1F30 \ensuregreek{
+  \accpsili\textiota
+  \accdasia\textiota
+  \accpsili`\textiota
+  \accdasia`\textiota
+  \accpsili'\textiota
+  \accdasia'\textiota
+  \~>\textiota
+  \~<\textiota
+  \accpsili\textIota
+  \accdasia\textIota
+  \accpsili`\textIota
+  \accdasia`\textIota
+  \accpsili'\textIota
+  \accdasia'\textIota
+  \~>\textIota
+  \~<\textIota
+}}
+\subsection{1F40 \ensuregreek{
+  \accpsili\textomicron
+  \accdasia\textomicron
+  \accpsili`\textomicron
+  \accdasia`\textomicron
+  \accpsili'\textomicron
+  \accdasia'\textomicron
+  \accpsili\textOmicron
+  \accdasia\textOmicron
+  \accpsili`\textOmicron
+  \accdasia`\textOmicron
+  \accpsili'\textOmicron
+  \accdasia'\textOmicron
+}}
+\subsection{1F50 \ensuregreek{
+  \accpsili\textupsilon
+  \accdasia\textupsilon
+  \accpsili`\textupsilon
+  \accdasia`\textupsilon
+  \accpsili'\textupsilon
+  \accdasia'\textupsilon
+  \~>\textupsilon
+  \~<\textupsilon
+  \accdasia\textUpsilon
+  \accdasia`\textUpsilon
+  \accdasia'\textUpsilon
+  \~<\textUpsilon
+}}
+\subsection{1F60 \ensuregreek{
+  \accpsili\textomega
+  \accdasia\textomega
+  \accpsili`\textomega
+  \accdasia`\textomega
+  \accpsili'\textomega
+  \accdasia'\textomega
+  \~>\textomega
+  \~<\textomega
+  \accpsili\textOmega
+  \accdasia\textOmega
+  \accpsili`\textOmega
+  \accdasia`\textOmega
+  \accpsili'\textOmega
+  \accdasia'\textOmega
+  \~>\textOmega
+  \~<\textOmega
+}}
+\subsection{1F70 \ensuregreek{
+  \accvaria\textalpha
+  \accoxia\textalpha
+  \accvaria\textepsilon
+  \accoxia\textepsilon
+  \accvaria\texteta
+  \accoxia\texteta
+  \accvaria\textiota
+  \accoxia\textiota
+  \accvaria\textomicron
+  \accoxia\textomicron
+  \accvaria\textupsilon
+  \accoxia\textupsilon
+  \accvaria\textomega
+  \accoxia\textomega
+}}
+\subsection{1F80 \ensuregreek{
+  \accpsili\textalpha\ypogegrammeni
+  \accdasia\textalpha\ypogegrammeni
+  \accpsili`\textalpha\ypogegrammeni
+  \accdasia`\textalpha\ypogegrammeni
+  \accpsili'\textalpha\ypogegrammeni
+  \accdasia'\textalpha\ypogegrammeni
+  \~>\textalpha\ypogegrammeni
+  \~<\textalpha\ypogegrammeni
+  \accpsili\textAlpha\ypogegrammeni
+  \accdasia\textAlpha\ypogegrammeni
+  \accpsili`\textAlpha\ypogegrammeni
+  \accdasia`\textAlpha\ypogegrammeni
+  \accpsili'\textAlpha\ypogegrammeni
+  \accdasia'\textAlpha\ypogegrammeni
+  \~>\textAlpha\ypogegrammeni
+  \~<\textAlpha\ypogegrammeni
+}}
+\subsection{1F90 \ensuregreek{
+  \accpsili\texteta\ypogegrammeni
+  \accdasia\texteta\ypogegrammeni
+  \accpsili`\texteta\ypogegrammeni
+  \accdasia`\texteta\ypogegrammeni
+  \accpsili'\texteta\ypogegrammeni
+  \accdasia'\texteta\ypogegrammeni
+  \~>\texteta\ypogegrammeni
+  \~<\texteta\ypogegrammeni
+  \accpsili\textEta\ypogegrammeni
+  \accdasia\textEta\ypogegrammeni
+  \accpsili`\textEta\ypogegrammeni
+  \accdasia`\textEta\ypogegrammeni
+  \accpsili'\textEta\ypogegrammeni
+  \accdasia'\textEta\ypogegrammeni
+  \~>\textEta\ypogegrammeni
+  \~<\textEta\ypogegrammeni
+}}
+\subsection{1FA0 \ensuregreek{
+  \accpsili\textomega\ypogegrammeni
+  \accdasia\textomega\ypogegrammeni
+  \accpsili`\textomega\ypogegrammeni
+  \accdasia`\textomega\ypogegrammeni
+  \accpsili'\textomega\ypogegrammeni
+  \accdasia'\textomega\ypogegrammeni
+  \~>\textomega\ypogegrammeni
+  \~<\textomega\ypogegrammeni
+  \accpsili\textOmega\ypogegrammeni
+  \accdasia\textOmega\ypogegrammeni
+  \accpsili`\textOmega\ypogegrammeni
+  \accdasia`\textOmega\ypogegrammeni
+  \accpsili'\textOmega\ypogegrammeni
+  \accdasia'\textOmega\ypogegrammeni
+  \~>\textOmega\ypogegrammeni
+  \~<\textOmega\ypogegrammeni
+}}
+\subsection{1FB0 \ensuregreek{
+  \u\textalpha
+  \=\textalpha
+  \accvaria\textalpha\ypogegrammeni
+  \textalpha\ypogegrammeni
+  \accoxia\textalpha\ypogegrammeni
+  \~\textalpha
+  \~\textalpha\ypogegrammeni
+  \u\textAlpha
+  \=\textAlpha
+  \accvaria\textAlpha
+  \accoxia\textAlpha
+  \textAlpha\ypogegrammeni
+  \accpsili{ }
+  \prosgegrammeni
+  \accpsili{ }
+}}
+
+\subsection{1FC0 \ensuregreek{
+  \accperispomeni{ }
+  \"\~{ }
+  \accvaria\texteta\ypogegrammeni
+  \texteta\ypogegrammeni
+  \accoxia\texteta\ypogegrammeni
+  \~\texteta
+  \~\texteta\ypogegrammeni
+  \accvaria\textEpsilon
+  \accoxia\textEpsilon
+  \accvaria\textEta
+  \accoxia\textEta
+  \textEta\ypogegrammeni
+  \accpsili`{ }
+  \accpsili'{ }
+  \~>{ }
+}}
+
+\subsection{1FD0 \ensuregreek{
+  \u\textiota
+  \=\textiota
+  \`"\textiota
+  \'"\textiota
+  \~\textiota
+  \~"\textiota
+  \u\textIota
+  \=\textIota
+  \accvaria\textIota
+  \accoxia\textIota
+  \accdasia`{ }
+  \accpsili'{ }
+  \~<{ }
+}}
+\subsection{1FE0 \ensuregreek{
+  \u\textupsilon
+  \=\textupsilon
+  \`"\textupsilon
+  \'"\textupsilon
+  \accpsili\textrho
+  \accdasia\textrho
+  \~\textupsilon
+  \~"\textupsilon
+  \u\textUpsilon
+  \=\textUpsilon
+  \accvaria\textUpsilon
+  \accoxia\textUpsilon
+  \accdasia\textRho
+  \`"{ }
+  \'"{ }
+  \accvaria{ }
+}}
+\subsection{1FF0 \ensuregreek{
+  \accvaria\textomega\ypogegrammeni
+  \textomega\ypogegrammeni
+  \accoxia\textomega\ypogegrammeni
+  \~\textomega
+  \~\textomega\ypogegrammeni
+  \accvaria\textOmicron
+  \accoxia\textOmicron
+  \accvaria\textOmega
+  \accoxia\textOmega
+  \textOmega\ypogegrammeni
+  \accoxia{ }
+  \accdasia{ }
+}}
+
+
+\end{document}
diff --git a/language/greek/greek-fontenc/test-tuenc-greek.pdf b/language/greek/greek-fontenc/test-tuenc-greek.pdf
index d9c51eb8b6..9c46cbdb44 100644
Binary files a/language/greek/greek-fontenc/test-tuenc-greek.pdf and b/language/greek/greek-fontenc/test-tuenc-greek.pdf differ
diff --git a/language/greek/greek-fontenc/test-tuenc-greek.tex b/language/greek/greek-fontenc/test-tuenc-greek.tex
index 9d34e76ddb..edb9443c32 100644
--- a/language/greek/greek-fontenc/test-tuenc-greek.tex
+++ b/language/greek/greek-fontenc/test-tuenc-greek.tex
@@ -1,5 +1,4 @@
 \documentclass[a4paper]{article}
-% \usepackage{textcomp}
 \usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
 % \usepackage{bookmark}
 % \usepackage{parskip}
@@ -16,15 +15,27 @@
 % \setmainfont{DejaVu Serif}
 % \setsansfont{DejaVu Sans}
 % \usepackage{libertineotf}
-\setmainfont{Linux Libertine O}
+% \setmainfont{Linux Libertine O}
 \setsansfont{Linux Biolinum O}
 % \setmainfont{cmunrm.otf} % CMU Serif % many missing characters :(
-% \setmainfont{FreeSerif}%
+\setmainfont{FreeSerif}%
 % \setmainfont{Droid Sans}
 
 % Declare the font encoding and Greek LICR definitions:
 \usepackage[normalize-symbols]{textalpha}
 
+% For the new \MakeUppercase, we need to set the text language to Greek
+% with Babel or polyglossia:
+\usepackage[greek,english]{babel}
+
+% select the LGR font encoding and CB fonts
+\providecommand*{\lgrfont}[1]{\leavevmode{%
+  \fontfamily{cmr}\fontencoding{LGR}\selectfont#1}%
+}
+
+\newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}}
+
+
 \begin{document}
 
 \title{Font setup for Greek with XeTeX/LuaTeX}
@@ -36,10 +47,9 @@
 support for Greek \hyperref[licr]{LICR} macros and upcasing of text with
 XeTeX and LuaTeX. It is loaded automatically by
 \href{textalpha-doc.pdf}{\emph{textalpha}},
-\href{alphabeta-doc.pdf}{\emph{alphabeta}}, and
-\href{http://www.ctan.org/pkg/babel-greek}{\emph{babel-greek}} when used
-with Unicode fonts (LuaTeX or XeTeX with
-\href{http://www.ctan.org/pkg/fontspec}{\emph{fontspec}}).
+\href{alphabeta-doc.pdf}{\emph{alphabeta}},
+and \pkgref{babel-greek} when used with Unicode fonts
+(LuaTeX or XeTeX with \pkgref{fontspec}).
 
 \tableofcontents
 
@@ -48,27 +58,28 @@ with Unicode fonts (LuaTeX or XeTeX with
 \subsection{\emph{fontspec} and suitable Unicode fonts}
 
 LaTeX sets up the TU Unicode text font encoding if it detects the XeTeX or
-LuaTeX engiges. The user must ensure that the selected font contains Greek
+LuaTeX engines. The user must ensure that the selected font contains Greek
 glyphs (the default Latin Modern fonts have only capital Greek letters).
-\textbf{There are no errors for missing glyphs, just warnings in the log
+\textbf{There are no errors for missing glyphs}, just warnings in the log
 file (but not in the console output) and empty spaces in the output
-document.}
-
-The \href{http://www.ctan.org/pkg/fontspec}{\emph{fontspec}} package is the
-standard tool to select fonts in Xe/LuaLaTeX. Examples for suitable fonts
-are given in the
-\href{http://mirrors.ctan.org/language/greek/greek-fontenc/greek-fontenc.html#TU}
-{greek-fontenc documentation}.
+document.
 
+The \pkgref{fontspec} package is the standard tool to select fonts in
+XeTeX/LuaTeX. \pkgref{babel} provides a front-end to set
+up language-specific fonts with the \verb|\babelfont| command.
 
 \section{Usage}
 
-\texttt{tuenc-greek.def} is usually not loaded directly, but by one of
+\texttt{tuenc-greek.def} is loaded automatically by
 \href{textalpha-doc.pdf}{\emph{textalpha}},
-\href{alphabeta-doc.pdf}{\emph{alphabeta}}, or \emph{Babel} (with the
-language option \href{http://www.ctan.org/pkg/babel-greek}{greek}). If these
-packages are used with Unicode-aware TeX engines (XeTeX or LuaTeX), Unicode
-font setup is amended for use of the Greek script.
+\href{alphabeta-doc.pdf}{\emph{alphabeta}}, or \pkgref{Babel} (with the
+language option \href{https://ctan.org/pkg/babel-greek}{greek}) if these
+packages are used with Unicode-aware TeX engines (XeTeX or LuaTeX). This
+provides support for Greek LICR input and fixes for MakeUppercase.
+The \verb|\MakeUppercase| implementation introduced in the 2022/06 LaTeX
+release works uses Greek upcasing rules only for text parts with the
+\pkgref{babel} language \texttt{greek} and ignores the changes to
+\texttt{uccode} values done in this package.
 
 
 \section{LICR input%
@@ -105,7 +116,10 @@ glyph if it ends a word:
   \textfinalsigma{}  \verb|textfinalsigma| or \verb|textvarsigma|
 \end{quote}
 The \verb|\textautosigma| macro, which automatically chooses the
-glyph according to the position, is not implemented for Unicode fonts.
+glyph according to the position, relies on \verb|\makelowercase|
+and only works correctly with LaTeX versions newer than 2022/06:
+\textautosigma{}\textiota{} vs. \textiota\textautosigma.
+
 
 \subsection{Diacritics}
 
@@ -119,9 +133,10 @@ Greek diacritics can be input by named macro or symbol macro:
   \accdasia\textalpha       \<\textalpha{}  \accdasia       x\ + COMBINING GREEK PERISPOMENI is considered equivalent
+to the pre-composed character  WITH PERISPOMENI.
 
+The ``named'' \verb|\accperispomeni| macro uses COMBINING GREEK PERISPOMENI,
+while the standard tilde-accent macro \verb|\~| uses the COMBINING TILDE.
 Composite definitions for \verb|\~| select the pre-composed character:
 
 \begin{quote}
@@ -176,7 +190,7 @@ Combined accents are defined using combining diacritical characters.
 \accpsiliperispomeni\textiota{}   \~>\textiota{} \~\>\textiota{}
 \accpsiliperispomeni x            \~>x           \~\>x
 \end{quote}
-Composite diacritics overlap when they are not normalized to a pre-composed
+Composite diacritics overlap when they are not normalised to a pre-composed
 character. However, this is not a major problem in normal use as
 pre-composed characters exist in Unicode for all letters that are
 used with diacritics in (ancient, polytonic or monotonic) Greek.
@@ -186,12 +200,12 @@ used with diacritics in (ancient, polytonic or monotonic) Greek.
 The sub-iota is input after the base letter.
 
 \begin{itemize}
-\item 
+\item
   \verb|\ypogegrammeni| sets a COMBINING GREEK YPOGEGRAMMENI:
   \textalpha\ypogegrammeni{} k\ypogegrammeni{}.
 
   A Greek capital letter followed by COMBINING GREEK YPOGEGRAMMENI is
-  normalized to the corresponding Greek capital letter WITH [... AND]
+  normalised to the corresponding Greek capital letter WITH [... AND]
   PROSGEGRAMMENI, if a mapping exists in the Unicode standard (by XeTeX but
   not by LuaTeX)
 
@@ -203,15 +217,18 @@ The sub-iota is input after the base letter.
 
   Compare Αι (small letter iota) vs. Αι (spacing prosgegrammeni) vs. ᾼ
   (pre-composed).
-  
+
 
 \end{itemize}
 %
 Test letters with ypogegrammeni and prosgegrammeni (literal/LICR):
 
 \begin{quote}
-\begin{tabbing}
-
+ % TODO: infinite recursion with new \MakeUppercase
+ % \ifdefined\extrasgreek
+ %   \selectlanguage{greek}
+ % \fi
+ \begin{tabbing}
   unchanged \quad\=  make lowercase\quad\=  make uppercase. \\
 
   ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni{} \>
@@ -226,7 +243,7 @@ Test letters with ypogegrammeni and prosgegrammeni (literal/LICR):
   \MakeLowercase{ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni} \>
   \MakeUppercase{ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni}
 
-\end{tabbing}
+ \end{tabbing}
 \end{quote}
 
 \subsection{Additional Greek symbols}
@@ -234,6 +251,7 @@ Test letters with ypogegrammeni and prosgegrammeni (literal/LICR):
 \subsubsection{symbols for Greek numbers}
 
 \begin{quote}
+\raggedright
 \textkoppa{}      textkoppa                 \\ % ϟ
 \textKoppa{}      textKoppa                 \\ % Ϟ
 \textqoppa{}      textqoppa (archaic koppa) \\ % ϙ
@@ -243,14 +261,14 @@ Test letters with ypogegrammeni and prosgegrammeni (literal/LICR):
 \textStigma{}     textStigma (Sigma-Tau-Ligature in CB-fonts)%
 \footnote{the name “stigma” originally applied to a medieval sigma-tau
          ligature, whose shape was confusingly similar to the cursive
-         digamma}                      \\ % Ϛ
-\textsampi{}      textsampi  \\ % ϡ
-\textSampi{}      textSampi  \\ % Ϡ
-\textdigamma{}    textdigamma  \\ % ϝ (\digamma used by amsmath!)
-\textDigamma{}    textDigamma  \\ % Ϝ
+         digamma}                           \\ % Ϛ
+\textsampi{}      textsampi                 \\ % ϡ
+\textSampi{}      textSampi                 \\ % Ϡ
+\textdigamma{}    textdigamma               \\ % ϝ (\digamma used by amsmath!)
+\textDigamma{}    textDigamma               \\ % Ϝ
 % numeral signs: http://en.wikipedia.org/wiki/Greek_numerals
-\textdexiakeraia{}    textdexiakeraia  \\ % ʹ
-\textaristerikeraia{} textaristerikeraia \\ % ͵
+\textdexiakeraia{}    textdexiakeraia       \\ % ʹ
+\textaristerikeraia{} textaristerikeraia    \\ % ͵
 \end{quote}
 
 \subsubsection{symbol variants}
@@ -360,13 +378,10 @@ Deja Vu). The “FreeSerif” font works fine:
 \end{quote}
 If the LGR font encoding is loaded via «fontenc» in the document preamble,
 Ancient Greek Numbers (as well as any other character) from LGR encoded
-8-bit TeX fonts can be used after a font-encoding switch. babel-greek
-defines the \verb|\textgreek| command for this purpose.
-\providecommand*{\textgreek}[1]{\leavevmode{%
-  \fontfamily{cmr}\fontencoding{LGR}\selectfont#1}%
-}
+8-bit TeX fonts can be used after a font-encoding switch. (This document
+defines the \verb|\lgrfont| command for this purpose in the preamble.)
 \begin{quote}
-\textgreek{
+\lgrfont{
 \textpentedeka    % GREEK ACROPHONIC ATTIC FIFTY
 \textpentehekaton % GREEK ACROPHONIC ATTIC FIVE HUNDRED
 \textpenteqilioi  % GREEK ACROPHONIC ATTIC FIVE THOUSAND
@@ -394,39 +409,49 @@ The SI unit prefix MICRO SIGN is not upcased with MakeUppercase:
 \end{quote}
 
 
-\section{Latin transcription}
+\section{Latin transliteration}
 
-The Latin transcription known from LGR encoded 8-bit fonts%
-\footnote{ See the \href{http://www.ctan.org/pkg/teubner}{teubner} package
-or the file usage.pdf from the
-\href{http://www.ctan.org/pkg/babel-greek}{\emph{babel-greek}} package for a
-description.}
+The Latin transliteration known from LGR encoded 8-bit fonts%
+\footnote{See the \pkgref{teubner} package or the file usage.pdf from
+          \pkgref{babel-greek} for a description.}
 does not work with Unicode fonts.
 
+For LuaTeX, there is a \texttt{transliteration.omega} \emph{transform} that
+applies the transliteration system devised by Yannis Haralambous for the
+Omega system (cf. the Babel documentation for the
+\href{https://latex3.github.io/babel/guides/locale-greek.html}{Greek locale}).
+
 It is possible to set up LGR encoded fonts parallel to Unicode fonts (see
 the preamble of the source file \url{test-tuenc-greek.tex} for an example).
-The \verb|\textgreek| macro can then be used for the input of Greek letters
-via the \emph{Latin transcription}, e.g. «logos» becomes «\textgreek{logos}»
-and «\verb|\>aupn\'ia|» becomes «\textgreek{\>aupn\'ia}».
+After switching the font encoding to LGR, Greek letters can be input
+via a \emph{Latin transliteration}, e.g. «logos» becomes «\lgrfont{logos}»
+and «\verb|>aupn\'ia|» becomes «\lgrfont{>aupn\'ia}».
 
 Mark that you cannot use Unicode input with LGR encoded fonts except when
 running in 8-bit compatibility mode.
-LICR macros work in both, Unicode font encoding and LGR: compare
-           \>\textIota\textalpha\textnu\textomicron\textupsilon\textalpha
-           \textrho\acctonos\textiota\textomicron\textupsilon{}
-(Unicode font set up via fontspec) vs.
-\textgreek{\>\textIota\textalpha\textnu\textomicron\textupsilon\textalpha
-           \textrho\acctonos\textiota\textomicron\textupsilon}
-(LGR-encoded 8-bit font set up via NFSS commands).
+LICR macros work in both, TU and LGR: compare
+\>\textIota\textalpha\textnu\textomicron\textupsilon\textalpha
+\textrho\acctonos\textiota\textomicron\textupsilon{} (TU) vs.
+\lgrfont{\>\textIota\textalpha\textnu\textomicron\textupsilon\textalpha
+         \textrho\acctonos\textiota\textomicron\textupsilon} (LGR).
 
 
 \section{UPPERCASE and lowercase}
 
-Capital Greek letters have Greek diacritics (except the dialytika and
-sub-iota) to the left (instead of above) and drop them if text is set in
-UPPERCASE, e.g.
-\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}.
+According to Greek typesetting conventions, Greek diacritics (except the
+dialytika and sub-iota) are placed to the left (instead of above) capital
+letters and dropped if text is set in ALL CAPS, e.g. \ensuregreek{μαΐστρος
+$\mapsto$ \MakeUppercase{μαΐστρος}}. The macron and breve accents are
+handled as in Latin texts.
 
+The new \verb|\MakeUppercase| implementation (rolled out in the
+\href{https://www.latex-project.org/news/latex2e-news/ltnews35.pdf}
+{June 2022 LaTeX release}) relies on Unicode data. It upcases according to
+the Greek conventions \textbf{if the text language is set to Greek} with
+\pkgref{babel} or \pkgref{polyglossia}.
+
+For the pre-2022/06 implementation, \texttt{tuenc-greek.def} contains code
+to get the same effect.
 The uccode/lccode corrections (taken from Apostolos Syropoulos xgreek
 package) ensure dropping of accents with \verb|\MakeUppercase| for literal
 Unicode characters.
@@ -435,27 +460,27 @@ Unicode characters.
 However, when the tonos, varia, and perispomeni accents
 are input using the symbol macros (\verb|\' \` \~|), this does not work, as
 they cannot be distinguished from Latin acute, grave, and tilde accents.%
-\footnote{This might be fixed with \textbackslash accACUTE,
-          \textbackslash accGRAVE, and  \textbackslash accTILDE definitions
-          with corresponding @uclclist entries and composite definitions.}
 If these accents should be dropped by MakeUppercase, they must be input as
 named macro:
 
 \begin{quote}
-\acctonos\textalpha       \'\textalpha{}  \acctonos a\'a
-\accvaria\textalpha       \`\textalpha{}  \accvaria a\`a
-$\mapsto$
-\MakeUppercase{
-\acctonos\textalpha       \'\textalpha{}  \acctonos a\'a
-\accvaria\textalpha       \`\textalpha{}  \accvaria a\`a
-}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \acctonos\textalpha\'\textalpha{}  \acctonos a\'a
+  \accvaria\textalpha\`\textalpha{}  \accvaria a\`a
+  $\mapsto$
+  \MakeUppercase{
+  \acctonos\textalpha\'\textalpha{}  \acctonos a\'a
+  \accvaria\textalpha\`\textalpha{}  \accvaria a\`a
+  }
 \end{quote}
 
-\subsubsection{hiatus}
+\subsection{hiatus}
 
 Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on
-the first vowel of a diphtong (άι, άυ, έι, ἄι, ἄυ, ἔι). A dialytika must be
-placed on the second vowel if they are dropped.
+the first of two consecutive vowels (άι, άυ, έι, ἀυ, ἄι, ἄυ, ἔι).
+A dialytika must be placed on the second vowel if they are dropped.
 
 The «hiatus» feature works with macro input:
 \begin{quote}
@@ -476,16 +501,33 @@ The «hiatus» feature works with macro input:
   \MakeUppercase{\accpsili\textalpha\textupsilon πνία}.
 \end{quote}
 
-It does not work with Unicode literals:
+Since the 2022/06 LaTeX release, it works with monotonic Unicode literals
+(since 2023/02/10 also some polytonic)
 \begin{quote}
-  άι, άυ, έι, ἄι, ἄυ, ἔι $\mapsto$ \MakeUppercase{άι, άυ, έι, ἄι, ἄυ, ἔι}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \newcommand*{\hiatest}{άι, άυ, έι, ἄι, ἄυ, ἔι, ἀυ}
+  \hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
 \end{quote}
-
-or accent-macro + Unicode literals (yet?):
+but not with the named accent-macro + Unicode literals
 \begin{quote}
-  \acctonos αι, \acctonos αυ, \acctonos ει, \'>αι, \'>αυ, \'>ει
-  $\mapsto$
-  \MakeUppercase{\acctonos αι, \acctonos αυ, \acctonos ει, \'>αι, \'>αυ, \'>ει}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \newcommand*{\hiatest}{
+    \acctonos αι, \acctonos αυ, \acctonos ει,
+    \accpsilioxia αι, \accpsilioxia αυ, \accpsilioxia ει, \accpsili αυ}
+  \hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
+\end{quote}
+nor with short accent-macro + Unicode literals (yet?)
+\begin{quote}
+  \ifdefined\extrasgreek
+    \selectlanguage{greek}
+  \fi
+  \newcommand*{\hiatest}{
+    \'αι, \'αυ, \'ει, \'>αι, \'>αυ, \'>ει, \>αυ}
+  \hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
 \end{quote}
 
 \section{Character Tables}
@@ -495,8 +537,8 @@ LICR macro is followed by the corresponding literal Unicode character.
 
 \subsection{Greek and Coptic Unicode block}
 
-Seldom used characters that are not part of LGR encoded TeX fonts have no
-LICR definition.
+Only characters that are supported by LGR encoded TeX fonts have a LICR
+definition.
 
 \newcommand{\greekandcoptic}{
 % NR    Unicode Name                                       %   babel name, UCS name
@@ -517,7 +559,7 @@ LICR definition.
 \acctonos{ } ΄
 \"'{ } ΅
 \'\textAlpha Ά
-\textanoteleia · % \anoteleia
+\textanoteleia · % \anoteleia, 00B7 (middle dot) is the preferred character
 \'\textEpsilon Έ
 \'\textEta Ή
 \'\textIota Ί
@@ -577,7 +619,7 @@ LICR definition.
 
 \textpi π
 \textrho ρ
-\textvarsigma ς
+\textfinalsigma ς
 \textsigma σ
 \texttau τ
 \textupsilon υ
@@ -593,7 +635,7 @@ LICR definition.
 
 \textbetasymbol ϐ
 \textthetasymbol ϑ
-ϒ ϓ ϔ
+% ϒ ϓ ϔ
 \textphisymbol ϕ
 \textpisymbol ϖ %ϗ
 
@@ -626,17 +668,29 @@ LICR definition.
 
 \greekandcoptic
 
-\noindent MakeUppercase (note: standard accents not dropped):
+\noindent MakeUppercase (TODO: standard accents not dropped, accents from
+pre-composed characters dropped since 2022/06, if the text language is set
+to Greek):
 
-\MakeUppercase{\greekandcoptic}
+\foreignlanguage{greek}{
+  \MakeUppercase{\greekandcoptic}
+}
+
+TODO: Alias \verb|\textvarsigma| not upcased with new MakeUppercase:
+\foreignlanguage{greek}{
+  \textvarsigma ς → \MakeUppercase{\textvarsigma ς}
+}
 
 \noindent MakeLowercase:
 
-\MakeLowercase{\greekandcoptic}
+\foreignlanguage{greek}{
+  \MakeLowercase{\greekandcoptic}
+}
 
-The lowercase of Σ is σ (GREEK SMALL LETTER SIGMA).\footnote{%
-With LICRs, it is \texttt{\textbackslash textautosigma}.}
-The lowercase of Ϛ (GREEK LETTER STIGMA) is ϛ (GREEK SMALL LETTER STIGMA).
+\noindent
+The lowercase of ΣΣ is \MakeLowercase{ΣΣ}.\footnote{%
+  With LaTeX versions since 2022/06,
+  the final sigma is used if the algorithm detects the end of a word.}
 
 
 \subsection{Greek Extended Unicode block}
@@ -644,9 +698,6 @@ The lowercase of Ϛ (GREEK LETTER STIGMA) is ϛ (GREEK SMALL LETTER STIGMA).
 Note: There are no LICR definitions for spacing diacritical characters.
 Use the corresponding accent macro with an empty argument or a space.
 
-% \accvaria\textalpha    ὰ
-% \accoxia\textalpha    ά
-
 \medskip
 
 \newcommand{\greekextended}{
@@ -828,8 +879,8 @@ Use the corresponding accent macro with an empty argument or a space.
 \accvaria\textalpha\ypogegrammeni ᾲ
 \textalpha\ypogegrammeni          ᾳ
 \accoxia\textalpha\ypogegrammeni  ᾴ
-\accperispomeni\textalpha         ᾶ
-\accperispomeni\textalpha\ypogegrammeni ᾷ
+\~\textalpha                      ᾶ
+\~\textalpha\ypogegrammeni        ᾷ
 \u\textAlpha                      Ᾰ
 \=\textAlpha                      Ᾱ
 \accvaria\textAlpha               Ὰ
@@ -844,8 +895,8 @@ Use the corresponding accent macro with an empty argument or a space.
 \accvaria\texteta\ypogegrammeni   ῂ
 \texteta\ypogegrammeni            ῃ
 \accoxia\texteta\ypogegrammeni    ῄ
-\accperispomeni\texteta           ῆ
-\accperispomeni\texteta\ypogegrammeni ῇ
+\~\texteta                        ῆ
+\~\texteta\ypogegrammeni          ῇ
 \accvaria\textEpsilon             Ὲ
 \accoxia\textEpsilon              Έ
 \accvaria\textEta                 Ὴ
@@ -859,8 +910,8 @@ Use the corresponding accent macro with an empty argument or a space.
 \=\textiota                       ῑ
 \`"\textiota                      ῒ
 \'"\textiota                      ΐ
-\accperispomeni\textiota          ῖ
-\accperispomeni"\textiota         ῗ
+\~\textiota                       ῖ
+\~"\textiota                      ῗ
 \u\textIota                       Ῐ
 \=\textIota                       Ῑ
 \accvaria\textIota                Ὶ
@@ -875,8 +926,8 @@ Use the corresponding accent macro with an empty argument or a space.
 \'"\textupsilon                   ΰ
 \>\textrho                        ῤ
 \<\textrho                        ῥ
-\accperispomeni\textupsilon       ῦ
-\accperispomeni"\textupsilon      ῧ
+\~\textupsilon                    ῦ
+\~"\textupsilon                   ῧ
 \u\textUpsilon                    Ῠ
 \=\textUpsilon                    Ῡ
 \accvaria\textUpsilon             Ὺ
@@ -889,8 +940,8 @@ Use the corresponding accent macro with an empty argument or a space.
 \accvaria\textomega\ypogegrammeni ῲ
 \textomega\ypogegrammeni          ῳ
 \accoxia\textomega\ypogegrammeni  ῴ
-\accperispomeni\textomega         ῶ
-\accperispomeni\textomega\ypogegrammeni ῷ
+\~\textomega                      ῶ
+\~\textomega\ypogegrammeni        ῷ
 \accvaria\textOmicron             Ὸ
 \accoxia\textOmicron              Ό
 \accvaria\textOmega               Ὼ
@@ -904,10 +955,175 @@ Use the corresponding accent macro with an empty argument or a space.
 
 \noindent MakeUppercase:
 
+\foreignlanguage{greek}{
+  \MakeUppercase{\greekextended}
+}
+
+\noindent MakeLowercase:
+
+\foreignlanguage{greek}{
+  \MakeLowercase{\greekextended}
+}
+
+\subsection{Character Tables: accent + literal base character}
+
+With Xe/LuaTeX and Unicode fonts, diacritics may also be input using
+accent macros on a literal Unicode base character.
+
+\subsubsection{Greek and Coptic Unicode block}
+
+\renewcommand{\greekandcoptic}{
+
+\'ΑΆ \'ΕΈ \'ΗΉ \'ΙΊ \'ΟΌ \'ΥΎ \'ΩΏ
+
+\"'ιΐ \"ΙΪ \"ΥΫ \'αά \'εέ \'ηή \'ιί
+
+\"'υΰ
+
+\"ιϊ \"υϋ \'οό \'υύ \'ωώ
+}
+
+Accented letters from the Greek and Coptic Unicode Block
+
+\greekandcoptic
+
+\noindent MakeUppercase:
+
+\foreignlanguage{greek}{
+  \MakeUppercase{\greekandcoptic}
+}
+
+\noindent MakeLowercase:
+
+\foreignlanguage{greek}{
+  \MakeLowercase{\greekandcoptic}
+}
+
+\subsubsection{Greek Extended Unicode block}
+
+
+\renewcommand{\greekextended}{
+\>αἀ \<αἁ \>`αἂ \<`αἃ \>'αἄ \<'αἅ \~>αἆ \~<αἇ
+\>ΑἈ \<ΑἉ \>`ΑἊ \<`ΑἋ \>'ΑἌ \<'ΑἍ \~>ΑἎ \~<ΑἏ
+
+\>εἐ \<εἑ \>`εἒ \<`εἓ \>'εἔ \<'εἕ
+\>ΕἘ \<ΕἙ \>`ΕἚ \<`ΕἛ \>'ΕἜ \<'ΕἝ
+
+\>ηἠ \<ηἡ \>`ηἢ \<`ηἣ \>'ηἤ \<'ηἥ \~>ηἦ \~<ηἧ
+\>ΗἨ \<ΗἩ \>`ΗἪ \<`ΗἫ \>'ΗἬ \<'ΗἭ \~>ΗἮ \~<ΗἯ
+
+\>ιἰ \<ιἱ \>`ιἲ \<`ιἳ \>'ιἴ \<'ιἵ \~>ιἶ \~<ιἷ
+\>ΙἸ \<ΙἹ \>`ΙἺ \<`ΙἻ \>'ΙἼ \<'ΙἽ \~>ΙἾ \~<ΙἿ
+
+\>οὀ \<οὁ \>`οὂ \<`οὃ \>'οὄ \<'οὅ
+\>ΟὈ \<ΟὉ \>`ΟὊ \<`ΟὋ \>'ΟὌ \<'ΟὍ
+
+\>υὐ \<υὑ \>`υὒ \<`υὓ \>'υὔ \<'υὕ \~>υὖ \~<υὗ
+\<ΥὙ \<`ΥὛ \<'ΥὝ \~<ΥὟ
+
+\>ωὠ \<ωὡ \>`ωὢ \<`ωὣ \>'ωὤ \<'ωὥ \~>ωὦ \~<ωὧ
+\>ΩὨ \<ΩὩ \>`ΩὪ \<`ΩὫ \>'ΩὬ \<'ΩὭ \~>ΩὮ \~<ΩὯ
+
+\`αὰ \'αά \`εὲ \'εέ \`ηὴ \'ηή \`ιὶ \'ιί \`οὸ \'οό \`υὺ \'υύ \`ωὼ \'ωώ
+
+\>α\ypogegrammeni   ᾀ
+\<α\ypogegrammeni   ᾁ
+\>`α\ypogegrammeni  ᾂ
+\<`α\ypogegrammeni  ᾃ
+\>'α\ypogegrammeni  ᾄ
+\<'α\ypogegrammeni  ᾅ
+\~>α\ypogegrammeni  ᾆ
+\~<α\ypogegrammeni  ᾇ
+\>Α\ypogegrammeni   ᾈ
+\<Α\ypogegrammeni   ᾉ
+\>`Α\ypogegrammeni  ᾊ
+\<`Α\ypogegrammeni  ᾋ
+\>'Α\ypogegrammeni  ᾌ
+\<'Α\ypogegrammeni  ᾍ
+\~>Α\ypogegrammeni  ᾎ
+\~<Α\ypogegrammeni  ᾏ
+
+\>η\ypogegrammeni   ᾐ
+\<η\ypogegrammeni   ᾑ
+\>`η\ypogegrammeni  ᾒ
+\<`η\ypogegrammeni  ᾓ
+\>'η\ypogegrammeni  ᾔ
+\<'η\ypogegrammeni  ᾕ
+\~>η\ypogegrammeni  ᾖ
+\~<η\ypogegrammeni  ᾗ
+\>Η\ypogegrammeni   ᾘ
+\<Η\ypogegrammeni   ᾙ
+\>`Η\ypogegrammeni  ᾚ
+\<`Η\ypogegrammeni  ᾛ
+\>'Η\ypogegrammeni  ᾜ
+\<'Η\ypogegrammeni  ᾝ
+\~>Η\ypogegrammeni  ᾞ
+\~<Η\ypogegrammeni  ᾟ
+
+\>ω\ypogegrammeni   ᾠ
+\<ω\ypogegrammeni   ᾡ
+\>`ω\ypogegrammeni  ᾢ
+\<`ω\ypogegrammeni  ᾣ
+\>'ω\ypogegrammeni  ᾤ
+\<'ω\ypogegrammeni  ᾥ
+\~>ω\ypogegrammeni  ᾦ
+\~<ω\ypogegrammeni  ᾧ
+\>Ω\ypogegrammeni   ᾨ
+\<Ω\ypogegrammeni   ᾩ
+\>`Ω\ypogegrammeni  ᾪ
+\<`Ω\ypogegrammeni  ᾫ
+\>'Ω\ypogegrammeni  ᾬ
+\<'Ω\ypogegrammeni  ᾭ
+\~>Ω\ypogegrammeni  ᾮ
+\~<Ω\ypogegrammeni  ᾯ
+
+\u αᾰ \= αᾱ
+\`α\ypogegrammeni ᾲ
+α\ypogegrammeni   ᾳ
+\'α\ypogegrammeni ᾴ
+\~αᾶ
+\~α\ypogegrammeni ᾷ
+\u ΑᾸ \= ΑᾹ \`ΑᾺ \'ΑΆ
+Α\ypogegrammeni ᾼ
+
+\`η\ypogegrammeni ῂ
+η\ypogegrammeni   ῃ
+\'η\ypogegrammeni ῄ
+\~ηῆ
+\~η\ypogegrammeni ῇ
+\`ΕῈ \'ΕΈ \`ΗῊ \'ΗΉ
+Η\ypogegrammeni ῌ
+
+\u ιῐ \=ιῑ \"`ιῒ \"'ιΐ \~ιῖ \"~ιῗ \u ΙῘ \= ΙῙ \`ΙῚ \'ΙΊ
+
+\u υῠ \=υῡ \"`υῢ \'"υΰ \>ρῤ \<ρῥ \~υῦ \~"υῧ
+\u ΥῨ \=ΥῩ \`ΥῪ \'ΥΎ \<ΡῬ
+
+\`ω\ypogegrammeni ῲ
+ω\ypogegrammeni   ῳ
+\'ω\ypogegrammeni ῴ
+\~ω               ῶ
+\~ω\ypogegrammeni ῷ
+\`ΟῸ \'ΟΌ \`ΩῺ \'ΩΏ
+Ω\ypogegrammeni ῼ
+}
+
+Accented letters from the Greek Extended Unicode block
+
+\greekextended
+
+
+\medskip
+\noindent MakeUppercase:
+
+\foreignlanguage{greek}{
 \MakeUppercase{\greekextended}
+}
 
+\medskip
 \noindent MakeLowercase:
 
+\foreignlanguage{greek}{
 \MakeLowercase{\greekextended}
-
+}
 \end{document}
diff --git a/language/greek/greek-fontenc/test-utf8-input.pdf b/language/greek/greek-fontenc/test-utf8-input.pdf
new file mode 100644
index 0000000000..46a3139369
Binary files /dev/null and b/language/greek/greek-fontenc/test-utf8-input.pdf differ
diff --git a/language/greek/greek-fontenc/test-utf8-input.tex b/language/greek/greek-fontenc/test-utf8-input.tex
new file mode 100644
index 0000000000..6e979fba2c
--- /dev/null
+++ b/language/greek/greek-fontenc/test-utf8-input.tex
@@ -0,0 +1,87 @@
+% Test definitions for accents and composite accents in Greek
+\RequirePackage{latexbug}
+\documentclass[a4paper]{article}
+% \pagestyle{empty}
+\usepackage{lmodern}
+
+% Load encoding definitions (after font package)
+\usepackage[LGR,T1]{fontenc}
+
+
+% \usepackage{textalpha}  % Greek script "everywhere"!
+\usepackage[greek,english,provide=*]{babel}    % Babel's Greek "ini"
+% \usepackage[greek,english]{babel}  % babel-greek
+
+\begin{document}
+
+\section*{Test upcasing of Greek characters with 8-bit TeX}
+
+The Greek and Coptic Unicode Block
+
+\newcommand{\GreekAndCoptic}{%
+                   ͺ ; ΄   ΅    Ά ·  Έ  Ή  Ί  Ό  Ύ  Ώ  \\
+               ΐ Α Β Γ  Δ Ε Ζ Η Θ Ι  Κ  Λ  Μ  Ν  Ξ  Ο  \\
+               Π Ρ   Σ  Τ Υ Φ Χ Ψ Ω  Ϊ  Ϋ  ά  έ  ή  ί  \\
+               ΰ α β γ  δ ε ζ η θ ι  κ  λ  μ  ν  ξ  ο  \\
+               π ρ ς σ  τ υ φ χ ψ ω  ϊ  ϋ  ό  ύ  ώ     }
+\begin{quote}
+  \selectlanguage{greek}
+  % \greekscript
+  \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+  \selectlanguage{greek}
+  % \greekscript
+  \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+% MakeLowercase:
+% \begin{quote}
+%   \greekscript
+%   \MakeLowercase{\GreekAndCoptic}
+% \end{quote}
+
+
+Greek extended Unicode block
+
+\newcommand{\GreekExtended}{\raggedright
+  ἀ   ἁ   ἂ   ἃ   ἄ   ἅ   ἆ    ἇ    Ἀ   Ἁ   Ἂ   Ἃ   Ἄ   Ἅ   Ἆ  Ἇ \\
+  ἐ   ἑ   ἒ   ἓ   ἔ   ἕ \ \  \ \    Ἐ   Ἑ   Ἒ   Ἓ   Ἔ   Ἕ        \\
+  ἠ   ἡ   ἢ   ἣ   ἤ   ἥ   ἦ    ἧ    Ἠ   Ἡ   Ἢ   Ἣ   Ἤ   Ἥ   Ἦ  Ἧ \\
+  ἰ   ἱ   ἲ   ἳ   ἴ   ἵ   ἶ    ἷ    Ἰ   Ἱ   Ἲ   Ἳ   Ἴ   Ἵ   Ἶ  Ἷ \\
+  ὀ   ὁ   ὂ   ὃ   ὄ   ὅ \ \  \ \    Ὀ   Ὁ   Ὂ   Ὃ   Ὄ   Ὅ        \\
+  ὐ   ὑ   ὒ   ὓ   ὔ   ὕ   ὖ    ὗ  \ \   Ὑ \ \   Ὓ \ \   Ὕ \ \  Ὗ \\
+  ὠ   ὡ   ὢ   ὣ   ὤ   ὥ   ὦ    ὧ    Ὠ   Ὡ   Ὢ   Ὣ   Ὤ   Ὥ   Ὦ  Ὧ \\
+  ὰ   ά   ὲ   έ   ὴ   ή   ὶ    ί    ὸ   ό   ὺ   ύ   ὼ   ώ        \\
+  ᾀ   ᾁ   ᾂ   ᾃ   ᾄ   ᾅ   ᾆ    ᾇ    ᾈ   ᾉ   ᾊ   ᾋ   ᾌ   ᾍ   ᾎ  ᾏ \\
+  ᾐ   ᾑ   ᾒ   ᾓ   ᾔ   ᾕ   ᾖ    ᾗ    ᾘ   ᾙ   ᾚ   ᾛ   ᾜ   ᾝ   ᾞ  ᾟ \\
+  ᾠ   ᾡ   ᾢ   ᾣ   ᾤ   ᾦ   ᾧ    ᾥ    ᾨ   ᾩ   ᾪ   ᾫ   ᾬ   ᾭ   ᾮ  ᾯ \\
+  ᾰ   ᾱ   ᾲ   ᾳ   ᾴ \ \   ᾶ    ᾷ    Ᾰ   Ᾱ   Ὰ   Ά   ᾼ   ᾽   ι  ᾿ \\
+  ῀   ῁   ῂ   ῃ   ῄ \ \   ῆ    ῇ    Ὲ   Έ   Ὴ   Ή   ῌ   ῍      ῏ \\
+  ῐ   ῑ   ῒ   ΐ \ \ \ \   ῖ    ῗ    Ῐ   Ῑ   Ὶ   Ί \ \   ῝      ῟ \\
+  ῠ   ῡ   ῢ   ΰ \ \ \ \   ῤ    ῥ    ῦ   ῧ   Ὺ   Ύ   Ῥ   ῭      ` \\
+ \ \ \ \  ῲ   ῳ   ῴ \ \   ῶ    ῷ    Ὸ   Ό   Ὼ   Ώ   ῼ   ´        }
+
+\begin{quote}
+  \selectlanguage{greek}
+  \greekscript
+  \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+  \selectlanguage{greek}
+  \greekscript
+  \MakeUppercase{\GreekExtended}
+\end{quote}
+
+% MakeLowercase:
+% \begin{quote}
+%   % \selectlanguage{greek}
+%   \greekscript
+%   \MakeLowercase{\GreekExtended}
+% \end{quote}
+
+\end{document}
diff --git a/language/greek/greek-fontenc/textalpha-doc-tu.pdf b/language/greek/greek-fontenc/textalpha-doc-tu.pdf
new file mode 100644
index 0000000000..068a0005f3
Binary files /dev/null and b/language/greek/greek-fontenc/textalpha-doc-tu.pdf differ
diff --git a/language/greek/greek-fontenc/textalpha-doc.pdf b/language/greek/greek-fontenc/textalpha-doc.pdf
index a849c4518b..ee2aedd801 100644
Binary files a/language/greek/greek-fontenc/textalpha-doc.pdf and b/language/greek/greek-fontenc/textalpha-doc.pdf differ
diff --git a/language/greek/greek-fontenc/textalpha-doc.tex b/language/greek/greek-fontenc/textalpha-doc.tex
index 38c1d2e67e..2f37d340a4 100644
--- a/language/greek/greek-fontenc/textalpha-doc.tex
+++ b/language/greek/greek-fontenc/textalpha-doc.tex
@@ -1,6 +1,7 @@
 \documentclass{article}
 \usepackage{parskip}
 \usepackage{booktabs}
+\usepackage{cmap}
 
 \ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
   % Setup for Unicode fonts (Xe-/LuaTeX)
@@ -13,7 +14,6 @@
   % (XeTeX in compatibility mode would require inputenc hacks and is not
   % reliable.)
   \usepackage{lmodern}
-  \usepackage{textcomp}
   \usepackage[LGR,T1]{fontenc}
   \newcommand*{\greekfontencoding}{LGR}
   \newcommand*{\latinencoding}{T1}
@@ -69,7 +69,7 @@ in text independent of font encoding or TeX engine.%
 }
 Input is possible via text commands (\verb|\textalpha| \ldots
 \verb|\textOmega|) or Unicode literals\footnote{%
-Requires \emph{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}
+Requires \emph{\href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc}}
 or XeTeX/LuaTeX.}.
 }
 
@@ -84,15 +84,15 @@ Load this package in the preamble of your document with
 \end{verbatim}
 to get a unified interface for Greek letters and symbols that works in all
 text font encodings, with both, Unicode fonts and the
-\href{http://www.ctan.org/pkg/fontspec}{\emph{fontspec}} package or 8-bit
-fonts and the \href{http://www.ctan.org/pkg/fontenc}{\emph{fontenc}}
+\href{https://ctan.org/pkg/fontspec}{\emph{fontspec}} package or 8-bit
+fonts and the \href{https://ctan.org/pkg/fontenc}{\emph{fontenc}}
 package.
 
 See the source of this document \url{textalpha-doc.tex} for a setup and
 usage example, the literate source of the package
 \href{textalpha.sty.html}{textalpha.sty} for the implementation, and
-\href{test-tuenc-greek.pdf}{test-tuenc-greek.pdf} for
-\emph{Font setup for Greek with XeTeX/LuaTeX}.
+\href{test-tuenc-greek.pdf}{test-tuenc-greek.pdf} for Greek with
+XeTeX/LuaTeX.
 
 
 \subsection{Options}
@@ -101,27 +101,20 @@ usage example, the literate source of the package
 Mathematical notation uses variant shapes of some Greek letters as
 additional symbols.  There are separate code points for the symbol variants
 in Unicode. TeX supports some of the variant shape symbols in mathematical
-mode
-\[
-  \theta|\vartheta, \phi|\varphi, \pi|\varpi, \rho|\varrho,
-  \epsilon|\varepsilon
-\]
-but not in the LGR font encoding used for Greek text
+mode ($\theta|\vartheta, \phi|\varphi, \pi|\varpi, \rho|\varrho,
+\epsilon|\varepsilon$) but not in the LGR font encoding used for Greek text
 in 8-bit TeX.
-
 The variations have no syntactic meaning in Greek text and text fonts may
 use the variant shapes in place of the “regular” ones as a stylistic choice.
-However, some Greek texts use these GREEK ... SYMBOL Unicode literals in place of
-the corresponding GREEK LETTER ... characters.
 
 The \texttt{normalize-symbols} option merges letters and symbols to Greek
 letters.
 This way, text copied from external sources can be compiled without
-errors even if it contains GREEK SYMBOL characters in place of GREEK LETTERS:
+errors even if it contains a GREEK SYMBOL ... in place of a GREEK LETTER ...:
 \begin{quote}
-  The source of this text uses both variants for beta (β|ϐ), theta (θ|ϑ),
-  phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ), and epsilon
-  (ε|ϵ) in the LaTeX source.
+  The source of this paragraph uses both variants for beta (β|ϐ),
+  theta (θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ),
+  and epsilon (ε|ϵ).
 \end{quote}
 %
 This option is ignored with Unicode fonts.
@@ -136,10 +129,10 @@ Unicode fonts in these cases.
 
 \subsubsection{\texttt{keep-semicolon}}
 
-LGR is no \href{http://mirrors.ctan.org/macros/latex/base/encguide.pdf}{standard text font encoding}.
+LGR is no \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}{standard text font encoding}.
 Latin characters and some other ASCII symbols are mapped to Greek
 ``equivalents'' if LGR is the active font encoding. (See
-\href{http://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf}{usage.pdf}
+\href{https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf}{usage.pdf}
 for a description of this Latin-Greek transliteration.)
 
 Special care is required with the question mark characters: The LGR font
@@ -179,9 +172,10 @@ always prints a semicolon character).
 
 \section{Limitations \label{sec:limitations}}
 
-Because the internal font encoding switch interferes with other work behind
-the scenes, kerning, diacritics and up/down-casing show problems if Greek
-letters are used without explicit change of the font encoding.
+If compiling with 8-bit TeX, the internal font encoding switches interfere
+with other work behind the scenes. Kerning, diacritics and up/down-casing
+show problems if Greek letters are used without explicit change of the font
+encoding.
 
 These problems can be avoided by use of \emph{babel} and the correct
 language setting (greek), an explicit font encoding switch (e.g.
@@ -194,32 +188,39 @@ wrapping the Greek text in \verb|\ensuregreek|%
   },
 or XeTeX/LuaTeX with Unicode fonts.
 
+\subsection{Kerning}
+
+With pdfTeX and 8-bit fonts, no kerning occurs between Greek characters in
+non-Greek text due to the internal font encoding switch: compare
+\ensuregreek{\textAlpha\textUpsilon\textAlpha} (\greekfontencoding) to
+\textAlpha\textUpsilon\textAlpha{} (\latinencoding).
+
+Compiling with LuaTeX provides kerning also on font encoding boundaries.
 
 \subsection{Diacritics}
 
 Accent macros do not work with Unicode literals as base character
-under 8-bit LaTeX engines. Use the Latin transcription or LICR commands.
+under 8-bit TeX engines. Use the Latin transliteration or LICR commands.
 
 Composition of diacritics (like \verb|\accdasia\acctonos| or \verb|\<\'|)
 fails in other font encodings. Long names (like \verb|\accdasiaoxia|) work.
 
 With LGR and TU, pre-composed glyphs are chosen if available. In other font
-encodings, accent macros do not select pre-composed characters. (The
-difference is a sub-optimal placement of the accent and becomes obvious if
-you drag-and-drop text from the PDF version of this document.):
-
+encodings, accent macros do not select pre-composed characters.
+The difference is a sub-optimal placement of the accent and becomes obvious
+if you drag-and-drop text from the PDF version of this document.:
 \begin{quote}
   \ensuregreek{\<'\textalpha
+               \'<\textalpha
                \accdasia\acctonos\textalpha
+               \acctonos\accdasia\textalpha
                \accdasiaoxia\textalpha
-   	       \accdasiaoxia\textalpha
-	      } (\greekfontencoding) 
+	      } (\greekfontencoding)
   vs. \accdasiaoxia\textalpha{} (\latinencoding).
 \end{quote}
 
-According to Greek typographical tradition, diacritics (except the
-dialytika) are placed before capital letters in Titlecase and dropped in
-UPPERCASE:
+Greek diacritics (except the dialytika) are placed before capital letters in
+Titlecase and dropped in UPPERCASE:
 %
 \begin{quote}
   \ensuregreek{%
@@ -228,27 +229,36 @@ UPPERCASE:
     \quad
     \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{}
     \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega}
-    \quad
+
     \MakeUppercase{%
       \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`\>\texteta{}
       \'<{\textomicron} \~<{\textupsilon} \~>{\textomega}
+      \quad
+      \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{}
+      \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega}
     }
   }
 \end{quote}
 %
-This fails for accent macros if the active font encoding does not support
-Greek. Pre-composed literal Unicode characters are handled correctly:
+With the new \verb|\MakeUppercase| implementation (since 2022/06),
+Greek upcasing rules are only applied if the text language is set to Greek
+with Babel (and still need some fixes for LICR input).
+
+With the old \verb|\MakeUppercase| implementation, the above rules are fully
+applied if the active font encoding is LGR or TU. However, accents input as
+macros are misplaced if the active font encoding does not support Greek.
+Pre-composed literal Unicode characters are handled correctly:
 \begin{quote}
     \begin{tabular}{ccc}
         & LICR                       & Unicode         \\ \hline
     \greekfontencoding & \ensuregreek{\'\textAlpha} & \ensuregreek{Ά} \\
-    \latinencoding  & \'\textAlpha               & Ά               \\
+    \latinencoding     & \'\textAlpha               & Ά
     \end{tabular}
 \end{quote}
 
 The dialytika marks a \emph{hiatus} (break-up of a diphthong). It must be
 present in UPPERCASE even where it is redundant in lowercase (the hiatus can
-also be marked by an accent on the first character of a diphthong). The
+also be marked by an accent on the first of two consecutive vowels). The
 auto-hiatus feature works in LGR and TU font encodings only:
 \begin{quote}
   \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{} $\mapsto$
@@ -260,34 +270,28 @@ auto-hiatus feature works in LGR and TU font encodings only:
   } (\latinencoding)
 \end{quote}
 
-Currently, the auto-hiatus feature should works only reliably with
-LICR commands, not Unicode literals:
+With the old implementation of \verb|\MakeUppercase|, the auto-hiatus
+feature works with LICR commands, not Unicode literals.
+The new implementation works with Unicode literals but only if the text
+language is Greek (i.e. not in this document that does not load Babel).
 \begin{quote}
-\ensuregreek{ἀ\textupsilon{}πνία} $\mapsto$
+\ensuregreek{\accpsili{\textalpha}\textupsilon{}πνία} $\mapsto$
 \ensuregreek{\MakeUppercase{\ensuregreek{\accpsili{\textalpha}\textupsilon{}πνία}}}
 (OK)
 
 \ensuregreek{ἀ\textupsilon{}πνία} $\mapsto$
-\ensuregreek{\MakeUppercase{\ensuregreek{ἀ\textupsilon{}πνία}}} (OK with LGR)
+\ensuregreek{\MakeUppercase{ἀ\textupsilon{}πνία}} (OK with LGR)
 
-\ensuregreek{ἀ\textupsilon{}πνία} $\mapsto$
-\ensuregreek{\MakeUppercase{\ensuregreek{ἀυπνία}}} (fail)
+\ensuregreek{ἀυπνία} $\mapsto$
+\ensuregreek{\MakeUppercase{ἀυπνία}} (literal characters fail without Babel)
 \end{quote}
 
-\subsection{Kerning}
-
-With 8-bit fonts, no kerning occurs between Greek characters in non-Greek
-text due to the internal font encoding switch: compare
-\ensuregreek{\textAlpha\textUpsilon\textAlpha} (\greekfontencoding) to
-\textAlpha\textUpsilon\textAlpha{} (\latinencoding).
-
-Compiling with LuaTeX provides kerning also on font encoding boundaries.
 
 \section{Test and Examples}
 
 \subsection{Greek alphabet}
 
-Greek letters via Latin transcription (works only in LGR font encoding):
+Greek letters via Latin transliteration (works only in LGR font encoding):
 
 \begin{quote}
   \ensuregreek{a b g d e z h j i k l m n x o p r sv c t u f q y w}
@@ -395,7 +399,7 @@ In LGR, the Latin letter \verb|s| and the command \verb|\textautosigma|
 print the ``normal'' sigma if followed by another letter and the final sigma
 if followed by space or punctuation. This is implemented via the font
 ligature mechanism and works only in LGR:
-\ensuregreek{\textautosigma\textautosigma} (\greekfontencoding) and
+\ensuregreek{\textautosigma\textautosigma} (\greekfontencoding) vs.
 \textautosigma{}\textautosigma{} (\latinencoding).
 
 The upper case of both sigma variants is \verb|\textSigma|, the lower case
@@ -403,20 +407,26 @@ of Sigma is \verb|\textautosigma|.
 
 Test: (Unicode literal and \verb|\text...| commands in \greekfontencoding)
 
-σ \textsigma{} ς \textvarsigma{} \textfinalsigma{} \textautosigma{} lowercase
+original: σ\textsigma{} ς\textvarsigma \textfinalsigma \textautosigma{}
+          ΣΣ \textSigma\textSigma{}
 
-\MakeUppercase{
-σ \textsigma{} ς \textvarsigma{} \textfinalsigma{} \textautosigma{}} MakeUppercase
+MakeUppercase:
+\MakeUppercase{σ\textsigma{} ς\textvarsigma \textfinalsigma \textautosigma{}
+               ΣΣ \textSigma\textSigma{}}
 
-\ensuregreek{ΣΣ \textSigma\textSigma{}} uppercase
+MakeLowercase:
+\MakeLowercase{σ\textsigma{} ς\textvarsigma \textfinalsigma \textautosigma{}
+               \ensuregreek{ΣΣ \textSigma\textSigma{}}}
 
-\MakeLowercase{\ensuregreek{ΣΣ \textSigma\textSigma{}}} MakeLowercase
+TODO: With the new MakeLowercase, a literal Σ is converted according to its
+position :) but the macro \verb|\textSigma| is converted to a final sigma
+also in the middle of a word (at least with language English).
 
 
 \subsection{Greek Unicode characters in non-Greek text}
 
 With the \emph{textalpha} package,
-\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc} and input
+\href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc} and input
 encoding \texttt{utf8}, Greek Unicode characters can be used in text with
 any font encoding. See Tables \ref{tab:greek-and-coptic} and
 \ref{tab:greek-extended}.
@@ -436,7 +446,7 @@ Kerning is preserved if the active font encoding supports Greek:
 3A0 & Π & Ρ &   & Σ & Τ & Υ & Φ & Χ & Ψ & Ω & Ϊ & Ϋ & ά & έ & ή & ί\\
 3B0 & ΰ & α & β & γ & δ & ε & ζ & η & θ & ι & κ & λ & μ & ν & ξ & ο\\
 3C0 & π & ρ & ς & σ & τ & υ & φ & χ & ψ & ω & ϊ & ϋ & ό & ύ & ώ &  \\
-3D0 & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & Ϙ & ϙ & Ϛ & ϛ & Ϝ & ϝ & ◦ & ϟ\\
+3D0 & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & Ϙ & ϙ & Ϛ & ϛ & Ϝ & ϝ & Ϟ & ϟ\\
 3E0 & Ϡ & ϡ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦\\
 3F0 & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦ & ◦\\
 \bottomrule
@@ -486,7 +496,7 @@ MakeUppercase (μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}).
 \subsection{PDF strings}
 
 With \emph{textalpha} and
-\emph{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}}, there
+\emph{\href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc}}, there
 are two options to get Greek letters in PDF strings: LICR macros and literal
 Unicode input.
 
@@ -494,9 +504,9 @@ Unicode input.
          λογος and \ensuregreek{logos}}
 
 The subsection title above uses: LICR macros, Unicode input and the LGR
-transcription for the Greek word \ensuregreek{logos}. Check the table of
+transliteration for the Greek word \ensuregreek{logos}. Check the table of
 contents in the PDF viewer: LICR macros and Unicode literals work fine, the
-Latin transcription remains Latin in the PDF metadata.
+Latin transliteration remains Latin in the PDF metadata.
 
 \subsubsection{\greekalphabetsample}
 \subsubsection{\greekAlphabetsample}
diff --git a/language/greek/greek-fontenc/textalpha-tu.pdf b/language/greek/greek-fontenc/textalpha-tu.pdf
index 4f3454fac9..ac6b130fd8 100644
Binary files a/language/greek/greek-fontenc/textalpha-tu.pdf and b/language/greek/greek-fontenc/textalpha-tu.pdf differ
diff --git a/language/greek/greek-fontenc/textalpha.sty b/language/greek/greek-fontenc/textalpha.sty
index e7ac61e763..851f39dc95 100644
--- a/language/greek/greek-fontenc/textalpha.sty
+++ b/language/greek/greek-fontenc/textalpha.sty
@@ -16,7 +16,7 @@
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{textalpha}
-[2020/10/30 2.0 macros for Greek letters in text]
+[2023/02/28 2.2 macros for Greek letters in text]
 
 % .. note::
 %
@@ -27,29 +27,30 @@
 % Changelog:
 %   .. class:: borderless
 %
-%   ====== ========== =========================================================
-%   0.1    2010-06-16 initial version
-%   0.2    2012-06-27 support for compound Unicode definitions outside LGR
-%   0.3    2013-05-03 new accent macro names with ``lgrxenc.def`` 0.7
-%   0.4    2013-05-28 use ``lgrenc.def`` from greek-fontenc.
-%   0.5    2013-09-11 move to greek-fontenc_,
-%          ..         support XeTeX/LuaTeX, add breve below accents.
-%   0.11   2013-11-28 compatibility with Xe/LuaTeX in 8-bit mode.
-%   0.12   2014-12-12 fix auxiliary macro names,
-%                     define symbol macros for breathing accents.
-%   0.13   2015-09-04 Option normalize-symbols_: support for symbol variants.
-%          ..         Option keep-semicolon_: use semicolon as erotimatiko
-%                     in LGR.
-%   0.13.2 2016-02-05 Support for standard Unicode text font encoding "TU"
-%                     (new in fontspec v2.5a).
-%   0.13.4 2019-07-11 Auxiliary command for subscript iota.
-%   0.14   2020-02-28 Update test for Unicode fonts.
-%                     Rename ``greek-euenc`` to ``tuenc-greek``.
-%                     Don't use ``\LastDeclaredEncoding``.
-%   1.0    2020-09-25 Also set ``\encodingdefault`` with ``\greekscript``.
-%   2.0    2020-10-30 Load ``tuenc-greek.def`` with Xe/LuaTeX by default.
-%          ..         Load ``puenc-greek.def`` if used with `hyperref`_.
-%   ====== ========== =========================================================
+%   ====== =========== ========================================================
+%   0.1    2010-06-16  initial version
+%   0.2    2012-06-27  support for compound Unicode definitions outside LGR
+%   0.3    2013-05-03  new accent macro names with ``lgrxenc.def`` 0.7
+%   0.4    2013-05-28  use ``lgrenc.def`` from greek-fontenc.
+%   0.5    2013-09-11  move to greek-fontenc_,
+%   ..                 support XeTeX/LuaTeX, add breve below accents.
+%   0.11   2013-11-28  compatibility with Xe/LuaTeX in 8-bit mode.
+%   0.12   2014-12-12  fix auxiliary macro names,
+%                      define symbol macros for breathing accents.
+%   0.13   2015-09-04  Option normalize-symbols_: support for symbol variants.
+%   ..                 Option keep-semicolon_: use semicolon as erotimatiko
+%                      in LGR.
+%   0.13.2 2016-02-05  Support for standard Unicode text font encoding "TU"
+%                      (new in fontspec v2.5a).
+%   0.13.4 2019-07-11  Auxiliary command for subscript iota.
+%   0.14   2020-02-28  Update test for Unicode fonts.
+%                      Rename ``greek-euenc`` to ``tuenc-greek``.
+%                      Don't use ``\LastDeclaredEncoding``.
+%   1.0    2020-09-25  Also set ``\encodingdefault`` with ``\greekscript``.
+%   2.0    2020-10-30  Load ``tuenc-greek.def`` with Xe/LuaTeX by default.
+%   ..                 Load ``puenc-greek.def`` if used with `hyperref`_.
+%   2.2    2023-02-28  Don't use ``\makeatother`` in ``\AtBeginDocument``.
+%   ====== =========== ========================================================
 %
 % .. contents::
 %
@@ -86,9 +87,11 @@
 %   + natively by XeTeX/LuaTeX for Unicode fonts.
 %
 %     If 8-bit font encodings like LGR are used alongside Unicode fonts, text
-%     input can be done via the Latin transcription or LICR but *not via
+%     input can be done via the Latin transliteration or LICR but *not via
 %     literal Unicode characters* (see test-tuenc-greek.tex_).
 %
+% .. _limitations:
+%
 % .. Attention:: The macros work well in any font encoding for single symbols.
 %    However, with 8-bit TeX engines, the automatic font-encoding switches
 %    behind the doors interfere with kerning between letters and replacement
@@ -196,7 +199,7 @@
 % Symbol macros for breathings
 % ----------------------------
 %
-% In the Latin transcription provided by LGR, breathing accents (Dasia and
+% In the Latin transliteration provided by LGR, breathing accents (Dasia and
 % Psili) are input as < and >. Provide the corresponding NFSS macro accents.
 % (Used below for LGR, TU, and PU, if these font encodings are defined)::
 
@@ -243,50 +246,55 @@
 \ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
   \input{tuenc-greek.def}
   \textalpha@define@breathings{\UnicodeEncodingName}
+  \DeclareTextCompositeCommand{\<}{\UnicodeEncodingName}{^^9f}{\LGR@hiatus}
+  \DeclareTextCompositeCommand{\>}{\UnicodeEncodingName}{^^9f}{\LGR@hiatus}
 \else
-  \@ifl@aded{def}{lgrenc}{}{% else
-    \input{lgrenc.def}
+  \@ifl@aded{def}{lgrenc}
+    {}
+    {\input{lgrenc.def}
   }
-  \textalpha@define@breathings{LGR}
-  % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
-  \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
-  \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
 \fi
 
 % LGR may also be used in a document compiled with Xe/LuaTeX
-% (enables use of 8-bit TeX fonts and input via the Latin transcription).
+% (enables use of 8-bit TeX fonts and input via the Latin transliteration).
 % Add setup for breathings::
 
-\@ifl@aded{def}{lgrenc}{
-  \textalpha@define@breathings{LGR}
-  % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
-  \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
-  \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
-}{}
-
-% The package hyperref_ defines the PU font encoding which also supports
-% (monotonic) Greek. It currently misses polytonic greek, archaic symbols,
+\@ifl@aded{def}{lgrenc}
+  {\textalpha@define@breathings{LGR}
+   % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
+   \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
+   \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
+   }
+  {}
+
+% The package hyperref_ defines the PU font encoding and adds some
+% LICR commands for monotonic Greek (in punenc-greekbasick.def).
+% Add support for polytonic Greek, archaic symbols,
 % and the ``\greekscript`` and ``\ensuregreek`` TextCommands::
 
 \AtBeginDocument{
-  \@ifl@aded{def}{puenc}{
-    \makeatletter % required inside \AtBeginDocument
-    \input{puenc-greek.def}
-    \textalpha@define@breathings{PU}
-    \pdfstringdefDisableCommands{\let\TextOrMath\@firstoftwo}
-    \makeatother
-  }{}
+  \@ifl@aded{def}{puenc}
+    {\@ifl@aded{def}{puenc-greek}
+      {}% already loaded (e.g. by babel-greek)
+      {\edef\RestoreAtCatcode{\catcode`@=\the\catcode`@\relax}%
+       \makeatletter
+       \input{puenc-greek.def}
+       \RestoreAtCatcode
+      }%
+     \textalpha@define@breathings{PU}
+     \pdfstringdefDisableCommands{\let\TextOrMath\@firstoftwo}
+    }
+    {}
 }
 
-% The package textcomp defines the TS1 font encoding with the MICRO SIGN
-% named ``\texmu``. Provide the alias ``\textmicro``::
+% The TS1 font encoding (available by default since 2022) provides a
+% MICRO SIGN under the name ``\textmu`` but we use this name for the
+% GREEK SMALL LETTER MU.
+% The new macro ``\textmicro`` selects the character from TS1 fonts
+% and is not capitalised with ``\MakeUppercase``::
 
-\AtBeginDocument{
-  \@ifl@aded{def}{ts1enc}{
-    \DeclareTextSymbol{\textmicro}{TS1}{181} % micro sign
-    \DeclareTextSymbolDefault{\textmicro}{TS1}
-  }{}
-}
+\DeclareTextSymbol{\textmicro}{TS1}{181} % micro sign
+\DeclareTextSymbolDefault{\textmicro}{TS1}
 
 % Default declarations
 % --------------------
@@ -314,7 +322,7 @@
 % an alternative definition (see [fntguide_])::
 
 \ProvideTextCommandDefault{\greekscript}{\fontencoding{LGR}\selectfont
-      \def\encodingdefault{\greekfontencoding}}
+      \def\encodingdefault{LGR}}
 
 
 % The ``\ensuregreek`` command can be used to ensure that its argument is set in
@@ -382,6 +390,7 @@
 \DeclareTextSymbolDefault{\textkappa}{LGR}
 \DeclareTextSymbolDefault{\textlambda}{LGR}
 \DeclareTextSymbolDefault{\textmu}{LGR}
+\DeclareTextSymbolDefault{\textmugreek}{LGR} % (puenc.def)
 \DeclareTextSymbolDefault{\textnu}{LGR}
 \DeclareTextSymbolDefault{\textxi}{LGR}
 \DeclareTextSymbolDefault{\textomicron}{LGR}
@@ -418,6 +427,7 @@
 \DeclareTextSymbolDefault{\textkoppa}{LGR}       % ϟ Greek small letter koppa
 \DeclareTextSymbolDefault{\textkoppagreek}{LGR}  % ϟ (puenc.def)
 \DeclareTextSymbolDefault{\textKoppa}{LGR}       % ϟ Greek letter koppa (numeral koppa)
+\DeclareTextSymbolDefault{\textKoppagreek}{LGR}  % ϟ (puenc.def)
 \DeclareTextSymbolDefault{\textqoppa}{LGR}       % ϙ (archaic koppa)
 \DeclareTextSymbolDefault{\textQoppa}{LGR}       % Ϙ (archaic Koppa)
 \DeclareTextSymbolDefault{\textStigma}{LGR}      % Ϛ ϹΤ ligature in some fonts
@@ -500,8 +510,8 @@
 
 % Postfix accents::
 
-\DeclareTextSymbolDefault{\ypogegrammeni}{LGR} % "small" sub-iota
-\DeclareTextSymbolDefault{\prosgegrammeni}{LGR}  % "capital" sub-iota
+\DeclareTextSymbolDefault{\ypogegrammeni}{LGR} % subscript mute iota (combining)
+\DeclareTextSymbolDefault{\prosgegrammeni}{LGR}  % adscript mute iota (spacing)
 
 % Other accents in LGR::
 
@@ -540,22 +550,43 @@
 \fi
 
 
-
+% TODO
+% ====
+%
+% * Load ``lgrenc.def`` rsp. ``tuenc-greek.def`` after the common definitions
+%   and after ``puenc-greek.def``?
+%
+%    If an encoding-specific command is defined for more than one encoding,
+%    then it will execute fastest in the encoding in which it was defined
+%    last since its top-level definition will be set up to execute in that
+%    encoding without any overhead.
+%
+%    ...
+%
+%    For the same reason default declarations should never come last since
+%    they are implemented as a special encoding themselves (with the name ?).
+%    Specifying them last would simply mean to make those encoding-specific
+%    commands equally inefficient in all encodings.
+%
+%    -- source2e.pdf, chapter "ltoutenc.dtx",
+%       subsection "The order of declarations".
+%
+%
 % .. References
 %    ----------
 % .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
-% .. _CB fonts: http://ctan.org/pkg/cbgreek-complete
-% .. _babel: http://ctan.org/pkg/babel
+% .. _CB fonts: https://ctan.org/pkg/cbgreek-complete
+% .. _babel: https://ctan.org/pkg/babel
 % .. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
-% .. _fontenc: http://ctan.org/pkg/fontenc
-% .. _fontspec: http://ctan.org/pkg/fontspec
-% .. _fntguide: http://mirror.ctan.org/macros/latex/base/fntguide.pdf
-% .. _greek-fontenc: http://ctan.org/pkg/greek-fontenc
-% .. _greek-inputenc: http://ctan.org/pkg/greek-inputenc
-% .. _hyperref: http://ctan.org/pkg/hyperref
-% .. _inputenc: http://ctan.org/pkg/inputenc
-% .. _polyglossia: http://ctan.org/pkg/polyglossia
-% .. _textgreek: http://ctan.org/pkg/textgreek
-% .. _xunicode: http://ctan.org/pkg/xunicode
+% .. _fontenc: https://ctan.org/pkg/fontenc
+% .. _fontspec: https://ctan.org/pkg/fontspec
+% .. _fntguide: https://mirrors.ctan.org/macros/latex/base/fntguide.pdf
+% .. _greek-fontenc: https://ctan.org/pkg/greek-fontenc
+% .. _greek-inputenc: https://ctan.org/pkg/greek-inputenc
+% .. _hyperref: https://ctan.org/pkg/hyperref
+% .. _inputenc: https://ctan.org/pkg/inputenc
+% .. _polyglossia: https://ctan.org/pkg/polyglossia
+% .. _textgreek: https://ctan.org/pkg/textgreek
+% .. _xunicode: https://ctan.org/pkg/xunicode
 %
 % .. _erotimatiko: https://en.wikipedia.org/wiki/Question_mark#Erotimatiko
diff --git a/language/greek/greek-fontenc/textalpha.sty.html b/language/greek/greek-fontenc/textalpha.sty.html
index 242b78f0b1..c54289ce83 100644
--- a/language/greek/greek-fontenc/textalpha.sty.html
+++ b/language/greek/greek-fontenc/textalpha.sty.html
@@ -1,18 +1,19 @@
 
 
 
-
-
-textalpha.sty
+
+
+
 
+textalpha.sty
 
 
 
 
-
+
 

textalpha.sty

Greek symbols in text

- + -
Licence
+
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.

-
Identification
+
Identification:
\NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{textalpha}
-[2020/10/30 2.0 macros for Greek letters in text]
+[2023/02/28 2.2 macros for Greek letters in text]
-
+

Abstract

Provide a set of \text* macros for Greek characters in text mode.

-
+
+confusion with the textgreek package by Leonard Michlmayr.

+
Changelog:
----- @@ -766,10 +836,13 @@ confusion with the lgrenc.def from greek-fontenc.

- - + + + + + + @@ -781,10 +854,13 @@ support XeTeX/LuaTeX, add breve below accents.

define symbol macros for breathing accents.

- - + + + + + @@ -807,50 +883,58 @@ Don’t use \LastDeclaredEncoding.

Also set \encodingdefault with \greekscript.

- - + + + + + + + + + +

0.1

2010-06-16

0.5

2013-09-11 -..

move to greek-fontenc, -support XeTeX/LuaTeX, add breve below accents.

2013-09-11

move to greek-fontenc,

+

support XeTeX/LuaTeX, add breve below accents.

0.11

2013-11-28

0.13

2015-09-04 -..

Option normalize-symbols: support for symbol variants. -Option keep-semicolon: use semicolon as erotimatiko +

2015-09-04

Option normalize-symbols: support for symbol variants.

+

Option keep-semicolon: use semicolon as erotimatiko in LGR.

0.13.2

2.0

2020-10-30 -..

Load tuenc-greek.def with Xe/LuaTeX by default. -Load puenc-greek.def if used with hyperref.

2020-10-30

Load tuenc-greek.def with Xe/LuaTeX by default.

+

Load puenc-greek.def if used with hyperref.

2.2

2023-02-28

Don’t use \makeatother in \AtBeginDocument.

- +
-

Motivation

+

Motivation

By default, TeX macros for Greek letters are only valid in mathematical mode. This package sets up a suitable font encoding and LaTeX internal character representations (LICR) definitions for Greek (\textalpha – @@ -862,40 +946,40 @@ and does “the right thing” to set up Greek text font support:

  • If an Unicode font encoding is declared by fontspec, add Greek LICR definitions.

  • Otherwise, the LGR font encoding is set as default font encoding -(cf. fntguide section 5.3) for Greek.

  • +(cf. fntguide section 5.3) for Greek.

    Advantages:

      -
    • Symbols from a Greek text font (e.g. the CB fonts) can be accessed +

    • Symbols from a Greek text font (e.g. the CB fonts) can be accessed without the need for an explicite font-encoding switch anywhere in the text.

    • Unicode input of Greek characters is supported

      • via \usepackage[utf8]{inputenc} and lgrenc.dfu from -greek-inputenc for 8-bit TeX or XeTeX/LuaTeX in 8-bit compatibility +greek-inputenc for 8-bit TeX or XeTeX/LuaTeX in 8-bit compatibility mode in any font encoding (see textalpha-doc.tex).

      • natively by XeTeX/LuaTeX for Unicode fonts.

        If 8-bit font encodings like LGR are used alongside Unicode fonts, text -input can be done via the Latin transcription or LICR but not via +input can be done via the Latin transliteration or LICR but not via literal Unicode characters (see test-tuenc-greek.tex).

    -
    +
    +
    -

    Usage

    +

    Usage

    Ensure support for Greek characters in text mode with

    \usepackage{textalpha}

    eventually with the options to normalize symbols variants

    @@ -903,7 +987,7 @@ to ensure correct hyphenation of Greek text.

    and/or to use the semicolon as erotimatiko also in 8-bit TeX

    \usepackage[normalize-symbols,keep-semicolon]{textalpha}

    To give textalpha.sty a chance of finding out which font encodings -are used, load it after fontspec and/or fontenc.

    +are used, load it after fontspec and/or fontenc.

    For detailled examples see textalpha-doc.tex and textalpha-doc.pdf (8-bit TeX and XeTeX/LuaTeX in 8-bit compatibility mode) as well as test-tuenc-greek.tex and test-tuenc-greek.pdf (XeTeX/LuaTeX with @@ -912,11 +996,11 @@ Unicode fonts).

    in the same document (see test-tuenc-greek.tex).

    -

    Implementation

    +

    Implementation

    -

    Options

    +

    Options

    -

    normalize-symbols

    +

    normalize-symbols

    The “variant shape” symbol characters like 03D1 GREEK THETA SYMBOL are mathematical charcters for mathematical use (similar to 1D440 MATHEMATICAL ITALIC CAPITAL M). @@ -937,7 +1021,7 @@ errors to prevent information loss in cases where the distinction between \DeclareOption{normalize-symbols}{\textalpha@normalizeSymbolstrue}

    -

    keep-semicolon

    +

    keep-semicolon

    The erotimatiko looks like a semicolon but is a Greek question mark:

      @@ -958,8 +1042,8 @@ With XeTeX/LuaTeX and Unicode fonts, this option is ignored.

    -

    Symbol macros for breathings

    -

    In the Latin transcription provided by LGR, breathing accents (Dasia and +

    Symbol macros for breathings

    +

    In the Latin transliteration provided by LGR, breathing accents (Dasia and Psili) are input as < and >. Provide the corresponding NFSS macro accents. (Used below for LGR, TU, and PU, if these font encodings are defined):

    \newcommand{\textalpha@define@breathings}[1]{
    @@ -975,14 +1059,14 @@ Psili) are input as < and >. Provide the corresponding NFSS macro accents.
     }
    -

    Font encodings

    +

    Font encodings

    With 8-bit LaTeX, the LGR font encoding is used for Greek characters. If no Greek-supporting font encoding (TU or LGR) is declared, LGR is loaded and set up as default Greek font encoding by this package.

    With XeTeX or LuaTeX, there is one common input and font encoding – Unicode. 8-bit TeX font encodings are only used in compatibility mode or for fonts not available otherwise. For compatibility with the LaTeX font -selection system, fontspec defines the TU font encoding. However +selection system, fontspec defines the TU font encoding. However fontspec does not define Greek LICR macros. We therefore explicitely load Greek LICR definitions for XeTeX/LuaTeX from tuenc-greek.def which in turn includes greek-fontenc.def.

    Ensure a Greek-supporting font encoding exists and supports Greek LICR @@ -996,47 +1080,52 @@ Xe/LuaTeX and lgrenc.def else.

    \ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
       \input{tuenc-greek.def}
       \textalpha@define@breathings{\UnicodeEncodingName}
    +  \DeclareTextCompositeCommand{\<}{\UnicodeEncodingName}{^^9f}{\LGR@hiatus}
    +  \DeclareTextCompositeCommand{\>}{\UnicodeEncodingName}{^^9f}{\LGR@hiatus}
     \else
    -  \@ifl@aded{def}{lgrenc}{}{% else
    -    \input{lgrenc.def}
    +  \@ifl@aded{def}{lgrenc}
    +    {}
    +    {\input{lgrenc.def}
       }
    -  \textalpha@define@breathings{LGR}
    -  % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
    -  \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
    -  \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
     \fi

    LGR may also be used in a document compiled with Xe/LuaTeX -(enables use of 8-bit TeX fonts and input via the Latin transcription). +(enables use of 8-bit TeX fonts and input via the Latin transliteration). Add setup for breathings:

    -
    \@ifl@aded{def}{lgrenc}{
    -  \textalpha@define@breathings{LGR}
    -  % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
    -  \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
    -  \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
    -}{}
    -

    The package hyperref defines the PU font encoding which also supports -(monotonic) Greek. It currently misses polytonic greek, archaic symbols, +

    \@ifl@aded{def}{lgrenc}
    +  {\textalpha@define@breathings{LGR}
    +   % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
    +   \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
    +   \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
    +   }
    +  {}
    +

    The package hyperref defines the PU font encoding and adds some +LICR commands for monotonic Greek (in punenc-greekbasick.def). +Add support for polytonic Greek, archaic symbols, and the \greekscript and \ensuregreek TextCommands:

    \AtBeginDocument{
    -  \@ifl@aded{def}{puenc}{
    -    \makeatletter % required inside \AtBeginDocument
    -    \input{puenc-greek.def}
    -    \textalpha@define@breathings{PU}
    -    \pdfstringdefDisableCommands{\let\TextOrMath\@firstoftwo}
    -    \makeatother
    -  }{}
    -}
    -

    The package textcomp defines the TS1 font encoding with the MICRO SIGN -named \texmu. Provide the alias \textmicro:

    -
    \AtBeginDocument{
    -  \@ifl@aded{def}{ts1enc}{
    -    \DeclareTextSymbol{\textmicro}{TS1}{181} % micro sign
    -    \DeclareTextSymbolDefault{\textmicro}{TS1}
    -  }{}
    +  \@ifl@aded{def}{puenc}
    +    {\@ifl@aded{def}{puenc-greek}
    +      {}% already loaded (e.g. by babel-greek)
    +      {\edef\RestoreAtCatcode{\catcode`@=\the\catcode`@\relax}%
    +       \makeatletter
    +       \input{puenc-greek.def}
    +       \RestoreAtCatcode
    +      }%
    +     \textalpha@define@breathings{PU}
    +     \pdfstringdefDisableCommands{\let\TextOrMath\@firstoftwo}
    +    }
    +    {}
     }
    +

    The TS1 font encoding (available by default since 2022) provides a +MICRO SIGN under the name \textmu but we use this name for the +GREEK SMALL LETTER MU. +The new macro \textmicro selects the character from TS1 fonts +and is not capitalised with \MakeUppercase:

    +
    \DeclareTextSymbol{\textmicro}{TS1}{181} % micro sign
    +\DeclareTextSymbolDefault{\textmicro}{TS1}
    -

    Default declarations

    +

    Default declarations

    The following definitions ensure that the Greek LICR macros can be used anywhere in the document also with 8-bit TeX by declaring LGR as their default font encoding. Abort here, if the LGR font encoding is not defined:

    @@ -1044,16 +1133,16 @@ default font encoding. Abort here, if the LGR font encoding is not defined:

    \expandafter\endinput }
    -

    greekscript, ensuregreek

    +

    greekscript, ensuregreek

    The \greekscript declaration ensures the current font encoding supports the Greek script. greek-fontenc.def sets this to the empty declaration for font encodings that do so. This is currently used by lgrenc.def (LGR) and tuenc-greek.def (Greek LICR macros for TU, EU1, or EU2).

    We define LGR as default encoding for Greek text. We use \ProvideTextCommandDefault to enable the author or other packages to use -an alternative definition (see [fntguide]):

    +an alternative definition (see [fntguide]):

    \ProvideTextCommandDefault{\greekscript}{\fontencoding{LGR}\selectfont
    -      \def\encodingdefault{\greekfontencoding}}
    + \def\encodingdefault{LGR}}

    The \ensuregreek command can be used to ensure that its argument is set in a font encoding with support for Greek. Again the default is LGR:

    \ProvideTextCommandDefault{\ensuregreek}[1]{\leavevmode{\greekscript #1}}
    @@ -1074,7 +1163,7 @@ argument unchanged. This way, kerning and selection of precomposed glyphs would work also for cases like \ensuregreek{\'A}U.

    -

    Greek Alphabet

    +

    Greek Alphabet

    Define the text* marcos as default for all font encodings:

    \DeclareTextSymbolDefault{\textAlpha}{LGR}
     \DeclareTextSymbolDefault{\textBeta}{LGR}
    @@ -1113,6 +1202,7 @@ would work also for cases like 
     \DeclareTextSymbolDefault{\textkappa}{LGR}
     \DeclareTextSymbolDefault{\textlambda}{LGR}
     \DeclareTextSymbolDefault{\textmu}{LGR}
    +\DeclareTextSymbolDefault{\textmugreek}{LGR} % (puenc.def)
     \DeclareTextSymbolDefault{\textnu}{LGR}
     \DeclareTextSymbolDefault{\textxi}{LGR}
     \DeclareTextSymbolDefault{\textomicron}{LGR}
    @@ -1130,7 +1220,7 @@ would work also for cases like 
     \DeclareTextSymbolDefault{\textomega}{LGR}
    -

    Additional Greek symbols

    +

    Additional Greek symbols

    Including alias names for compatibility with hyperref’s puenc.def.

    Ancient Greek Numbers (Athenian Numerals):

    \DeclareTextSymbolDefault{\textpentedeka}{LGR}    % GREEK ACROPHONIC ATTIC FIFTY
    @@ -1144,6 +1234,7 @@ would work also for cases like 
     \DeclareTextSymbolDefault{\textkoppa}{LGR}       % ϟ Greek small letter koppa
     \DeclareTextSymbolDefault{\textkoppagreek}{LGR}  % ϟ (puenc.def)
     \DeclareTextSymbolDefault{\textKoppa}{LGR}       % ϟ Greek letter koppa (numeral koppa)
    +\DeclareTextSymbolDefault{\textKoppagreek}{LGR}  % ϟ (puenc.def)
     \DeclareTextSymbolDefault{\textqoppa}{LGR}       % ϙ (archaic koppa)
     \DeclareTextSymbolDefault{\textQoppa}{LGR}       % Ϙ (archaic Koppa)
     \DeclareTextSymbolDefault{\textStigma}{LGR}      % Ϛ ϹΤ ligature in some fonts
    @@ -1164,7 +1255,7 @@ would work also for cases like 
     \DeclareTextSymbolDefault{\textaristerikeraia}{LGR}   % ͵ (Aristeri keraia)
     \DeclareTextSymbolDefault{\textnumeralsignlowergreek}{LGR} % (puenc.def)
    -
    variant shape symbols
    +
    variant shape symbols

    Mathematical notation uses variant shapes of some Greek letters as additional symbols. There are separate code points for the symbol variants in Unicode but not in the LGR font encoding used for Greek in 8-bit TeX. @@ -1191,7 +1282,7 @@ The variations have no syntactic meaning in Greek text.

    -

    Diacritics

    +

    Diacritics

    Greek diacritics via “named” macros:

    \DeclareTextAccentDefault{\accdasia}{LGR}
     \DeclareTextAccentDefault{\accpsili}{LGR}
    @@ -1213,15 +1304,15 @@ The variations have no syntactic meaning in Greek text.

    \DeclareTextAccentDefault{\<}{LGR}
     \DeclareTextAccentDefault{\>}{LGR}

    Postfix accents:

    -
    \DeclareTextSymbolDefault{\ypogegrammeni}{LGR} % "small" sub-iota
    -\DeclareTextSymbolDefault{\prosgegrammeni}{LGR}  % "capital" sub-iota
    +
    \DeclareTextSymbolDefault{\ypogegrammeni}{LGR} % subscript mute iota (combining)
    +\DeclareTextSymbolDefault{\prosgegrammeni}{LGR}  % adscript mute iota (spacing)

    Other accents in LGR:

    \DeclareTextAccentDefault{\accinvertedbrevebelow}{LGR} % INVERTED BREVE BELOW
     \DeclareTextAccentDefault{\textsubarch}{LGR}           % tipa, Teubner name: ut
     \DeclareTextAccentDefault{\accbrevebelow}{LGR}         % BREVE BELOW
    -

    Auxiliary macros

    +

    Auxiliary macros

    \MakeUppercase requires four internal commands:

    \DeclareTextAccentDefault{\LGR@accdropped}{LGR}
     \DeclareTextAccentDefault{\LGR@accDialytika}{LGR}
    @@ -1229,7 +1320,7 @@ The variations have no syntactic meaning in Greek text.

    \DeclareTextSymbolDefault{\LGR@ypogegrammeni}{LGR}
    -

    semicolon as erotimatiko

    +

    semicolon as erotimatiko

    The text command \textsemicolon inserts \texterotimatiko in LGR font encoding and a “normal” semicolon else:

    \ProvideTextCommandDefault{\textsemicolon}{;}
    @@ -1241,11 +1332,32 @@ in LGR font encoding and a “normal” semicolon else:

    \catcode`;=\active \newcommand{;}{\textsemicolon} \fi
    -
    +
    +

    TODO

    +
      +
    • Load lgrenc.def rsp. tuenc-greek.def after the common definitions +and after puenc-greek.def?

      +
      +

      If an encoding-specific command is defined for more than one encoding, +then it will execute fastest in the encoding in which it was defined +last since its top-level definition will be set up to execute in that +encoding without any overhead.

      +

      +

      For the same reason default declarations should never come last since +they are implemented as a special encoding themselves (with the name ?). +Specifying them last would simply mean to make those encoding-specific +commands equally inefficient in all encodings.

      +

      —source2e.pdf, chapter “ltoutenc.dtx”, +subsection “The order of declarations”.

      +
      +
    • +
    + +
    diff --git a/language/greek/greek-fontenc/tuenc-greek.def b/language/greek/greek-fontenc/tuenc-greek.def index 5e2967c2d7..156f9892ff 100644 --- a/language/greek/greek-fontenc/tuenc-greek.def +++ b/language/greek/greek-fontenc/tuenc-greek.def @@ -11,7 +11,7 @@ % :: \ProvidesFile{tuenc-greek.def} -[2020/10/13 2.0 Greek LICRs for XeTeX and LuaTeX] +[2023/02/28 2.2 Greek LICRs for XeTeX and LuaTeX] % :abstract: % Support for Greek LICR macros and upcasing of text @@ -21,7 +21,7 @@ % **History**: % .. class:: borderless % -% ====== ========== ======================================================== +% ====== =========== ======================================================== % 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, @@ -43,15 +43,21 @@ % .. 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. +% .. Let ``\textautosigma`` select sigma/finalsigma +% depending on context (with LaTeX >= 2022/06/01). +% .. Skip `uccode` fixes when ignored by ``\MakeUppercase``. +% .. Add ``\textbackepsilon`` (defined by hyperref for PU). +% ====== =========== ======================================================== % % .. contents:: % % Motivation % ========== % -% LICR macro definitions for the Greek script are missing in tuenc.def_ (as well -% as the predecessors xunicode_, euenc_). +% 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 @@ -95,13 +101,15 @@ % ``\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) +\DeclareUnicodeAccent{\accpsili}\UnicodeEncodingName{"0313} % ψιλή spiritus lenis (smooth breathing) COMBINING COMMA ABOVE \DeclareUnicodeAccent{\accdasia}\UnicodeEncodingName{"0314} % δασεῖα spiritus asper (rough breathing) -% Sub-iotas: +% Mute iota: % -% ``\prosgegrammeni`` is a standard character (see below). -% ``\ypogegrammeni`` is a postfix accent (ligature in LGR) :: +% 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 @@ -112,15 +120,15 @@ % The COMBINING DIALYTIKA TONOS is discarded and not well supported by fonts: \DeclareTextCommand{\accdialytikatonos}{\UnicodeEncodingName}[1]{#1\char"0308\char"0301} \DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\char"0300} -\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0342\char"0308} +\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\char"0342} \DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\char"0301} \DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\char"0300} \DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\char"0342} -\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0301\char"0313} -\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0300\char"0313} -\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0342\char"0313} +\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\char"0301} +\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\char"0300} +\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\char"0342} % Common Definitions @@ -179,8 +187,8 @@ \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{\'} {\textAlpha} {"0386} % Ά +\DeclareTextSymbol{\textanoteleia} \UnicodeEncodingName{"00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA \DeclareUnicodeComposite{\'} {\textEpsilon}{"0388} % Έ \DeclareUnicodeComposite{\'} {\textEta} {"0389} % Ή \DeclareUnicodeComposite{\'} {\textIota} {"038A} % Ί @@ -223,20 +231,20 @@ \DeclareTextSymbol{\textOmega }\UnicodeEncodingName{"03A9} % Ω \DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ -\DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ +\DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ \DeclareUnicodeComposite{\"} {\textUpsilon}{"03AB} % Ϋ \DeclareUnicodeComposite{\'} {\textalpha} {"03AC} % ά \DeclareUnicodeComposite{\'} {\textepsilon}{"03AD} % έ \DeclareUnicodeComposite{\'} {\texteta} {"03AE} % ή -\DeclareUnicodeComposite{\'} {\textiota} {"03AF} % ί +\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} {\textIota} {"03AA} % Ϊ \DeclareUnicodeComposite{\accdialytika} {\textUpsilon}{"03AB} % Ϋ \DeclareUnicodeComposite{\acctonos} {\textalpha} {"03AC} % ά \DeclareUnicodeComposite{\acctonos} {\textepsilon}{"03AD} % έ \DeclareUnicodeComposite{\acctonos} {\texteta} {"03AE} % ή -\DeclareUnicodeComposite{\acctonos} {\textiota} {"03AF} % ί +\DeclareUnicodeComposite{\acctonos} {\textiota} {"03AF} % ί \DeclareUnicodeComposite{\accdialytikatonos}{\textupsilon}{"03B0} % ΰ \DeclareTextSymbol{\textalpha }\UnicodeEncodingName{"03B1} % α @@ -299,11 +307,12 @@ \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: implement autosigma for TU:: -\ProvideTextCommand{\textautosigma }\UnicodeEncodingName{\textsigma} +\ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}} % Greek Extended @@ -438,28 +447,29 @@ \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. :: -% Skipping pre-composed characters with sub-iota (ypogegrammeni/prosgegrammeni). - -\DeclareUnicodeComposite{\u} {\textalpha}{"1FB0} % ᾰ -\DeclareUnicodeComposite{\=} {\textalpha}{"1FB1} % ᾱ +\DeclareUnicodeComposite{\u} {\textalpha} {"1FB0} % ᾰ +\DeclareUnicodeComposite{\=} {\textalpha} {"1FB1} % ᾱ % ᾲ % ᾳ % ᾴ -\DeclareUnicodeComposite{\accperispomeni} {\textalpha}{"1FB6} % ᾶ -\DeclareUnicodeComposite{\~} {\textalpha}{"1FB6} % ᾶ +\DeclareUnicodeComposite{\accperispomeni} {\textalpha} {"1FB6} % ᾶ +\DeclareUnicodeComposite{\~} {\textalpha} {"1FB6} % ᾶ % ᾷ -\DeclareUnicodeComposite{\u} {\textAlpha}{"1FB8} % Ᾰ -\DeclareUnicodeComposite{\=} {\textAlpha}{"1FB9} % Ᾱ -\DeclareUnicodeComposite{\`} {\textAlpha}{"1FBA} % Ὰ -\DeclareUnicodeComposite{\accvaria} {\textAlpha}{"1FBA} % Ὰ +\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{\accpsili} {} {"1FBD} % ᾽ +\DeclareTextSymbol{\prosgegrammeni}\UnicodeEncodingName {"1FBE} % ι +\DeclareUnicodeComposite{\accpsili} {} {"1FBF} % ᾿ -\DeclareUnicodeComposite{\accperispomeni} {} {"1FC0} % ῀ -\DeclareUnicodeComposite{\accdialytikaperispomeni}{} {"1FC1} % ῁ +\DeclareUnicodeComposite{\accperispomeni} {} {"1FC0} % ῀ +\DeclareUnicodeComposite{\accdialytikaperispomeni}{} {"1FC1} % ῁ % ῂ % ῃ % ῄ @@ -524,13 +534,41 @@ \DeclareUnicodeComposite{\accoxia} {} {"1FFD} % ´ \DeclareUnicodeComposite{\accdasia} {} {"1FFE} % ῾ - -% Diacritics on literal Unicode characters:: - -% \DeclareUnicodeComposite{\~}{α}{"1FB6} % ᾶ -% \DeclareUnicodeComposite{\~}{η}{"1FC6} % ῆ -% \DeclareUnicodeComposite{\~}{υ}{"1FE6} % ῦ -% \DeclareUnicodeComposite{\~}{ω}{"1FF6} % ῶ +% 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 + COMBINING GREEK PERISPOMENI is considered +% equivalent to the pre-composed WITH PERISPOMENI. +% Composite definitions for ``\~`` select the pre-composed character:: + +\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 @@ -544,9 +582,6 @@ % TODO: map other chars to corresponding Greek letters. % See also the grnumalt_ package. % -% Definition with literal Unicode characters, because the code-point has 5 -% hexadecimal digits: -% % :: \DeclareTextSymbol{\textpentedeka }\UnicodeEncodingName{"10144} % GREEK ACROPHONIC ATTIC FIFTY @@ -563,327 +598,331 @@ % uc/lc values % ~~~~~~~~~~~~ % -% ``\lccode`` and ``\uccode`` corrections from the xgreek_ package by Apostolos Syropoulos:: - -\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 - +% With the old ``\MakeUppercase`` implementation, we can fix this using +% ``\lccode`` and ``\uccode`` corrections from the xgreek_ package by +% Apostolos Syropoulos:: + +\IfFormatAtLeastTF{2022/06/01}{ +}{% 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 % ~~~~~~~~ @@ -891,7 +930,7 @@ % 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 transcription to Unicode literals). +% Latin transliteration to Unicode literals). % % The hiatus definition modifications:: @@ -917,20 +956,20 @@ % .. References % % .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt -% .. _babel-greek: http://ctan.org/pkg/babel-greek -% .. _euenc: http://ctan.org/pkg/euenc -% .. _fontspec: http://ctan.org/pkg/fontspec -% .. _greek-fontenc: http://ctan.org/pkg/greek-fontenc -% .. _grnumalt: http://ctan.org/pkg/grnumalt -% .. _inputenc: http://ctan.org/pkg/inputenc +% .. _babel-greek: https://ctan.org/pkg/babel-greek +% .. _euenc: https://ctan.org/pkg/euenc +% .. _fontspec: https://ctan.org/pkg/fontspec +% .. _greek-fontenc: https://ctan.org/pkg/greek-fontenc +% .. _grnumalt: https://ctan.org/pkg/grnumalt +% .. _inputenc: https://ctan.org/pkg/inputenc % .. _textalpha: textalpha.sty.html -% .. _xgreek: http://ctan.org/pkg/xgreek -% .. _xunicode: http://ctan.org/pkg/xunicode +% .. _xgreek: https://ctan.org/pkg/xgreek +% .. _xunicode: https://ctan.org/pkg/xunicode % -% .. _latex base: http://ctan.org/pkg/latex-base -% .. _font encoding: http://ctan.org/pkg/encguide +% .. _latex base: https://ctan.org/pkg/latex-base +% .. _font encoding: https://ctan.org/pkg/encguide % .. _LaTeX2e font selection: -% http://mirror.ctan.org/macros/latex/base/fntguide.pdf +% https://mirrors.ctan.org/macros/latex/base/fntguide.pdf % .. _common Greek font encoding definitions: % .. _greek-fontenc.def: greek-fontenc.def.html % .. _lgrenc.def: lgrenc.def.html diff --git a/language/greek/greek-fontenc/tuenc-greek.def.html b/language/greek/greek-fontenc/tuenc-greek.def.html index d25a97d1ad..3ae33811f5 100644 --- a/language/greek/greek-fontenc/tuenc-greek.def.html +++ b/language/greek/greek-fontenc/tuenc-greek.def.html @@ -1,18 +1,19 @@ - - -tuenc-greek.def + + + +tuenc-greek.def - +

    tuenc-greek.def

    Greek LICR definitions for XeTeX and LuaTeX

    - + -
    Licence
    +
    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.

    -
    Identification
    +
    Identification:
    \ProvidesFile{tuenc-greek.def}
    -[2020/10/13 2.0 Greek LICRs for XeTeX and LuaTeX]
    +[2023/02/28 2.2 Greek LICRs for XeTeX and LuaTeX]
    -
    +

    Abstract

    Support for Greek LICR macros and upcasing of text with XeTeX and LuaTeX. Extends tuenc.def. -Used by babel-greek and textalpha.

    +Used by babel-greek and textalpha.

    History:
    ----- @@ -787,7 +857,7 @@ fix upcasing of \finalsigma.

    - + @@ -826,54 +896,83 @@ fix upcasing of \finalsigma.

    + + + + + + + + + + + + + + + + + + + +

    0.1

    2013-07-16

    0.13

    2015-08-07

    \lccode/\uccode corrections from xgreek.

    \lccode/\uccode corrections from xgreek.

    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.

    +

    Let \textautosigma select sigma/finalsigma +depending on context (with LaTeX >= 2022/06/01).

    +

    Skip uccode fixes when ignored by \MakeUppercase.

    +

    Add \textbackepsilon (defined by hyperref for PU).

    - +
    -

    Motivation

    -

    LICR macro definitions for the Greek script are missing in tuenc.def (as well -as the predecessors xunicode, euenc).

    +

    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.

    +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 +

    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.

    -

    Greek Diacritics

    +

    Greek Diacritics

    Define “named macros” for simple and combined diacritics.

    • Named accent macros can be used instead of the \@tabacckludge by @@ -891,51 +990,53 @@ while the (standard) combining tilde is not:

      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)
      +
      \DeclareUnicodeAccent{\accpsili}\UnicodeEncodingName{"0313} % ψιλή spiritus lenis (smooth breathing) COMBINING COMMA ABOVE
       \DeclareUnicodeAccent{\accdasia}\UnicodeEncodingName{"0314} % δασεῖα spiritus asper (rough breathing)
      -

      Sub-iotas:

      -

      \prosgegrammeni is a standard character (see below). -\ypogegrammeni is a postfix accent (ligature in LGR)

      +

      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\char"0301}
       \DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\char"0300}
      -\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0342\char"0308}
      +\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\char"0342}
       
       \DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\char"0301}
       \DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\char"0300}
       \DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\char"0342}
       
      -\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0301\char"0313}
      -\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0300\char"0313}
      -\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0342\char"0313}
      +\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\char"0301} +\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\char"0300} +\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\char"0342}
    -

    Common Definitions

    +

    Common Definitions

    Use the common Greek font encoding definitions:

    \renewcommand*{\LastDeclaredEncoding}{\UnicodeEncodingName}
     \input{greek-fontenc.def}
    -

    Character Definitions

    +

    Character Definitions

    -

    Basic Latin

    +

    Basic Latin

    Compatibility def with LGR:

    \DeclareTextSymbol{\textsemicolon}\UnicodeEncodingName{"003B} % ;
    -

    Latin 1 Supplement

    +

    Latin 1 Supplement

    Distinguish MICRO SIGN from letter mu:

    \DeclareTextSymbol{\textmicro}\UnicodeEncodingName{"00B5} % µ MICRO SIGN
    -

    IPA Extensions

    +

    IPA Extensions

    \DeclareTextSymbol{\textschwa}\UnicodeEncodingName{"0259} % ə
    -

    Greek and Coptic

    +

    Greek and Coptic

    % NR    Unicode Name                                        %   babel name, % PU name
     % 0370  GREEK CAPITAL LETTER HETA                           % Ͱ
     % 0371  GREEK SMALL LETTER HETA                             % ͱ
    @@ -956,7 +1057,7 @@ character, discarded in favour of COMBINING COMMA ABOVE.

    \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 +\DeclareTextSymbol{\textanoteleia} \UnicodeEncodingName{"00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA \DeclareUnicodeComposite{\'} {\textEpsilon}{"0388} % Έ \DeclareUnicodeComposite{\'} {\textEta} {"0389} % Ή \DeclareUnicodeComposite{\'} {\textIota} {"038A} % Ί @@ -1070,13 +1171,14 @@ character, discarded in favour of COMBINING COMMA ABOVE.

    \DeclareTextSymbol{\textphisymbol }\UnicodeEncodingName{"03D5} % ϕ \DeclareTextSymbol{\textpisymbol }\UnicodeEncodingName{"03D6} % ϖ \DeclareTextSymbol{\textrhosymbol }\UnicodeEncodingName{"03F1} % ϱ -\DeclareTextSymbol{\textepsilonsymbol}\UnicodeEncodingName{"03F5} % ϵ
    +\DeclareTextSymbol{\textepsilonsymbol}\UnicodeEncodingName{"03F5} % ϵ +\DeclareTextSymbol{\textbackepsilon }\UnicodeEncodingName{"03F6} % ϶ not in LGR

    Dummy definition (textautosigma is lowercase of textSigma) TODO: implement autosigma for TU:

    -
    \ProvideTextCommand{\textautosigma }\UnicodeEncodingName{\textsigma}
    +
    \ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}}
    -

    Greek Extended

    +

    Greek Extended

    We skip definitions for characters “… WITH OXIA”, because they would overwrite the definitions for “… WITH TONOS” in the Greek and Coptic block.

    @@ -1202,26 +1304,28 @@ block.

    \DeclareUnicodeComposite{\accvaria} {\textomicron}{"1F78} % ὸ \DeclareUnicodeComposite{\accvaria} {\textupsilon}{"1F7A} % ὺ \DeclareUnicodeComposite{\accvaria} {\textomega} {"1F7C} % ὼ -

    Skipping pre-composed characters with sub-iota (ypogegrammeni/prosgegrammeni).

    -
    \DeclareUnicodeComposite{\u}                  {\textalpha}{"1FB0} % ᾰ
    -\DeclareUnicodeComposite{\=}                  {\textalpha}{"1FB1} % ᾱ
    +

    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{\accperispomeni}         {\textalpha}  {"1FB6} % ᾶ
    +\DeclareUnicodeComposite{\~}                      {\textalpha}  {"1FB6} % ᾶ
     % ᾷ
    -\DeclareUnicodeComposite{\u}                  {\textAlpha}{"1FB8} % Ᾰ
    -\DeclareUnicodeComposite{\=}                  {\textAlpha}{"1FB9} % Ᾱ
    -\DeclareUnicodeComposite{\`}                  {\textAlpha}{"1FBA} % Ὰ
    -\DeclareUnicodeComposite{\accvaria}           {\textAlpha}{"1FBA} % Ὰ
    +\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{\accpsili}               {}            {"1FBD} % ᾽
    +\DeclareTextSymbol{\prosgegrammeni}\UnicodeEncodingName         {"1FBE} % ι
    +\DeclareUnicodeComposite{\accpsili}               {}            {"1FBF} % ᾿
     
    -\DeclareUnicodeComposite{\accperispomeni}     {}          {"1FC0} % ῀
    -\DeclareUnicodeComposite{\accdialytikaperispomeni}{}      {"1FC1} % ῁
    +\DeclareUnicodeComposite{\accperispomeni}         {}            {"1FC0} % ῀
    +\DeclareUnicodeComposite{\accdialytikaperispomeni}{}            {"1FC1} % ῁
     % ῂ
     % ῃ
     % ῄ
    @@ -1285,22 +1389,46 @@ block.

    % ῼ \DeclareUnicodeComposite{\accoxia} {} {"1FFD} % ´ \DeclareUnicodeComposite{\accdasia} {} {"1FFE} % ῾
    -

    Diacritics on literal Unicode characters:

    +
    +

    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:

    \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

    +

    Letterlike Symbols

    \DeclareTextSymbol{\textohm}\UnicodeEncodingName{"03A9} % OHM SIGN, use 03A9 Omega
    -

    Ancient Greek Numbers

    +

    Ancient Greek Numbers

    TODO: map other chars to corresponding Greek letters. -See also the grnumalt package.

    -

    Definition with literal Unicode characters, because the code-point has 5 -hexadecimal digits:

    +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
    @@ -1308,336 +1436,341 @@ hexadecimal digits:

    -

    UPPERCASE

    +

    UPPERCASE

    Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.

    -

    uc/lc values

    -

    \lccode and \uccode corrections from the xgreek package by Apostolos Syropoulos:

    -
    \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
    +

    uc/lc values

    +

    With the old \MakeUppercase implementation, we can fix this using +\lccode and \uccode corrections from the xgreek package by +Apostolos Syropoulos:

    +
    \IfFormatAtLeastTF{2022/06/01}{
    +}{% 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

    +

    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 transcription to Unicode literals).

    +Latin transliteration to Unicode literals).

    The hiatus definition modifications:

    \DeclareTextCommand{\LGR@A@hiatus}{\UnicodeEncodingName}{%
       \LGR@ifnextchar{Ι}{\textAlpha\"}{%
    -- 
    cgit v1.2.3