summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/babel-contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-03-05 03:01:34 +0000
committerNorbert Preining <norbert@preining.info>2023-03-05 03:01:34 +0000
commita2d17a09f7ecd91acd8826216349bb14cc5602cd (patch)
treef5560fff94ed497200d93e8fa4a0c0f8f900e281 /macros/latex/contrib/babel-contrib
parent7761a2c2ae5e392243a4e09aefe8c69a97a1d0f6 (diff)
CTAN sync 202303050301
Diffstat (limited to 'macros/latex/contrib/babel-contrib')
-rw-r--r--macros/latex/contrib/babel-contrib/greek/Makefile95
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README253
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README.html1136
-rw-r--r--macros/latex/contrib/babel-contrib/greek/README.md35
-rw-r--r--macros/latex/contrib/babel-contrib/greek/athnum.dtx206
-rw-r--r--macros/latex/contrib/babel-contrib/greek/athnum.pdfbin176656 -> 176139 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html1387
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst414
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.dtx1600
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.ins10
-rw-r--r--macros/latex/contrib/babel-contrib/greek/babel-greek.pdfbin255669 -> 544962 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/grmath.dtx38
-rw-r--r--macros/latex/contrib/babel-contrib/greek/grmath.pdfbin120534 -> 120493 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdfbin188008 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex422
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-athnum.pdfbin0 -> 174634 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-athnum.tex70
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-case-changing.tex1048
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex37
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex60
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdfbin153395 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdfbin51599 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek.pdfbin0 -> 428667 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greek.tex793
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greeknum.tex131
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdfbin44372 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex236
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex189
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdfbin43239 -> 0 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex264
-rw-r--r--macros/latex/contrib/babel-contrib/greek/usage.pdfbin176463 -> 184955 bytes
-rw-r--r--macros/latex/contrib/babel-contrib/greek/usage.tex216
32 files changed, 5281 insertions, 3359 deletions
diff --git a/macros/latex/contrib/babel-contrib/greek/Makefile b/macros/latex/contrib/babel-contrib/greek/Makefile
index 5cfd53df74..c88acae1ef 100644
--- a/macros/latex/contrib/babel-contrib/greek/Makefile
+++ b/macros/latex/contrib/babel-contrib/greek/Makefile
@@ -16,21 +16,26 @@ DESTDIR = ~/texmf/tex/latex/greek/babel-greek
DOCDIR = ~/texmf/doc/latex/greek/babel-greek
CHDIR = cd
-COPY = cp -u
+COPY = cp --update
SH = sh
# programs
-PYLIT = pylit # text <-> source converter for literal programming
-RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net
-RUBBER = rubber -f --pdf # wrapper around `latex`, run until references resolved
+PYLIT = pylit # text <-> source converter for literal programming
+RST2HTML = rst2html5 # text -> HTML converter, see docutils.sf.net
+RUBBER = rubber --force --pdf # latex-wrapper running until refs are resolved
LATEX = pdflatex -interaction batchmode # suppress logging to terminal
+
+.PHONY: all
+
+all: packages doc test
+
# LaTeX source files
# ==================
-.PHONY: all
+.PHONY: packages
-all: greek.ldf athnum.sty grmath.sty
+packages: greek.ldf athnum.sty grmath.sty
greek.ldf: babel-greek.dtx
tex babel-greek.ins
@@ -44,22 +49,28 @@ grmath.sty: athnum.dtx
# Documentation
# =============
-.PHONY: doc html pdf
+.PHONY: doc html pdf test
doc: html pdf
-html: README.html
+html: babel-greek-doc.html
+
+babel-greek-doc.html: babel-greek-doc.rst
+ $(RST2HTML) babel-greek-doc.rst babel-greek-doc.html
-README.html: README
- $(RST2HTML) README README.html
+pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf
-pdf: babel-greek.pdf athnum.pdf grmath.pdf usage.pdf\
- test-greek-lgr.pdf test-greek-tu.pdf test-8bit-greek.pdf \
- test-tu-lgr.pdf
+test: test-greek.pdf test-greek-tu.pdf test-greek-8bitcompat.pdf \
+ test-greek-ini.pdf \
+ test-lgr-fixes.pdf test-case-changing.pdf\
+ test-greeknum.pdf test-greeknum-tu.pdf \
+ test-athnum.pdf test-athnum-tu.pdf
babel-greek.pdf: babel-greek.dtx
$(RUBBER) -m hyperref babel-greek.dtx
+ makeindex -s gglo.ist -o babel-greek.gls babel-greek.glo
+ $(RUBBER) -m hyperref babel-greek.dtx
athnum.pdf: athnum.dtx
$(RUBBER) athnum.dtx
@@ -70,39 +81,65 @@ grmath.pdf: grmath.dtx
usage.pdf: usage.tex greek.ldf
$(RUBBER) usage.tex
-test-greek-lgr.pdf: test-greek.tex greek.ldf
- $(RUBBER) --jobname=test-greek-lgr test-greek.tex
+test-greek.pdf: test-greek.tex greek.ldf
+ $(RUBBER) -m hyperref test-greek.tex
test-greek-tu.pdf: test-greek.tex greek.ldf
$(RUBBER) -m xelatex --jobname=test-greek-tu test-greek.tex
-test-8bit-greek.pdf: test-8bit-greek.tex greek.ldf
- $(RUBBER) -m hyperref test-8bit-greek.tex
+# requires rubber >= 1.6, otherwise `-m lualatex` is ignored.
+test-greek-8bitcompat.pdf: test-greek-8bitcompat.tex test-greek.tex greek.ldf
+ $(RUBBER) -m hyperref -m lualatex test-greek-8bitcompat.tex
-test-tu-lgr.pdf: test-tu-lgr.tex greek.ldf
- $(RUBBER) -m hyperref -m xelatex test-tu-lgr.tex
+test-greek-ini.pdf: test-greek-ini.tex test-greek.tex greek.ldf
+ $(RUBBER) -m hyperref -m xelatex test-greek-ini.tex
+test-case-changing.pdf: test-case-changing.tex greek.ldf
+ $(RUBBER) -m hyperref test-case-changing.tex
-# Installation
-# =============
+test-athnum.pdf: test-athnum.tex greek.ldf athnum.sty
+ $(RUBBER) test-athnum.tex
-install: all
- $(COPY) *.ldf $(DESTDIR)
- #$(COPY) *.sty $(DESTDIR)
+test-athnum-tu.pdf: test-athnum.tex greek.ldf athnum.sty
+ $(RUBBER) -m xelatex --jobname=test-athnum-tu test-athnum.tex
+
+test-greeknum.pdf: test-greeknum.tex greek.ldf
+ $(RUBBER) test-greeknum.tex
+
+test-greeknum-tu.pdf: test-greeknum.tex greek.ldf
+ $(RUBBER) -m xelatex --jobname=test-greeknum-tu test-greeknum.tex
+
+test-lgr-fixes.pdf: test-lgr-fixes.tex greek.ldf
+ $(RUBBER) -m hyperref -m index test-lgr-fixes.tex
-install-doc: doc
- $(COPY) README $(DOCDIR)
- $(COPY) *.html $(DOCDIR)
+
+# Installation/Update
+# ===================
+
+update: packages test
+ $(COPY) *.ldf $(DESTDIR)
+ $(COPY) *.sty $(DESTDIR)
+
+update-package: packages doc test
+ $(COPY) README.md $(DOCDIR)
+ $(COPY) babel-greek-doc.rst $(DOCDIR)
+ $(COPY) babel-greek-doc.html $(DOCDIR)
+ # selected PDFs
+ $(COPY) [!t]*.pdf $(DOCDIR)
+ $(COPY) test-greek.pdf $(DOCDIR)
+ $(COPY) test-athnum.pdf $(DOCDIR)
+ # also copy all sources
$(COPY) *.dtx $(DOCDIR)
$(COPY) *.ins $(DOCDIR)
$(COPY) *.tex $(DOCDIR)
- $(COPY) *.pdf $(DOCDIR)
$(COPY) Makefile $(DOCDIR)
+
# Cleanup
# =======
.PHONY: clean
clean:
- rm -f *.aux *.log *.toc *.out *~
+ rm -f *~ *.aux *.bbl *.bcf *.blg *.run.xml *.glo *.gls \
+ *.idx *.ilg *.ind *.log *.out *.rubbercache *.toc
diff --git a/macros/latex/contrib/babel-contrib/greek/README b/macros/latex/contrib/babel-contrib/greek/README
deleted file mode 100644
index 45ecf8f1d1..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/README
+++ /dev/null
@@ -1,253 +0,0 @@
-babel-greek
-***********
-Babel support for the Greek language and script
-===============================================
-
-:Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
- © 2013 -- 2020 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: Babel-greek is a contributed package providing support for the
- Greek language and script via the Babel_ system.
-
- The file ``greek.ldf`` provides options for the monotonic
- (single-diacritic), polytonic (multiple-diacritic) and ancient
- orthography of the Greek language.
-
- Since 2013-07-19, babel-greek supports also Unicode-aware TeX
- engines (XeTeX/LuaTeX).
-
-News
-----
-
-.. class:: borderless
-
-===== ============ ============================================================
-1.4 2013-05-17 New maintainer.
-.. The encoding definition file ``lgrenc.def`` moved to the
- greek-fontenc_ package.
-
-1.5 2013-06-21 bugfixes and cleanup,
-.. LICR macros in string definitions,
-.. LGR font encoding not used with XeTeX/LuaTeX,
-.. input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX.
-1.5a 2013-07-02 Fix LaTeX bugs babel/3707, `babel/4303`_ and `babel/4305`_
-1.6 2013-07-19 Experimental support for XeTeX/LuaTeX.
-1.7 2013-09-09 CB-Fonts font definition files moved to CB-Fonts package.
-.. Do not auto-load euenc.def with XeTeX/LuaTeX.
-1.7a 2013-09-13 Fix bug `babel/4360`_: spurious ``\fi``.
-1.7b 2013-10-01 bugfix: correct upcasing of babel strings with Xe/LuaTeX.
-1.8 2013-12-02 Rename ``greek.dtx`` to ``babel-greek`` so that texdoc_
- shows the right documentation.
-.. Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.
-1.8a 2013-12-03 Set ``\encodingdefault`` in ``\greekscript`` to fix
- Greek in footnotes etc. with document language Greek.
-1.9 2014-07-20 Added attribute for ancient Greek, load correct hyphenation
- patterns: Patch by Claudio Beccari. Bugfix for Makeuppercase
-1.9a 2014-09-12 Remove duplicate code, documentation review.
-1.9b 2014-09-18 Remove spurious whitespace from "extrasgreek" definition.
-.. Use named macros instead of non-standard short macros
- for psili and dasia in the string definitions.
-1.9c 2014-10-21 Fix dummy hyphenation language names (patch Ulrike Fischer).
-1.9d 2015-09-04 Remove `grsymb` (macros for Greek symbols).
- This package is outdated and obsoleted by greek-fontenc_
- (reported by Claudio Beccari).
-.. Unicode uc/lc corrections now in greek-fontenc.
-1.9e 2015-11-27 Fix bug in lccode-setting loop (patch by Enrico Gregorio).
-1.9f 2016-02-04 Support for new standard Unicode text font encoding "TU".
-1.9g 2016-09-07 Babel 3.9i deprecated ``\textlatin``
- and fixed ``\latinencoding``.
-1.9h 2019-07-11 Move breathing composite commands to textalpha_.
-1.9i 2020-02-28 Update test for Unicode fonts.
- Fix accent in ``\seename`` and ``\alsoname``.
-1.9j 2020-03-17 Fix ampersand in math mode.
-1.10 2020-11-10 Use ``TU`` as ``\greekfontencoding`` for Xe/LuaTeX
- (set by LaTeX as `default font encoding for Unicode
- engines`_ since 2017/01/01).
-.. Use zig-zagy ``\textkoppa`` for ``\greeknumeral{90}``.
-.. PDF-string secure implementation of ``\greeknumeral``
- from hyperref_.
-.. Load ``puenc-greek.def`` (from greek-fontenc_)
- if used with hyperref (polytonic Greek in PDF-strings).
-===== ============ ============================================================
-
-
-.. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303
-.. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305
-.. _babel/4360: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360
-
-Files
------
-
-`<babel-greek.dtx>`_; `<babel-greek.pdf>`_
- Source of the language definition file ``greek.ldf`` for use with Babel_.
-`<athnum.dtx>`_; `<athnum.pdf>`_
- Athenian Numerals.
-`<grmath.dtx>`_; `<grmath.pdf>`_
- Greek log-like Operators.
-`<babel-greek.ins>`_
- DocStrip_ batch file.
-`<test-greek.tex>`_ `<test-greek-lgr.pdf>`_ `<test-greek-tu.pdf>`_
- Test Babel-Greek features.
-`<test-8bit-greek.tex>`_ `<test-8bit-greek.pdf>`_
- Additional tests and examples for 8-bit TeX.
-`<test-tu-lgr.tex>`_ `<test-tu-lgr.pdf>`_
- Tests and Examples for XeTeX/LuaTeX with LGR 8-bit fonts.
-`<usage.tex>`_ `<usage.pdf>`_
- Description of the `LGR Latin transliteration`_.
-
-
-Requirements
-------------
-
-The "babel-greek" package requires the babel_ base package and font
-definition files from the greek-fontenc_ package. The greek-inputenc_
-package is recommended when using 8-bit TeX engines.
-
-Typesetting Greek texts requires `Greek text fonts`_.
-
-Plain TeX is currently not supported. Patches are welcome.
-
-
-Installation
-------------
-
-If possible, get this package from your distribution using its installation
-manager.
-
-Otherwise, make sure LaTeX can find the required files:
-
-* Download and unpack `babel-greek.zip`.
-
-* Run ``tex`` or ``latex`` on the batch file ``babel-greek.ins``.
-
- This will generate the files ``greek.ldf``, ``athnum.sty``, and
- ``grmath.sty`` in the current directory. [#]_
-
-* Move all files ending in ``.ldf`` or ``.sty`` into a directory searched by
- TeX.
-
-* To produce the documentation, run the file ``usage.tex`` and all files
- ending in ``.dtx`` through LaTeX.
-
-.. [#] If these files already exist somewhere in the TeX-path, you will be
- warned that they might be overwritten. You can ignore this
- warning and answer `y` unless the *current directory* contains versions
- of these files you want to keep.
-
- This is done by docstrip_. Try ``texdoc docstrip`` for details.
-
-Usage
------
-
-Use the "greek" document option or pass the "greek" option to babel::
-
- \usepackage[greek]{babel}
-
-For polytonic Greek, set the language attribute "polutoniko"::
-
- \usepackage[greek]{babel}
- \languageattribute{greek}{polutoniko}
-
-or ::
-
- \usepackage[greek.polutoniko,english]{babel}
-
-Similarly, the attribute "ancient" selects the ancient Greek language
-variant.
-
-For details see `<babel-greek.pdf>`_ and the babel_ documentation.
-
-Input of Greek characters is possible as literal characters (with the
-greek-inputenc_ package or with XeTeX or LuaTeX) or the `LGR Latin
-transliteration`_. See `<usage.pdf>`_ and the example files provided with
-greek-fontenc_.
-
-Greek text fonts
-----------------
-
-A list of Greek text fonts for use with LaTeX is available at the CTAN
-http://www.ctan.org/topic/font-greek
-
-With the XeTeX or LuaTeX engines, the user should ensure that the chosen
-font contains the required glyphs: the default Latin Modern fonts miss
-them. Warnings about missing charcters are only written to the log
-file, not the console output! Select a suitable font with fontspec_.
-
-Examples for suitable fonts are the CM-unicode_ or the `Linux
-Libertine`_ OpenType fonts as well as any system-wide installed OTF fonts
-that support Greek (e.g. `Deja Vu`_).
-
-The LGR `font encoding`_ is the de-facto standard for typesetting Greek with
-8-bit LaTeX. Fonts in this encoding include the `CB fonts`_ (matching CM),
-grtimes_ (Greek Times), Kerkis_ (matching URW Bookman), and the `GFS font
-collection`_. Setup of these fonts as Greek variant to matching Latin fonts
-is facilitated by the substitutefont_ package.
-
-LGR Latin Transliteration
--------------------------
-
-The LGR font encoding allows input of Greek characters via an ASCII
-transliteration. This enables simple input with a Latin keyboard. Characters
-with diacritics may be selected with accent macros (cf. greek-fontenc_) or
-via the ligature definitions in the font (see `<usage.pdf>`_).
-
-The following ASCII characters are converted to Greek symbols:
-
-= = = = = = = = = = = = = = = = = = = = = = = = =
-A B G D E Z H J I K L M N X O P R S T U F Q Y W
-Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
-- - - - - - - - - - - - - - - - - - - - - - - - -
-- - - - - - - - - - - - - - - - - - - - - - - - -
-a b g d e z h j i k l m n x o p r s c t u f q y w
-α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω
-= = = = = = = = = = = = = = = = = = = = = = = = =
-
-Accent symbols and punctuation:
-
-================= ====== == ====================== ======== ====
-tonos ``'a`` ά semicolon ``;`` ·
-varia \`a ὰ question mark ``?`` ;
-perispomeni ``~a`` ᾶ left apostrophe \` \` ‘
-dasia ``<a`` ἁ right apostrophe ``''`` ’
-psili ``>a`` ἀ left quotation mark ``((`` «
-ypogegrammeni ``a|`` ᾳ right quotation mark ``))`` »
-dialytika ``"i`` ϊ zero width non-joiner v
-================= ====== == ====================== ======== ====
-
-A major drawback of the LGR transliteration is that you cannot access Latin
-letters and some symbols if LGR is the active font encoding (e.g. in
-documents or parts of documents given the `Babel` language ``greek``). 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 both Latin and Greek like the hypothetical T7 or
-Unicode (with XeTeX or LuaTeX).
-
-.. References
- ----------
-
-.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
-.. _babel: http://www.ctan.org/pkg/babel
-.. _docstrip: http://www.ctan.org/pkg/docstrip
-.. _font encoding: http://mirror.ctan.org/macros/latex/base/encguide.pdf
-.. _fontspec: http://www.ctan.org/pkg/fontspec
-.. _fontenc: http://www.ctan.org/pkg/fontenc
-.. _CB Fonts: http://www.ctan.org/pkg/cbgreek-complete
-.. _CM-unicode: http://www.ctan.org/pkg/cm-unicode
-.. _Deja Vu: http://dejavu-fonts.org
-.. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
-.. _grtimes: http://www.ctan.org/pkg/grtimes
-.. _hyperref: http://www.ctan.org/pkg/hyperref
-.. _textalpha:
-.. _greek-fontenc: http://www.ctan.org/pkg/greek-fontenc
-.. _greek-inputenc: http://www.ctan.org/pkg/greek-inputenc
-.. _GFS font collection: http://www.ctan.org/pkg/gfs
-.. _Kerkis: http://www.ctan.org/pkg/kerkis
-.. _Linux Libertine: http://www.ctan.org/pkg/libertine
-.. _polyglossia: http://www.ctan.org/pkg/polyglossia
-.. _substitutefont: http://www.ctan.org/pkg/substitutefont
-.. _texdoc: http://www.ctan.org/pkg/texdoc
-.. _default font encoding for Unicode engines:
- https://www.latex-project.org/news/latex2e-news/ltnews26.pdf
diff --git a/macros/latex/contrib/babel-contrib/greek/README.html b/macros/latex/contrib/babel-contrib/greek/README.html
deleted file mode 100644
index 5b098647b3..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/README.html
+++ /dev/null
@@ -1,1136 +0,0 @@
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta charset="utf-8"/>
-<meta name="generator" content="Docutils 0.17b.dev: http://docutils.sourceforge.net/" />
-<title>babel-greek</title>
-<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 – 2020 Günter Milde." />
-<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
-<style type="text/css">
-
-/* Minimal style sheet for the HTML output of Docutils. */
-/* */
-/* :Author: Günter Milde, based on html4css1.css by David Goodger */
-/* :Id: $Id$ */
-/* :Copyright: © 2015 Günter Milde. */
-/* :License: Released under the terms of the `2-Clause BSD license`_, */
-/* in short: */
-/* */
-/* Copying and distribution of this file, with or without modification, */
-/* are permitted in any medium without royalty provided the copyright */
-/* notice and this notice are preserved. */
-/* */
-/* This file is offered as-is, without any warranty. */
-/* */
-/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
-
-/* This CSS2.1_ stylesheet defines rules for Docutils elements without */
-/* HTML equivalent. It is required to make the document semantic visible. */
-/* */
-/* .. _CSS2.1: http://www.w3.org/TR/CSS2 */
-/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
-
-/* alignment of text and inline objects inside block objects*/
-.align-left { text-align: left; }
-.align-right { text-align: right; }
-.align-center { clear: both; text-align: center; }
-.align-top { vertical-align: top; }
-.align-middle { vertical-align: middle; }
-.align-bottom { vertical-align: bottom; }
-
-/* titles */
-h1.title, p.subtitle {
- text-align: center;
-}
-p.topic-title,
-p.sidebar-title,
-p.rubric,
-p.admonition-title,
-p.system-message-title {
- font-weight: bold;
-}
-h1 + p.subtitle,
-h2 + p.section-subtitle {
- font-size: 1.6em;
-}
-h3 + p.section-subtitle {
- font-size: 1.28em;
-}
-p.subtitle,
-p.section-subtitle,
-p.sidebar-subtitle {
- font-weight: bold;
- margin-top: -0.5em;
-}
-p.sidebar-title {
- font-size: larger;
-}
-p.rubric {
- font-size: larger;
- color: maroon;
-}
-a.toc-backref {
- color: black;
- text-decoration: none; }
-
-/* Warnings, Errors */
-div.system-messages h2,
-span.problematic,
-p.system-message-title {
- color: red;
-}
-
-/* inline literals */
-span.docutils.literal {
- font-family: monospace;
- white-space: pre-wrap;
-}
-/* do not wraph at hyphens and similar: */
-.literal > span.pre { white-space: nowrap; }
-
-/* Lists */
-
-/* compact and simple lists: no margin between items */
-.simple li, .compact li,
-.simple ul, .compact ul,
-.simple ol, .compact ol,
-.simple > li p, .compact > li p,
-dl.simple > dd, dl.compact > dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-/* Table of Contents */
-div.topic.contents { margin: 0.5em 0; }
-div.topic.contents ul {
- list-style-type: none;
- padding-left: 1.5em;
-}
-
-/* Enumerated Lists */
-ol.arabic { list-style: decimal }
-ol.loweralpha { list-style: lower-alpha }
-ol.upperalpha { list-style: upper-alpha }
-ol.lowerroman { list-style: lower-roman }
-ol.upperroman { list-style: upper-roman }
-
-dt span.classifier { font-style: italic }
-dt span.classifier:before {
- font-style: normal;
- margin: 0.5em;
- content: ":";
-}
-
-/* Field Lists and drivatives */
-/* bold field name, content starts on the same line */
-dl.field-list > dt,
-dl.option-list > dt,
-dl.docinfo > dt,
-dl.footnote > dt,
-dl.citation > dt {
- font-weight: bold;
- clear: left;
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 0.5em;
-}
-/* Offset for field content (corresponds to the --field-name-limit option) */
-dl.field-list > dd,
-dl.option-list > dd,
-dl.docinfo > dd {
- margin-left: 9em; /* ca. 14 chars in the test examples */
-}
-/* start field-body on a new line after long field names */
-dl.field-list > dd > *:first-child,
-dl.option-list > dd > *:first-child
-{
- display: inline-block;
- width: 100%;
- margin: 0;
-}
-/* field names followed by a colon */
-dl.field-list > dt:after,
-dl.docinfo > dt:after {
- content: ":";
-}
-
-/* Bibliographic Fields (docinfo) */
-pre.address { font: inherit; }
-dd.authors > p { margin: 0; }
-
-/* Option Lists */
-dl.option-list { margin-left: 1.5em; }
-dl.option-list > dt { font-weight: normal; }
-span.option { white-space: nowrap; }
-
-/* Footnotes and Citations */
-dl.footnote.superscript > dd {margin-left: 1em; }
-dl.footnote.brackets > dd {margin-left: 2em; }
-dl > dt.label { font-weight: normal; }
-a.footnote-reference.brackets:before,
-dt.label > span.brackets:before { content: "["; }
-a.footnote-reference.brackets:after,
-dt.label > span.brackets:after { content: "]"; }
-a.footnote-reference.superscript,
-dl.footnote.superscript > dt.label {
- vertical-align: super;
- font-size: smaller;
-}
-dt.label > span.fn-backref { margin-left: 0.2em; }
-dt.label > span.fn-backref > a { font-style: italic; }
-
-/* Line Blocks */
-div.line-block { display: block; }
-div.line-block div.line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 40px;
-}
-
-/* Figures, Images, and Tables */
-.figure.align-left,
-figure.align-left,
-img.align-left,
-object.align-left,
-table.align-left {
- margin-right: auto;
-}
-.figure.align-center,
-figure.align-center,
-img.align-center,
-object.align-center,
-table.align-center {
- margin-left: auto;
- margin-right: auto;
-}
-.figure.align-right,
-figure.align-right,
-img.align-right,
-object.align-right,
-table.align-right {
- margin-left: auto;
-}
-img.align-center, img.align-right,
-object.align-center, object.align-right {
- display: block;
-}
-/* reset inner alignment in figures and tables */
-.figure.align-left, .figure.align-right,
-figure.align-left, figure.align-right,
-table.align-left, table.align-center, table.align-right {
- text-align: inherit;
-}
-
-/* Sidebar */
-aside.sidebar {
- width: 30%;
- max-width: 26em;
- float: right;
- clear: right;
-}
-
-/* Text Blocks */
-blockquote,
-div.topic,
-div.admonition,
-div.system-message,
-pre.literal-block,
-pre.doctest-block,
-pre.math,
-pre.code {
- margin-left: 1.5em;
- margin-right: 1.5em;
-}
-pre.code .ln { color: gray; } /* line numbers */
-
-/* Tables */
-table { border-collapse: collapse; }
-td, th {
- border-style: solid;
- border-color: silver;
- padding: 0 1ex;
- border-width: thin;
-}
-td > p:first-child, th > p:first-child { margin-top: 0; }
-td > p, th > p { margin-bottom: 0; }
-
-table > caption {
- text-align: left;
- margin-bottom: 0.25em
-}
-
-table.borderless td, table.borderless th {
- border: 0;
- padding: 0;
- padding-right: 0.5em /* separate table cells */
-}
-
-/* Document Header and Footer */
-header { border-bottom: 1px solid black; }
-footer { border-top: 1px solid black; }
-
-/* new HTML5 block elements: set display for older browsers */
-header, section, footer, aside, nav, main, article, figure {
- display: block;
-}
-
-</style>
-<style type="text/css">
-
-/* CSS31_ style sheet for the output of Docutils HTML writers. */
-/* Rules for easy reading and pre-defined style variants. */
-/* */
-/* :Author: Günter Milde, based on html4css1.css by David Goodger */
-/* :Id: $Id$ */
-/* :Copyright: © 2015 Günter Milde. */
-/* :License: Released under the terms of the `2-Clause BSD license`_, */
-/* in short: */
-/* */
-/* Copying and distribution of this file, with or without modification, */
-/* are permitted in any medium without royalty provided the copyright */
-/* notice and this notice are preserved. */
-/* */
-/* This file is offered as-is, without any warranty. */
-/* */
-/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
-/* .. _CSS3: http://www.w3.org/TR/CSS3 */
-
-
-/* Document Structure */
-/* ****************** */
-
-/* "page layout" */
-body {
- margin: 0;
- background-color: #dbdbdb;
-}
-div.document,
-main {
- line-height:1.3;
- counter-reset: table figure;
- /* avoid long lines --> better reading */
- /* optimum is 45…75 characters/line <http://webtypography.net/2.1.2> */
- /* OTOH: lines should not be too short because of missing hyphenation, */
- max-width: 50em;
- padding: 1px 2%; /* 1px on top avoids grey bar above title (mozilla) */
- margin: auto;
- background-color: white;
-}
-
-/* Sections */
-
-/* Transitions */
-
-hr.docutils {
- width: 80%;
- margin-top: 1em;
- margin-bottom: 1em;
- clear: both;
-}
-
-/* Paragraphs */
-/* ========== */
-
-/* vertical space (parskip) */
-p, ol, ul, dl, li, dd,
-div.line-block,
-div.topic,
-table {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-p:first-child { margin-top: 0; }
-/* (:last-child is new in CSS 3) */
-p:last-child { margin-bottom: 0; }
-
-h1, h2, h3, h4, h5, h6,
-dl > dd {
- margin-bottom: 0.5em;
-}
-
-/* Lists */
-/* ===== */
-
-/* Separate list entries in compound lists */
-dl > dd, ol > li,
-
-/* Definition Lists */
-/* Indent lists nested in definition lists */
-/* (:only-child is new in CSS 3) */
-dd > ul:only-child, dd > ol:only-child { padding-left: 1em; }
-
-/* Description Lists */
-/* styled like in most dictionaries, encyclopedias etc. */
-dl.description > dt {
- font-weight: bold;
- clear: left;
- float: left;
- margin: 0;
- padding: 0;
- padding-right: 0.5em;
-}
-
-/* Field Lists */
-
-/* example for custom field-name width */
-dl.field-list.narrow > dd {
- margin-left: 5em;
-}
-/* run-in: start field-body on same line after long field names */
-dl.field-list.run-in > dd p {
- display: block;
-}
-
-/* Bibliographic Fields */
-
-/* generally, bibliographic fields use special definition list dl.docinfo */
-/* but dedication and abstract are placed into "topic" divs */
-div.abstract p.topic-title {
- text-align: center;
-}
-div.dedication {
- margin: 2em 5em;
- text-align: center;
- font-style: italic;
-}
-div.dedication p.topic-title {
- font-style: normal;
-}
-
-/* Citations */
-dl.citation dt.label {
- font-weight: bold;
-}
-span.fn-backref {
- font-weight: normal;
-}
-
-/* Text Blocks */
-/* =========== */
-
-/* Literal Blocks */
-
-pre.literal-block,
-pre.doctest-block,
-pre.math,
-pre.code {
- font-family: monospace;
-}
-
-/* Block Quotes */
-
-blockquote > table,
-div.topic > table {
- margin-top: 0;
- margin-bottom: 0;
-}
-blockquote p.attribution,
-div.topic p.attribution {
- text-align: right;
- margin-left: 20%;
-}
-
-/* Tables */
-/* ====== */
-
-/* th { vertical-align: bottom; } */
-
-table tr { text-align: left; }
-
-/* "booktabs" style (no vertical lines) */
-table.booktabs {
- border: 0;
- border-top: 2px solid;
- border-bottom: 2px solid;
- border-collapse: collapse;
-}
-table.booktabs * {
- border: 0;
-}
-table.booktabs th {
- border-bottom: thin solid;
-}
-
-/* numbered tables (counter defined in div.document) */
-table.numbered > caption:before {
- counter-increment: table;
- content: "Table " counter(table) ": ";
- font-weight: bold;
-}
-
-/* Explicit Markup Blocks */
-/* ====================== */
-
-/* Footnotes and Citations */
-/* ----------------------- */
-
-/* line on the left */
-dl.footnote {
- padding-left: 1ex;
- border-left: solid;
- border-left-width: thin;
-}
-
-/* Directives */
-/* ---------- */
-
-/* Body Elements */
-/* ~~~~~~~~~~~~~ */
-
-/* Images and Figures */
-
-/* let content flow to the side of aligned images and figures */
-.figure.align-left,
-figure.align-left,
-img.align-left,
-object.align-left {
- display: block;
- clear: left;
- float: left;
- margin-right: 1em;
-}
-.figure.align-right,
-figure.align-right,
-img.align-right,
-object.align-right {
- display: block;
- clear: right;
- float: right;
- margin-left: 1em;
-}
-/* Stop floating sidebars, images and figures at section level 1,2,3 */
-h1, h2, h3, h4 { clear: both; }
-
-/* Numbered figures */
-figure.numbered > figcaption > p:before {
- counter-increment: figure;
- content: "Figure " counter(figure) ": ";
- font-weight: bold;
-}
-
-
-/* Admonitions and System Messages */
-
-div.admonition,
-div.system-message,
-aside.sidebar {
- border: medium outset;
- margin: 1em 1.5em;
- padding: 0.5em 1em;
-}
-
-div.caution p.admonition-title,
-div.attention p.admonition-title,
-div.danger p.admonition-title,
-div.error p.admonition-title,
-div.warning p.admonition-title,
-div.error {
- color: red;
-}
-
-
-/* Sidebar */
-
-/* Move right. In a layout with fixed margins, */
-/* it can be moved into the margin. */
-div.sidebar,
-aside.sidebar {
- width: 30%;
- max-width: 26em;
- margin-left: 1em;
- margin-right: -2%;
- background-color: #ffffee;
-}
-
-/* Code */
-
-pre.code { padding: 0.7ex }
-pre.code, code { background-color: #eeeeee }
-pre.code .ln { color: gray; } /* line numbers */
-/* basic highlighting: for a complete scheme, see */
-/* http://docutils.sourceforge.net/sandbox/stylesheets/ */
-pre.code .comment, code .comment { color: #5C6576 }
-pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
-pre.code .literal.string, code .literal.string { color: #0C5404 }
-pre.code .name.builtin, code .name.builtin { color: #352B84 }
-pre.code .deleted, code .deleted { background-color: #DEB0A1}
-pre.code .inserted, code .inserted { background-color: #A3D289}
-
-/* Math */
-/* styled separately (see math.css for math-output=HTML) */
-
-/* Epigraph */
-/* Highlights */
-/* Pull-Quote */
-/* Compound Paragraph */
-/* Container */
-
-/* Document Header and Footer */
-
-footer, header {
- font-size: smaller;
- clear: both;
- padding: 0.5em 2%;
- background-color: #ebebee;
- border: none;
-}
-
-/* Inline Markup */
-/* ============= */
-
-/* Emphasis */
-/* em */
-/* Strong Emphasis */
-/* strong */
-/* Interpreted Text */
-/* span.interpreted */
-/* Title Reference */
-/* cite */
-
-/* Inline Literals */
-/* possible values: normal, nowrap, pre, pre-wrap, pre-line */
-/* span.docutils.literal { white-space: pre-wrap; } */
-
-/* Hyperlink References */
-a { text-decoration: none; }
-
-/* External Targets */
-/* span.target.external */
-/* Internal Targets */
-/* span.target.internal */
-/* Footnote References */
-/* a.footnote-reference */
-/* Citation References */
-/* a.citation-reference */
-
-</style>
-</head>
-<body>
-<main id="babel-greek">
-<h1 class="title">babel-greek</h1>
-<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p>
-<dl class="docinfo simple">
-<dt class="copyright">Copyright</dt>
-<dd class="copyright">© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
-© 2013 – 2020 Günter Milde.</dd>
-<dt class="licence">Licence</dt>
-<dd class="licence"><p>This work may be distributed and/or modified under the
-conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either
-version 1.3 of this license or any later version.</p>
-</dd>
-</dl>
-<div class="abstract topic">
-<p class="topic-title">Abstract</p>
-<p>Babel-greek is a contributed package providing support for the
-Greek language and script via the <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a> system.</p>
-<p>The file <span class="docutils literal">greek.ldf</span> provides options for the monotonic
-(single-diacritic), polytonic (multiple-diacritic) and ancient
-orthography of the Greek language.</p>
-<p>Since 2013-07-19, babel-greek supports also Unicode-aware TeX
-engines (XeTeX/LuaTeX).</p>
-</div>
-<section id="news">
-<h2>News</h2>
-<table class="borderless">
-<colgroup>
-<col style="width: 6%" />
-<col style="width: 16%" />
-<col style="width: 78%" />
-</colgroup>
-<tbody>
-<tr><td><p>1.4</p></td>
-<td><p>2013-05-17</p></td>
-<td><p>New maintainer.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>The encoding definition file <span class="docutils literal">lgrenc.def</span> moved to the
-<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></td>
-</tr>
-<tr><td><p>1.5</p></td>
-<td><p>2013-06-21</p></td>
-<td><p>bugfixes and cleanup,</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>LICR macros in string definitions,</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>LGR font encoding not used with XeTeX/LuaTeX,</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>input “xgreek-fixes.def” from <a class="reference external" href="http://www.ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.5a</p></td>
-<td><p>2013-07-02</p></td>
-<td><p>Fix LaTeX bugs babel/3707, <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303">babel/4303</a> and <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305">babel/4305</a></p></td>
-</tr>
-<tr><td><p>1.6</p></td>
-<td><p>2013-07-19</p></td>
-<td><p>Experimental support for XeTeX/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.7</p></td>
-<td><p>2013-09-09</p></td>
-<td><p>CB-Fonts font definition files moved to CB-Fonts package.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Do not auto-load euenc.def with XeTeX/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.7a</p></td>
-<td><p>2013-09-13</p></td>
-<td><p>Fix bug <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360">babel/4360</a>: spurious <span class="docutils literal">\fi</span>.</p></td>
-</tr>
-<tr><td><p>1.7b</p></td>
-<td><p>2013-10-01</p></td>
-<td><p>bugfix: correct upcasing of babel strings with Xe/LuaTeX.</p></td>
-</tr>
-<tr><td><p>1.8</p></td>
-<td><p>2013-12-02</p></td>
-<td><p>Rename <span class="docutils literal">greek.dtx</span> to <span class="docutils literal"><span class="pre">babel-greek</span></span> so that <a class="reference external" href="http://www.ctan.org/pkg/texdoc">texdoc</a>
-shows the right documentation.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.</p></td>
-</tr>
-<tr><td><p>1.8a</p></td>
-<td><p>2013-12-03</p></td>
-<td><p>Set <span class="docutils literal">\encodingdefault</span> in <span class="docutils literal">\greekscript</span> to fix
-Greek in footnotes etc. with document language Greek.</p></td>
-</tr>
-<tr><td><p>1.9</p></td>
-<td><p>2014-07-20</p></td>
-<td><p>Added attribute for ancient Greek, load correct hyphenation
-patterns: Patch by Claudio Beccari. Bugfix for Makeuppercase</p></td>
-</tr>
-<tr><td><p>1.9a</p></td>
-<td><p>2014-09-12</p></td>
-<td><p>Remove duplicate code, documentation review.</p></td>
-</tr>
-<tr><td><p>1.9b</p></td>
-<td><p>2014-09-18</p></td>
-<td><p>Remove spurious whitespace from “extrasgreek” definition.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Use named macros instead of non-standard short macros
-for psili and dasia in the string definitions.</p></td>
-</tr>
-<tr><td><p>1.9c</p></td>
-<td><p>2014-10-21</p></td>
-<td><p>Fix dummy hyphenation language names (patch Ulrike Fischer).</p></td>
-</tr>
-<tr><td><p>1.9d</p></td>
-<td><p>2015-09-04</p></td>
-<td><p>Remove <cite>grsymb</cite> (macros for Greek symbols).
-This package is outdated and obsoleted by <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>
-(reported by Claudio Beccari).</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Unicode uc/lc corrections now in greek-fontenc.</p></td>
-</tr>
-<tr><td><p>1.9e</p></td>
-<td><p>2015-11-27</p></td>
-<td><p>Fix bug in lccode-setting loop (patch by Enrico Gregorio).</p></td>
-</tr>
-<tr><td><p>1.9f</p></td>
-<td><p>2016-02-04</p></td>
-<td><p>Support for new standard Unicode text font encoding “TU”.</p></td>
-</tr>
-<tr><td><p>1.9g</p></td>
-<td><p>2016-09-07</p></td>
-<td><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span>
-and fixed <span class="docutils literal">\latinencoding</span>.</p></td>
-</tr>
-<tr><td><p>1.9h</p></td>
-<td><p>2019-07-11</p></td>
-<td><p>Move breathing composite commands to <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">textalpha</a>.</p></td>
-</tr>
-<tr><td><p>1.9i</p></td>
-<td><p>2020-02-28</p></td>
-<td><p>Update test for Unicode fonts.
-Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></td>
-</tr>
-<tr><td><p>1.9j</p></td>
-<td><p>2020-03-17</p></td>
-<td><p>Fix ampersand in math mode.</p></td>
-</tr>
-<tr><td><p>1.10</p></td>
-<td><p>2020-11-10</p></td>
-<td><p>Use <span class="docutils literal">TU</span> as <span class="docutils literal">\greekfontencoding</span> for Xe/LuaTeX
-(set by LaTeX as <a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">default font encoding for Unicode
-engines</a> since 2017/01/01).</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Use zig-zagy <span class="docutils literal">\textkoppa</span> for <span class="docutils literal">\greeknumeral{90}</span>.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>PDF-string secure implementation of <span class="docutils literal">\greeknumeral</span>
-from <a class="reference external" href="http://www.ctan.org/pkg/hyperref">hyperref</a>.</p></td>
-</tr>
-<tr><td><!-- -->
-</td>
-<td></td>
-<td><p>Load <span class="docutils literal"><span class="pre">puenc-greek.def</span></span> (from <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>)
-if used with hyperref (polytonic Greek in PDF-strings).</p></td>
-</tr>
-</tbody>
-</table>
-</section>
-<section id="files">
-<h2>Files</h2>
-<dl class="simple">
-<dt><a class="reference external" href="babel-greek.dtx">babel-greek.dtx</a>; <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a></dt>
-<dd><p>Source of the language definition file <span class="docutils literal">greek.ldf</span> for use with <a class="reference external" href="http://www.ctan.org/pkg/babel">Babel</a>.</p>
-</dd>
-<dt><a class="reference external" href="athnum.dtx">athnum.dtx</a>; <a class="reference external" href="athnum.pdf">athnum.pdf</a></dt>
-<dd><p>Athenian Numerals.</p>
-</dd>
-<dt><a class="reference external" href="grmath.dtx">grmath.dtx</a>; <a class="reference external" href="grmath.pdf">grmath.pdf</a></dt>
-<dd><p>Greek log-like Operators.</p>
-</dd>
-<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a></dt>
-<dd><p><a class="reference external" href="http://www.ctan.org/pkg/docstrip">DocStrip</a> batch file.</p>
-</dd>
-<dt><a class="reference external" href="test-greek.tex">test-greek.tex</a> <a class="reference external" href="test-greek-lgr.pdf">test-greek-lgr.pdf</a> <a class="reference external" href="test-greek-tu.pdf">test-greek-tu.pdf</a></dt>
-<dd><p>Test Babel-Greek features.</p>
-</dd>
-<dt><a class="reference external" href="test-8bit-greek.tex">test-8bit-greek.tex</a> <a class="reference external" href="test-8bit-greek.pdf">test-8bit-greek.pdf</a></dt>
-<dd><p>Additional tests and examples for 8-bit TeX.</p>
-</dd>
-<dt><a class="reference external" href="test-tu-lgr.tex">test-tu-lgr.tex</a> <a class="reference external" href="test-tu-lgr.pdf">test-tu-lgr.pdf</a></dt>
-<dd><p>Tests and Examples for XeTeX/LuaTeX with LGR 8-bit fonts.</p>
-</dd>
-<dt><a class="reference external" href="usage.tex">usage.tex</a> <a class="reference external" href="usage.pdf">usage.pdf</a></dt>
-<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a>.</p>
-</dd>
-</dl>
-</section>
-<section id="requirements">
-<h2>Requirements</h2>
-<p>The “babel-greek” package requires the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> base package and font
-definition files from the <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a>
-package is recommended when using 8-bit TeX engines.</p>
-<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p>
-<p>Plain TeX is currently not supported. Patches are welcome.</p>
-</section>
-<section id="installation">
-<h2>Installation</h2>
-<p>If possible, get this package from your distribution using its installation
-manager.</p>
-<p>Otherwise, make sure LaTeX can find the required files:</p>
-<ul>
-<li><p>Download and unpack <cite>babel-greek.zip</cite>.</p></li>
-<li><p>Run <span class="docutils literal">tex</span> or <span class="docutils literal">latex</span> on the batch file <span class="docutils literal"><span class="pre">babel-greek.ins</span></span>.</p>
-<p>This will generate the files <span class="docutils literal">greek.ldf</span>, <span class="docutils literal">athnum.sty</span>, and
-<span class="docutils literal">grmath.sty</span> in the current directory.<a class="footnote-reference superscript" href="#id2" id="id1">1</a></p>
-</li>
-<li><p>Move all files ending in <span class="docutils literal">.ldf</span> or <span class="docutils literal">.sty</span> into a directory searched by
-TeX.</p></li>
-<li><p>To produce the documentation, run the file <span class="docutils literal">usage.tex</span> and all files
-ending in <span class="docutils literal">.dtx</span> through LaTeX.</p></li>
-</ul>
-<dl class="footnote superscript">
-<dt class="label" id="id2"><span class="superscript"><a class="fn-backref" href="#id1">1</a></span></dt>
-<dd><p>If these files already exist somewhere in the TeX-path, you will be
-warned that they might be overwritten. You can ignore this
-warning and answer <cite>y</cite> unless the <em>current directory</em> contains versions
-of these files you want to keep.</p>
-<p>This is done by <a class="reference external" href="http://www.ctan.org/pkg/docstrip">docstrip</a>. Try <span class="docutils literal">texdoc docstrip</span> for details.</p>
-</dd>
-</dl>
-</section>
-<section id="usage">
-<h2>Usage</h2>
-<p>Use the “greek” document option or pass the “greek” option to babel:</p>
-<pre class="literal-block">\usepackage[greek]{babel}</pre>
-<p>For polytonic Greek, set the language attribute “polutoniko”:</p>
-<pre class="literal-block">\usepackage[greek]{babel}
-\languageattribute{greek}{polutoniko}</pre>
-<p>or</p>
-<pre class="literal-block">\usepackage[greek.polutoniko,english]{babel}</pre>
-<p>Similarly, the attribute “ancient” selects the ancient Greek language
-variant.</p>
-<p>For details see <a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a> and the <a class="reference external" href="http://www.ctan.org/pkg/babel">babel</a> documentation.</p>
-<p>Input of Greek characters is possible as literal characters (with the
-<a class="reference external" href="http://www.ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or with XeTeX or LuaTeX) or the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin
-transliteration</a>. See <a class="reference external" href="usage.pdf">usage.pdf</a> and the example files provided with
-<a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p>
-</section>
-<section id="greek-text-fonts">
-<h2>Greek text fonts</h2>
-<p>A list of Greek text fonts for use with LaTeX is available at the CTAN
-<a class="reference external" href="http://www.ctan.org/topic/font-greek">http://www.ctan.org/topic/font-greek</a></p>
-<p>With the XeTeX or LuaTeX engines, the user should ensure that the chosen
-font contains the required glyphs: the default Latin Modern fonts miss
-them. Warnings about missing charcters are only written to the log
-file, not the console output! Select a suitable font with <a class="reference external" href="http://www.ctan.org/pkg/fontspec">fontspec</a>.</p>
-<p>Examples for suitable fonts are the <a class="reference external" href="http://www.ctan.org/pkg/cm-unicode">CM-unicode</a> or the <a class="reference external" href="http://www.ctan.org/pkg/libertine">Linux
-Libertine</a> OpenType fonts as well as any system-wide installed OTF fonts
-that support Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>).</p>
-<p>The LGR <a class="reference external" href="http://mirror.ctan.org/macros/latex/base/encguide.pdf">font encoding</a> is the de-facto standard for typesetting Greek with
-8-bit LaTeX. Fonts in this encoding include the <a class="reference external" href="http://www.ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM),
-<a class="reference external" href="http://www.ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="http://www.ctan.org/pkg/kerkis">Kerkis</a> (matching URW Bookman), and the <a class="reference external" href="http://www.ctan.org/pkg/gfs">GFS font
-collection</a>. Setup of these fonts as Greek variant to matching Latin fonts
-is facilitated by the <a class="reference external" href="http://www.ctan.org/pkg/substitutefont">substitutefont</a> package.</p>
-</section>
-<section id="lgr-latin-transliteration">
-<h2>LGR Latin Transliteration</h2>
-<p>The LGR font encoding allows input of Greek characters via an ASCII
-transliteration. This enables simple input with a Latin keyboard. Characters
-with diacritics may be selected with accent macros (cf. <a class="reference external" href="http://www.ctan.org/pkg/greek-fontenc">greek-fontenc</a>) or
-via the ligature definitions in the font (see <a class="reference external" href="usage.pdf">usage.pdf</a>).</p>
-<p>The following ASCII characters are converted to Greek symbols:</p>
-<table>
-<colgroup>
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-<col style="width: 4%" />
-</colgroup>
-<tbody>
-<tr><td><p>A</p></td>
-<td><p>B</p></td>
-<td><p>G</p></td>
-<td><p>D</p></td>
-<td><p>E</p></td>
-<td><p>Z</p></td>
-<td><p>H</p></td>
-<td><p>J</p></td>
-<td><p>I</p></td>
-<td><p>K</p></td>
-<td><p>L</p></td>
-<td><p>M</p></td>
-<td><p>N</p></td>
-<td><p>X</p></td>
-<td><p>O</p></td>
-<td><p>P</p></td>
-<td><p>R</p></td>
-<td><p>S</p></td>
-<td></td>
-<td><p>T</p></td>
-<td><p>U</p></td>
-<td><p>F</p></td>
-<td><p>Q</p></td>
-<td><p>Y</p></td>
-<td><p>W</p></td>
-</tr>
-<tr><td><p>Α</p></td>
-<td><p>Β</p></td>
-<td><p>Γ</p></td>
-<td><p>Δ</p></td>
-<td><p>Ε</p></td>
-<td><p>Ζ</p></td>
-<td><p>Η</p></td>
-<td><p>Θ</p></td>
-<td><p>Ι</p></td>
-<td><p>Κ</p></td>
-<td><p>Λ</p></td>
-<td><p>Μ</p></td>
-<td><p>Ν</p></td>
-<td><p>Ξ</p></td>
-<td><p>Ο</p></td>
-<td><p>Π</p></td>
-<td><p>Ρ</p></td>
-<td><p>Σ</p></td>
-<td></td>
-<td><p>Τ</p></td>
-<td><p>Υ</p></td>
-<td><p>Φ</p></td>
-<td><p>Χ</p></td>
-<td><p>Ψ</p></td>
-<td><p>Ω</p></td>
-</tr>
-<tr><td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-<td></td>
-</tr>
-<tr><td><p>a</p></td>
-<td><p>b</p></td>
-<td><p>g</p></td>
-<td><p>d</p></td>
-<td><p>e</p></td>
-<td><p>z</p></td>
-<td><p>h</p></td>
-<td><p>j</p></td>
-<td><p>i</p></td>
-<td><p>k</p></td>
-<td><p>l</p></td>
-<td><p>m</p></td>
-<td><p>n</p></td>
-<td><p>x</p></td>
-<td><p>o</p></td>
-<td><p>p</p></td>
-<td><p>r</p></td>
-<td><p>s</p></td>
-<td><p>c</p></td>
-<td><p>t</p></td>
-<td><p>u</p></td>
-<td><p>f</p></td>
-<td><p>q</p></td>
-<td><p>y</p></td>
-<td><p>w</p></td>
-</tr>
-<tr><td><p>α</p></td>
-<td><p>β</p></td>
-<td><p>γ</p></td>
-<td><p>δ</p></td>
-<td><p>ε</p></td>
-<td><p>ζ</p></td>
-<td><p>η</p></td>
-<td><p>θ</p></td>
-<td><p>ι</p></td>
-<td><p>κ</p></td>
-<td><p>λ</p></td>
-<td><p>μ</p></td>
-<td><p>ν</p></td>
-<td><p>ξ</p></td>
-<td><p>ο</p></td>
-<td><p>π</p></td>
-<td><p>ρ</p></td>
-<td><p>σ</p></td>
-<td><p>ς</p></td>
-<td><p>τ</p></td>
-<td><p>υ</p></td>
-<td><p>φ</p></td>
-<td><p>χ</p></td>
-<td><p>ψ</p></td>
-<td><p>ω</p></td>
-</tr>
-</tbody>
-</table>
-<p>Accent symbols and punctuation:</p>
-<table>
-<colgroup>
-<col style="width: 29%" />
-<col style="width: 10%" />
-<col style="width: 3%" />
-<col style="width: 37%" />
-<col style="width: 14%" />
-<col style="width: 7%" />
-</colgroup>
-<tbody>
-<tr><td><p>tonos</p></td>
-<td><p><span class="docutils literal">'a</span></p></td>
-<td><p>ά</p></td>
-<td><p>semicolon</p></td>
-<td><p><span class="docutils literal">;</span></p></td>
-<td><p>·</p></td>
-</tr>
-<tr><td><p>varia</p></td>
-<td><p>`a</p></td>
-<td><p>ὰ</p></td>
-<td><p>question mark</p></td>
-<td><p><span class="docutils literal">?</span></p></td>
-<td><p>;</p></td>
-</tr>
-<tr><td><p>perispomeni</p></td>
-<td><p><span class="docutils literal">~a</span></p></td>
-<td><p>ᾶ</p></td>
-<td><p>left apostrophe</p></td>
-<td><p>` `</p></td>
-<td><p>‘</p></td>
-</tr>
-<tr><td><p>dasia</p></td>
-<td><p><span class="docutils literal">&lt;a</span></p></td>
-<td><p>ἁ</p></td>
-<td><p>right apostrophe</p></td>
-<td><p><span class="docutils literal">''</span></p></td>
-<td><p>’</p></td>
-</tr>
-<tr><td><p>psili</p></td>
-<td><p><span class="docutils literal">&gt;a</span></p></td>
-<td><p>ἀ</p></td>
-<td><p>left quotation mark</p></td>
-<td><p><span class="docutils literal">((</span></p></td>
-<td><p>«</p></td>
-</tr>
-<tr><td><p>ypogegrammeni</p></td>
-<td><p><span class="docutils literal">a|</span></p></td>
-<td><p>ᾳ</p></td>
-<td><p>right quotation mark</p></td>
-<td><p><span class="docutils literal">))</span></p></td>
-<td><p>»</p></td>
-</tr>
-<tr><td><p>dialytika</p></td>
-<td><p><span class="docutils literal">&quot;i</span></p></td>
-<td><p>ϊ</p></td>
-<td><p>zero width non-joiner</p></td>
-<td><p>v</p></td>
-<td></td>
-</tr>
-</tbody>
-</table>
-<p>A major drawback of the LGR transliteration is that you cannot access Latin
-letters and some symbols if LGR is the active font encoding (e.g. in
-documents or parts of documents given the <cite>Babel</cite> language <span class="docutils literal">greek</span>). 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 both Latin and Greek like the hypothetical T7 or
-Unicode (with XeTeX or LuaTeX).</p>
-<!-- References
-- - - - - - - - - - -->
-</section>
-</main>
-</body>
-</html>
diff --git a/macros/latex/contrib/babel-contrib/greek/README.md b/macros/latex/contrib/babel-contrib/greek/README.md
new file mode 100644
index 0000000000..652a58975d
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/README.md
@@ -0,0 +1,35 @@
+babel-greek
+===========
+Babel support for the Greek language
+------------------------------------
+
+Comprehensive support for the Greek language and script with
+[Babel](https://ctan.org/pkg/babel).
+
+**Version**: 1.12 ([changelog][1])
+
+**Copyright**: © 1997 Apostles Syropoulos, Claudio Beccari, Johannes Brahms,
+ © 2013 - 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**: <https://codeberg.org/milde/greek-tex>
+
+**Latest Release**: <https://ctan.org/pkg/babel-greek>
+
+**Requires**: [greek-fontenc](https://ctan.org/pkg/greek-fontenc),
+ [text fonts supporting the Greek script][2]
+
+**Recommends**: [greek-inputenc](https://ctan.org/pkg/greek-inputenc)
+ (when used with 8-bit TeX/pdfTeX)
+
+See [babel-greek-doc][3] ([babel-greek-doc.rst][4]) for a detailed overview.
+
+
+[1]: babel-greek-doc.html#changelog
+[2]: babel-greek-doc.html#greek-text-fonts
+[3]: babel-greek-doc.html
+[4]: babel-greek-doc.rst
diff --git a/macros/latex/contrib/babel-contrib/greek/athnum.dtx b/macros/latex/contrib/babel-contrib/greek/athnum.dtx
index 3ea1f5325a..3c1f3f4636 100644
--- a/macros/latex/contrib/babel-contrib/greek/athnum.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/athnum.dtx
@@ -1,11 +1,8 @@
% \iffalse meta-comment
%
-% Copyright 1989-2008 Johannes L. Braams and any individual authors
-% listed elsewhere in this file. All rights reserved.
-%
-% This file is part of the Babel system.
-% --------------------------------------
-%
+% This file is part of the babel-greek package.
+% ---------------------------------------------
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,33 +10,19 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
-% The Current Maintainer of this work is Johannes Braams.
-%
-% The list of all files belonging to the Babel system is
-% given in the file `manifest.bbl. See also `legal.bbl' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
+%
+% The Current Maintainer of this work is Günter Milde <milde@users.sf.net>.
+%
% \fi
-%% \CheckSum{125}
+%% \CheckSum{150}
%\iffalse
%
%% This is file `athnum.dtx'
%% (c) 1997-2007 Apostolos Syropoulos.
+%% Changes in version 2.0 © 2022 Günter Milde
%% All rights reserved.
-%
-% Please report errors or suggestions for improvement to
-%
-% Apostolos Syropoulos
-% 366, 28th October Str.
-% GR-671 00 Xanthi, GREECE
-% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
-%
%\fi
%
% \iffalse
@@ -62,26 +45,25 @@
%</driver>
% \end{macrocode}
% \fi
-%
-%\title{Athenian Numerals II\footnote{The documentation of this
-% package is essentially the same as that of the package `grnumalt'.
-% The `II' serves as a means to distinguish the two documents.}}
+%\title{Attic (or Athenian) Numerals}
% \author{Apostolos Syropoulos\\366, 28th October Str.\\
% GR-671 00 Xanthi, HELLAS\\ Email:\texttt{apostolo@platon.ee.duth.gr}}
% \date{2003/08/24}
%\maketitle
-%
+%
%\MakeShortVerb{\|}
%
%\section{Introduction}
-%
-% This \LaTeX\ package implements the macro
+%
+% This \LaTeX\ package implements the macro
% \DescribeMacro{\athnum}
% |\athnum|. The macro transforms an Arabic numeral, i.e., the kind
% of numerals we all use (e.g., 1, 5, 789 etc), to the corresponding
-% {\itshape Athenian} numeral. Athenian numerals were in use only in
-% ancient Athens. The package can be used only in conjunction with the
-% |greek| option of the |babel| package.
+% {\itshape Athenian} (or \emph{Attic} numeral. Athenian numerals were in
+% use mainly in ancient Athens. The package requires a Greek text font and
+% the |greek-fontenc| package.\footnote{%
+% Up to version 1.1, `athnum' required that Babel was loaded with the
+% |greek| option. Version 2.0 sets up Greek font support autonomously.}
%
%\section{The Numbering System}
%
@@ -95,57 +77,92 @@
% \item $\Pi$ denotes the number five (5)
% \item $\Delta$ denotes the number ten (10)
% \item H denotes the number one hundred (100)
-% \item X denotes the number one thousand (1000)
+% \item X denotes the number one thousand (1000)
% \item M denotes the number ten thousands (10000)
%\end{itemize}
-% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$,
-% denote five times their original value, e.g., the symbol
-% \PiIt{X}, denotes the number 5000, and the symbol
+% Moreover, the letters $\Delta$, H, X, and M under the letter $\Pi$,
+% denote five times their original value, e.g., the symbol
+% \PiIt{X}, denotes the number 5000, and the symbol
% \PiIt{$\Delta$}, denotes the number 50. It must be noted that
% the numbering system does not provide negative numerals or a symbol for
-% zero.
+% zero.
%
% The Athenian numbering system is described, among others, in an article in
% Encyclopedia $\Delta o\mu\acute{\eta}$, Vol. 2, page 280, 7th edition,
% Athens, October 2, 1975.
%
-% \section{The Code}
+% \section{The Code}
+%
+% \changes{athnum-2.0}{2022/12/08}{%
+% Do not require Babel to be loaded with the |greek| option.\\
+% Use LICR macros instead of the Latin transliteration for Greek letters
+% to fix working with Unicode fonts.\\
+% Drop the backwards compatibility definitions for PiDelta, PiEta,
+% PiChi, and PiMu.}
+%
% Before we do anything further, we have to identify the package.
% \StopEventually
%
% \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}[1996/01/01]
-\ProvidesPackage{athnum}[2003/08/24\space v1.1]
-\typeout{Package: `athnum' v1.1\space <2003/08/24> (A. Syropoulos)}
-% \end{macrocode}
-% Next we check to see if the |babel| package is loaded with at least
-% the |greek| option. In case it isn't, we opt to produce an error message.
-% \begin{macrocode}
-\@ifpackagewith{babel}{greek}{}{%
- \@ifpackagewith{babel}{polutonikogreek}{}{%
- \PackageError{athnum}{%
- `greek' option of the `babel'\MessageBreak
- package hasn't been loaded}{%
- The commands provided by this package\MessageBreak
- are specially designed for greek language\MessageBreak
- typesetting with the `babel' package. Load\MessageBreak
- it with at least the `greek' option.}\relax
- }}
+\ProvidesPackage{athnum}[2022/12/08\space v2.0]
+\typeout{Package: `athnum' v2.0\space <2022/12/08> (A. Syropoulos)}
% \end{macrocode}
+% \section{Font setup}
+%
+% Typesetting Greek texts requires a font with Greek characters:
+%
+% For 8-bit LaTeX, this package uses fonts with the LGR font encoding.
+% With the XeTeX or LuaTeX engines and Unicode fonts, the user must ensure
+% that the selected font contains the required glyphs
+% (only few fonts support the "GREEK ACROPHONIC ..." characters).
+% LGR-encoded fonts can also be used alongside Unicode fonts with XeTeX/LuaTeX
+% to enable the input of Greek letters via the Latin transliteration provided by
+% this font encoding.
%
-% As it is mentioned in the introduction, the Athenian numerals employ
-% some special digits. These digits are included in the |cb| fonts of
-% Claudio Beccari, and so we must provide access commands.
+% \DescribeMacro\greekfontencoding
+% We test for available font encodings and set |\greekfontencoding|
+% and the internal macro |\athnum@greek@fontencdef| with the name of the
+% font definition file that defines the required Greek LICR macros.
+% The default is LGR for 8-bit TeX engines and TU for Xe/LuaTeX.
% \begin{macrocode}
-\DeclareTextCommand{\PiDelta}{LGR}{\char"02\relax}
-\DeclareTextCommand{\PiEta}{LGR}{\char"03\relax}
-\DeclareTextCommand{\PiChi}{LGR}{\char"04\relax}
-\DeclareTextCommand{\PiMu}{LGR}{\char"05\relax}
+\ifdefined \UnicodeEncodingName % set by LaTeX for XeTeX/LuaTeX
+ \providecommand*{\greekfontencoding}{\UnicodeEncodingName}
+ \providecommand*{\athnum@greek@fontencdef}{tuenc-greek}
+\else
+ \providecommand*{\greekfontencoding}{LGR}
+ \providecommand*{\athnum@greek@fontencdef}{lgrenc}
+\fi
% \end{macrocode}
-%\begin{macro}{\@@athnum}
-% Now, we turn our attention to the definition of the macro
-% |\@@athnum|. This macro uses one integer variable (or counter in
+% Ensure that the Greek LICR macros are available:
+% \begin{macrocode}
+\@ifl@aded{def}{\athnum@greek@fontencdef}{}
+{% else
+ \InputIfFileExists{\athnum@greek@fontencdef .def}{}{% else
+ \PackageError{athnum}{Font support for the Greek script missing.\\
+ can't typeset Greek symbols.\\
+ Install the "greek-fontenc" package\\
+ or use XeTeX/LuaTeX.}
+ {I can't find the \athnum@greek@fontencdef .def file
+ for the Greek fonts (encoding \greekfontencoding)}
+ \@@end
+ }
+}
+% \end{macrocode}
+% \begin{macro}{\ensuregreek}
+% The TextCommand |\ensuregreek| sets it argument in |\greekfontencoding|
+% if the current font encoding does not provide a (typically empty) local
+% variant.
+% \begin{macrocode}
+\ProvideTextCommandDefault{\ensuregreek}[1]{%
+ \leavevmode{\fontencoding{\greekfontencoding}\selectfont #1}}
+% \end{macrocode}
+% \end{macro}
+%
+%\begin{macro}{\@@athnum}
+% Now, we turn our attention to the definition of the macro
+% |\@@athnum|. This macro uses one integer variable (or counter in
% \TeX's jargon.)
% \begin{macrocode}
\newcount\@ath@num
@@ -154,18 +171,18 @@
% \begin{macrocode}
\DeclareRobustCommand*{\@@athnum}[1]{%
% \end{macrocode}
-% After assigning to variable |\@ath@num| the value of the macro's argument,
+% After assigning to variable |\@ath@num| the value of the macro's argument,
%we make sure that the argument is in the expected range, i.e., it is greater
-% than zero, and less or equal to $249999$. In case it isn't, we simply
+% than zero, and less or equal to $249999$. In case it isn't, we simply
% produce a |\space|, warn the user about it and quit. Although, the
% |\athnum| macro is capable to produce an Athenian numeral for even greater
% intergers, the following argument by Claudio Beccari convised me to place
% this above upper limit:
-% \begin{quote}
+% \begin{quote}
% According to psychological perception studies (that ancient Athenians
% and Romans perfectly knew without needing to study Freud and Jung)
% living beings (which includes at least all vertebrates, not only
-% humans) can perceive up to four randomly set objects of the same kind
+% humans) can perceive up to four randomly set objects of the same kind
% without the need of counting, the latter activity being a specific
% acquired ability of human kind; the biquinary numbering notation
% used by the Athenians and the Romans exploits this natural
@@ -187,61 +204,64 @@
% computation. If the number is greater than $49999$, then it certainly
% has at least one \PiIt{M} ``digit''. We find all such digits by continuously
% subtracting $50000$ from |\@ath@num|, until |\@ath@num| becomes less than
-% $50000$.
+% $50000$.
% \begin{macrocode}
\@whilenum\@ath@num>49999\do{%
- \PiMu\advance\@ath@num-50000}%
+ \textpentemuria\advance\@ath@num-50000}%
% \end{macrocode}
% We now check for tens of thousands.
% \begin{macrocode}
\@whilenum\@ath@num>9999\do{%
- M\advance\@ath@num-\@M}%
+ \textMu\advance\@ath@num-\@M}%
% \end{macrocode}
-% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it
+% Since a number can have only one \PiIt{X} ``digit'' (equivalent to 5000), it
% is easy to check it out and produce the corresponding numeral in case it does
% have one.
% \begin{macrocode}
\ifnum\@ath@num>4999%
- \PiChi\advance\@ath@num-5000%
+ \textpenteqilioi\advance\@ath@num-5000%
\fi\relax
% \end{macrocode}
% Next, we check for thousands, the same way we checked for tens of thousands.
% \begin{macrocode}
\@whilenum\@ath@num>999\do{%
- Q\advance\@ath@num-\@m}%
+ \textChi\advance\@ath@num-\@m}%
% \end{macrocode}
% Like the five thousands, a numeral can have at most one \PiIt{H} ``digit''
% (equivalent to 500).
% \begin{macrocode}
\ifnum\@ath@num>499%
- \PiEta\advance\@ath@num-500%
+ \textpentehekaton\advance\@ath@num-500%
\fi\relax
% \end{macrocode}
% It is time to check hundreds, which follow the same pattern as thousands
% \begin{macrocode}
\@whilenum\@ath@num>99\do{%
- H\advance\@ath@num-100}%
+ \textEta\advance\@ath@num-100}%
% \end{macrocode}
% A numeral can have only one \PiIt{$\Delta$} ``digit'' (equivalent to 50).
-% \begin{macrocode}
+% \begin{macrocode}
\ifnum\@ath@num>49%
- \PiDelta\advance\@ath@num-50%
+ \textpentedeka\advance\@ath@num-50%
\fi\relax
% \end{macrocode}
% Let's check now decades.
-% \begin{macrocode}
+% \begin{macrocode}
\@whilenum\@ath@num>9\do{%
- D\advance\@ath@num by-10}%
+ \textDelta\advance\@ath@num by-10}%
% \end{macrocode}
% We check for five and, finally, for the digits 1, 2, 3, and 4.
% \begin{macrocode}
\@whilenum\@ath@num>4\do{%
- P\advance\@ath@num-5}%
- \ifcase\@ath@num\or I\or II\or III\or IIII\fi%
+ \textPi\advance\@ath@num-5}%
+ \ifcase\@ath@num \or \textIota
+ \or \textIota\textIota
+ \or \textIota\textIota\textIota
+ \or \textIota\textIota\textIota\textIota\fi%
\fi\fi}
% \end{macrocode}
%\end{macro}
-%
+%
%\begin{macro}{\@athnum}
% The command |\@athnum| has one argument, which
% is a counter. It calls the command |\@@athnum| to process the value of
@@ -255,11 +275,13 @@
% The command |\athnum| is a wrapper that declares
% a new counter in a local scope, assigns to it the argument of the command
% and calls the macro |\@athnum|. This way the command can process correctly
-% either a number or a counter.
+% either a number or a counter.
% \begin{macrocode}
\def\athnum#1{%
- \@ath@num#1\relax
- \@athnum{\@ath@num}}
+ \ensuregreek{%
+ \@ath@num#1\relax
+ \@athnum{\@ath@num}}%
+ }
%</package>
% \end{macrocode}
%\end{macro}
@@ -268,9 +290,9 @@
% I would like to thank Claudio Beccari for reading the documentation
% and for his very helpful suggestions. In addition, Antonis Tsolomitis
% spotted a bug in the first version, which is corrected in the present
-% version.
+% version.
% \section*{Dedication}
-% I would like to dedicate this piece of work to my son
+% I would like to dedicate this piece of work to my son
% \begin{center}Demetrios-Georgios.\end{center}
% \Finale
%
diff --git a/macros/latex/contrib/babel-contrib/greek/athnum.pdf b/macros/latex/contrib/babel-contrib/greek/athnum.pdf
index 6301b00730..060d16210b 100644
--- a/macros/latex/contrib/babel-contrib/greek/athnum.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/athnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html
new file mode 100644
index 0000000000..0e108edc12
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html
@@ -0,0 +1,1387 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta charset="utf-8" />
+<meta name="generator" content="Docutils 0.20b.dev: https://docutils.sourceforge.io/" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<meta name="dcterms.rights" content="© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 – 2022 Günter Milde." />
+<title>babel-greek</title>
+<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
+<style type="text/css">
+
+/* Minimal style sheet for the HTML output of Docutils. */
+/* */
+/* :Author: Günter Milde, based on html4css1.css by David Goodger */
+/* :Id: $Id$ */
+/* :Copyright: © 2015, 2021 Günter Milde. */
+/* :License: Released under the terms of the `2-Clause BSD license`_, */
+/* in short: */
+/* */
+/* Copying and distribution of this file, with or without modification, */
+/* are permitted in any medium without royalty provided the copyright */
+/* notice and this notice are preserved. */
+/* */
+/* This file is offered as-is, without any warranty. */
+/* */
+/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
+
+/* This CSS3 stylesheet defines rules for Docutils elements without */
+/* HTML equivalent. It is required to make the document semantics visible. */
+/* */
+/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */
+
+/* titles */
+p.topic-title,
+p.admonition-title,
+p.system-message-title {
+ font-weight: bold;
+}
+p.sidebar-title,
+p.rubric {
+ font-weight: bold;
+ font-size: larger;
+}
+p.rubric {
+ color: maroon;
+}
+p.subtitle,
+p.section-subtitle,
+p.sidebar-subtitle {
+ font-weight: bold;
+ margin-top: -0.5em;
+}
+h1 + p.subtitle {
+ font-size: 1.6em;
+}
+a.toc-backref {
+ color: inherit;
+ text-decoration: none;
+}
+
+/* Warnings, Errors */
+.system-messages h2,
+.system-message-title,
+span.problematic {
+ color: red;
+}
+
+/* Inline Literals */
+.docutils.literal {
+ font-family: monospace;
+ white-space: pre-wrap;
+}
+/* do not wrap at hyphens and similar: */
+.literal > span.pre { white-space: nowrap; }
+
+/* Lists */
+
+/* compact and simple lists: no margin between items */
+.simple li, .simple ul, .simple ol,
+.compact li, .compact ul, .compact ol,
+.simple > li p, dl.simple > dd,
+.compact > li p, dl.compact > dd {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+/* Nested Paragraphs */
+p:first-child { margin-top: 0; }
+p:last-child { margin-bottom: 0; }
+details > p:last-child { margin-bottom: 1em; }
+
+/* Table of Contents */
+.contents ul.auto-toc { /* section numbers present */
+ list-style-type: none;
+}
+
+/* Enumerated Lists */
+ol.arabic { list-style: decimal }
+ol.loweralpha { list-style: lower-alpha }
+ol.upperalpha { list-style: upper-alpha }
+ol.lowerroman { list-style: lower-roman }
+ol.upperroman { list-style: upper-roman }
+
+/* Definition Lists and Derivatives */
+dt .classifier { font-style: italic }
+dt .classifier:before {
+ font-style: normal;
+ margin: 0.5em;
+ content: ":";
+}
+/* Field Lists and similar */
+/* bold field name, content starts on the same line */
+dl.field-list,
+dl.option-list,
+dl.docinfo {
+ display: flow-root;
+}
+dl.field-list > dt,
+dl.option-list > dt,
+dl.docinfo > dt {
+ font-weight: bold;
+ clear: left;
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 0.2em;
+}
+/* Offset for field content (corresponds to the --field-name-limit option) */
+dl.field-list > dd,
+dl.option-list > dd,
+dl.docinfo > dd {
+ margin-left: 9em; /* ca. 14 chars in the test examples, fit all Docinfo fields */
+}
+/* start nested lists on new line */
+dd > dl:first-child,
+dd > ul:first-child,
+dd > ol:first-child {
+ clear: left;
+}
+/* start field-body on a new line after long field names */
+dl.field-list > dd > *:first-child,
+dl.option-list > dd > *:first-child
+{
+ display: inline-block;
+ width: 100%;
+ margin: 0;
+}
+
+/* Bibliographic Fields (docinfo) */
+dl.docinfo pre.address {
+ font: inherit;
+ margin: 0.5em 0;
+}
+dl.docinfo > dd.authors > p { margin: 0; }
+
+/* Option Lists */
+dl.option-list > dt { font-weight: normal; }
+span.option { white-space: nowrap; }
+
+/* Footnotes and Citations */
+
+.footnote, .citation { margin: 1em 0; } /* default paragraph skip (Firefox) */
+/* hanging indent */
+.citation { padding-left: 2em; }
+.footnote { padding-left: 1.7em; }
+.footnote.superscript { padding-left: 1.0em; }
+.citation > .label { margin-left: -2em; }
+.footnote > .label { margin-left: -1.7em; }
+.footnote.superscript > .label { margin-left: -1.0em; }
+
+.footnote > .label + *,
+.citation > .label + * {
+ display: inline-block;
+ margin-top: 0;
+ vertical-align: top;
+}
+.footnote > .backrefs + *,
+.citation > .backrefs + * {
+ margin-top: 0;
+}
+.footnote > .label + p, .footnote > .backrefs + p,
+.citation > .label + p, .citation > .backrefs + p {
+ display: inline;
+ vertical-align: inherit;
+}
+
+.backrefs { user-select: none; }
+.backrefs > a { font-style: italic; }
+
+/* superscript footnotes */
+a[role="doc-noteref"].superscript,
+.footnote.superscript > .label,
+.footnote.superscript > .backrefs {
+ vertical-align: super;
+ font-size: smaller;
+ line-height: 1;
+}
+a[role="doc-noteref"].superscript > .fn-bracket,
+.footnote.superscript > .label > .fn-bracket {
+ /* hide brackets in display but leave for copy/paste */
+ display: inline-block;
+ width: 0;
+ overflow: hidden;
+}
+[role="doc-noteref"].superscript + [role="doc-noteref"].superscript {
+ padding-left: 0.15em; /* separate consecutive footnote references */
+ /* TODO: unfortunately, "+" also selects with text between the references. */
+}
+
+/* Alignment */
+.align-left {
+ text-align: left;
+ margin-right: auto;
+}
+.align-center {
+ text-align: center;
+ margin-left: auto;
+ margin-right: auto;
+}
+.align-right {
+ text-align: right;
+ margin-left: auto;
+}
+.align-top { vertical-align: top; }
+.align-middle { vertical-align: middle; }
+.align-bottom { vertical-align: bottom; }
+
+/* reset inner alignment in figures and tables */
+figure.align-left, figure.align-right,
+table.align-left, table.align-center, table.align-right {
+ text-align: inherit;
+}
+
+/* Text Blocks */
+.topic { margin: 1em 2em; }
+.sidebar,
+.admonition,
+.system-message {
+ margin: 1em 2em;
+ border: thin solid;
+ padding: 0.5em 1em;
+}
+div.line-block { display: block; }
+div.line-block div.line-block, pre { margin-left: 2em; }
+
+/* Code line numbers: dropped when copying text from the page */
+pre.code .ln { display: none; }
+pre.code code:before {
+ content: attr(data-lineno); /* …, none) fallback not supported by any browser */
+ color: gray;
+}
+
+/* Tables */
+table {
+ border-collapse: collapse;
+}
+td, th {
+ border: thin solid silver;
+ padding: 0 1ex;
+}
+.borderless td, .borderless th {
+ border: 0;
+ padding: 0;
+ padding-right: 0.5em /* separate table cells */
+}
+
+table > caption {
+ text-align: left;
+ margin-top: 0.2em;
+ margin-bottom: 0.2em;
+}
+table.captionbelow {
+ caption-side: bottom;
+}
+
+/* Document Header and Footer */
+header { border-bottom: 1px solid black; }
+footer { border-top: 1px solid black; }
+
+/* Images are block-level by default in Docutils */
+/* New HTML5 block elements: set display for older browsers */
+img, header, footer, main, aside, nav, section, figure, video, details {
+ display: block;
+}
+/* inline images */
+p img, p video, figure img, figure video {
+ display: inline;
+}
+
+</style>
+<style type="text/css">
+
+/* CSS3_ style sheet for the output of Docutils HTML5 writer. */
+/* Generic responsive design for all screen sizes. */
+/* */
+/* :Author: Günter Milde */
+/* */
+/* :Id: $Id$ */
+/* :Copyright: © 2021 Günter Milde. */
+/* :License: Released under the terms of the `2-Clause BSD license`_, */
+/* in short: */
+/* */
+/* Copying and distribution of this file, with or without modification, */
+/* are permitted in any medium without royalty provided the copyright */
+/* notice and this notice are preserved. */
+/* */
+/* This file is offered as-is, without any warranty. */
+/* */
+/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */
+/* .. _CSS3: https://www.w3.org/Style/CSS/ */
+
+/* Note: */
+/* This style sheet is provisional: */
+/* the API is not settled and may change with any minor Docutils version. */
+
+
+
+/* General Settings */
+/* ================ */
+
+
+* { box-sizing: border-box; }
+
+body {
+ background-color: #fafaf6;
+ margin: auto;
+ --field-indent: 6.6em; /* indent of fields in field lists */
+ --sidebar-margin-right: 0; /* adapted in media queries below */
+}
+main {
+ counter-reset: figure table;
+}
+body > * {
+ background-color: white;
+ line-height: 1.6;
+ padding: 0.5rem calc(29% - 7.2rem); /* go from 5% to 15% (8.15em/54em) */
+ margin: auto;
+ max-width: 100rem;
+}
+sup, sub { /* avoid additional inter-line space for lines with sup/sub */
+ line-height: 1;
+}
+
+/* Vertical Space (Parskip) */
+p, ol, ul, dl, li,
+div.line-block,
+.topic,
+.footnote, .citation,
+div > math,
+table {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+h1, h2, h3, h4, h5, h6,
+dl > dd, details > p:last-child {
+ margin-bottom: 0.5em;
+}
+
+/* Indented Blocks */
+blockquote, figure, .topic {
+ margin: 1em 2%;
+ padding-left: 1em;
+}
+div.line-block div.line-block,
+pre, dd, dl.option-list {
+ margin-left: calc(2% + 1em);
+}
+
+/* Object styling */
+/* ============== */
+
+footer, header {
+ font-size: small;
+}
+
+/* Frontmatter */
+div.dedication {
+ padding: 0;
+ margin: 1.4em 0;
+ font-style: italic;
+ font-size: large;
+}
+.dedication p.topic-title {
+ display: none;
+}
+
+blockquote p.attribution,
+.topic p.attribution {
+ text-align: right;
+}
+
+/* Table of Contents */
+nav.contents ul {
+ padding-left: 1em;
+}
+ul.auto-toc > li > p { /* hanging indent */
+ padding-left: 1em;
+ text-indent: -1em;
+}
+main > nav.contents ul:not(.auto-toc) {
+ list-style-type: square;
+}
+main > nav.contents ul ul:not(.auto-toc) {
+ list-style-type: disc;
+}
+main > nav.contents ul ul ul:not(.auto-toc) {
+ list-style-type: '\2B29\ ';
+}
+main > nav.contents ul ul ul ul:not(.auto-toc) {
+ list-style-type: '\2B1D\ ';
+}
+main > nav.contents ul ul ul ul ul:not(.auto-toc) {
+ list-style-type: '\2B2A\ ';
+}
+nav.contents ul > li::marker {
+ color: grey;
+}
+
+/* Transitions */
+hr {
+ margin: 1em 10%;
+}
+
+/* Lists */
+
+ul, ol {
+ padding-left: 1.1em; /* indent by bullet width (Firefox, DejaVu fonts) */
+}
+dl.field-list > dd,
+dl.docinfo > dd {
+ margin-left: var(--field-indent); /* adapted in media queries or HTML */
+}
+dl.option-list > dd {
+ margin-left: 20%;
+}
+/* run-in: start field-body on same line after long field names */
+dl.field-list.run-in > dd p {
+ display: block;
+}
+/* "description style" like in most dictionaries, encyclopedias etc. */
+dl.description {
+ display: flow-root;
+}
+dl.description > dt {
+ clear: left;
+ float: left;
+ margin: 0;
+ padding: 0;
+ padding-right: 0.3em;
+ font-weight: bold;
+}
+dl.description > dd:after {
+ display: table;
+ content: "";
+ clear: left; /* clearfix for empty descriptions */
+}
+/* start lists nested in description/field lists on new line */
+dd > dl:first-child,
+dd > ul:first-child,
+dd > ol:first-child {
+ clear: left;
+}
+
+/* disclosures */
+details { padding-left: 1em; }
+summary { margin-left: -1em; }
+
+/* Footnotes and Citations */
+.footnote {
+ font-size: small;
+}
+
+/* Images, Figures, and Tables */
+img {
+ display: block;
+}
+p > img, p > a > img,
+figure > img, figure > a > img {
+ display: inline;
+}
+
+figcaption,
+table > caption {
+ /* font-size: small; */
+ font-style: italic;
+}
+figcaption > .legend {
+ font-size: small;
+ font-style: initial;
+}
+figure.numbered > figcaption > p:before {
+ counter-increment: figure;
+ content: "Figure " counter(figure) ": ";
+ font-weight: bold;
+ font-style: initial;
+}
+
+table tr {
+ text-align: left;
+ vertical-align: baseline;
+}
+table.booktabs { /* "booktabs" style (no vertical lines) */
+ border-top: 2px solid;
+ border-bottom: 2px solid;
+}
+table.booktabs * {
+ border: 0;
+}
+table.booktabs th {
+ border-bottom: thin solid;
+}
+table.numbered > caption:before {
+ counter-increment: table;
+ content: "Table " counter(table) ": ";
+ font-weight: bold;
+ font-style: initial;
+}
+
+/* Admonitions and System Messages */
+.admonition,
+div.system-message {
+ border: thin solid silver;
+ margin: 1em 2%;
+ padding: 0.5em 1em;
+}
+.caution p.admonition-title,
+.attention p.admonition-title,
+.danger p.admonition-title,
+.warning p.admonition-title,
+div.error {
+ color: maroon;
+}
+div.system-message > p > span.literal {
+ overflow-wrap: break-word;
+}
+
+/* Literal and Code */
+pre.literal-block, pre.doctest{
+ padding: 0.2em;
+ overflow-x: auto;
+}
+.literal-block, .doctest, span.literal {
+ background-color: #f6f9f8;
+}
+.system-message span.literal {
+ background-color: inherit;
+}
+
+/* basic highlighting: for a complete scheme, see */
+/* https://docutils.sourceforge.io/sandbox/stylesheets/ */
+pre.code .comment, code .comment { color: #5C6576 }
+pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
+pre.code .literal.string, code .literal.string { color: #0C5404 }
+pre.code .name.builtin, code .name.builtin { color: #352B84 }
+pre.code .deleted, code .deleted { background-color: #DEB0A1}
+pre.code .inserted, code .inserted { background-color: #A3D289}
+
+/* Hyperlink References */
+a {
+ text-decoration: none; /* for chromium */
+ /* Wrap links at any place, if this is the only way to prevent overflow */
+ overflow-wrap: break-word;
+}
+.contents a, a.toc-backref, a.citation-reference {
+ overflow-wrap: inherit;
+}
+/* Undecorated Links (see also minimal.css) */
+/* a.citation-reference, */
+.citation a.fn-backref {
+ color: inherit;
+}
+a:hover {
+ text-decoration: underline;
+}
+*:hover > a.toc-backref:after {
+ content: " \2191"; /* ↑ UPWARDS ARROW */
+ color: grey;
+}
+*:hover > a.self-link:after {
+ content: "\1F517"; /* LINK SYMBOL */
+ color: grey;
+ font-size: smaller;
+ margin-left: 0.2em;
+}
+/* highlight the target of the current URL */
+section:target > h2, section:target > h3, section:target > h4,
+section:target > h5, section:target > h6,
+.contents :target,
+.contents:target > .topic-title,
+[role="doc-biblioentry"]:target > .label,
+[role="doc-biblioref"]:target,
+[role="note"]:target, /* Docutils 0.18 ... 0.19 */
+[role="doc-footnote"]:target, /* Docutils >= 0.20 */
+[role="doc-noteref"]:target {
+ background-color: #d2e6ec;
+}
+
+/* Block Alignment */
+/* Let content flow to the side of aligned images and figures */
+
+/* no floats around this elements */
+footer, header, hr,
+h1, h2, h3 {
+ clear: both;
+}
+
+img.align-left,
+video.align-left,
+figure.align-left,
+table.align-left {
+ margin-left: 0;
+ padding-left: 0;
+ margin-right: 0.5em;
+ clear: left;
+ float: left;
+}
+img.align-right,
+video.align-right,
+figure.align-right,
+table.align-right {
+ margin-left: 0.5em;
+ margin-right: 0;
+ clear: right;
+ float: right;
+}
+
+/* Margin Elements */
+/* see below for screen size dependent rules */
+.sidebar,
+.marginal,
+.admonition.marginal {
+ max-width: 40%;
+ border: none;
+ background-color: #efefea;
+ margin: 0.5em var(--sidebar-margin-right) 0.5em 1em;
+ padding: 0.5em;
+ padding-left: 0.7em;
+ clear: right;
+ float: right;
+ font-size: small;
+}
+.sidebar {
+ width: 40%;
+}
+
+/* Math */
+/* for math-output=MathML (for math-output=HTML, see math.css) */
+math .boldsymbol {
+ font-weight: bold;
+}
+mstyle.mathscr, mi.mathscr {
+ font-family: STIX;
+}
+
+/* Adaptive page layout */
+/* ==================== */
+
+@media (max-width: 30em) {
+ /* Smaller margins and no floating elements for small screens */
+ /* (main text less than 40 characters/line) */
+ body > * {
+ padding: 0.5rem 5%;
+ line-height: 1.4
+ }
+ .sidebar,
+ .marginal,
+ .admonition.marginal {
+ width: auto;
+ max-width: 100%;
+ float: none;
+ }
+ dl.option-list,
+ pre {
+ margin-left: 0;
+ }
+ body {
+ --field-indent: 4em;
+ }
+ dl.field-list.narrow, dl.docinfo, dl.option-list {
+ --field-indent: 2.4em;
+ }
+ pre, pre * {
+ font-size: 0.9em;
+ /* overflow: auto; */
+ }
+}
+
+@media (min-width: 54em) {
+ /* Move ToC to the left */
+ /* Main text width before: 70% ≙ 35em ≙ 75…95 chrs (Dejavu/Times) */
+ /* after: ≳ 30em ≙ 54…70 chrs (Dejavu/Times) */
+ body.with-toc {
+ padding-left: 8%;
+ }
+ body.with-toc > * {
+ margin-left: 0;
+ padding-left: 22rem; /* fallback for webkit */
+ padding-left: min(22%, 22rem);
+ padding-right: 7%;
+ }
+ main > nav.contents { /* global ToC */
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: min(25%, 25em);
+ height: 100vh;
+ margin: 0;
+ background-color: #fafaf6;
+ padding: 1em 2% 0 2%;
+ overflow: auto;
+ }
+ main > nav.contents > * {
+ padding-left: 0;
+ line-height: 1.4;
+ }
+ main > nav.contents a {
+ color: inherit;
+ }
+}
+
+@media (min-width: 70em) {
+ body {
+ --field-indent: 9em;
+ }
+}
+
+@media (min-width: 77em) {
+ /* Move marginalia to 6rem from right border */
+ /* .sidebar, */
+ /* .marginal, */
+ /* .admonition.marginal { */
+ /* margin-right: calc(6rem - 15%); */
+ /* } */
+ /* BUG: margin is calculated for break point width */
+ /* workaround: variable + many breakpoints */
+ body > * {
+ padding-left: 18%;
+ padding-right: 28%; /* fallback for webkit */
+ padding-right: min(28%, 28rem);
+ --sidebar-margin-right: -20rem;
+ }
+ /* limit main text to ~ 50em ≙ 85…100 characters DejaVu rsp. …120 Times */
+ body.with-toc > * {
+ padding-left: min(22%, 22rem);
+ padding-right: calc(78% - 50rem); /* fallback for webkit */
+ padding-right: min(78% - 50rem, 28rem);
+ --sidebar-margin-right: 0;
+ }
+}
+
+@media (min-width: 85em) {
+ body.with-toc > * {
+ --sidebar-margin-right: -9rem;
+ }
+}
+
+@media (min-width: 90em) {
+ /* move marginalia into the margin */
+ body > * {
+ padding-left: min(22%, 22rem);
+ --sidebar-margin-right: -23rem;
+ }
+ body.with-toc > * {
+ --sidebar-margin-right: -14rem;
+ }
+}
+
+@media (min-width: 99em) {
+ /* move marginalia out of main text area */
+ body.with-toc > * {
+ --sidebar-margin-right: -20rem;
+ }
+ body > *, body.with-toc > * { /* for webkit */
+ padding-left: 22rem;
+ padding-right: 28rem;
+ }
+ .admonition.marginal,
+ .marginal {
+ width: 40%; /* make marginal figures, ... "full width" */
+ }
+}
+
+@media (min-width: 104em) {
+ body.with-toc > * {
+ --sidebar-margin-right: -23rem;
+ }
+}
+
+</style>
+</head>
+<body class="with-toc">
+<main id="babel-greek">
+<h1 class="title">babel-greek</h1>
+<p class="subtitle" id="babel-support-for-the-greek-language-and-script">Babel support for the Greek language and script</p>
+<dl class="docinfo simple">
+<dt class="copyright">Copyright<span class="colon">:</span></dt>
+<dd class="copyright">© 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
+© 2013 – 2022 Günter Milde.</dd>
+<dt class="licence">Licence<span class="colon">:</span></dt>
+<dd class="licence"><p>This work may be distributed and/or modified under the
+conditions of the <a class="reference external" href="http://www.latex-project.org/lppl.txt">LaTeX Project Public License</a>, either
+version 1.3 of this license or any later version.</p>
+</dd>
+<dt class="home">Home<span class="colon">:</span></dt>
+<dd class="home"><p><a class="reference external" href="https://codeberg.org/milde/greek-tex">https://codeberg.org/milde/greek-tex</a></p>
+</dd>
+<dt class="latest-release">Latest Release<span class="colon">:</span></dt>
+<dd class="latest-release"><p><a class="reference external" href="https://ctan.org/pkg/babel-greek">https://ctan.org/pkg/babel-greek</a></p>
+</dd>
+</dl>
+<div class="topic abstract" role="doc-abstract">
+<p class="topic-title">Abstract</p>
+<p><cite>babel-greek</cite> is a contributed package providing comprehensive
+support for the Greek language and script via the <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> system.
+Document authors can select between the <em>monotonic</em>
+(single-diacritic), <em>polytonic</em> (multiple-diacritic) and
+<em>ancient</em> orthography of the Greek language.</p>
+</div>
+<nav class="contents" id="contents" role="doc-toc">
+<p class="topic-title">Contents</p>
+<ul class="simple">
+<li><p><a class="reference internal" href="#files" id="toc-entry-1">Files</a></p></li>
+<li><p><a class="reference internal" href="#requirements" id="toc-entry-2">Requirements</a></p></li>
+<li><p><a class="reference internal" href="#download-and-installation" id="toc-entry-3">Download and Installation</a></p></li>
+<li><p><a class="reference internal" href="#usage" id="toc-entry-4">Usage</a></p></li>
+<li><p><a class="reference internal" href="#greek-text-fonts" id="toc-entry-5">Greek text fonts</a></p></li>
+<li><p><a class="reference internal" href="#lgr-latin-transliteration" id="toc-entry-6">LGR Latin Transliteration</a></p></li>
+<li><p><a class="reference internal" href="#greek-numerals" id="toc-entry-7">Greek Numerals</a></p></li>
+<li><p><a class="reference internal" href="#changelog" id="toc-entry-8">Changelog</a></p></li>
+<li><p><a class="reference internal" href="#references" id="toc-entry-9">References</a></p></li>
+</ul>
+</nav>
+<section id="files">
+<h2><a class="toc-backref" href="#toc-entry-1" role="doc-backlink">Files</a></h2>
+<dl class="simple">
+<dt><a class="reference external" href="babel-greek.dtx">babel-greek.dtx</a></dt>
+<dd><p>Source of the language definition file <span class="docutils literal">greek.ldf</span> for use with <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>.
+[<a class="reference external" href="babel-greek.pdf">babel-greek.pdf</a>]</p>
+</dd>
+<dt><a class="reference external" href="athnum.dtx">athnum.dtx</a></dt>
+<dd><p>Athenian (Attic, Herodianic, or acrophonic) Numerals. [<a class="reference external" href="athnum.pdf">athnum.pdf</a>]</p>
+</dd>
+<dt><a class="reference external" href="grmath.dtx">grmath.dtx</a></dt>
+<dd><p>Greek log-like Operators. [<a class="reference external" href="grmath.pdf">grmath.pdf</a>]</p>
+</dd>
+<dt><a class="reference external" href="babel-greek.ins">babel-greek.ins</a></dt>
+<dd><p><a class="reference external" href="https://ctan.org/pkg/docstrip">DocStrip</a> batch file.</p>
+</dd>
+<dt><a class="reference external" href="usage.tex">usage.tex</a></dt>
+<dd><p>Description of the <a class="reference internal" href="#lgr-latin-transliteration">LGR Latin transliteration</a> and the <a class="reference internal" href="#greek-numerals">Greek numerals</a>.
+[<a class="reference external" href="usage.pdf">usage.pdf</a>]</p>
+</dd>
+<dt>test-*</dt>
+<dd><p>Documented test sample documents.</p>
+</dd>
+</dl>
+</section>
+<section id="requirements">
+<h2><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Requirements</a></h2>
+<p>The <cite>babel-greek</cite> package requires the <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> package and font
+definition files from the <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> package. The <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a>
+package is recommended when using 8-bit TeX engines.</p>
+<p>Typesetting Greek texts requires <a class="reference internal" href="#greek-text-fonts">Greek text fonts</a>.</p>
+<p>Plain TeX is currently not supported. Patches are welcome.</p>
+</section>
+<section id="download-and-installation">
+<h2><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Download and Installation</a></h2>
+<p>The simplest way is to get and install this package from your
+distribution using its installation manager.</p>
+<p>Alternatively:</p>
+<ul>
+<li><p>Download the latest <a class="reference external" href="https://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek.zip">release</a> from the package’s <a class="reference external" href="https://www.ctan.org/pkg/babel-greek">CTAN page</a> or a
+<a class="reference external" href="https://codeberg.org/milde/greek-tex/archive/master.zip">snapshot</a> of the <a class="reference external" href="https://codeberg.org/milde/greek-tex/">greek-tex</a> repository.</p></li>
+<li><p>Unpack the source archive to a temporary location.</p></li>
+<li><p>From the <span class="docutils literal"><span class="pre">babel-greek</span></span> directory,
+run <span class="docutils literal">tex</span> or <span class="docutils literal">latex</span> on the batch file <span class="docutils literal"><span class="pre">babel-greek.ins</span></span>.</p>
+<p>This will generate the files <span class="docutils literal">greek.ldf</span>, <span class="docutils literal">athnum.sty</span>, and
+<span class="docutils literal">grmath.sty</span> in the current directory.</p>
+</li>
+<li><p>Move all files ending in <span class="docutils literal">.ldf</span> or <span class="docutils literal">.sty</span> into a directory
+in the TeX search path.</p></li>
+<li><p>To produce the documentation, run the file <span class="docutils literal">usage.tex</span> and all files
+ending in <span class="docutils literal">.dtx</span> through LaTeX.</p></li>
+</ul>
+<p>The last steps can be automated using the Unix <a class="reference external" href="https://en.wikipedia.org/wiki/Make_(software)">make</a> tool.
+The provided <a class="reference external" href="Makefile">Makefile</a> defines the targets</p>
+<dl class="field-list simple">
+<dt><span class="docutils literal">all</span><span class="colon">:</span></dt>
+<dd><p>(re)build packages, documentation, and tests,</p>
+</dd>
+<dt><span class="docutils literal">packages</span><span class="colon">:</span></dt>
+<dd><p>(re)build the packages,</p>
+</dd>
+<dt><span class="docutils literal">doc</span><span class="colon">:</span></dt>
+<dd><p>(re)generate HTML and PDF documentation files,</p>
+</dd>
+<dt><span class="docutils literal">test</span><span class="colon">:</span></dt>
+<dd><p>run LaTeX on the test documents,</p>
+</dd>
+<dt><span class="docutils literal">update</span><span class="colon">:</span></dt>
+<dd><p>copy packages into a local TeX tree,<a class="footnote-reference superscript" href="#update" id="footnote-reference-1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p>
+</dd>
+<dt><span class="docutils literal"><span class="pre">update-package</span></span><span class="colon">:</span></dt>
+<dd><p>copy documentation and sources into a local
+TeX tree,<a class="footnote-reference superscript" href="#update" id="footnote-reference-2" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p>
+</dd>
+<dt><span class="docutils literal">clean</span><span class="colon">:</span></dt>
+<dd><p>delete auxiliary files.</p>
+</dd>
+</dl>
+<aside class="footnote-list superscript">
+<aside class="footnote superscript" id="update" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></span>
+<span class="backrefs">(<a role="doc-backlink" href="#footnote-reference-1">1</a>,<a role="doc-backlink" href="#footnote-reference-2">2</a>)</span>
+<p>This is a simple <span class="docutils literal">cp <span class="pre">--update</span></span> to a pre-set path.
+The destination directory must exist. Files no longer present in the
+package are not removed.</p>
+</aside>
+</aside>
+</section>
+<section id="usage">
+<h2><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Usage</a></h2>
+<p>Use the “greek” document option or pass the “greek” option to Babel,<a class="footnote-reference superscript" href="#footnote-1" id="footnote-reference-3" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>
+e.g.:</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span></code></pre>
+<p>For polytonic Greek, set the language attribute “polutoniko”, either
+after loading Babel</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span>
+<span class="keyword">\languageattribute</span><span class="name builtin">{</span>greek<span class="name builtin">}{</span>polutoniko<span class="name builtin">}</span></code></pre>
+<p>or as modifier</p>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[greek.polutoniko,english]</span><span class="name builtin">{</span>babel<span class="name builtin">}</span></code></pre>
+<p>Similarly, the attribute “ancient” selects the ancient Greek language
+variant.</p>
+<p>For details see <a class="citation-reference" href="#" id="citation-reference-1" role="doc-biblioref">[babel-greek.pdf]</a> and the <a class="reference external" href="https://ctan.org/pkg/babel">babel</a> documentation.</p>
+<p>Input of Greek characters is possible as literal characters (α … Ω)<a class="footnote-reference superscript" href="#footnote-2" id="footnote-reference-4" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a>, as LICR macro (<span class="docutils literal">\textalpha{} ... \textOmega</span>), or via the <a class="reference internal" href="#lgr-latin-transliteration">LGR
+Latin transliteration</a> (a … W)<a class="footnote-reference superscript" href="#footnote-3" id="footnote-reference-5" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a>. See
+<a class="citation-reference" href="#" id="citation-reference-2" role="doc-biblioref">[usage.pdf]</a> and the example files provided with <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p>
+<aside class="footnote-list superscript">
+<aside class="footnote superscript" id="footnote-1" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-3">2</a><span class="fn-bracket">]</span></span>
+<p>Alongside other languages that will be used in the document.
+The <em>last</em> language option sets the document’s main language.</p>
+</aside>
+<aside class="footnote superscript" id="footnote-2" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-4">3</a><span class="fn-bracket">]</span></span>
+<p>with the <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a> package or XeTeX/LuaTeX</p>
+</aside>
+<aside class="footnote superscript" id="footnote-3" role="doc-footnote">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#footnote-reference-5">4</a><span class="fn-bracket">]</span></span>
+<p>only with LGR fonts</p>
+</aside>
+</aside>
+</section>
+<section id="greek-text-fonts">
+<h2><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Greek text fonts</a></h2>
+<p>A list of <a class="reference external" href="https://ctan.org/topic/font-greek">Greek text fonts for use with LaTeX</a> is available at CTAN.</p>
+<p>The non-standard LGR <a class="reference external" href="https://mirrors.ctan.org/macros/latex/base/encguide.pdf">font encoding</a> is used for typesetting Greek with
+“traditional” 8-bit TeX engines (pdfTeX). Fonts in this encoding include
+the <a class="reference external" href="https://ctan.org/pkg/cbgreek-complete">CB fonts</a> (matching CM), <a class="reference external" href="https://ctan.org/pkg/grtimes">grtimes</a> (Greek Times), <a class="reference external" href="https://ctan.org/pkg/kerkis">Kerkis</a> (matching
+URW Bookman), and the <a class="reference external" href="https://ctan.org/pkg/gfs">GFS font collection</a>.
+The package <a class="reference external" href="https://ctan.org/pkg/cbfonts-fd">cbfonts-fd</a> registers the CB fonts as Greek substitute for
+the Computer Modern and Latin Modern font families. For other font
+families, declaring Greek fonts as supplement for matching Latin font
+families can be done with the <code class="latex">\DeclareFontFamilySubstitution</code>
+macro (see section <cite>Providing font family substitutions</cite> in <a class="citation-reference" href="#fntguide" id="citation-reference-3" role="doc-biblioref">[fntguide]</a>).</p>
+<p>Unicode fonts used with XeTeX or LuaTeX provide slots for all Unicode
+characters in one font but commonly only a subset of the actual glyphs.</p>
+<aside class="admonition warning">
+<p class="admonition-title">Warning</p>
+<p>The default <strong>Latin Modern contains only a few Greek letters!</strong>
+Unsupported characters are silently dropped from the output.
+Warnings about missing glyphs are written to the log
+file only, not to the console.</p>
+</aside>
+<p>Select a suitable font with <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a>’s font selecting framework or
+directly with <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a>. Examples for suitable fonts are <a class="reference external" href="https://ctan.org/pkg/cm-unicode">CM-unicode</a>
+or <a class="reference external" href="https://ctan.org/pkg/libertine">Linux Libertine</a> as well as any system-wide installed OTF font
+that supports Greek (e.g. <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>). See, e.g., the list of free
+<a class="reference external" href="https://fontinfo.opensuse.org/scripts/script-Greek.html">fonts supporting Greek script</a> by openSUSE’s fontinfo.</p>
+</section>
+<section id="lgr-latin-transliteration">
+<h2><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">LGR Latin Transliteration</a></h2>
+<p>The LGR font encoding allows input of Greek characters via a Latin
+transliteration. This enables simple input with a Latin keyboard. Characters
+with diacritics may be selected with accent macros (cf. <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>) or
+via the ligature definitions in the font (see <a class="citation-reference" href="#" id="citation-reference-4" role="doc-biblioref">[usage.pdf]</a>).</p>
+<p>The following ASCII characters are converted to Greek symbols:</p>
+<table>
+<tbody>
+<tr><td><p>A</p></td>
+<td><p>B</p></td>
+<td><p>G</p></td>
+<td><p>D</p></td>
+<td><p>E</p></td>
+<td><p>Z</p></td>
+<td><p>H</p></td>
+<td><p>J</p></td>
+<td><p>I</p></td>
+<td><p>K</p></td>
+<td><p>L</p></td>
+<td><p>M</p></td>
+<td><p>N</p></td>
+<td><p>X</p></td>
+<td><p>O</p></td>
+<td><p>P</p></td>
+<td><p>R</p></td>
+<td><p>S</p></td>
+<td></td>
+<td><p>T</p></td>
+<td><p>U</p></td>
+<td><p>F</p></td>
+<td><p>Q</p></td>
+<td><p>Y</p></td>
+<td><p>W</p></td>
+</tr>
+<tr><td><p>Α</p></td>
+<td><p>Β</p></td>
+<td><p>Γ</p></td>
+<td><p>Δ</p></td>
+<td><p>Ε</p></td>
+<td><p>Ζ</p></td>
+<td><p>Η</p></td>
+<td><p>Θ</p></td>
+<td><p>Ι</p></td>
+<td><p>Κ</p></td>
+<td><p>Λ</p></td>
+<td><p>Μ</p></td>
+<td><p>Ν</p></td>
+<td><p>Ξ</p></td>
+<td><p>Ο</p></td>
+<td><p>Π</p></td>
+<td><p>Ρ</p></td>
+<td><p>Σ</p></td>
+<td></td>
+<td><p>Τ</p></td>
+<td><p>Υ</p></td>
+<td><p>Φ</p></td>
+<td><p>Χ</p></td>
+<td><p>Ψ</p></td>
+<td><p>Ω</p></td>
+</tr>
+<tr><td><p>a</p></td>
+<td><p>b</p></td>
+<td><p>g</p></td>
+<td><p>d</p></td>
+<td><p>e</p></td>
+<td><p>z</p></td>
+<td><p>h</p></td>
+<td><p>j</p></td>
+<td><p>i</p></td>
+<td><p>k</p></td>
+<td><p>l</p></td>
+<td><p>m</p></td>
+<td><p>n</p></td>
+<td><p>x</p></td>
+<td><p>o</p></td>
+<td><p>p</p></td>
+<td><p>r</p></td>
+<td><p>s</p></td>
+<td><p>c</p></td>
+<td><p>t</p></td>
+<td><p>u</p></td>
+<td><p>f</p></td>
+<td><p>q</p></td>
+<td><p>y</p></td>
+<td><p>w</p></td>
+</tr>
+<tr><td><p>α</p></td>
+<td><p>β</p></td>
+<td><p>γ</p></td>
+<td><p>δ</p></td>
+<td><p>ε</p></td>
+<td><p>ζ</p></td>
+<td><p>η</p></td>
+<td><p>θ</p></td>
+<td><p>ι</p></td>
+<td><p>κ</p></td>
+<td><p>λ</p></td>
+<td><p>μ</p></td>
+<td><p>ν</p></td>
+<td><p>ξ</p></td>
+<td><p>ο</p></td>
+<td><p>π</p></td>
+<td><p>ρ</p></td>
+<td><p>σ</p></td>
+<td><p>ς</p></td>
+<td><p>τ</p></td>
+<td><p>υ</p></td>
+<td><p>φ</p></td>
+<td><p>χ</p></td>
+<td><p>ψ</p></td>
+<td><p>ω</p></td>
+</tr>
+</tbody>
+</table>
+<p>Accent symbols and punctuation:</p>
+<table>
+<tbody>
+<tr><td><p>tonos</p></td>
+<td><p><span class="docutils literal">'a</span></p></td>
+<td><p>ά</p></td>
+<td><p>right apostrophe</p></td>
+<td><p><span class="docutils literal">''</span></p></td>
+<td><p>’</p></td>
+</tr>
+<tr><td><p>varia</p></td>
+<td><p><span class="docutils literal">`a</span></p></td>
+<td><p>ὰ</p></td>
+<td><p>left apostrophe</p></td>
+<td><p>``</p></td>
+<td><p>‘</p></td>
+</tr>
+<tr><td><p>dasia</p></td>
+<td><p><span class="docutils literal">&lt;a</span></p></td>
+<td><p>ἁ</p></td>
+<td><p>left quotation mark</p></td>
+<td><p><span class="docutils literal">((</span></p></td>
+<td><p>«</p></td>
+</tr>
+<tr><td><p>psili</p></td>
+<td><p><span class="docutils literal">&gt;a</span></p></td>
+<td><p>ἀ</p></td>
+<td><p>right quotation mark</p></td>
+<td><p><span class="docutils literal">))</span></p></td>
+<td><p>»</p></td>
+</tr>
+<tr><td><p>perispomeni</p></td>
+<td><p><span class="docutils literal">\~a</span></p></td>
+<td><p>ᾶ</p></td>
+<td><p>erotimatiko</p></td>
+<td><p><span class="docutils literal">?</span></p></td>
+<td><p>;</p></td>
+</tr>
+<tr><td><p>dialytika</p></td>
+<td><p><span class="docutils literal">&quot;i</span></p></td>
+<td><p>ϊ</p></td>
+<td><p>middle dot</p></td>
+<td><p><span class="docutils literal">;</span></p></td>
+<td><p>·</p></td>
+</tr>
+<tr><td><p>ypogegrammeni</p></td>
+<td><p><span class="docutils literal">a|</span></p></td>
+<td><p>ᾳ</p></td>
+<td><p>zero width non-joiner</p></td>
+<td><p><span class="docutils literal">av|</span></p></td>
+<td><p>αͺ</p></td>
+</tr>
+</tbody>
+</table>
+<p>The downside is, that you cannot print Latin letters and some symbols if
+LGR is the active font encoding. This means that for every Latin-written
+word or acronym in a Greek text part, an explicit font encoding switch is
+required.</p>
+</section>
+<section id="greek-numerals">
+<h2><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">Greek Numerals</a></h2>
+<p><cite>babel-greek</cite> provides the macros <code class="latex">\greeknumeral</code> and
+<code class="latex">\Greeknumeral</code> to transform a number into its corresponding
+<a class="reference external" href="https://en.wikipedia.org/wiki/Greek_numerals">Greek numeral</a>
+(see also section <a class="reference external" href="http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf#greek-numbering">Greek numbering</a> in the PDF documentation).</p>
+<p>The classic <cite>Greek numerals</cite>, also known as Ionic, Ionian, Milesian, or
+Alexandrian numerals were introduced to Athens along with the Ionic alphabet
+from the city of Miletus in Ionia replacing the <a class="reference external" href="https://en.wikipedia.org/wiki/Attic_numerals">Attic numerals</a>.
+They are still used in everyday life for ordinal numbers and
+more generally by the Orthodox church and certain scholars.</p>
+<p>Greek numerals use several now obsolete letters:
+<a class="reference external" href="https://en.wikipedia.org/wiki/Digamma">digamma</a> ϝ or <a class="reference external" href="https://en.wikipedia.org/wiki/Stigma_(ligature)">stigma</a> ϛ, <a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(letter)">koppa</a> ϟ or ϙ, and <a class="reference external" href="https://en.wikipedia.org/wiki/Sampi">sampi</a> ϡ <a class="citation-reference" href="#nicholas-05" id="citation-reference-5" role="doc-biblioref">[Nicholas-05]</a>.</p>
+<ul>
+<li><p>Standing for 6 is the <a class="reference external" href="https://en.wikipedia.org/wiki/Digamma">digamma</a> ϝ, the sixth letter of the Ionic
+alphabet (just as its Latin equivalent F is the sixth letter of the
+Latin alphabet). As Greek script turned to uncial and then lowercase,
+the numeral changed its shape and became conflated with another,
+similar sign: the ligature for sigma-tau <a class="reference external" href="https://en.wikipedia.org/wiki/Stigma_(ligature)">stigma</a> ϛ.
+The letters στ are frequently used as replacement.</p>
+<p>There is no significant tradition of ϝ being used as a numeral in
+editions of classical texts, even though the Ancients clearly used
+digamma rather than stigma as their numeral.</p>
+</li>
+<li><p>Three different signs are in use for the number 90: Classicists use the
+“archaic <a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(letter)">koppa</a>” ϙ, and more rarely its uncial form (resembling the
+“<a class="reference external" href="https://en.wikipedia.org/wiki/Koppa_(Cyrillic)">Cyrillic letter koppa</a>” ҁ or the “Gothic letter ninety” 𐍁).
+Modern Greeks use the “Greek letter koppa” ϟ exclusively and
+do not recognise ϙ at all, let alone as a glyph variant of ϟ.</p></li>
+<li><p>The sign for the number 900 is the <a class="reference external" href="https://en.wikipedia.org/wiki/Sampi">sampi</a> ϡ. Its shape, developed
+during its use in minuscule handwriting of the Byzantine era. Earlier
+variants similar to the “archaic sampi” ͳ and the “Gothic Letter Nine
+Hundred” 𐍊 are not used in Greek.</p></li>
+</ul>
+<p>Users can redefine the macros <code class="latex">\greeknumeralsix</code>,
+<code class="latex">\greeknumeralSix</code>, <code class="latex">\greeknumeralninety</code>, and
+<code class="latex">\greeknumeralNinety</code> to configure the used symbols,
+for example</p>
+<pre class="code latex literal-block"><code><span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralninety</span><span class="name builtin">}{</span><span class="keyword">\textkoppa</span><span class="name builtin">}</span>
+<span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralNinety</span><span class="name builtin">}{</span><span class="keyword">\textKoppa</span><span class="name builtin">}</span>
+<span class="keyword">\ifdefined</span> <span class="keyword">\textvarstigma</span>
+ <span class="keyword">\renewcommand</span><span class="name builtin">{</span><span class="keyword">\greeknumeralSix</span><span class="name builtin">}{</span><span class="keyword">\textvarstigma</span><span class="name builtin">}</span>
+<span class="keyword">\fi</span></code></pre>
+<p>sets the symbol for 90 to the “modern” koppa ϟ also for ancient Greek
+and the “capital” 6 symbol to the variant stigma glyph (only defined in LGR).</p>
+</section>
+<section id="changelog">
+<h2><a class="toc-backref" href="#toc-entry-8" role="doc-backlink">Changelog</a></h2>
+<dl class="simple">
+<dt>1.4 (2013-05-17)</dt>
+<dd><ul class="simple">
+<li><p>New maintainer.</p></li>
+<li><p>The encoding definition file <span class="docutils literal">lgrenc.def</span> moved to the
+<a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a> package.</p></li>
+</ul>
+</dd>
+<dt>1.5 (2013-06-21)</dt>
+<dd><ul class="simple">
+<li><p>Bugfixes and cleanup.</p></li>
+<li><p>LICR macros in string definitions.</p></li>
+<li><p>LGR font encoding not used with XeTeX/LuaTeX.</p></li>
+<li><p>Input “xgreek-fixes.def” from <a class="reference external" href="https://ctan.org/pkg/polyglossia">polyglossia</a> with Xe/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.5a (2013-07-02)</dt>
+<dd><ul class="simple">
+<li><p>Fix LaTeX bugs babel/3707, <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303">babel/4303</a> and <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305">babel/4305</a></p></li>
+</ul>
+</dd>
+<dt>1.6 (2013-07-19)</dt>
+<dd><ul class="simple">
+<li><p>Experimental support for XeTeX/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.7 (2013-09-09)</dt>
+<dd><ul class="simple">
+<li><p>CB-Fonts font definition files moved to CB-Fonts package.</p></li>
+<li><p>Do not auto-load euenc.def with XeTeX/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.7a (2013-09-13)</dt>
+<dd><ul class="simple">
+<li><p>Fix bug <a class="reference external" href="http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360">babel/4360</a>: spurious <span class="docutils literal">\fi</span>.</p></li>
+</ul>
+</dd>
+<dt>1.7b (2013-10-01)</dt>
+<dd><ul class="simple">
+<li><p>Fix upcasing of babel strings with Xe/LuaTeX.</p></li>
+</ul>
+</dd>
+<dt>1.8 (2013-12-02)</dt>
+<dd><ul class="simple">
+<li><p>Rename <span class="docutils literal">greek.dtx</span> to <span class="docutils literal"><span class="pre">babel-greek</span></span> so that <a class="reference external" href="https://ctan.org/pkg/texdoc">texdoc</a>
+shows the right documentation.</p></li>
+<li><p>Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.</p></li>
+</ul>
+</dd>
+<dt>1.8a (2013-12-03)</dt>
+<dd><ul class="simple">
+<li><p>Set <span class="docutils literal">\encodingdefault</span> in <span class="docutils literal">\greekscript</span> to fix Greek
+in footnotes etc. with document language Greek.</p></li>
+</ul>
+</dd>
+<dt>1.9 (2014-07-20)</dt>
+<dd><ul class="simple">
+<li><p>New attribute for ancient Greek, load correct hyphenation
+patterns (patch by Claudio Beccari).</p></li>
+<li><p>Bugfix for <span class="docutils literal">\Makeuppercase</span></p></li>
+</ul>
+</dd>
+<dt>1.9a (2014-09-12)</dt>
+<dd><ul class="simple">
+<li><p>Remove duplicate code, documentation review.</p></li>
+</ul>
+</dd>
+<dt>1.9b (2014-09-18)</dt>
+<dd><ul class="simple">
+<li><p>Remove spurious whitespace from <span class="docutils literal">\extrasgreek</span> definition.</p></li>
+<li><p>Use named macros instead of non-standard short macros
+for <em>psili</em> and <em>dasia</em> in the string definitions.</p></li>
+</ul>
+</dd>
+<dt>1.9c (2014-10-21)</dt>
+<dd><ul class="simple">
+<li><p>Fix dummy hyphenation language names (patch by Ulrike Fischer).</p></li>
+</ul>
+</dd>
+<dt>1.9d (2015-09-04)</dt>
+<dd><ul class="simple">
+<li><p>Remove <cite>grsymb</cite> (macros for Greek symbols).
+This package is outdated and obsoleted by <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>
+(reported by Claudio Beccari).</p></li>
+<li><p>Unicode uc/lc corrections now in <cite>greek-fontenc</cite>.</p></li>
+</ul>
+</dd>
+<dt>1.9e (2015-11-27)</dt>
+<dd><ul class="simple">
+<li><p>Fix bug in lccode-setting loop (patch by Enrico Gregorio).</p></li>
+</ul>
+</dd>
+<dt>1.9f (2016-02-04)</dt>
+<dd><ul class="simple">
+<li><p>Support for new standard Unicode text font encoding “TU”.</p></li>
+</ul>
+</dd>
+<dt>1.9g (2016-09-07)</dt>
+<dd><ul class="simple">
+<li><p>Babel 3.9i deprecated <span class="docutils literal">\textlatin</span> and fixed <span class="docutils literal">\latinencoding</span>.
+1.9h (2019-07-11)</p></li>
+<li><p>Move breathing composite commands to <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">textalpha</a>.</p></li>
+</ul>
+</dd>
+<dt>1.9i (2020-02-28)</dt>
+<dd><ul class="simple">
+<li><p>Update test for Unicode fonts.</p></li>
+<li><p>Fix accent in <span class="docutils literal">\seename</span> and <span class="docutils literal">\alsoname</span>.</p></li>
+</ul>
+</dd>
+<dt>1.9j (2020-03-17)</dt>
+<dd><ul class="simple">
+<li><p>Fix ampersand in math mode.</p></li>
+</ul>
+</dd>
+<dt>1.10 (2020-11-10)</dt>
+<dd><ul class="simple">
+<li><p>Use <span class="docutils literal">TU</span> as <span class="docutils literal">\greekfontencoding</span> for Xe/LuaTeX (set by LaTeX as
+<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">default font encoding for Unicode engines</a> since 2017/01/01).</p></li>
+<li><p>Use zig-zaggy <span class="docutils literal">\textkoppa</span> for <span class="docutils literal">\greeknumeral{90}</span>.</p></li>
+<li><p>PDF-string secure implementation of <span class="docutils literal">\greeknumeral</span> from <a class="reference external" href="https://ctan.org/pkg/hyperref">hyperref</a>.</p></li>
+<li><p>Load <span class="docutils literal"><span class="pre">puenc-greek.def</span></span> (from <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>) if used with hyperref
+(polytonic Greek in PDF-strings).</p></li>
+</ul>
+</dd>
+<dt>1.11 (2020-11-20)</dt>
+<dd><ul class="simple">
+<li><p>Configurable <a class="reference internal" href="#greek-numerals">Greek numerals</a> 6 and 90.</p></li>
+<li><p>Save/restore previous font encoding instead of switching
+to hard-coded <span class="docutils literal">\latinencoding</span> when leaving Greek.</p></li>
+</ul>
+</dd>
+<dt>1.12 (2023-03-04)</dt>
+<dd><ul class="simple">
+<li><p>Do not change the uccode values if the LaTeX version is newer than
+2022/06. The new <span class="docutils literal">\MakeUppercase</span> definition ignores them and fails
+with the “dummy” character 0x9f (cf. <a class="citation-reference" href="#ltnews35" id="citation-reference-6" role="doc-biblioref">[ltnews35]</a>, <a class="reference external" href="https://github.com/latex3/latex2e/issues/987">LaTeX issue 987</a>).</p></li>
+<li><p>New modifiers <span class="docutils literal"><span class="pre">local-LGR-fixes</span></span> and <span class="docutils literal"><span class="pre">no-LGR-fixes</span></span> to address
+indexing problmes with Roman numerals (<a class="reference external" href="https://github.com/latex3/babel/issues/170">Babel issue 170</a>). Provisional.</p></li>
+<li><p>New TextCommand <span class="docutils literal">\EnsureStandardFontEncoding</span>.</p></li>
+<li><p>Rename <span class="docutils literal">\textgreek</span> to <span class="docutils literal">\lgrfont</span> to avoid confusion with a
+language changing command.</p></li>
+<li><p>Documentation update and refactoring.</p></li>
+<li><p>Drop LGR-local re-definition of <span class="docutils literal">\SS</span>.</p></li>
+<li><p><a class="reference external" href="athnum.dtx">athnum.dtx</a> 2.0:
+Don’t require Babel.
+Use LICR macros instead of the Latin transliteration.</p></li>
+</ul>
+</dd>
+</dl>
+</section>
+<section id="references">
+<h2><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">References</a></h2>
+<div role="list" class="citation-list">
+<div class="citation" id="fntguide" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-3">fntguide</a><span class="fn-bracket">]</span></span>
+<p>LaTeX Project Team <cite>LaTeX2e font selection</cite>, December 2021.
+<a class="reference external" href="https://www.latex-project.org/help/documentation/fntguide.pdf">https://www.latex-project.org/help/documentation/fntguide.pdf</a></p>
+</div>
+<div class="citation" id="ltnews35" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">ltnews35</a><span class="fn-bracket">]</span></span>
+<p>LaTeX Project Team <cite>LaTeX News 35</cite>, June 2022.
+<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews35.pdf">https://www.latex-project.org/news/latex2e-news/ltnews35.pdf</a></p>
+</div>
+<div class="citation" id="nicholas-05" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-5">Nicholas-05</a><span class="fn-bracket">]</span></span>
+<p>Nick Nicholas <cite>Numerals: Stigma, Koppa, Sampi</cite>, 2005.
+<a class="reference external" href="https://opoudjis.net/unicode/numerals.html">https://opoudjis.net/unicode/numerals.html</a></p>
+</div>
+<div class="citation" id="vlachou-22" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span>Vlachou-22<span class="fn-bracket">]</span></span>
+<p>Irene Vlachou
+<cite>Polytonic Greek: a guide for type designers</cite>, 2022.
+<a class="reference external" href="https://irenevl.github.io/Polytonic-tutorial/">https://irenevl.github.io/Polytonic-tutorial/</a></p>
+</div>
+<div class="citation" id="haralambous-98" role="doc-biblioentry">
+<span class="label"><span class="fn-bracket">[</span>Haralambous-98<span class="fn-bracket">]</span></span>
+<p>Yannis Haralambous
+<cite>From Unicode to Typography, a Case Study: the Greek Script</cite>, 1998.
+<a class="reference external" href="https://hal.science/hal-02101618">https://hal.science/hal-02101618</a></p>
+</div>
+</div>
+</section>
+</main>
+</body>
+</html>
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst
new file mode 100644
index 0000000000..fe62a4ff66
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst
@@ -0,0 +1,414 @@
+babel-greek
+***********
+Babel support for the Greek language and script
+===============================================
+
+:Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms,
+ © 2013 -- 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.
+
+:Home: https://codeberg.org/milde/greek-tex
+
+:Latest Release: https://ctan.org/pkg/babel-greek
+
+:Abstract: `babel-greek` is a contributed package providing comprehensive
+ support for the Greek language and script via the Babel_ system.
+ Document authors can select between the *monotonic*
+ (single-diacritic), *polytonic* (multiple-diacritic) and
+ *ancient* orthography of the Greek language.
+
+.. contents::
+
+Files
+-----
+
+`<babel-greek.dtx>`_
+ Source of the language definition file ``greek.ldf`` for use with Babel_.
+ [`<babel-greek.pdf>`_]
+`<athnum.dtx>`_
+ Athenian (Attic, Herodianic, or acrophonic) Numerals. [`<athnum.pdf>`_]
+`<grmath.dtx>`_
+ Greek log-like Operators. [`<grmath.pdf>`_]
+`<babel-greek.ins>`_
+ DocStrip_ batch file.
+`<usage.tex>`_
+ Description of the `LGR Latin transliteration`_ and the `Greek numerals`_.
+ [`<usage.pdf>`_]
+test-*
+ Documented test sample documents.
+
+
+Requirements
+------------
+
+The `babel-greek` package requires the Babel_ package and font
+definition files from the greek-fontenc_ package. The greek-inputenc_
+package is recommended when using 8-bit TeX engines.
+
+Typesetting Greek texts requires `Greek text fonts`_.
+
+Plain TeX is currently not supported. Patches are welcome.
+
+
+Download and Installation
+-------------------------
+
+The simplest way is to get and 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.
+
+* From the ``babel-greek`` directory,
+ run ``tex`` or ``latex`` on the batch file ``babel-greek.ins``.
+
+ This will generate the files ``greek.ldf``, ``athnum.sty``, and
+ ``grmath.sty`` in the current directory.
+
+* Move all files ending in ``.ldf`` or ``.sty`` into a directory
+ in the TeX search path.
+
+* To produce the documentation, run the file ``usage.tex`` and all files
+ ending in ``.dtx`` through LaTeX.
+
+The last steps can be automated using the Unix `make`_ tool.
+The provided `<Makefile>`_ defines the targets
+
+:``all``: (re)build packages, documentation, and tests,
+:``packages``: (re)build the packages,
+:``doc``: (re)generate HTML and PDF documentation files,
+:``test``: run LaTeX on the test documents,
+:``update``: copy packages into a local TeX tree, [#update]_
+:``update-package``: copy documentation and sources into a local
+ TeX tree, [#update]_
+:``clean``: delete auxiliary files.
+
+.. [#update] This is a simple ``cp --update`` to a pre-set path.
+ The destination directory must exist. Files no longer present in the
+ package are not removed.
+
+.. _release:
+ https://mirrors.ctan.org/macros/latex/contrib/babel-contrib/greek.zip
+.. _CTAN page: https://www.ctan.org/pkg/babel-greek
+.. _greek-tex: https://codeberg.org/milde/greek-tex/
+.. _snapshot: https://codeberg.org/milde/greek-tex/archive/master.zip
+.. _make: https://en.wikipedia.org/wiki/Make_(software)
+
+
+Usage
+-----
+
+.. role:: latex(code)
+
+Use the "greek" document option or pass the "greek" option to Babel, [#]_
+e.g.:
+
+.. code:: latex
+
+ \usepackage[greek,english]{babel}
+
+For polytonic Greek, set the language attribute "polutoniko", either
+after loading Babel
+
+.. code:: latex
+
+ \usepackage[greek,english]{babel}
+ \languageattribute{greek}{polutoniko}
+
+or as modifier
+
+.. code:: latex
+
+ \usepackage[greek.polutoniko,english]{babel}
+
+Similarly, the attribute "ancient" selects the ancient Greek language
+variant.
+
+For details see [babel-greek.pdf]_ and the babel_ documentation.
+
+Input of Greek characters is possible as literal characters (α ... Ω)
+[#]_, as LICR macro (``\textalpha{} ... \textOmega``), or via the `LGR
+Latin transliteration`_ (a ... W) [#]_. See
+[usage.pdf]_ and the example files provided with greek-fontenc_.
+
+.. [#] Alongside other languages that will be used in the document.
+ The *last* language option sets the document's main language.
+.. [#] with the greek-inputenc_ package or XeTeX/LuaTeX
+.. [#] only with LGR fonts
+
+Greek text fonts
+----------------
+
+A list of `Greek text fonts for use with LaTeX`_ is available at CTAN.
+
+The non-standard LGR `font encoding`_ is used for typesetting Greek with
+"traditional" 8-bit TeX engines (pdfTeX). Fonts in this encoding include
+the `CB fonts`_ (matching CM), grtimes_ (Greek Times), Kerkis_ (matching
+URW Bookman), and the `GFS font collection`_.
+The package `cbfonts-fd`_ registers the CB fonts as Greek substitute for
+the Computer Modern and Latin Modern font families. For other font
+families, declaring Greek fonts as supplement for matching Latin font
+families can be done with the :latex:`\DeclareFontFamilySubstitution`
+macro (see section `Providing font family substitutions` in [fntguide]_).
+
+Unicode fonts used with XeTeX or LuaTeX provide slots for all Unicode
+characters in one font but commonly only a subset of the actual glyphs.
+
+.. Warning::
+ The default **Latin Modern contains only a few Greek letters!**
+ Unsupported characters are silently dropped from the output.
+ Warnings about missing glyphs are written to the log
+ file only, not to the console.
+
+Select a suitable font with Babel_'s font selecting framework or
+directly with fontspec_. Examples for suitable fonts are CM-unicode_
+or `Linux Libertine`_ as well as any system-wide installed OTF font
+that supports Greek (e.g. `Deja Vu`_). See, e.g., the list of free
+`fonts supporting Greek script`_ by openSUSE's fontinfo.
+
+.. _Greek text fonts for use with LaTeX: https://ctan.org/topic/font-greek
+.. _fonts supporting Greek script:
+ https://fontinfo.opensuse.org/scripts/script-Greek.html
+
+
+LGR Latin Transliteration
+-------------------------
+
+The LGR font encoding allows input of Greek characters via a Latin
+transliteration. This enables simple input with a Latin keyboard. Characters
+with diacritics may be selected with accent macros (cf. greek-fontenc_) or
+via the ligature definitions in the font (see [usage.pdf]_).
+
+The following ASCII characters are converted to Greek symbols:
+
+= = = = = = = = = = = = = = = = = = = = = = = = =
+A B G D E Z H J I K L M N X O P R S   T U F Q Y W
+Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ   Τ Υ Φ Χ Ψ Ω
+a b g d e z h j i k l m n x o p r s c t u f q y w
+α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω
+= = = = = = = = = = = = = = = = = = = = = = = = =
+
+Accent symbols and punctuation:
+
+============== ======= == ====================== ======= ==
+tonos ``'a`` ά right apostrophe ``''`` ’
+varia ```a`` ὰ left apostrophe \`\` ‘
+dasia ``<a`` ἁ left quotation mark ``((`` «
+psili ``>a`` ἀ right quotation mark ``))`` »
+perispomeni ``\~a`` ᾶ erotimatiko ``?`` ;
+dialytika ``"i`` ϊ middle dot ``;`` ·
+ypogegrammeni ``a|`` ᾳ zero width non-joiner ``av|`` αͺ
+============== ======= == ====================== ======= ==
+
+The downside is, that you cannot print Latin letters and some symbols if
+LGR is the active font encoding. This means that for every Latin-written
+word or acronym in a Greek text part, an explicit font encoding switch is
+required.
+
+
+Greek Numerals
+--------------
+
+`babel-greek` provides the macros :latex:`\greeknumeral` and
+:latex:`\Greeknumeral` to transform a number into its corresponding
+`Greek numeral <https://en.wikipedia.org/wiki/Greek_numerals>`__
+(see also section `Greek numbering`__ in the PDF documentation).
+
+__ http://mirrors.ctan.org/macros/latex/contrib/babel-contrib/
+ greek/babel-greek.pdf#greek-numbering
+
+
+The classic `Greek numerals`, also known as Ionic, Ionian, Milesian, or
+Alexandrian numerals were introduced to Athens along with the Ionic alphabet
+from the city of Miletus in Ionia replacing the `Attic numerals`_.
+They are still used in everyday life for ordinal numbers and
+more generally by the Orthodox church and certain scholars.
+
+Greek numerals use several now obsolete letters:
+digamma_ ϝ or stigma_ ϛ, koppa_ ϟ or ϙ, and sampi_ ϡ [Nicholas-05]_.
+
+* Standing for 6 is the digamma_ ϝ, the sixth letter of the Ionic
+ alphabet (just as its Latin equivalent F is the sixth letter of the
+ Latin alphabet). As Greek script turned to uncial and then lowercase,
+ the numeral changed its shape and became conflated with another,
+ similar sign: the ligature for sigma-tau stigma_ ϛ.
+ The letters στ are frequently used as replacement.
+
+ There is no significant tradition of ϝ being used as a numeral in
+ editions of classical texts, even though the Ancients clearly used
+ digamma rather than stigma as their numeral.
+
+* Three different signs are in use for the number 90: Classicists use the
+ "archaic koppa_" ϙ, and more rarely its uncial form (resembling the
+ "`Cyrillic letter koppa`_" ҁ or the "Gothic letter ninety" 𐍁).
+ Modern Greeks use the "Greek letter koppa" ϟ exclusively and
+ do not recognise ϙ at all, let alone as a glyph variant of ϟ.
+
+* The sign for the number 900 is the sampi_ ϡ. Its shape, developed
+ during its use in minuscule handwriting of the Byzantine era. Earlier
+ variants similar to the "archaic sampi" ͳ and the "Gothic Letter Nine
+ Hundred" 𐍊 are not used in Greek.
+
+Users can redefine the macros :latex:`\greeknumeralsix`,
+:latex:`\greeknumeralSix`, :latex:`\greeknumeralninety`, and
+:latex:`\greeknumeralNinety` to configure the used symbols,
+for example
+
+.. code:: latex
+
+ \renewcommand{\greeknumeralninety}{\textkoppa}
+ \renewcommand{\greeknumeralNinety}{\textKoppa}
+ \ifdefined \textvarstigma
+ \renewcommand{\greeknumeralSix}{\textvarstigma}
+ \fi
+
+sets the symbol for 90 to the "modern" koppa ϟ also for ancient Greek
+and the "capital" 6 symbol to the variant stigma glyph (only defined in LGR).
+
+.. _digamma: https://en.wikipedia.org/wiki/Digamma
+.. _stigma: https://en.wikipedia.org/wiki/Stigma_(ligature)
+.. _koppa: https://en.wikipedia.org/wiki/Koppa_(letter)
+.. _Cyrillic letter koppa: https://en.wikipedia.org/wiki/Koppa_(Cyrillic)
+.. _sampi: https://en.wikipedia.org/wiki/Sampi
+.. _Attic numerals: https://en.wikipedia.org/wiki/Attic_numerals
+
+
+Changelog
+---------
+
+1.4 (2013-05-17)
+ - New maintainer.
+ - The encoding definition file ``lgrenc.def`` moved to the
+ greek-fontenc_ package.
+1.5 (2013-06-21)
+ - Bugfixes and cleanup.
+ - LICR macros in string definitions.
+ - LGR font encoding not used with XeTeX/LuaTeX.
+ - Input "xgreek-fixes.def" from polyglossia_ with Xe/LuaTeX.
+1.5a (2013-07-02)
+ - Fix LaTeX bugs babel/3707, `babel/4303`_ and `babel/4305`_
+1.6 (2013-07-19)
+ - Experimental support for XeTeX/LuaTeX.
+1.7 (2013-09-09)
+ - CB-Fonts font definition files moved to CB-Fonts package.
+ - Do not auto-load euenc.def with XeTeX/LuaTeX.
+1.7a (2013-09-13)
+ - Fix bug `babel/4360`_: spurious ``\fi``.
+1.7b (2013-10-01)
+ - Fix upcasing of babel strings with Xe/LuaTeX.
+1.8 (2013-12-02)
+ - Rename ``greek.dtx`` to ``babel-greek`` so that texdoc_
+ shows the right documentation.
+ - Compatibility with Xe/LuaTeX in Unicode and 8-bit mode.
+1.8a (2013-12-03)
+ - Set ``\encodingdefault`` in ``\greekscript`` to fix Greek
+ in footnotes etc. with document language Greek.
+1.9 (2014-07-20)
+ - New attribute for ancient Greek, load correct hyphenation
+ patterns (patch by Claudio Beccari).
+ - Bugfix for ``\Makeuppercase``
+1.9a (2014-09-12)
+ - Remove duplicate code, documentation review.
+1.9b (2014-09-18)
+ - Remove spurious whitespace from ``\extrasgreek`` definition.
+ - Use named macros instead of non-standard short macros
+ for *psili* and *dasia* in the string definitions.
+1.9c (2014-10-21)
+ - Fix dummy hyphenation language names (patch by Ulrike Fischer).
+1.9d (2015-09-04)
+ - Remove `grsymb` (macros for Greek symbols).
+ This package is outdated and obsoleted by greek-fontenc_
+ (reported by Claudio Beccari).
+ - Unicode uc/lc corrections now in `greek-fontenc`.
+1.9e (2015-11-27)
+ - Fix bug in lccode-setting loop (patch by Enrico Gregorio).
+1.9f (2016-02-04)
+ - Support for new standard Unicode text font encoding "TU".
+1.9g (2016-09-07)
+ - Babel 3.9i deprecated ``\textlatin`` and fixed ``\latinencoding``.
+ 1.9h (2019-07-11)
+ - Move breathing composite commands to textalpha_.
+1.9i (2020-02-28)
+ - Update test for Unicode fonts.
+ - Fix accent in ``\seename`` and ``\alsoname``.
+1.9j (2020-03-17)
+ - Fix ampersand in math mode.
+1.10 (2020-11-10)
+ - Use ``TU`` as ``\greekfontencoding`` for Xe/LuaTeX (set by LaTeX as
+ `default font encoding for Unicode engines`_ since 2017/01/01).
+ - Use zig-zaggy ``\textkoppa`` for ``\greeknumeral{90}``.
+ - PDF-string secure implementation of ``\greeknumeral`` from hyperref_.
+ - Load ``puenc-greek.def`` (from greek-fontenc_) if used with hyperref
+ (polytonic Greek in PDF-strings).
+1.11 (2020-11-20)
+ - Configurable `Greek numerals`_ 6 and 90.
+ - Save/restore previous font encoding instead of switching
+ to hard-coded ``\latinencoding`` when leaving Greek.
+1.12 (2023-03-04)
+ - Do not change the uccode values if the LaTeX version is newer than
+ 2022/06. The new ``\MakeUppercase`` definition ignores them and fails
+ with the "dummy" character 0x9f (cf. [ltnews35]_, `LaTeX issue 987`_).
+ - New modifiers ``local-LGR-fixes`` and ``no-LGR-fixes`` to address
+ indexing problmes with Roman numerals (`Babel issue 170`_). Provisional.
+ - New TextCommand ``\EnsureStandardFontEncoding``.
+ - Rename ``\textgreek`` to ``\lgrfont`` to avoid confusion with a
+ language changing command.
+ - Documentation update and refactoring.
+ - Drop LGR-local re-definition of ``\SS``.
+ - `athnum.dtx`_ 2.0:
+ Don't require Babel.
+ Use LICR macros instead of the Latin transliteration.
+
+.. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303
+.. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305
+.. _babel/4360: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4360
+.. _Babel issue 170: https://github.com/latex3/babel/issues/170
+.. _LaTeX issue 987: https://github.com/latex3/latex2e/issues/987
+.. _default font encoding for Unicode engines:
+ https://www.latex-project.org/news/latex2e-news/ltnews26.pdf
+
+
+References
+----------
+
+.. [fntguide] LaTeX Project Team `LaTeX2e font selection`, December 2021.
+ https://www.latex-project.org/help/documentation/fntguide.pdf
+.. [ltnews35] LaTeX Project Team `LaTeX News 35`, June 2022.
+ https://www.latex-project.org/news/latex2e-news/ltnews35.pdf
+.. [Nicholas-05] Nick Nicholas `Numerals: Stigma, Koppa, Sampi`, 2005.
+ https://opoudjis.net/unicode/numerals.html
+.. [Vlachou-22] Irene Vlachou
+ `Polytonic Greek: a guide for type designers`, 2022.
+ https://irenevl.github.io/Polytonic-tutorial/
+.. [Haralambous-98] Yannis Haralambous
+ `From Unicode to Typography, a Case Study: the Greek Script`, 1998.
+ https://hal.science/hal-02101618
+
+.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
+.. _babel: https://ctan.org/pkg/babel
+.. _docstrip: https://ctan.org/pkg/docstrip
+.. _font encoding: https://mirrors.ctan.org/macros/latex/base/encguide.pdf
+.. _fontspec: https://ctan.org/pkg/fontspec
+.. _fontenc: https://ctan.org/pkg/fontenc
+.. _CB Fonts: https://ctan.org/pkg/cbgreek-complete
+.. _cbfonts-fd: https://ctan.org/pkg/cbfonts-fd
+.. _CM-unicode: https://ctan.org/pkg/cm-unicode
+.. _Deja Vu: http://dejavu-fonts.org
+.. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
+.. _grtimes: https://ctan.org/pkg/grtimes
+.. _hyperref: https://ctan.org/pkg/hyperref
+.. _textalpha:
+.. _greek-fontenc: https://ctan.org/pkg/greek-fontenc
+.. _greek-inputenc: https://ctan.org/pkg/greek-inputenc
+.. _GFS font collection: https://ctan.org/pkg/gfs
+.. _Kerkis: https://ctan.org/pkg/kerkis
+.. _Linux Libertine: https://ctan.org/pkg/libertine
+.. _polyglossia: https://ctan.org/pkg/polyglossia
+.. _substitutefont: https://ctan.org/pkg/substitutefont
+.. _texdoc: https://ctan.org/pkg/texdoc
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
index 9224df9769..328aee6de2 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx
@@ -20,13 +20,13 @@
% The Current Maintainer of this work is Günter Milde <milde@users.sf.net>.
%
% Babel-greek is a contributed package providing support for the Greek
-% language and script via the Babel system (http://www.ctan.org/pkg/babel).
+% language and script via the Babel system (https://ctan.org/pkg/babel).
%
% The list of derived (unpacked) files belonging to this work
% and covered by LPPL is defined by the unpacking script (babel-greek.ins)
% which is part of the package.
% \fi
-% \CheckSum{1547}
+% \CheckSum{1651}
%
% \iffalse
% Tell the \LaTeX\ system who we are and write an entry on the
@@ -37,12 +37,12 @@
%<code>\ProvidesLanguage{greek}
%\fi
%\ProvidesFile{babel-greek.dtx}
- [2020/11/10 v1.10 Greek support for the babel system]
+ [2023/03/04 1.12 Greek support for the babel system]
%\iffalse
%% File `babel-greek.dtx'
%% Greek language Definition File
%% Copyright © 1997, 2005 Apostolos Syropoulos, Johannes Braams
-%% Copyright © 2013, 2019 Günter Milde
+%% Copyright © 2013 -- 2020 Günter Milde
%
%% Please report errors to: Günter Milde <milde@users.sf.net>
%
@@ -50,19 +50,17 @@
% code for the greek language definition file. The original
% version of this file was written by Apostolos Syropoulos.
% It was then enhanced by adding code from kdgreek.sty from David
-% Kastrup <dak@gnu.org> with his
-% consent.
+% Kastrup <dak@gnu.org> with his consent.
%<*filedriver>
\documentclass{ltxdoc}
-% \usepackage{lmodern}
-\usepackage[utf8]{inputenc}
+\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=black}
-\newcommand*{\babel}{\textsf{babel}}
-\newcommand*{\note}[1]{}
\newcommand*{\Lopt}[1]{\textsf{#1}}
\newcommand*{\file}[1]{\texttt{#1}}
-\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\pkgref}[1]{\textsf{\href{https://ctan.org/pkg/#1}{#1}}}
+\RecordChanges % Write index file with \changes entries
\begin{document}
\DocInput{babel-greek.dtx}
\end{document}
@@ -98,56 +96,31 @@
% load LICR macro definitions for Xe/LuaTeX.}
% \changes{greek-1.7}{2013/09/09}{Do not load euenc.def with XeTeX/LuaTeX.
% Prevent re-loading lgrenc.def.}
-% \changes{greek-1.7a}{2013/09/13}{bugfix: remove spurious ``fi''.}
-% \changes{greek-1.7b}{2013/10/01}{bugfix: correct upcasing of babel strings
+% \changes{greek-1.7a}{2013/09/13}{Remove spurious ``fi''.}
+% \changes{greek-1.7b}{2013/10/01}{Correct upcasing of babel strings
% with Xe/LuaTeX.}
-% \changes{babel-greek-1.8}{2013/11/27}{Rename to ``babel-greek.dtx''.
-% Restore compatibility with Xe/LuaTeX in 8-bit and Unicode mode.
-% Load ``euenc.def'' if EU1 or EU2 font encoding is detected.
-% New TextCommands ``greekscript'' and ``ensuregreek''.}
-% \changes{babel-greek-1.8a}{2013/12/03}{Set `encodingdefault' in `greekscript'
-% to fix Greek in footnotes etc. with document language Greek.}
-% \changes{babel-greek-1.9}{2014/07/20}{Added attribute for ancient Greek.
-% Load correct hyphenation patterns. Patch by Claudio Beccari.}
-% \changes{babel-greek-1.9b}{2014/09/18}{Remove spurious whitespace from
-% `extrasgreek' definition (report Eike Schmidt).
-% Use named macros instead of non-standard short accent macros for
-% psili and dasia.}
-% \changes{babel-greek-1.9c}{2014/10/21}{Fix dummy hyphenation language names
-% (report/patch Ulrike Fischer).}
-% \changes{babel-greek-1.9d}{2015/07/06}{uc-/lccode corrections from xgreek are now
-% in greek-euenc.def (the polyglossia version has bugs).}
-% \changes{babel-greek-1.9e}{2015/11/27}{Fix bug in lccode-setting loop
-% (patch by Enrico Gregorio).}
-% \changes{babel-greek-1.9f}{2016/02/04}{Support for standard
-% Unicode text encoding ``TU'' (new in fontspec v2.5a).}
-% \changes{babel-greek-1.9g}{2016/09/07}{Babel 3.9i deprecated textlatin
-% and fixed latinencoding.}
-% \changes{babel-greek-1.9h}{2019/07/11}{Move breathing composite commands
-% to textalpha.}
-% \changes{babel-greek-1.9i}{2020/02/28}{Update test for Unicode fonts.
-% Fix accent in seename and alsoname.}
-% \changes{babel-greek-1.9j}{2020/03/17}{Fix ampersand in math mode.}
-% \changes{babel-greek-1.10}{2020/11/10}{Use TU as \cs{greekfontencoding}
-% for Xe/LuaTeX. TU is the default font encoding there since 2017/01/01.
-% PDF-string secure implementation of \cs{greeknumeral}
-% (taken from ``hyperref'').
-% Use zig-zagy \cs{textkoppa} for \cs{greeknumeral{90}}.
-% This is what it looked originally and what it looks
-% in current (not classical or medieval) Greek typography.
-% Load ``puenc-greek.def`` (from greek-fontenc_) if used with hyperref.}
+% \changes{greek-1.8}{2013/11/27}{Renamed to `babel-greek'.}
+% \changes{babel-greek-1.08}{2013/11/27}{\file{greek.dtx} renamed to
+% \file{babel-greek.dtx} (but still generates \file{greek.ldf}).}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Restore compatibility with Xe/LuaTeX in 8-bit and Unicode mode.}
+% \changes{babel-greek-1.09g}{2016/09/07}{Babel 3.9i deprecated
+% \cs{textlatin} and fixed \cs{latinencoding}.}
+% \changes{babel-greek-1.09i}{2020/02/28}{
+% Fix accent in \cs{seename} and \cs{alsoname}.}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Update and restructure documentation.}
%
% \title{Babel support for the Greek language}
% \author{Apostolos Syropoulos, Günter Milde}
% \maketitle
%
% Babel-greek is a contributed package providing support for the Greek
-% language and script via the \href{http://www.ctan.org/pkg/babel}{Babel}
-% system. See the \href{README.html}{README} file for an overwiew of the
+% language and script via the \pkgref{babel} system.
+% See the \href{README.html}{README} file for an overwiew of the
% \pkg{babel-greek} package and links to requirements and related packages.
%
-% The file \file{\filename}%
-% \footnote{
+% The file \file{\filename}\footnote{
% The file described in this section has version number \fileversion\
% and was last revised on \filedate.
% The original author is Apostolos Syropoulos, code from \file{kdgreek.sty}
@@ -155,212 +128,289 @@
% is the literate source for the Babel language definition file
% \file{greek.ldf}.
%
+% \tableofcontents
+%
% \section{Requirements}
%
-% Typesetting Greek with Babel requires (of course) the
-% \href{http://www.ctan.org/pkg/babel}{Babel core}, support for Greek font
-% encodings (\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc})
+% Typesetting Greek with Babel requires (of course) the \pkgref{babel}
+% package, support for Greek font encodings (\pkgref{greek-fontenc})
% and a \href{README.html#greek-text-fonts}{text font supporting the
% Greek script}.
%
-% The \href{http://www.ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
+% The \href{https://ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
% created by \textsc{Claudio Beccari}\footnote{Apostolos Syropoulos
% wishes to thank Claudio Beccari for his
% patience, collaboration, comments and suggestions.}
-% are a complete set of 8-bit TeX fonts matching \textsc{Knuth}'s
+% are a complete set of 8-bit \TeX{} fonts matching \textsc{Knuth}'s
% Computer Modern.
-% The package \pkg{\href{http://www.ctan.org/pkg/cbfonts-fd}{cbfonts-fd}}
-% sets them up as Greek substitute for the Computer Modern and Latin Modern
-% font families.
-% The \pkg{\href{http://www.ctan.org/pkg/substitutefont}{substitutefont}}
-% package can be used to set up Greek supplements for other
-% font families (like Times or Palatino).
-%
-% The \href{http://ctan.org/pkg/lm}{Latin Modern} OpenType font that is the
-% default font for XeTeX/LuaTeX does not support the Greek script. The user
-% needs to set up an alternative font like CM Unicode, Linux Libertine or
-% DejaVu with \pkg{\href{http://www.ctan.org/pkg/fontspec}{fontspec}}.
+% The package \pkgref{cbfonts-fd} sets them up as Greek substitute
+% for the Computer Modern and Latin Modern font families.
+% The standard |\DeclareFontFamilySubstitution| macro can be used to set up
+% Greek supplements for other \TeX{} font families (like Times or Palatino).
+%
+% Unicode fonts (used with XeTeX or LuaTeX) provide slots for all Unicode
+% characters in one font but commonly only a subset of the actual glyphs.
+% \textbf{Many Unicode fonts, including the default
+% \href{https://ctan.org/pkg/lm}{Latin Modern},
+% do not support the Greek script!}
+% Authors need to set up an alternative font like CM Unicode, Linux Libertine,
+% or DejaVu with \pkgref{fontspec} or the \pkgref{babel} font configuration
+% system.
+%
+% With 8-bit TeX and XeTeX, hyphenation patterns must be
+% pre-loaded in the format file.
+% This is a limitation by TeX, common to all languages.
+% The LuaTeX engine loads hyphenation patterns dynamically.
+%
%
% \section{Usage}
%
-% To activate Greek support with babel, specify the option
-% \Lopt{greek}, either as global option or as option to the
-% \pkg{babel} package. Remember, that the \emph{last} language
-% option determines the document language, e.g.
-% \begin{verbatim}
-% \usepackage[greek,english]{babel}\end{verbatim}
-% activates support for Greek in an English document.
-% The default is modern ``monotonic'' Greek, while
-% \begin{verbatim}
-% \usepackage[english,greek]{babel}
-% \languageattribute{greek}{polutoniko}
-% \end{verbatim}
-% sets the document language to modern Greek with ``polytonic''
-% spelling and
-% \begin{verbatim}
-% \usepackage[english,greek]{babel}
-% \languageattribute{greek}{ancient}
-% \end{verbatim}
-% sets the document language to ancient Greek.
+% To activate Greek language support with babel, specify the option
+% \Lopt{greek}, either as global option or as option to the
+% \pkg{babel} package. Remember, that the \emph{last} language
+% option determines the document language, e.g.
+% \begin{verbatim}
+% \usepackage[greek,english]{babel}\end{verbatim}
+% activates support for Greek text parts in an English document.
%
-% Both attributes may also be used as modifiers as in
-% \begin{verbatim}
-% \usepackage[greek.polutoniko,english]{babel}
-% \end{verbatim}
-% and similarly
-% \begin{verbatim}
-% \usepackage[greek.ancient,english]{babel}
-% \end{verbatim}
-%
-% By default,
-% \pkg{babel-greek} activates the modern Greek monotonic hyphenation;
-% the attribute/modifier |polutoniko| activates the modern Greek
-% polytonic hyphenation and the attribute/modifier |ancient| activates
-% the ancient Greek hyphenation. 8-bit TeX and XeTeX require the
-% hyphenation patterns to be pre-loaded in the format file.
-% This is a limitation by TeX, common to all languages.
-% The LuaTeX engine loads hyphenation patterns on demand.
-%
-% \DescribeMacro\selectlanguage
-% \DescribeMacro\foreignlanguage
+% \DescribeMacro\selectlanguage
% The Babel core provides two commands to switch the active language:
% The declaration |\selectlanguage{greek}| switches to the Greek language.
+% \DescribeMacro\foreignlanguage
% The macro \verb|\foreignlanguage{greek}{<some text>}| sets its second
% argument in the Greek language. This is intended for short text parts.
-% For details see the \href{http://www.ctan.org/pkg/babel}{Babel}
-% documentation.
+% For details see the \pkgref{babel} documentation.
+%
+%
+% \subsection{Language attributes}
+%
+% The attributes \Lopt{monotoniko}, \Lopt{polutoniko}^^A
+% \footnote{with the alias \Lopt{polytonic}},
+% and \Lopt{ancient} allow the specification of the used orthography.
+% The language variant affects automatic hyphenation, spelling of
+% auto-generated strings and support for multi-accented letters.
+%
+% The default is modern \emph{monotonic} Greek, while
+% \begin{verbatim}
+% \usepackage[english,greek]{babel}
+% \languageattribute{greek}{polutoniko}\end{verbatim}
+% sets the document language to modern Greek with
+% \emph{\href{https://en.wikipedia.org/wiki/Greek_diacritics}{polytonic}}
+% spelling and
+% \begin{verbatim}
+% \usepackage[english,greek]{babel}
+% \languageattribute{greek}{ancient}\end{verbatim}
+% sets the document language to \emph{ancient} Greek.
+%
+% Both attributes may also be used as modifiers as in
+% \begin{verbatim}
+% \usepackage[greek.polutoniko,english]{babel}\end{verbatim}
+% and similarly
+% \begin{verbatim}
+% \usepackage[greek.ancient,english]{babel}\end{verbatim}
+%
+%
+% \subsection{Modifiers \label{sec:modifiers}}
+%
+% \changes{babel-greek-1.12}{2023/03/04}{
+% New modifiers \Lopt{local-LGR-fixes} and \Lopt{no-LGR-fixes}.}
+%
+% The following modifiers cannot be set with |\languageattribute|.
+% Misspelled modifiers are ignored without warning!
+% \medskip
+%
+% Some workarounds for the non-standard LGR font encoding may have
+% serious side-effects.
+% The \texttt{local-LGR-fixes} \emph{modifier} restricts the re-definitions
+% in section~\ref{sec:lgr-redefinitions} to text parts using the Greek
+% language.
+% The \texttt{no-LGR-fixes} \emph{modifier} disables them completely.
+% You may try, e.g.,
+% \begin{verbatim}
+% \usepackage[greek.local-LGR-fixes,english]{babel}\end{verbatim}
+% as a last ressort if the workarounds make a document uncompilable
+% and using Xe/LuaTeX with Unicode fonts is not an option.
+% Check for problems with enumerations in Greek text parts and with
+% Roman and Greek numerals everywhere (especially in the ToC).
+%
+% These modifiers are provisional, naming and behaviour may change.
+%
+% \subsection{Language hooks \label{sec:language-hooks}}
+%
+% \DescribeMacro\extrasgreek
+% The macro |\extrasgreek| is called by \pkgref{babel} on every switch
+% of the active language to Greek.
+% \DescribeMacro\noextrasgreek
+% The macro |\noextrasgreek| is called when switching away from Greek.
+% Package and document authors can add setup and tear-down code
+% to the hooks with the help of the |\addto| command provided by \pkg{babel}.
+% The first call of |\addto\<hookname>{<code>}| initializes the hook,
+% subsequent calls append |<code>| to its definition.
+%
+% \pkg{Babel-greek} uses these hooks to, e.g, select correct hyphenation
+% patterns (cf.\ section~\ref{sec:hyphenation-patterns}) or ensure a font
+% encoding supporting the Greek script is used for Greek text parts
+% (cf.\ section~\ref{sec:font-setup}).
%
-% For backwards compatibility, ``polytonic'' spelling can also be
-% selected via the dummy language \Lopt{polutonikogreek}. In this
-% case, the language name \Lopt{polutonikogreek} must also be
-% used for language switches with |\selectlanguage| or
-% |\foreignlanguage|. However, it is not possible to use
-% both options, \Lopt{greek} and \Lopt{polutonikogreek} in one document.
%
% \subsection{Input of Greek text}
%
% There are several alternatives to write Greek text.
% \begin{itemize}
-% \item With the packages \pkg{inputenc} and
-% \pkg{\href{http://www.ctan.org/pkg/greek-inputenc}{greek-inputenc}},
-% literal Greek characters can be input using the utf-8, iso-8859-7,
-% or macgreek encoding.
+% \item Literal input using the UTF-8 encoding is the standard input
+% method. With 8-bit TeX, this requires the package
+% \pkgref{greek-inputenc}.
%
-% Literal input using the utf-8 encoding is also the standard input
-% method if compiling with the XeTeX and LuaTeX engines.
+% With the packages \pkgref{inputenc} and \pkgref{greek-inputenc},
+% literal Greek characters can also be input using the legacy encodings
+% \emph{iso-8859-7} and \emph{macgreek}.
%
% \item The Latin transliteration defined by the LGR font encoding
% is explained in the file \file{\href{usage.pdf}{usage.pdf}}.
%
-% \item The package
-% \pkg{\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}}
+% \item The package \pkgref{greek-fontenc}
% defines \emph{LaTeX internal character representation} (LICR) macros
-% for Greek letters and text symbols. It is required by \pkg{babel-greek},
-% so the |\textAlpha| \ldots |\textomega|
-% macros are a safe but cumbersome method to input Greek characters.
+% for Greek letters and text symbols. It is required by \pkg{babel-greek}.
+% The LICR macros |\textAlpha| \ldots |\textomega|
+% are a safe but cumbersome method to input Greek characters.
%
-% \item The \pkg{alphabeta} package bundled with
-% \href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} makes the
-% short macro names |\Alpha| \ldots |\omega| available in text mode, too.
+% \item The \pkg{alphabeta} package, bundled with \pkgref{greek-fontenc},
+% makes the short macro names |\Alpha| \ldots |\omega| available
+% in both, text and math mode.
% \end{itemize}
-% The \href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc} bundle
-% has details and examples for all these input methods.
%
% \subsection{Greek vs. Latin script}
% When switching the language to Greek, \pkg{babel-greek} ensures that the
% Greek script is supported.
-% With 8-bit LaTeX, Greek text fonts use a non-standard
-% font encoding\footnote{LaTeX font encodings are described in
-% the \emph{LaTeX font guide} (fntguide.pdf).}
-% (LGR) that misses Latin letters. Latin characters in the source are
-% instead interpreted as a transcription for Greek characters.
-% The following macros allow the use of Greek vs. Latin script without
-% changing the active language.
+% The following macros allow the use of Greek vs.\ Latin script without
+% changing the active language:
+%
% \DescribeMacro\greekscript
-% \DescribeMacro\greektext
% The \emph{TextCommand}\footnote{For a discussion of TextCommands, see
-% the \emph{LaTeX font guide} (fntguide.pdf), too.}
+% the \emph{LaTeX font guide}, too.}
% |\greekscript| switches to a font encoding
% supporting the Greek script.
+% \DescribeMacro\greektext
% The declaration |\greektext| always switches the font encoding
% to LGR. Both declarations do not change the active language.
+%
% \DescribeMacro\latintext
-% |\latintext| (defined by the Babel
-% core) can be used to switch back to an encoding supporting the Latin
-% script (deprecated since Babel 3.9i from March 2014).
+% |\latintext| (defined by the Babel core, deprecated since March 2014)
+% can be used to switch back to an encoding supporting the Latin script.
%
% \DescribeMacro\ensuregreek
-% \DescribeMacro\textgreek
-% The macros |\ensuregreek| and |\textgreek| take one argument
-% which is typeset using a font encoding supporting the Greek
-% script. While |\ensuregreek| only switches the
-% font encoding if required, |\textgreek| always uses the LGR font
-% encoding.
-% \DescribeMacro\textlatin
-% The Babel core defines a corresponding |\textlatin| macro
-% (deprecated in favour of |\ensureascii| in Babel 3.9i from March 2014).
-%
-% \section{Greek numbering}
-%
-% The Greek alphabetical numbering system, like the Roman one, is
-% still used in everyday life for short enumerations. Unfortunately
-% most Greeks don't know how to write Greek numbers bigger than 20 or
-% 30. Nevertheless, in official editions of the last century and
-% beginning of this century this numbering system was also used for
-% dates and numbers in the range of several thousands. Nowadays
-% this numbering system is primary used by the Eastern Orthodox
-% Church and by certain scholars. It is hence necessary to be able
-% to typeset any Greek numeral up to \hbox{999\,999}. Here are the
-% conventions:
+% The function |\ensuregreek| takes one argument which
+% is typeset using a font encoding supporting the Greek script.
+% It only switches the font encoding if required (i.e. if the current
+% font encoding does not support Greek letters and symbols).
+%
+% \DescribeMacro\lgrfont
+% The function |\lgrfont|^^A
+% \footnote{The legacy name \cs{textgreek} is available as alias.}
+% switches to the non-standard Greek 8-bit font encoding LGR.
+% Hint: Use |\lgrfont|, if you want to use the
+% \emph{Latin transliteration} input method and |\ensuregreek| else.
+%
+% \DescribeMacro\ensureascii
+% The Babel core defines |\ensureascii| that typesets its
+% argument using an ASCII-compatible ``standard text font encoding''.
+% It is the recommended way for text parts requiring Latin letters
+% but no language switch.
+%
+%
+% \subsection{Greek numbering \label{sec:greek-numbering}}
+% The \href{https://en.wikipedia.org/wiki/Greek_numerals}
+% {Greek (Milesian) alphabetical numbering system}\footnote{
+% Attic numerals, which predate the Milesian numerals
+% are implemented in package |athnum|.}
+% is still used in everyday life for short enumerations.
+% It was used for dates and numbers in the range of several thousands
+% in official editions up to the beginning of the 20th century and
+% is still used by the Eastern Orthodox Church and certain scholars.
+% Unfortunately, most Greeks don't know how to write Greek numbers
+% bigger than 20 or 30.
+%
+% \DescribeMacro{\greeknumeral}
+% The command |\greeknumeral| makes it possible to typeset Greek
+% numerals for numbers up to \hbox{999\,999}.
+% \DescribeMacro{\Greeknumeral}
+% |\Greeknumeral| is the ``uppercase'' version of this macro.
+% Here are the conventions:
% \begin{itemize}
% \item There is no Greek numeral for any number less than or equal
% to $0$.
-% \item Numbers from $1$ to $9$ are denoted by letters alpha, beta,
-% gamma, delta, epsilon, stigma, zeta, eta, theta, followed by a
-% mark similar to the mathematical symbol ``prime''. (Nowadays
-% instead of letter stigma the digraph sigma tau is used for number
-% $6$. Mainly because the letter stigma is not always available, so
-% people opt to write down the first two letters of its name as an
-% alternative. In our implementation we produce the letter stigma,
-% not the digraph sigma tau.)
-% \item Decades from $10$ to $90$ are denoted by letters iota,
-% kappa, lambda, mu, nu, xi, omikron, pi, qoppa, again followed by
-% the numeric mark. The qoppa used for this purpose has a special
-% zig-zag form, which doesn't resemble at all the original
-% `q'-like qoppa.
-% \item Hundreds from $100$ to $900$ are denoted by letters rho,
-% sigma, tau, upsilon, phi, chi, psi, omega, sampi, followed by the
+% \item Numbers from $1$ to $9$ are denoted by letters
+% \emph{alpha}, \emph{beta}, \emph{gamma}, \emph{delta}, \emph{epsilon},
+% \emph{stigma}\footnote{
+% cf.\ \hyperref[greeknumeralsix]{\cs{greeknumeralsix}}},
+% \emph{zeta}, \emph{eta}, \emph{theta}, followed by a \emph{keraia},
+% a mark similar to the mathematical symbol ``prime''.
+% \item Decades from $10$ to $90$ are denoted by letters \emph{iota},
+% \emph{kappa}, \emph{lambda}, \emph{mu}, \emph{nu}, \emph{xi},
+% \emph{omikron}, \emph{pi}, \emph{koppa}\footnote{
+% cf.\ \hyperref[greeknumeralninety]{\cs{greeknumeralninety}}},
+% again followed by the numeric mark.
+% \item Hundreds from $100$ to $900$ are denoted by letters \emph{rho},
+% \emph{sigma}, \emph{tau}, \emph{upsilon}, \emph{phi}, \emph{chi},
+% \emph{psi}, \emph{omega}, \emph{sampi}, followed by the
% numeric mark.
% \item Any number between $1$ and $999$ is obtained by a group of
% letters denoting the hundreds decades and units, followed by a
% numeric mark.
% \item To denote thousands one uses the same method, but this time
-% the mark is placed in front of the letter, and under the baseline
-% (it is inverted by 180 degrees). When a group of letters denoting
-% thousands is followed by a group of letters denoting a number
-% under $1000$, then both marks are used.
+% the mark is an \emph{aristeri keraia}, a prime inverted by 180 degrees
+% and placed in front of the letter, under the baseline.
+% When a group of letters denoting thousands is followed by a group of
+% letters denoting a number under $1000$, both marks are used.
% \end{itemize}
-%
-% Using these conventions one obtains numbers up to \hbox{999\,999}.
-% \DescribeMacro{\greeknumeral}
-% The command |\greeknumeral| makes it possible to typeset Greek
-% numerals. There is also an
-% \DescribeMacro{\Greeknumeral}
-% ``uppercase'' version of this macro: |\Greeknumeral|.
-%
-% Another system which was in wide use only in Athens, could
-% express any positive number. This system is implemented in
-% package |athnum|.
+% The shape of the obsolete characters used for number 6
+% (\emph{digamma}/\emph{stigma}) and 90 (\emph{koppa}) evolved over time
+% and different characters are in use for them today.
+% The following four macros can be re-defined to configure
+% |\greeknumeral| and |\Greeknumeral| respectively:
+%
+% \DescribeMacro\greeknumeralsix
+% \phantomsection\label{greeknumeralsix}
+% Originally, the sixth letter of the alphabet, standing for 6, was the
+% \emph{digamma} -- just as its Latin equivalent F is the sixth letter of
+% the Latin alphabet.
+% As Greek script turned to uncial and then lowercase, digamma changed its
+% shape – it became similar to the ligature for sigma-tau (\emph{stigma}).
+% People started using the stigma or the digraph sigma tau\footnote{
+% Mainly because the letter stigma is not always available, so people
+% opted to write down the first two letters of its name instead.}.
+% The macro |\greeknumeralsix| allows configuring the symbol for the
+% number 6 in |\greeknumeral|,
+% \DescribeMacro\greeknumeralSix
+% the macro |\greeknumeralSix| does the same for |\Greeknumeral|.
+% The default values are |\textstigma| and |\textStigma|.
+%
+% \DescribeMacro\greeknumeralninety
+% \phantomsection\label{greeknumeralninety}
+% Three symbols are in use for the number 90:
+% Classicists prefer the q-like ``archaic'' \emph{koppa}
+% and, more rarely, its uncial form\footnote{
+% resembling CYRILLIC LETTER KOPPA or GOTHIC LETTER NINETY},
+% modern Greek uses the zig-zag shaped ``modern'' \emph{koppa}
+% exclusively. The macro |\greeknumeralninety| allows configuring
+% the symbol for the number 90 in |\greeknumeral|,
+% \DescribeMacro\greeknumeralNinety
+% the macro |\greeknumeralNinety| does the same for |\Greeknumeral|.
+% The default values are |\textkoppa| and |\textKoppa| for modern Greek
+% and |\textqoppa| and |\textqoppa| for ancient Greek.
+%
+% There is no such variation in the shape of the \emph{sampi}
+% used for the number 900.
%
% \StopEventually{}
%
-% \section{Implementation}
%
+% \section{Implementation}
% The macro |\LdfInit| takes care of preventing that this file is
% loaded more than once, checking the category code of the
% \texttt{@} sign, etc.
-% \changes{greek-1.0b}{1996/11/02}{Now use \cs{LdfInit} to perform
-% initial checks}
+% \changes{greek-1.0b}{1996/11/02}{
+% Use \cs{LdfInit} to perform initial checks.}
% \begin{macrocode}
%<*code>
\LdfInit\CurrentOption{captions\CurrentOption}
@@ -371,134 +421,221 @@
\gdef\CurrentOption{greek}
% \end{macrocode}
%
-% Hyphenation patterns:
+%
+% \subsection{Hyphenation patterns \label{sec:hyphenation-patterns}}
+%
% When this file is read as an option, i.e. by the |\usepackage|
% command, \texttt{greek} could be an `unknown' language in
% which case we have to make it known. So we check for the
% existence of the three variants of the Greek language
-% |\l@greek|, |\l@monogreek|, and |l@ancientgreek| to see whether
-% we have to do something here.
-% \changes{greek-1.9}{2014/07/20}{Support all 3 language (hyphenation)
-% variants.}
+% |\l@greek|, |\l@monogreek|, and |l@ancientgreek|
+% and set the hyphenation to |\language0| for the missing ones.
+% \changes{babel-greek-1.09}{2014/07/20}{
+% Load correct hyphenation patterns (patch by Claudio Beccari).}
+% \changes{babel-greek-1.09c}{2014/10/21}{
+% Fix dummy hyphenation language names (patch Ulrike Fischer).}
% \begin{macrocode}
\ifx\l@greek\@undefined
\@nopatterns{greek}
- \adddialect\l@greek 0\fi
+ \adddialect\l@greek 0
+\fi
\ifx\l@monogreek\@undefined
- \adddialect\l@monogreek 0\fi
+ \@nopatterns{greek}
+ \adddialect\l@monogreek 0
+\fi
\ifx\l@ancientgreek\@undefined
- \adddialect\l@ancientgreek 0\fi
+ \@nopatterns{greek}
+ \adddialect\l@ancientgreek 0
+\fi
\newcount\bbl@monogreek \bbl@monogreek=\l@monogreek
\newcount\bbl@polygreek \bbl@polygreek=\l@greek
-\newcount\bbl@ancientgreek \bbl@ancientgreek=\l@ancientgreek
+\newcount\bbl@ancientgreek \bbl@ancientgreek=\l@ancientgreek
% \end{macrocode}
-% The |\extrasgreek| macro is called when switching the language to Greek.
-% We collect code for polytonic and ancient greek in the macros
-% |extraspolutonikogreek| and |extrasancientgreek| and add it later to
-% |extrasgreek|.
+% Use the \emph{language hooks} (cf.\ section~\ref{sec:language-hooks})
+% to set the correct hyphenation patterns.
+% (We collect setup code for the language variants \Lopt{polutoniko} and
+% \Lopt{ancient} in |\extraspolutonikogreek| and |\extrasancientgreek|;
+% \DescribeMacro\extraspolutonikogreek
+% their content is added to |\extrasgreek| by the respective language
+% attributes, cf.\ section~\ref{sec:language-variants}).
+% \DescribeMacro\extrasancientgreek
+% ^^A TODO: Move the |\let\l@greek=...| definitions to the language
+% ^^A attribute functions (as we only have one language variant per document)
+% ^^A or use the hooks to allow more than one language variant?
+% \changes{greek-1.5a}{2013/06/27}{provide ``extraspolutonikogreek'' also
+% for Xe/LuaTeX.}
% \begin{macrocode}
-\addto\extrasgreek{\let\l@greek\bbl@monogreek\relax}
+\addto\extrasgreek{\let\l@greek=\bbl@monogreek}
\addto\extraspolutonikogreek{\l@greek=\bbl@polygreek}
\addto\extrasancientgreek{\l@greek=\bbl@ancientgreek}
% \end{macrocode}
%
-% Now we declare the |polutoniko| language attribute.
+% \begin{macro}{\providehyphenmins}
+% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to
+% provide a default value}
+% The macro |\providehyphenmins| is used to set the correct values of
+% the hyphenation parameters |\lefthyphenmin| and |\righthyphenmin|.
+% Yannis Haralambous has suggested the value 1.
% \begin{macrocode}
-\bbl@declare@ttribute{greek}{polutoniko}{%
+\providehyphenmins{\CurrentOption}{\@ne\@ne}
% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Language variants \label{sec:language-variants}}
+%
+% The Babel core provides the command |\bbl@declare@ttribute| for the
+% declaration of language attributes in language definition files.
+% It takes three arguments:
+% the name of the language, the attribute to be defined,
+% and the code to be executed when the attribute is to be used.
+% If the language attribute is selected, the third argument is executed
+% after reading the *.ldf file.
+%
+% \subsubsection{\Lopt{polutoniko}}
+% The |polutoniko| language attribute selects the ``polytonic'' spelling.
% This code adds the expansion of |\extraspolutonikogreek| to
-% |\extrasgreek| and changes the definition of |\today| for Greek
-% to produce polytonic month names (by re-defining |\gr@month|).
+% |\extrasgreek| to set up support for multi-accented characters
+% and hyphenation patterns for the polytonic orthography.
% \begin{macrocode}
+\bbl@declare@ttribute{greek}{polutoniko}{%
\expandafter\addto\expandafter\extrasgreek
\expandafter{\extraspolutonikogreek}%
+% \end{macrocode}
+% It also uses polytonic spelling for auto-strings
+% (captions and month names).
+% \begin{macrocode}
\let\captionsgreek\captionspolutonikogreek
- \let\gr@month\gr@c@month
+ \let\gr@month\gr@polutoniko@month
% \end{macrocode}
-% We need to take some extra precautions in order not to break
-% older documents which still use the old \Lopt{polutonikogreek}
-% pseuso-language option: language switching commands like
-% |\selectlanguage{polutonikogreek}|, call the
-% |extraspolutonikogreek| macro, set the language to |\l@polutonikogreek|
-% and use |\datepolutonikogreek| for |\today|. We define aliases:
-% \changes{greek-1.3f}{1999/09/29}{Added some code to make older
-% documents work}
-% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was
-% missing}
+%
+% For backwards compatibility, ``polytonic'' spelling can also be
+% selected via the dummy language \Lopt{polutonikogreek}.
+% However, it is not possible to use both options,
+% \Lopt{greek} and \Lopt{polutonikogreek} in one document.
+% We also define aliases to allow language switching commands using
+% the language name |polutonikogreek|:
+% \changes{greek-1.3f}{1999/09/29}{
+% Added some code to make older documents work.}
+% \changes{greek-1.3g}{2000/02/04}{\cs{noextraspolutonikogreek} was missing.}
% \begin{macrocode}
\let\l@polutonikogreek\l@greek
\let\datepolutonikogreek\dategreek
\let\extraspolutonikogreek\extrasgreek
\let\noextraspolutonikogreek\noextrasgreek
- }
+}
% \end{macrocode}
-% The |ancient| language attribute is used for classical Greek.
-% \changes{greek-1.9}{2014/07/20}{Add support for ancient Greek.}
+%
+% \subsubsection{\Lopt{polytonic}}
+%
+% \changes{babel-greek-1.12}{2023/03/04}{
+% New language attribute \Lopt{polytonic} (alias for \Lopt{polutoniko}).}
+%
+% The |polytonic| language attribute is an alias for the
+% attribute |polutoniko| matching the spelling for this orthography
+% variant in \pkg{polyglossia} and Babel |*.ini| files.
% \begin{macrocode}
-\bbl@declare@ttribute{greek}{ancient}{%
+\bbl@declare@ttribute{greek}{polytonic}{%
+ \expandafter\addto\expandafter\extrasgreek
+ \expandafter{\extraspolutonikogreek}%
+ \let\captionsgreek\captionspolutonikogreek
+ \let\gr@month\gr@polutoniko@month
+}
% \end{macrocode}
-% This attribute adds the expansion of |\extraspolutonikogreek| and
-% |\extrasancientgreek| to |\extrasgreek| to set up support for
-% multi-accented characters and ancient hyphenation patterns.
-% Auto-strings (captions) are specific to ancient Greek while |\today|
-% uses modern polytonic month names (as there existed incompatible
-% sets of month names and no common calendar in ancient Greece.
+%
+% \subsubsection{\Lopt{ancient}}
+%
+% \changes{babel-greek-1.09}{2014/07/20}{Add support for ancient Greek.}
+%
+% The \Lopt{ancient} language attribute is used for classical Greek.
+% This attribute adds the expansion of |\extraspolutonikogreek| and
+% |\extrasancientgreek| to |\extrasgreek| to set up support for
+% multi-accented characters and ancient hyphenation patterns.
% \begin{macrocode}
+\bbl@declare@ttribute{greek}{ancient}{%
\expandafter\addto\expandafter\extrasgreek
\expandafter{\extraspolutonikogreek}% multi-accented letters
\expandafter\addto\expandafter\extrasgreek
\expandafter{\extrasancientgreek}%
+% \end{macrocode}
+% Auto-strings (captions) are specific to ancient Greek while |\today|
+% uses modern polytonic month names (as there existed incompatible
+% sets of month names and no common calendar in ancient Greece).
+% \begin{macrocode}
\let\captionsgreek\captionsancientgreek
- \let\gr@month\gr@c@month % (modern) polytonic month names
- }
+ \let\gr@month\gr@polutoniko@month % (modern) polytonic month names
+% \end{macrocode}
+% Classicists tend to use the Q-like ``archaic'' koppa for the number 90.
+% Thus, for classical Greek, we set the default to the ``archaic'' koppa
+% (cf.\ section~\ref{sec:greek-numbering}).
+% \begin{macrocode}
+ \renewcommand{\greeknumeralninety}{\textqoppa}%
+ \renewcommand{\greeknumeralNinety}{\textQoppa}%
+}
% \end{macrocode}
%
-% \section{Font setup}
%
-% Typesetting Greek texts requires a font with Greek characters:
+% \subsection{Font setup \label{sec:font-setup}}
%
-% For 8-bit LaTeX, this package uses fonts with the
-% \href{http://www.ctan.org/pkg/greek-fontenc}{LGR font encoding}.
-% With the XeTeX or LuaTeX engines and Unicode fonts, the user must ensure
-% that the selected font contains the required glyphs.
-% LGR-encoded fonts can also be used alongside Unicode fonts with XeTeX/LuaTeX
-% to enable the input of Greek letters via the Latin transcription provided by
-% this font encoding.
+% \subsubsection{Greek font encoding \label{sec:greekfontencoding}}
%
-% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now
-% lowercase}
-% \changes{greek-1.4}{2013/05/17}{\file{lgrenc.def} moved to the
-% separate package `greek-fontenc'}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Load \file{euenc.def} if EU1 or EU2 font encoding is detected.}
+% \changes{greek-1.2a}{1997/10/31}{filename \file{lgrenc.def} now lowercase}
+% \changes{greek-1.4}{2013/05/17}{
+% \file{lgrenc.def} moved to the separate package `greek-fontenc'}
% \changes{greek-1.5}{2013/06/21}{LGR setup skipped with XeTeX/LuaTeX}
% \changes{greek-1.7}{2013/09/09}{Do not load euenc.def with XeTeX/LuaTeX
-% (too complicated to get it right).}
-% \changes{greek-1.8}{2013/11/30}{Check for EU1/EU2 font encoding
-% instead of engine}
-% \changes{babel-greek-1.9f}{2016/02/04}{Check also for TU font encoding.}
-% \changes{babel-greek-1.9i}{2020/02/27}{Update check for Unicode fonts.}
+% (too complicated to get it right).}
+% \changes{babel-greek-1.08}{2013/11/30}{
+% Check for EU1/EU2 font encoding instead of engine}
+% \changes{babel-greek-1.09f}{2016/02/04}{Check also for standard
+% Unicode text encoding ``TU'' (new in fontspec v2.5a).}
+% \changes{babel-greek-1.09i}{2020/02/27}{Update check for Unicode fonts.}
% \changes{babel-greek-1.10}{2020/11/10}{Use TU with Xe/LuaTeX.}
-%
-% \DescribeMacro\greekfontencoding
-% We test for available font encodings and set |\greekfontencoding|
-% and the internal macro |\bbl@greek@fontencdef| with the name of the
-% font definition file with Greek LICR macros.
-% The default is LGR for 8-bit TeX engines and TU for Xe/LuaTeX.
-% (TODO: The font encoding definition file was renamed to tuenc-greek.def
-% in \emph{greek-fontenc} 0.14 (2020-02-28).)
+% \begin{macro}{\greekfontencoding}
+% The macro |\greekfontencoding| holds the name of the font
+% encoding\footnote{cf.\
+% \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}
+% {encguide.pdf}}
+% used to ensure support of the Greek script.
+% The default is LGR for 8-bit TeX and TU for Xe/LuaTeX.\footnote{
+% Document authors must ensure that the selected font actually contains
+% the required glyphs.
+%
+% LGR-encoded fonts can be used alongside Unicode fonts with
+% XeTeX/LuaTeX to enable the input of Greek letters via the Latin
+% transliteration (with some limitations, see \file{test-greek.tex}).}
+% It can be overridden defining |\greekfontencoding| with a custom value
+% before loading \pkg{babel}.
+%
+% Also store the name of the \emph{encoding definition file}\footnote{
+% see \href{https://www.latex-project.org/help/documentation/fntguide.pdf}
+% {fntguide.pdf}}
+% with the extended Greek setup for the Greek font encoding.
% \begin{macrocode}
-\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
+\ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
\providecommand*{\greekfontencoding}{\UnicodeEncodingName}
\providecommand*{\bbl@greek@fontencdef}{tuenc-greek}
\else
\providecommand*{\greekfontencoding}{LGR}
\providecommand*{\bbl@greek@fontencdef}{lgrenc}
+ % TODO the more generic version fails :(
+ % \edef\bbl@greek@fontencdef{\lowercase{\greekfontencoding}enc}
\fi
% \end{macrocode}
-% Ensure that the Greek LICR macros are available:
+% \end{macro}
+%
+% \subsubsection{Ensure loading of Greek font encoding definitions.
+% \label{load-greek-font-encoding-definitions}}
+%
+% If the \emph{encoding definition file} for |\greekfontencoding| is not yet
+% loaded, do this now:
% \begin{macrocode}
\@ifl@aded{def}{\bbl@greek@fontencdef}{}
{% else
- \InputIfFileExists{\bbl@greek@fontencdef .def}{}{% else
+ \InputIfFileExists{\bbl@greek@fontencdef .def}{}
+ {% else
\bbl@error{Font support for the Greek script missing.\\
babel-greek can't typeset Greek.\\
Install the "greek-fontenc" package\\
@@ -509,111 +646,117 @@
}
}
% \end{macrocode}
+% If the PU font encoding is defined (by \pkgref{hyperref}), load extended
+% Greek support for it. Do this in the |\AtBeginDocument| hook because
+% documents may load \pkg{hyperref} after \pkg{babel}.
+% We cannot rely on |@| being a letter when the hook is called and we must
+% not use |\makeatother| in the hook
+% (\href{https://tex.stackexchange.com/questions/62583/is-it-really-bad-to-use-makeatletter-and-makeatother-in-a-package-or-class-fil}
+% {explanation at stackexchange}).
+% We use a temporary function to save and restore the previous catcode.
+% \changes{babel-greek-1.10}{2020/11/10}{Load \file{puenc-greek.def}
+% from \pkg{greek-fontenc} if used with hyperref.}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Don't use \cs{makeatother} in \cs{AtBeginDocument}.}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifl@aded{def}{puenc}%
+ {\@ifl@aded{def}{puenc-greek}
+ {}%
+ {\edef\RestoreAtCatcode{\catcode`@=\the\catcode`@\relax}%
+ \makeatletter
+ \InputIfFileExists{puenc-greek.def}%
+ {}%
+ {\bbl@warning{I cannot find the "puenc" Greek fixes
+ from "greek-fontenc".}%
+ }%
+ \RestoreAtCatcode
+ }%
+ }% end "puenc.def loaded" branch
+ {}% empty "puenc.def not loaded" branch
+}
+% \end{macrocode}
+%
+% \subsubsection{Font encoding switches \label{sec:font-encoding-switches}}
% \begin{macro}{\greekscript}
-% The TextCommand |\greekscript| is a declaration that switches the font
-% encoding to |\greekfontencoding| if the current font encoding does not
-% provide a (typically empty) local variant.
-% \changes{greek-1.8.1}{2013/12/03}{Set `encodingdefault' in `greekscript'
-% to fix Greek in titles, footnotes, etc. with document language Greek.}
+% The TextCommand\footnote{See
+% \href{https://www.latex-project.org/help/documentation/fntguide.pdf}
+% {fntguide.pdf} for more info about \emph{TextCommands}.}
+% |\greekscript| is a declaration that switches the font
+% encoding to |\greekfontencoding|.
+% The extended Greek font encoding definitions from \pkgref{greek-fontenc}
+% define empty local variants for TU, LGR, and PU, so that the declaration
+% does nothing if the active font encoding supports the Greek script.
+% \changes{babel-greek-1.08}{2013/11/27}{
+% New TextCommands ``greekscript'' and ``ensuregreek''.}
+% \changes{babel-greek-1.08a}{2013/12/03}{Set `encodingdefault'
+% to fix Greek in footnotes etc. with document language Greek.}
% \begin{macrocode}
\ProvideTextCommandDefault{\greekscript}{%
\fontencoding{\greekfontencoding}\selectfont
- \def\encodingdefault{\greekfontencoding}}
+ \def\encodingdefault{\greekfontencoding}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\ensuregreek}
-% The TextCommand |\ensuregreek| sets it argument in |\greekfontencoding|
+% The TextCommand |\ensuregreek| sets its argument in |\greekfontencoding|
% if the current font encoding does not provide a (typically empty) local
% variant.
% \begin{macrocode}
\ProvideTextCommandDefault{\ensuregreek}[1]{%
- \leavevmode{\greekscript #1}}
+ \leavevmode {\greekscript #1}}
% \end{macrocode}
% \end{macro}
-%
-% The package hyperref defines the PU font encoding which supports
-% monotonic Greek. Load support for polytonic greek, archaic symbols,
-% and the |\greekscript| and |\ensuregreek| TextCommands:
-% \begin{macrocode}
-\AtBeginDocument{
- \@ifl@aded{def}{puenc}{
- \makeatletter % required inside \AtBeginDocument
- \InputIfFileExists{puenc-greek.def}{}{% else
- \bbl@warning{I can't find the file puenc-greek.def from "greek-fontenc".}
- }
- \makeatother
- }{}
+% \begin{macro}{\BabelGreekRestoreFontEncoding}
+% The declaration |\BabelGreekRestoreFontEncoding| changes the font encoding
+% to the value it had before the switch to the Greek language. It does
+% nothing, if the language switch did not trigger a font encoding switch.
+% \changes{babel-greek-1.12}{2023/03/04}{New macro.}
+% \begin{macrocode}
+\def\BabelGreekRestoreFontEncoding{%
+ \ifx\cf@encoding\BabelGreekPreviousFontEncoding
+ \else
+ \let\encodingdefault\BabelGreekPreviousFontEncoding
+ \fontencoding{\encodingdefault}\selectfont
+ \fi
}
-% \end{macrocode}
-%
-% \subsection{Fixes for the LGR font encoding}
-%
+% \end{macrocode}
+% \end{macro}
+% Add font encoding switches to the language hooks
+% (cf.\ section~\ref{sec:language-hooks}) to ensure a font encoding
+% supporting the Greek script is used in Greek text parts:
+% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Use EU1 or EU2 for Latin script if available}
+% \changes{babel-greek-1.11}{2020/11/20}{Save/restore previous font encoding
+% instead of switching to \cs{latinencoding} when leaving Greek.}
+% \changes{babel-greek-1.12}{2023/03/04}{Save previous font encoding
+% in \cs{BabelGreekPreviousFontEncoding}.}
% \begin{macrocode}
-\@ifl@aded{def}{lgrenc}{%
+\addto\extrasgreek{%
+ \let\BabelGreekPreviousFontEncoding\cf@encoding
+ \greekscript}
+\addto\noextrasgreek{\BabelGreekRestoreFontEncoding}
% \end{macrocode}
%
-% We redefine a few commands in the LGR encoding to work around problems
-% because LGR is no \emph{standard text encoding} but has Greek letters in
-% the places of Latin ones.
-% The ampersand must work in text and math mode. We provide the text
-% command |\textampersand| and re-define |\&| to use it in text mode.
-% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark}
-% misses a `t', \cs{copyright} should be \cs{textcopyright}}
-% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}}
-% \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because
-% the definitions require the \texttt{\textbackslash latintext} macro
-% defined by Babel.}
-% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters
-% for "textcopyright" and "textregistered" macros}
-% \changes{greek-1.5}{2013/06/15}{\textbackslash & made TextCommand}
-% \changes{babel-greek-1.9j}{2020/03/17}{Fix ampersand in math.}
+% \subsubsection{Additional commands for the LGR font encoding}
%
-% \begin{macrocode}
- \ProvideTextCommand{\textcopyright}{LGR}{\ensureascii{\textcopyright}}
- \ProvideTextCommand{\textregistered}{LGR}{\ensureascii{\textregistered}}
- \ProvideTextCommand{\texttrademark}{LGR}{\ensureascii{\texttrademark}}
- \let\ltx@amp\&
- \ProvideTextCommandDefault{\textampersand}{\ltx@amp}
- \ProvideTextCommand{\textampersand}{LGR}{\ensureascii{\ltx@amp}}
- \DeclareRobustCommand{\&}{\ifmmode\ltx@amp\else\textampersand\fi}
- \ProvideTextCommand{\SS}{LGR}{\ensureascii{\SS}}
-% \end{macrocode}
+% The actions in this section add ``harmless'' setup steps for the LGR
+% font encoding that cannot be done in the \file{lgrenc.def}
+% encoding definition file.
%
-% \begin{macro}{\greek@roman}
-% \begin{macro}{\greek@Roman}
-% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman}
-% back to the language specific file}
-% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to
-% be added to \cs{extraspolutonikogreek}}
-% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need
-% \emph{not} be in \cs{extraspolutonikogreek} when they are already
-% in \cs{extrasgreek}}
-% \changes{greek-1.5}{2013/06/15}{\cs{@roman} and \cs{@Roman} as TextCommands
-% (BUG: this extended the expansion problem to all languages!)}
-% \changes{greek-1.6}{2013/07/19}{apply a patch by Enrico Gregorio.
-% Thanks to Claudio Beccari for testing and reporting.}
-%
-% To prevent roman numerals being typeset in greek letters we need
-% to adopt the internal \LaTeX\ commands |\@roman| and
-% |\@Roman|. \emph{Up to version 1.5, the definition caused errors where
-% |\@roman| ends up in a situation where the argument needs to be expanded
-% (e.g. Roman page numbers in the ToC).}
+% We do this only, if the LGR font encoding is defined (either by \pkg{fontenc}
+% or \pkg{babel-greek}), but also if it is not the |\greekfontencoding|:
% \begin{macrocode}
- \def\@roman#1{\expandafter\ensureascii\expandafter{\romannumeral#1}}
- \def\@Roman#1{\expandafter\ensureascii\expandafter{%
- \expandafter\@slowromancap\romannumeral#1@}}
+\@ifl@aded{def}{lgrenc}{%
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% Now we define two commands that switch
-% to the LGR font encoding. The Babel core defines corresponding commands
-% to switch to a Latin font encoding.
%
% \begin{macro}{\greektext}
-% The declaration |\greektext| switches to LGR.
-% For shorter pieces of text the |\textgreek| macro should be
-% used.
+% The declaration |\greektext| switches to LGR. Use this if you explicitly
+% require LGR (e.g. to use the Latin transliteration or special fonts).
+% Use |\greekscript| instead, if you want to avoid a font encoding change
+% if the current font encoding already supports the Greek script (e.g. TU).
+% For shorter pieces of text, the |\lgrfont| (see below) or |\ensuregreek|
+% commands should be used. Cf.\ section~\ref{sec:font-encoding-switches}.
% \begin{macrocode}
\DeclareRobustCommand{\greektext}{%
\fontencoding{LGR}\selectfont
@@ -621,59 +764,190 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\textgreek}
-% This command takes an argument which is then typeset using the
-% LGR font encoding. In order to avoid many encoding switches
-% it operates in a local scope.
+% \begin{macro}{\lgrfont}
+% This command takes an argument which is typeset using the
+% LGR font encoding.
+%
+% The original name |\textgreek| is deprecated because of its ambiguitiy:
+% The command does not change the text \emph{language} but only the
+% font encoding, which allows the use of the Greek \emph{script}
+% but does not activate Greek hyphenation and case-changing rules.
% \changes{greek-1.0b}{1996/09/23}{Added a level of braces to keep
-% encoding change local}
+% encoding change local}
% \changes{greek-1.3k}{2003/03/19}{Added \cs{leavevmode} as was done
-% with \cs{latintext}}
+% with \cs{latintext}}
+% \changes{babel-greek-1.12}{2023/03/04}{^^A
+% Simplified implementation using \cs{\DeclareTextFontCommand}.
+% Name changed from \cs{textgreek} to \cs{lgrfont}.}
% \begin{macrocode}
- \DeclareRobustCommand{\textgreek}[1]{\leavevmode{\greektext #1}}
+ \DeclareTextFontCommand{\lgrfont}{\greektext}
+ \let\textgreek\lgrfont
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\textol}
-% The \href{http://www.ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
+% The \href{https://ctan.org/pkg/cbgreek-complete}{CB Greek fonts}
% contain an outline family. In order to make it available,
% we define the command |\textol|. (This font-specific macro does not
-% fit in a language defintion file is and only kept for backwards
+% fit in a language definition file and is only kept for backwards
% compatibility.)
% \begin{macrocode}
\def\outlfamily{\usefont{LGR}{cmro}{m}{n}}
\DeclareTextFontCommand{\textol}{\outlfamily}
-}{} % End of LGR fixes.
% \end{macrocode}
% \end{macro}
+% Add LGR-specific variants to some \emph{TextCommands}
+% that use Latin characters in their default definition.
+% These definitions cannot be done in \file{lgrenc.def} because they rely
+% on |\ensureascii| (defined by \pkg{babel}).
+% \changes{greekfdd-2.2c}{1999/04/05}{Fixed typos, \cs{textrademark}
+% misses a `t', \cs{copyright} should be \cs{textcopyright}}
+% \changes{greekfdd-2.2d}{1999/04/25}{removed redefinition of \cs{\&}}
+% \changes{greek-1.4}{2013/05/17}{moved here from \file{lgrenc.def} because
+% the definitions require the \cs{latintext} macro defined by Babel.}
+% \changes{greek-1.5}{2013/05/27}{enable use of "textcomp" characters
+% for "textcopyright" and "textregistered" macros}
+% \changes{babel-greek-1.08}{2013/11/27}{
+% Use font-encoding specific TextCommands.}
+% \changes{babel-greek-1.12}{2023/03/04}{Drop definition for \cs{\SS}.}
+% \begin{macrocode}
+ \ProvideTextCommand{\textcopyright}{LGR}{\ensureascii{\textcopyright}}
+ \ProvideTextCommand{\textregistered}{LGR}{\ensureascii{%
+ \textregistered}}
+ \ProvideTextCommand{\texttrademark}{LGR}{\ensureascii{\texttrademark}}
+% \end{macrocode}
%
-% \section{Definitions for the Greek language}
-%
-% The next step consists in defining commands to switch to (and
-% from) the Greek language.
-%
-% \begin{macro}{\greekhyphenmins}
-% This macro is used to store the correct values of the hyphenation
-% parameters |\lefthyphenmin| and |\righthyphenmin|.
-% \changes{greek-1.3h}{2000/09/22}{Now use \cs{providehyphenmins} to
-% provide a default value}
+% \begin{macro}{\textampersand}
+% LGR has a ``middle dot'' glyph at the place of the ampersand.
+% Provide the \emph{TextCommand} |\textampersand| and an LGR-specific
+% version. It is used in the next section to define a version of |\&|
+% that also works in LGR.
+% \changes{greek-1.5}{2013/06/15}{Make \cs{\&} a TextCommand}
+% \changes{babel-greek-1.09j}{2020/03/17}{Fix ampersand in math.}
% \begin{macrocode}
-% Yannis Haralambous has suggested this value
-\providehyphenmins{\CurrentOption}{\@ne\@ne}
+ \let\bbl@greek@original@amp\&
+ \ProvideTextCommandDefault{\textampersand}{\bbl@greek@original@amp}
+ \ProvideTextCommand{\textampersand}{LGR}{%
+ \ensureascii{\bbl@greek@original@amp}}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\EnsureStandardFontEncoding}
+% The TextCommand |\EnsureStandardFontEncoding| can be used to make
+% existing commands ``LGR-proof''. It makes sure its argument is typeset
+% using a \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}
+% {standard text font encoding}.
+% The default is an empty command: almost all commonly used font encodings
+% are standard text encodings -- LGR is the notable exception.
+% The local LGR variant uses |\ensureascii| from the Babel core that comes
+% with elaborate heuristics to select a suitable standard font encoding.
+% A special clause for \pkg{hyperref} avoids warnings from this package.
+% \changes{babel-greek-1.12}{2023/03/04}{New TextCommand.}
+% \begin{macrocode}
+ \ProvideTextCommandDefault{\EnsureStandardFontEncoding}{\@firstofone}
+ \ProvideTextCommand{\EnsureStandardFontEncoding}{LGR}[1]{%
+ \ensureascii{#1}}
+ \AtBeginDocument{\@ifpackageloaded{hyperref}
+ {\pdfstringdefDisableCommands{%
+ \let\EnsureStandardFontEncoding\@firstofone}}
+ {}}
+% \end{macrocode}
+% \end{macro}
+% End the LGR additions block:
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+
+% \subsubsection{LGR workarounds \label{sec:lgr-redefinitions}}
+%
+% The following redefinitions work around problems with the
+% non-standard LGR font encoding.
+% As they may have serious side-effects, they are only done if LGR is the
+% default Greek font encoding (cf.\ section~\ref{sec:greekfontencoding}).
+%
+% As an emergency measure, the \Lopt{local-LGR-fixes} or \Lopt{no-LGR-fixes}
+% modifiers (cf.\ section \ref{sec:modifiers}) can be used to restrict
+% the ``roman'' redefinitions to text parts using the Greek language or skip
+% them completely.
+%
+% To prevent Roman numerals being typeset with Greek letters in text parts
+% using the LGR font encoding, they must be wrapped in |\ensureascii|.
+% However, Roman numerals are also auto generated by LaTeX and
+% used in moving arguments.\footnote{
+% For example, Roman page numbers are generated at ``unpredictable''
+% positions and can move to the ToC, (hyper)references, or an index.}
+% These ``moving'' Roman numbers must be LGR-proofed also if they originate
+% from a text part using a standard font encoding. This can only be ensured by
+% a global re-definition of the generating functions |\@roman| and |\@Roman|.
+% On the other hand, the re-definition breaks the assumption by
+% MakeIndex, that page numbers are plain character sequences.
+% \pkg{Hyperref} assumes that |\thepage| is expandable and doesn't
+% contain formatting instructions (cf.\
+% \href{https://github.com/latex3/babel/issues/170}{Babel issue \#170}).
+% \changes{greek-1.2e}{1999/04/16}{Moved redefinition of \cs{@roman}
+% back to the language specific file}
+% \changes{greek-1.3d}{1999/08/27}{\cs{@roman} and \cs{@Roman} need to
+% be added to \cs{extraspolutonikogreek}}
+% \changes{greek-1.3e}{1999/09/24}{\cs{@roman} and \cs{@Roman} need
+% \emph{not} be in \cs{extraspolutonikogreek} when they are
+% already in \cs{extrasgreek}}
+% \changes{greek-1.5}{2013/06/15}{\cs{@roman} and \cs{@Roman} as TextCommands
+% (BUG: this extended the expansion problem to all languages!)}
+% \changes{greek-1.6}{2013/07/19}{Apply a patch by Enrico Gregorio.
+% Thanks to Claudio Beccari for testing and reporting.}
+%
+% The ampersand macro |\&| is used in both, text and math mode.
+% Let it use the new defined \emph{TextCommand} |\textampersand|
+% in text mode.
+% \begin{macrocode}
+\def\bbl@tempa{LGR}
+\ifx\greekfontencoding\bbl@tempa
+ \def\bbl@greek@roman#1{\expandafter\EnsureStandardFontEncoding%
+ \expandafter{\romannumeral#1}}
+ \def\bbl@greek@Roman#1{\expandafter\EnsureStandardFontEncoding%
+ \expandafter{\expandafter\@slowromancap\romannumeral#1@}}
+ \DeclareRobustCommand{\bbl@greek@ampersand}{%
+ \ifmmode\bbl@greek@original@amp\else\textampersand\fi}
+ \bbl@xin@{,no-LGR-fixes,}{,\BabelModifiers,}%
+ \ifin@
+ % skip re-definitions
+ \else
+ \bbl@xin@{,local-LGR-fixes,}{,\BabelModifiers,}%
+ \ifin@
+ \addto\extrasgreek{%
+ \babel@save\@roman
+ \babel@save\@Roman
+ \let\@roman\bbl@greek@roman
+ \let\@Roman\bbl@greek@Roman
+ \babel@save\&%
+ \let\&\bbl@greek@ampersand%
+ }
+ \else
+ \let\@roman\bbl@greek@roman
+ \let\@Roman\bbl@greek@Roman
+ \let\&\bbl@greek@ampersand
+ \fi
+ \fi
+\fi
+% \end{macrocode}
%
+%
+% \subsection{Definitions for the Greek language}
+%
+% The next step consists in defining macros for the requirements of Greek
+% typesetting which will later be added to the language switch hooks.
+%
+% \subsubsection{Auto-strings for Greek}
% \changes{greek-1.1e}{1997/10/12}{Added caption name for proof}
% \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe ep'ishc}
-% instead of \texttt{bl'pe ep'ishc}}
+% instead of \texttt{bl'pe ep'ishc}}
%
% \begin{macro}{\captionsgreek}
% The macro |\captionsgreek| defines all strings used in the
% four standard document classes provided with \LaTeX.
% \changes{greek-1.3h}{2000/09/20}{Added \cs{glossaryname}}
% \changes{greek-1.3i}{2000/10/02}{The final sigma in all names appears
-% as `s' instead of `c'.}
-% \changes{babel-greek-1.9i}{2020/02/27}{Fix accent in seename and alsoname.}
+% as `s' instead of `c'.}
+% \changes{babel-greek-1.09i}{2020/02/27}{Fix accent in seename and alsoname.}
% \begin{macrocode}
\addto\captionsgreek{%
\def\prefacename{\textPi\textrho\acctonos\textomicron\textlambda
@@ -682,8 +956,9 @@
\textphi\textomicron\textrho\acctonos\textepsilon\textfinalsigma}%
\def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota
\textlambda\texteta\textpsi\texteta}%
- \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron
- \textgamma\textrho\textalpha\textphi\acctonos\textiota\textalpha}%
+ \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota
+ \textomicron\textgamma\textrho\textalpha\textphi\acctonos
+ \textiota\textalpha}%
\def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha
\textlambda\textalpha\textiota\textomicron}%
\def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha\textrho
@@ -697,7 +972,8 @@
\textomega\textnu}%
\def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha
\textlambda\textomicron\textgamma\textomicron\textfinalsigma{}
- \textPi\textiota\textnu\acctonos\textalpha\textkappa\textomega\textnu}%
+ \textPi\textiota\textnu\acctonos\textalpha\textkappa\textomega
+ \textnu}%
\def\indexname{\textEpsilon\textupsilon\textrho\textepsilon
\texttau\acctonos\texteta\textrho\textiota\textomicron}%
\def\figurename{\textSigma\textchi\acctonos\texteta\textmu\textalpha}%
@@ -712,27 +988,31 @@
\def\headtoname{\textPi\textrho\textomicron\textfinalsigma}%
\def\pagename{\textSigma\textepsilon\textlambda\acctonos\textiota
\textdelta\textalpha}%
- \def\seename{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon}%
- \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon{}
- \textepsilon\textpi\acctonos\textiota\textsigma\texteta\textfinalsigma}%
+ \def\seename{\textbeta\textlambda\acctonos\textepsilon\textpi
+ \textepsilon}%
+ \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi
+ \textepsilon{} \textepsilon\textpi\acctonos\textiota\textsigma
+ \texteta\textfinalsigma}%
\def\proofname{\textAlpha\textpi\acctonos\textomicron
\textdelta\textepsilon\textiota\textxi\texteta}%
\def\glossaryname{\textGamma\textlambda\textomega\textsigma
\textsigma\acctonos\textalpha\textrho\textiota}%
- }
+}
% \end{macrocode}
% \end{macro}
+%
+% \subsubsection{Auto-strings for polytonic Greek}
% \changes{greek-1.2}{1997/10/28}{Added caption names for
-% \cs{polutonikogreek}}
+% \cs{polutonikogreek}}
% \changes{greek-1.3d}{1999/08/28}{Fixed typo, \texttt{bl'epe >ep'ishc}
-% instead of \texttt{bl'pe >ep'ishc}}
-%
+% instead of \texttt{bl'pe >ep'ishc}}
% \begin{macro}{\captionspolutonikogreek}
-% For texts written in the $\pi o\lambda\upsilon\tau
-% o\nu\kappa\acute{o}$ (polytonic greek) the translations are
+% For texts written in polytonic greek, the translations are
% the same as above, but some words are spelled differently. For
% now we just add extra definitions to |\captionsgreek| in order to
% override the earlier definitions.
+% \changes{babel-greek-1.09b}{2014/09/18}{Use named macros instead of
+% non-standard short accent macros for psili and dasia.}
% \begin{macrocode}
\let\captionspolutonikogreek\captionsgreek
\addto\captionspolutonikogreek{%
@@ -740,82 +1020,85 @@
\textphi\textomicron\textrho\accvaria\textepsilon\textfinalsigma}%
\def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon
\texttau\acctonos\texteta\textrho\textiota\textomicron}%
- \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu\textalpha}%
+ \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu
+ \textalpha}%
\def\headtoname{\textPi\textrho\accvaria\textomicron\textfinalsigma}%
- \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi\textepsilon{}
- \accpsili\textepsilon\textpi\acctonos\textiota\textsigma\texteta\textfinalsigma}%
+ \def\alsoname{\textbeta\textlambda\acctonos\textepsilon\textpi
+ \textepsilon{} \accpsili\textepsilon\textpi\acctonos\textiota
+ \textsigma\texteta\textfinalsigma}%
\def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron
\textdelta\textepsilon\textiota\textxi\texteta}%
}
% \end{macrocode}
% \end{macro}
%
-% \changes{babel-greek-1.9}{2014/07/20}{Added caption names for
-% \cs{ancientgreek}}
-%
+% \subsubsection{Auto-strings for ancient Greek}
+% \changes{babel-greek-1.09}{2014/07/20}{Added caption names for
+% \cs{ancientgreek}}
% \begin{macro}{\captionsancientgreek}
-% For texts written in ancient Greek, we took
-% the translations from Apostolos Syropoulos' |xgreek| package. For
-% now we just add extra definitions to |\captionsgreek| in order to
-% override the earlier definitions.
+% For texts written in ancient Greek, we took the translations
+% from Apostolos Syropoulos' \pkgref{xgreek} package.
+% For now we just add extra definitions to |\captionsgreek|
+% in order to override the earlier definitions.
% \begin{macrocode}
\let\captionsancientgreek\captionsgreek
\addto\captionsancientgreek{%
- \def\prefacename{\textPi\textrho\textomicron\textomicron\acctonos\textiota\textmu
- \textiota\textomicron\textnu}%
- \def\refname{\accpsili\textAlpha\textnu\textalpha\textphi\textomicron\textrho
- \textalpha\accvaria\textiota}%
- \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota\textlambda\texteta
- \textpsi\textiota\textvarsigma}%
- \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota\textomicron
- \textgamma\textrho\textalpha\textphi\acctonos\textiota\textalpha}%
- \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha\textlambda
- \textalpha\textiota\textomicron\textnu}%
- \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha\textrho\texttau
- \texteta\textmu\textalpha}%
- \def\contentsname{\textPi\textepsilon\textrho\textiota\textepsilon\textchi
- \acctonos\textomicron\textmu\textepsilon\textnu\textalpha}%
- \def\listfigurename{\textKappa\textalpha\texttau\acctonos\textalpha\textlambda
- \textomicron\textgamma\textomicron\textvarsigma{}
- \textsigma\textchi\texteta\textmu\acctonos\textalpha\texttau\textomega\textnu}%
- \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha\textlambda
- \textomicron\textgamma\textomicron\textvarsigma{}
- \textpi\textiota\textnu\acctonos\textalpha\textkappa\textomega\textnu}%
- \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon\texttau
- \acctonos\texteta\textrho\textiota\textomicron\textnu}%
- \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu\textalpha}%
+ \def\prefacename{\textPi\textrho\textomicron\textomicron
+ \acctonos\textiota\textmu\textiota\textomicron\textnu}%
+ \def\refname{\accpsili\textAlpha\textnu\textalpha\textphi\textomicron
+ \textrho\textalpha\accvaria\textiota}%
+ \def\abstractname{\textPi\textepsilon\textrho\acctonos\textiota
+ \textlambda\texteta\textpsi\textiota\textvarsigma}%
+ \def\bibname{\textBeta\textiota\textbeta\textlambda\textiota
+ \textomicron\textgamma\textrho\textalpha\textphi
+ \acctonos\textiota\textalpha}%
+ \def\chaptername{\textKappa\textepsilon\textphi\acctonos\textalpha
+ \textlambda\textalpha\textiota\textomicron\textnu}%
+ \def\appendixname{\textPi\textalpha\textrho\acctonos\textalpha
+ \textrho\texttau\texteta\textmu\textalpha}%
+ \def\contentsname{\textPi\textepsilon\textrho\textiota\textepsilon
+ \textchi\acctonos\textomicron\textmu\textepsilon\textnu\textalpha}%
+ \def\listfigurename{\textKappa\textalpha\texttau\acctonos\textalpha
+ \textlambda\textomicron\textgamma\textomicron\textvarsigma{}
+ \textsigma\textchi\texteta\textmu\acctonos\textalpha\texttau
+ \textomega\textnu}%
+ \def\listtablename{\textKappa\textalpha\texttau\acctonos\textalpha
+ \textlambda\textomicron\textgamma\textomicron\textvarsigma{}
+ \textpi\textiota\textnu\acctonos\textalpha\textkappa
+ \textomega\textnu}%
+ \def\indexname{\textEpsilon\accdasia\textupsilon\textrho\textepsilon
+ \texttau\acctonos\texteta\textrho\textiota\textomicron\textnu}%
+ \def\figurename{\textSigma\textchi\accperispomeni\texteta\textmu
+ \textalpha}%
\def\tablename{\textPi\acctonos\textiota\textnu\textalpha\textxi}%
- \def\partname{\textMu\acctonos\textepsilon\textrho\textomicron\textvarsigma}%
+ \def\partname{\textMu\acctonos\textepsilon\textrho\textomicron
+ \textvarsigma}%
\def\enclname{\textSigma\textupsilon\textnu\texteta\textmu\textmu
\acctonos\textepsilon\textnu\textomega\textvarsigma}%
\def\ccname{\textKappa\textomicron\textiota\textnu\textomicron\textpi
- \textomicron\acctonos\textiota\texteta\textsigma\textiota\textvarsigma}%
+ \textomicron\acctonos\textiota\texteta\textsigma\textiota
+ \textvarsigma}%
\def\headtoname{\textPi\textrho\accvaria\textomicron\textvarsigma}%
- \def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota\textvarsigma}%
+ \def\pagename{\textSigma\textepsilon\textlambda\accvaria\textiota
+ \textvarsigma}%
\def\seename{\accdasiaoxia\textomicron\textrho\textalpha}%
- \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{} \accdasia\textomega\textsigma
- \textalpha\acctonos\textupsilon\texttau\textomega\textvarsigma}%
- \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron\textdelta\textepsilon
- \textiota\textxi\textiota\textvarsigma}%
+ \def\alsoname{\accdasiaoxia\textomicron\textrho\textalpha{}
+ \accdasia\textomega\textsigma\textalpha\acctonos\textupsilon
+ \texttau\textomega\textvarsigma}%
+ \def\proofname{\accpsili\textAlpha\textpi\acctonos\textomicron
+ \textdelta\textepsilon\textiota\textxi\textiota\textvarsigma}%
\def\glossaryname{\textGamma\textlambda\textomega\textsigma\textsigma
\acctonos\textalpha\textrho\textiota\textomicron\textnu}%
- }
+}
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{Date specification}
+%
% \begin{macro}{\gr@month}
+% The auxiliary macro |\gr@month| returns Greek month names in
+% monotonic spelling.
% \changes{greek-1.1e}{1997/10/12}{Macro added}
-% \begin{macro}{\dategreek}
-% The macro |\dategreek| redefines the command |\today| to
-% produce greek dates. The name of the month is now produced
-% by the macro |\gr@month| since it is needed in the definition
-% of the macro |\Grtoday|.
-% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou}
-% instead of \texttt{Oktobr'iou}}
-% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces
-% the name of the month}
-% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}}
-% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}}
% \begin{macrocode}
\def\gr@month{%
\ifcase\month\or
@@ -823,8 +1106,9 @@
\textrho\acctonos\textiota\textomicron\textupsilon \or
\textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon
\textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or
- \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron\textupsilon
- \or \textAlpha\textpi\textrho\textiota\textlambda\acctonos\textiota
+ \textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron
+ \textupsilon \or
+ \textAlpha\textpi\textrho\textiota\textlambda\acctonos\textiota
\textomicron\textupsilon \or
\textMu\textalpha\'"\textiota\textomicron\textupsilon \or
\textIota\textomicron\textupsilon\textnu\acctonos\textiota
@@ -843,30 +1127,28 @@
\textrho\acctonos\textiota\textomicron\textupsilon
\fi
}
-\def\dategreek{%
- \def\today{\number\day \space \gr@month\space \number\year}}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\gr@c@greek}
+% \begin{macro}{\gr@polutoniko@month}
+% The auxiliary macro |\gr@polutoniko@month| returns Greek month names in
+% polytonic spelling. It is activated by the |polutoniko| language option.
% \changes{greek-1.2}{1997/10/28}{Added macro \cs{gr@cl@month}}
-% \changes{greek-1.2}{1997/10/28}{Added macro
-% \cs{datepolutonikogreek}}
-% \changes{greek-1.3a}{1997/10/28}{removed macro
-% \cs{datepolutonikogreek}}
+% \changes{greek-1.2}{1997/10/28}{Added macro \cs{datepolutonikogreek}}
+% \changes{greek-1.3a}{1997/10/28}{removed macro \cs{datepolutonikogreek}}
% \begin{macrocode}
-\def\gr@c@month{%
+\def\gr@polutoniko@month{%
\ifcase\month\or
- \accpsili\textIota\textalpha\textnu\textomicron\textupsilon\textalpha
- \textrho\acctonos\textiota\textomicron\textupsilon \or
+ \accpsili\textIota\textalpha\textnu\textomicron\textupsilon
+ \textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or
\textPhi\textepsilon\textbeta\textrho\textomicron\textupsilon
\textalpha\textrho\acctonos\textiota\textomicron\textupsilon \or
\textMu\textalpha\textrho\texttau\acctonos\textiota\textomicron
\textupsilon \or
\accpsili\textAlpha\textpi\textrho\textiota\textlambda
\acctonos\textiota\textomicron\textupsilon \or
- \textMu\textalpha\"'\textiota\textomicron\textupsilon \or
+ \textMu\textalpha\accdialytikatonos\textiota\textomicron
+ \textupsilon \or
\accpsili\textIota\textomicron\textupsilon\textnu
\acctonos\textiota\textomicron\textupsilon \or
\accpsili\textIota\textomicron\textupsilon\textlambda
@@ -886,49 +1168,79 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\dategreek}
+% The macro |\dategreek| redefines the command |\today| to
+% produce greek dates. The name of the month is produced
+% by the macro |\gr@month| since it is also needed in the definition
+% of the macro |\Grtoday|.
+% \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou}
+% instead of \texttt{Oktobr'iou}}
+% \changes{greek-1.1d}{1997/10/12}{Macro \cs{gr@month} now produces
+% the name of the month}
+% \changes{greek-1.2a}{1997/10/31}{Use \cs{edef} to define \cs{today}}
+% \changes{greek-1.2b}{1998/03/28}{use \cs{def} instead of \cs{edef}}
+% \begin{macrocode}
+\def\dategreek{%
+ \def\today{\number\day \space \gr@month\space \number\year}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\Grtoday}
% \changes{greek-1.1}{1996/10/28}{Added macro \cs{Grtoday}}
-% The macro |\Grtoday| produces the current date, only that the
-% month and the day are shown as greek numerals instead of arabic
-% as it is usually the case.
+% The macro |\Grtoday| produces the current date, only that the
+% month and the day are shown as greek numerals instead of arabic
+% as it is usually the case.
% \begin{macrocode}
\def\Grtoday{%
\expandafter\Greeknumeral\expandafter{\the\day}\space
- \gr@c@month \space
+ \gr@polutoniko@month \space
\expandafter\Greeknumeral\expandafter{\the\year}}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\extrasgreek}
-% \begin{macro}{\noextrasgreek}
-% The macro |\extrasgreek| will perform all the extra definitions
-% needed for the Greek language. The macro |\noextrasgreek| is used
-% to cancel the actions of |\extrasgreek|. For the moment these
-% macros switch the fontencoding (with 8-bit TeX) and the definition of
-% the internal macros |\@alph| and |\@Alph| because in Greek we do use
-% the Greek numerals.
-% \changes{greek-1.5}{2013/06/21}{LGR not used with XeTeX/LuaTeX.}
-% \changes{greek-1.8}{2013/11/27}{use font-encoding specific TextCommands.
-% Use EU1 or EU2 for Latin script if available}
+% \subsubsection{Greek numerals \label{sec:Greek numerals}}
+%
+% \begin{macro}{\greeknumeralsix}
+% \begin{macro}{\greeknumeralSix}
+% \begin{macro}{\greeknumeralninety}
+% \begin{macro}{\greeknumeralNinety}
+% The shape of the obsolete characters used for number 6 (digamma/stigma)
+% and 90 (koppa) evolved over time and different characters are in use
+% for them today. We define placeholders that allow configuration by
+% the user or a package.
+% \changes{babel-greek-1.10}{2020/11/10}{
+% Use zig-zagy \cs{textkoppa}.
+% This is what it looks in current Greek typography.}
% \begin{macrocode}
-\addto\extrasgreek{\greekscript}
-\addto\noextrasgreek{\latintext}
+\providecommand*{\greeknumeralsix}{\textstigma}
+\providecommand*{\greeknumeralSix}{\textStigma}
+\providecommand*{\greeknumeralninety}{\textkoppa}
+\providecommand*{\greeknumeralNinety}{\textKoppa}
% \end{macrocode}
-% TODO restore previous font encoding.
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\greeknumeral}
+% The commands |\greeknumeral| and |\Greeknumeral| produce the lowercase
+% and uppercase \href{https://en.wikipedia.org/wiki/Greek_numerals}{Greek
+% numerals} respectively.
+%
% The command |\greeknumeral| needs to be \emph{fully} expandable
% in order to get the right information in auxiliary
% files. It should also be usable in PDF-strings.
% Therefore we use the implementation from the \cs{HyPsd@GreekPatch}
-% in \href{https://ctan.org/pkg/hyperref}{hyperref}
-% (version 7.00e 2020-05-15).
+% in \pkgref{hyperref} (version 7.00e 2020-05-15).
+%
% \changes{babel-greek-1.10}{2020/11/10}{PDF-string secure implementation
-% taken from ``hyperref'' (collaboration with Ulrike Fischer).}
+% taken from ``hyperref'' (thanks to Ulrike Fischer).}
+% \changes{babel-greek-1.11}{2020/11/20}{Configurable shapes for 6 and 90.
+% 90 defaults to \cs{textqoppa} for ancient Greek.}
% \begin{macrocode}
\def\greeknumeral#1{%
{\greekscript
- \bbl@greek@GreekNum\@firstoftwo{#1}}%
+ \bbl@greek@GreekNum\@firstoftwo{#1}}%
}
% \end{macrocode}
% \end{macro}
@@ -937,7 +1249,7 @@
% \begin{macrocode}
\def\Greeknumeral#1{%
{\greekscript
- \bbl@greek@GreekNum\@secondoftwo{#1}}%
+ \bbl@greek@GreekNum\@secondoftwo{#1}}%
}
% \end{macrocode}
% \end{macro}
@@ -1018,7 +1330,7 @@
\or\textgamma\textGamma
\or\textdelta\textDelta
\or\textepsilon\textEpsilon
- \or\textstigmagreek\textStigmagreek
+ \or\greeknumeralsix\greeknumeralSix % stigma or digamma
\or\textzeta\textZeta
\or\texteta\textEta
\or\texttheta\textTheta
@@ -1043,7 +1355,7 @@
\or\textxi\textXi
\or\textomicron\textOmicron
\or\textpi\textPi
- \or\textkoppa\textKoppa
+ \or\greeknumeralninety\greeknumeralNinety % koppa or qoppa
\else
{}{}%
\fi
@@ -1096,19 +1408,13 @@
%
% \begin{macro}{\greek@alph}
% \begin{macro}{\greek@Alph}
-% In the previous release of this language definition the
+% In the previous release of this language definition file the
% commands |\greek@aplh| and |\greek@Alph| were kept just for
% reasons of compatibility. Here again they become meaningful macros.
-% They are definited in a way that even page numbering with greek
-% numerals is possible. Since the macros |\@alph| and |\@Alph| will
-% lose their original meaning while the Greek option is active, we
-% must save their original value.
-% macros |\@alph|
-% \begin{macrocode}
-\let\latin@alph\@alph
-\let\latin@Alph\@Alph
-% \end{macrocode}
-% Then we define the Greek versions; the additional |\expandafter|s
+% They are defined in a way that even page numbering with greek
+% numerals is possible.
+%
+% We define the Greek versions; the additional |\expandafter|s
% are needed in order to make sure the table of contents will be
% correct, e.g., when we have appendixes.
% \begin{macrocode}
@@ -1116,100 +1422,103 @@
\def\greek@Alph#1{\expandafter\Greeknumeral\expandafter{\the#1}}
% \end{macrocode}
%
-% Now we can set up the switching.
-% \changes{greek-1.1a}{1997/03/03}{removed two superfluous @'s which
-% made \cs{@alph} undefined}
+% Redefine the internal macros |\@alph| and |\@Alph| in the
+% language hook, so that we use Greek numerals\footnote{
+% cf.\ section \ref{sec:Greek numerals}}
+% instead of the Latin alphabet\footnote{
+% Eventually interpreted as Latin transliteration and converted
+% to Greek letters in a ``strange'' order.}
+% in Greek text parts.
+% \changes{greek-1.1a}{1997/03/03}{
+% removed two superfluous @'s which made \cs{@alph} undefined}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Save/restore previous expansion of \cs{\@alph} and \cs{\@Alph}
+% with every switch to/from Greek.}
% \begin{macrocode}
\addto\extrasgreek{%
+ \babel@save\@alph
+ \babel@save\@Alph
\let\@alph\greek@alph
- \let\@Alph\greek@Alph}
-\addto\noextrasgreek{%
- \let\@alph\latin@alph
- \let\@Alph\latin@Alph}
+ \let\@Alph\greek@Alph
+}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
%
-% \section{Character codes}
+% \subsection{Character codes}
+%
+% Greek letters drop diacritics (eccept dialytika and sub-iota) in
+% UPPERCASE. This is not cared for by the Unicode standard.
+% The file \file{greek-euenc.def} from \pkg{greek-fontenc}
+% contains the required |\lccode| and |\uccode| corrections from the
+% \pkgref{xgreek} package by Apostolos Syropoulos. It is loaded if the
+% Greek font encoding is TU (i.e. with XeTeX/LuaTeX),
+% see section~\ref{load-greek-font-encoding-definitions}.
%
-% Greek letters drop diacritics (eccept dialytika and sub-iota) in
-% UPPERCASE. This is not cared for by the Unicode standard.
-% The file \file{greek-euenc.def} from \pkg{greek-fontenc}
-% contains the required |\lccode| and |\uccode| corrections from the
-% \pkg{xgreek} package by Apostolos Syropoulos.
+% If the Greek font encoding is LGR, character code changes are done here
+% because they must be restricted to text parts using the LGR encoding.
% \changes{greek-1.5}{2013/06/21}{Support XeTeX/LuaTeX.}
-% \changes{greek-1.9d}{2015/07/06}{uclc fixes not included in greek-euenc.def}
-%
-% The LGR encoded fonts that are used to typeset Greek with 8-bit TeX
-% define ligatures for characters with diacritics. In order for this to
-% work, some characters need to be considered as letters. These
-% characters are |<|, |>|, |~|, |`|, |'|, |"| and
-% \verb=|=. Therefore, their |\lccode| is changed when Greek is in
-% effect. In order to let |\uppercase| give correct results, the
-% |\uccode| of these characters is set to a non-existing character
-% to make them disappear. Of course not all characters are needed
-% when typesetting ``modern'' $\mu o\nu o\tau o\nu
-% \iota\kappa\acute{o}$. In that case we only need the |'| and |"|
-% symbols which are treated in the proper way.
-%
-% \begin{macro}{\greek@tilde}
-% \changes{greek-1.0c}{1997/02/19}{Added command}
-% The Greek script uses a number of characters with more
-% than one accent. In LGR encoded fonts combined diacritics can be
-% obtained using Knuth's ligature mechanism (see usage.pdf).
-% Characters we need to have ligatures with are the tilde, the
-% acute and grave accent characters, the rough and smooth breathings,
-% the subscript, and the double quote character.
-% In text input the |~| is normally used to produce an
-% unbreakable space.
-% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not
-% active during the definition of \cs{greek@tilde}}
-% \changes{greek-1.4}{2013/05/17}{do not re-define the tilde accent macro:
-% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.}
+% \changes{babel-greek-1.09d}{2015/07/06}{uc-/lccode corrections from xgreek
+% are now in greek-euenc.def (the polyglossia version has bugs).}
+% \changes{babel-greek-1.12}{2023/03/04}{%
+% Only change uc/lccodes if LGR is the \cs{greekfontencoding}.}
% \begin{macrocode}
-\@ifl@aded{def}{lgrenc}{%
- \begingroup
- \@ifundefined{active@char\string!}{}{\catcode`!=12\relax}
- \catcode`\~=12%
- \lccode`\!=`\~%
- \lowercase{\def\x{\endgroup
- \def\greek@tilde{!}}\x}
+\def\bbl@tempa{LGR}
+\ifx\greekfontencoding\bbl@tempa
% \end{macrocode}
-% \end{macro}
-% In order to get correct hyphenation we need to set the lower case
-% code of a number of characters. The `v' character has a special
-% usage for the |cb| fonts: in fact this ligature mechanism detects
-% the end of a word and assures that a final sigma is typeset with
-% the proper sign wich is different from that of an initial or
-% medial sigma; the `v 'after an \textit{isolated} sigma fools
-% the ligature mechanism in order to typeset $\sigma$ in place of
-% $\varsigma$. Because of this we make sure its lowercase code is
-% not changed. For ``modern'' greek we have to deal only with |'|
-% and |"| and so things are easy.
+% In order to get correct hyphenation we need to set the lower case
+% code of a number of characters.
+%
+% In LGR encoded fonts, diacritics can be obtained using Knuth's
+% ligature mechanism (see usage.pdf). This means that the characters
+% |<|, |>|, |~|, |`|, |'|, |"|, and \verb=|= may be part of a word.
+% Therefore, their |\lccode| is changed when polytonic Greek is in
+% effect. For monotonic Greek, we only need |'| and |"|.
+%
+% The `v' character has a special usage in LGR-encoded fonts:
+% The LGR ligature mechanism detects the end of a word and assures that
+% a final sigma ($\varsigma$) is used. The `v' after an `s' overrides this
+% ligature mechanism so that it is possible to typeset an isolated $\sigma$
+% without it becoming a $\varsigma$.
+% Because of this we make sure its lowercase code is not changed.
% \changes{greek-1.1c}{1997/04/30}{fixed two typos}
% \changes{greek-1.1e}{1997/10/12}{Added lowercase code for v}
% \changes{greek-1.2}{1997/10/28}{Definitions for ``modern'' Greek are
-% now the definitions of ``Polutoniko'' Greek}
+% now the definitions of ``polutoniko'' Greek}
% \changes{greek-1.2}{1997/10/28}{Added lowercase codes for ``modern''
% greek}
% \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and
% \cs{extraspolutonikogreek} should be complementary}
-% \changes{babel-greek-1.9}{2014/07/20}{Added lc codes for chars 128 to 255}
+% \changes{babel-greek-1.09}{2014/07/20}{Added lc codes for chars 128 to 255}
+% \changes{babel-greek-1.09b}{2014/09/18}{Remove spurious whitespace from
+% `extrasgreek' definition (report Eike Schmidt).}
+% \begin{macrocode}
+ \addto\extrasgreek{%
+ \babel@savevariable{\lccode`v}\lccode`v=`v%
+ \babel@savevariable{\lccode`\'}\lccode`\'=`\'%
+ \babel@savevariable{\lccode`\"}\lccode`\"=`\"%
+ }
+ \addto\extraspolutonikogreek{%
+ % \l@greek=\bbl@polygreek
+ \babel@savevariable{\lccode`\<}\lccode`\<=`\<%
+ \babel@savevariable{\lccode`\>}\lccode`\>=`\>%
+ \babel@savevariable{\lccode`\~}\lccode`\~=`\~%
+ \babel@savevariable{\lccode`\|}\lccode`\|=`\|%
+ \babel@savevariable{\lccode`\`}\lccode`\`=`\`%
+ }
+% \end{macrocode}
% In order to process the suitable characters and in such a way that
% hyphenation patterns work also with precomposed characters, it is
-% necessary to declare the lc code for all characters, that can be part
+% necessary to declare the lc code for all characters that can be part
% of a word. We do this in |\extrasgreek| because this is a feature of
-% the LGR font encoding (which is the same in all language variants).
+% the LGR font encoding (used in all language variants).
% This means that multi-accented characters are regarded parts of a word
% (and not non-word characters) also in monotonic spelling.
-% \changes{babel-greek-1.9e}{2015/11/27}{Fix bug in lccode-setting loop
+% \changes{babel-greek-1.09e}{2015/11/27}{Fix bug in lccode-setting loop
% (patch by Enrico Gregorio).}
% \begin{macrocode}
\addto\extrasgreek{%
- \babel@savevariable{\lccode`v}\lccode`v=`v%
- \babel@savevariable{\lccode`\'}\lccode`\'=`\'%
- \babel@savevariable{\lccode`\"}\lccode`\"=`\"%
% ``high bit characters'': set in a loop and correct exceptions
\@tempcnta=128%
\@whilenum\@tempcnta<253\do{%
@@ -1228,19 +1537,14 @@
\lccode219=240% GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
\lccode223=244% GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
}
-
- \addto\extraspolutonikogreek{%
- % \l@greek=\bbl@polygreek
- \babel@savevariable{\lccode`\<}\lccode`\<=`\<%
- \babel@savevariable{\lccode`\>}\lccode`\>=`\>%
- \babel@savevariable{\lccode`\~}\lccode`\~=`\~%
- \babel@savevariable{\lccode`\|}\lccode`\|=`\|%
- \babel@savevariable{\lccode`\`}\lccode`\`=`\`%
- }
% \end{macrocode}
-% And in order to get rid of all accents and breathings when a
-% string is |\uppercase|d we also change a number of uppercase
-% codes.
+%
+% In order to drop diacritics (eccept dialytika and sub-iota) in
+% UPPERCASE also with the ``input ligatures'' the |\uccode| of the
+% relevant characters is set to a dummy character.
+% This is only done, if LaTeX is older than 2022/06/01 because
+% the |\MakeUppercase| implementation introduced in this version ignores
+% uccodes and fails with the ``dummy'' character 0x9f.
% \changes{greek-1.1b}{1997/03/06}{Added setting of \cs{uccode}s
% (after \file{kdgreek.sty})}
% \changes{greek-1.1e}{1997/10/12}{Added uppercase code for special
@@ -1255,76 +1559,115 @@
% \indexbar{} to reflect recent changes in the cb fonts}
% \changes{greek-1.3i}{2000/10/02}{uc code of `v' is switched to V
% so that mixed text appears correctly in headers.}
-% \changes{greek-1.3j}{2001/02/03}{Because other languages might
-% make the caret active, we can't use the double caret notation
-% here}
+% \changes{greek-1.3j}{2001/02/03}{Don't use the double caret notation here,
+% because other languages might make the caret active.}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Don't change uccodes if LaTeX is from 2022/06/01 or newer.}
% \begin{macrocode}
- \addto\extrasgreek{%
- \babel@savevariable{\uccode`\"}\uccode`\"=`\"%
- \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f
- }
- \addto\extraspolutonikogreek{%
- \babel@savevariable{\uccode`\~}\uccode`\~=159%
- \babel@savevariable{\uccode`\>}\uccode`\>=159%
- \babel@savevariable{\uccode`\<}\uccode`\<=159%
- \babel@savevariable{\uccode`\|}\uccode`\|=`\|%
- \babel@savevariable{\uccode`\`}\uccode`\`=159%
- }
+ % fallback for for LaTeX versions older than 2020-10-01
+ \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+ \IfFormatAtLeastTF{2022/06/01}%
+ {}
+ {% else
+ \addto\extrasgreek{%
+ \babel@savevariable{\uccode`\"}\uccode`\"=`\"%
+ \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f
+ }
+ \addto\extraspolutonikogreek{%
+ \babel@savevariable{\uccode`\~}\uccode`\~=159%
+ \babel@savevariable{\uccode`\>}\uccode`\>=159%
+ \babel@savevariable{\uccode`\<}\uccode`\<=159%
+ \babel@savevariable{\uccode`\|}\uccode`\|=`\|%
+ \babel@savevariable{\uccode`\`}\uccode`\`=159%
+ }
% \end{macrocode}
-% For this to work we make the character |^^9f| a shorthand that
-% expands to nothing. In order for this to work we need to make a
-% character look like |^^9f| in \TeX's eyes. The trick is to have
-% another character and assign it a different lowercase code. The
-% execute the macros needed in a |\lowercase| environment. Usually
-% the tilde |~| character is used for such purposes. Before we do
-% this we save it's original lowercase code to restore it once
-% we're done.
-% \changes{greek-1.1b}{1997/03/06}{Added shorthand for \cs{char255}}
-% \changes{greek-1.1e}{1997/10/12}{Shorthand is changed. Active
-% character is now \cs{char159}}
-% \changes{greek-1.2a}{1997/10/31}{Need shorthand to exist for
-% ``monotoniko'' Greek, not ``polutoniko'' Greek}
-% \changes{greek-1.3j}{2001/02/03}{Use the tilde as an alias for
-% character 159}
+% To avoid \pkg{inputenc} errors if the tilde is used as perispomeni
+% (in polytonic or ancient Greek), we need to declare an expansion for
+% the ``dummy'' character~0x9f = 159.\footnote{
+% Since UTF-8 became the default encoding (cf.\
+% \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf}
+% {LaTeX News~28}), an ``inputenc'' error is also thrown
+% if the \pkg{inputenc} package is not loaded.}
+% To be independent of \pkg{inputenc}, we do not use |\DeclareInputText|
+% but code modelled after its definition to declare an empty expansion.
+% \changes{greek-1.1b}{1997/03/06}{
+% Added shorthand for \cs{char255}}
+% \changes{greek-1.1e}{1997/10/12}{
+% Shorthand is changed. Active character is now \cs{char159}}
+% \changes{greek-1.2a}{1997/10/31}{
+% Need shorthand to exist for monotonic Greek, not polytonik Greek}
+% \changes{greek-1.3j}{2001/02/03}{
+% Use the tilde as an alias for character 159}
+% \changes{babel-greek-1.12}{2023/03/04}{
+% Declare char 159 expansion similar to the way it is done
+% in \pkg{inputenc} to avoid ``inputenc error''.}
% \begin{macrocode}
- \@tempcnta=\lccode`\~
- \lccode`\~=159
- \lowercase{%
- \initiate@active@char{~}%
- \declare@shorthand{greek}{~}{}}
- \lccode`\~=\@tempcnta
+ \bgroup
+ \uccode`\~159%
+ \uppercase{%
+ \egroup
+ \def~{}%
+ }
% \end{macrocode}
% Add composite commands, so that the dialytika is kept or put on the
% following character of a diphthong with |\MakeUppercase|
% (see lgrdef.enc from the the greek-fontenc package for details).
% \changes{greek-1.4}{2013/05/17}{Add TextCompositeCommands for
-% ``uppercase diacritics''.}
+% ``uppercase diacritics''.}
% \changes{greek-1.5}{2013/05/27}{Bugfix: @hiatus->LGR@hiatus}
% \changes{greek-1.5a}{2013/07/02}{Replaced non-printable literal character
-% with ^^-notation (thanks to Heiko Oberdiek for the hint).}
-% \changes{greek-1.9}{2014/07/20}{The |^^|-notation seems to require lower case
-% letters. |^^9F| failed.}
+% with ^^-notation (thanks to Heiko Oberdiek for the hint).}
+% \changes{babel-greek-1.09}{2014/07/20}{The |^^|-notation seems to require
+% lower case letters. |^^9F| failed.}
+% \changes{babel-greek-1.09h}{2019/07/11}{Move breathing composite commands
+% to textalpha.}
+% \begin{macrocode}
+ \DeclareTextCompositeCommand{\"}{LGR}{^^9f}{\accdialytika}
+ \DeclareTextCompositeCommand{\'}{LGR}{^^9f}{\LGR@hiatus}
+ \DeclareTextCompositeCommand{\`}{LGR}{^^9f}{\LGR@accdropped}
+% \end{macrocode}
+% If Unicode fonts are loaded together with LGR, we must also care for
+% |\"'| and |\"`| in TU, because the \" is kept when upcasing.
% \begin{macrocode}
- \DeclareTextCompositeCommand{\"}{LGR}{^^9f}{\accdialytika}
- \DeclareTextCompositeCommand{\'}{LGR}{^^9f}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\`}{LGR}{^^9f}{\LGR@hiatus}
+ \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
+ \DeclareTextCompositeCommand{\"}{TU}{^^9f}{\accdialytika}
+ \fi
+ }% end of the \IfFormatAtLeastTF else block
% \end{macrocode}
%
-% We can also make the tilde character itself expand to a tilde with
-% category code 12 to make the typing of texts easier.
+% \begin{macro}{\greek@tilde}
+% By default, the tilde produces an unbreakable space in text mode.
+% In polytonic and ancient Greek, we change its meaning to allow
+% using |~| in the Latin transliteration of characters with perispomeni.
+% As the perispomeni is not required with monotonic Greek, this is
+% only done for the variants ``polutoniko'' and ``ancient''
+% (in |\extraspolutonikogreek|).
+%
+% Let the tilde character expand to a tilde with category code 12.
+% \changes{greek-1.0c}{1997/02/19}{Added command}
% \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with
% \cs{catcode 12}.}
-% \changes{greek-1.5a}{2013/06/27}{provide ``extraspolutonikogreek'' also
-% for Xe/LuaTeX.}
+% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not
+% active during the definition of \cs{greek@tilde}}
+% \changes{greek-1.4}{2013/05/17}{Do not re-define the tilde accent macro:
+% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.}
% \begin{macrocode}
- \addto\extraspolutonikogreek{\languageshorthands{greek}}%
+ \begingroup
+ \@ifundefined{active@char\string!}{}{\catcode`!=12\relax}
+ \catcode`\~=12%
+ \lccode`\!=`\~%
+ \lowercase{\def\x{\endgroup
+ \def\greek@tilde{!}}\x}
+ \addto\extraspolutonikogreek{\languageshorthands{greek}}
\declare@shorthand{greek}{~}{\greek@tilde}
-}{} % End of LGR-specific code.
% \end{macrocode}
% \end{macro}
-% \end{macro}
+% \begin{macrocode}
+\fi % End of LGR-specific code.
+% \end{macrocode}
%
-% \section{symbol name aliases}
+%
+% \subsection{Symbol name aliases}
% For backwards compatibility, we keep aliases for a few symbols.
% \changes{greek-1.1c}{1997/03/10}{Added a couple of symbols, needed
% for \cs{greeknumeral}}
@@ -1335,9 +1678,9 @@
% the remaining symbol definitions have been moved here}
% \changes{greek-1.5}{2013/06/11}{change symbol macros to aliases}
% \changes{greek-1.10}{2020/11/10}{Fix: \cs{qoppa} is the legacy name of
-% \cs{textkoppa} not \cs{textqoppa}!
-% Provide fallbacks for makros required for greek numerals
-% (added in greek-fontenc 1.0 2020-09-25).}
+% \cs{textkoppa} not \cs{textqoppa}!}
+% \changes{babel-greek-1.12}{2023/03/04}{Remove \cs{textKoppa} and
+% \cs{textmu} (in greek-fontenc since version 1.0).}
% \begin{macrocode}
\providecommand*{\anwtonos}{\textdexiakeraia}
\providecommand*{\katwtonos}{\textaristerikeraia}
@@ -1350,20 +1693,11 @@
\providecommand*{\vardigamma}{\textvardigamma}
\providecommand*{\euro}{\texteuro}
\providecommand*{\permill}{\textperthousand}
-% \end{macrocode}
-% TODO remove the following lines once greek-fontenc 1.0 is in common use.
-% \begin{macrocode}
-\@ifl@aded{def}{lgrenc}{%
- \ProvideTextCommand{\textKoppa}{LGR}{\textkoppa}
- \ProvideTextCommand{\textmugreek}{LGR}{\textmu}
-}{}
\ProvideTextCommand{\textmugreek}{\greekfontencoding}{\textmu}
% \end{macrocode}
%
-% \changes{greek-1.3l}{2004/02/19}{Commented these lines out as this
-% change has made it into \LaTeX{} itself.}
-% \changes{greek-1.8}{2013/11/27}{Remove the redefintion of fnum@figure
-% and fnum@table.}
+% \changes{babel-greek-1.08}{2013/11/27}{Remove redefinition of
+% \cs{fnum@figure} and \cs{fnum@table}.}
%
% The macro |\ldf@finish| takes care of looking for a
% configuration file, setting the main language to be switched on
@@ -1375,6 +1709,8 @@
%</code>
% \end{macrocode}
%
+% \PrintChanges
+%
% \Finale
%\endinput
%% \CharacterTable
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.ins b/macros/latex/contrib/babel-contrib/greek/babel-greek.ins
index 15e136d3ad..cb34837c8a 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.ins
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.ins
@@ -10,7 +10,7 @@
%% ---------------------------------------------
%%
%% Babel-greek is a contributed package providing support for the Greek
-%% language and script via the Babel system (http://www.ctan.org/pkg/babel)
+%% language and script via the Babel system (https://ctan.org/pkg/babel)
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -30,7 +30,7 @@
%%
%% --------------- start of docstrip commands ------------------
%%
-\def\filedate{2015/07/06}
+\def\filedate{2022/12/21}
\def\batchfile{babel-greek.ins}
\input docstrip.tex
@@ -52,7 +52,7 @@
\declarepreamble\mainpreamble
This is a generated file.
-Copyright 1989-2008 Apostolos Syropoulos, Johannes L. Braams, Guenter Milde,
+Copyright 1989-2008 Apostolos Syropoulos, Johannes L. Braams, Günter Milde,
and the authors listed elsewhere in this file. All rights reserved.
This file was generated from file(s) of the babel-greek package.
@@ -71,7 +71,7 @@ This work has the LPPL maintenance status "maintained".
The Current Maintainer of this work is Günter Milde <milde@users.sf.net>.
Babel-greek is a contributed package providing support for the Greek
-language and script via the Babel system (http://www.ctan.org/pkg/babel).
+language and script via the Babel system (https://ctan.org/pkg/babel).
The list of derived (unpacked) files belonging to this work
and covered by LPPL is defined by the unpacking script (babel-greek.ins)
@@ -80,6 +80,8 @@ which is part of the package.
\keepsilent
+% don't ask if generated files already exist somewhere on the system:
+\askforoverwritefalse
\usedir{macros/latex/contrib/babel-contrib/greek}
diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
index be0ffa0243..067c3d11b1 100644
--- a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/grmath.dtx b/macros/latex/contrib/babel-contrib/greek/grmath.dtx
index 000daadcd8..69168f4063 100644
--- a/macros/latex/contrib/babel-contrib/greek/grmath.dtx
+++ b/macros/latex/contrib/babel-contrib/greek/grmath.dtx
@@ -2,10 +2,10 @@
%
% Copyright 1989-2008 Johannes L. Braams and any individual authors
% listed elsewhere in this file. All rights reserved.
-%
+%
% This file is part of the Babel system.
% --------------------------------------
-%
+%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,15 +13,15 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Johannes Braams.
-%
+%
% The list of all files belonging to the Babel system is
% given in the file `manifest.bbl. See also `legal.bbl' for additional
% information.
-%
+%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
@@ -37,11 +37,11 @@
% appears in the modified file.
%
% Please report errors or suggestions for improvement to
-%
+%
% Apostolos Syropoulos
% 366, 28th October Str.
% GR-671 00 Xanthi, GREECE
-%
+%
% apostolo at platon.ee.duth.gr or apostolo at obelix.ee.duth.gr
%
%\fi
@@ -57,9 +57,9 @@
% \end{macrocode}
%\fi
%
-% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog''
+% \changes{grmath-1.2}{2001/02/12}{Package provides options ``grlog''
% (default) and ``enlog'' that create Greek and Latin names
-% log functions}
+% log functions}
%
% \title{Greek log-like Operators}
% \author{Apostolos Syropoulos\\
@@ -71,10 +71,10 @@
%
% \MakeShortVerb{|}
% \section{What is this all about?}
-%
+%
% In Greece, until recently, it was common practice to write down most
-% log-like functions as abbreviations of their Greek names. Consequently,
-% high school students and even university freshmen were not familiar with
+% log-like functions as abbreviations of their Greek names. Consequently,
+% high school students and even university freshmen were not familiar with
% the Latin names employed in international literature. However, this practice
% is fading away in universities but it is still in wide use in books for
% high schools, mainly because the Latin names would produce nothing but
@@ -82,7 +82,7 @@
% so that they produce the Greek name, instead of the Latin one. The package
% can be used only in conjunction with the |greek| option of the |babel|
% package. The new option |enlog| allows one to keep the Latin names for
-% the log functions.
+% the log functions.
% \StopEventually
%
% \section{The Implementation}
@@ -98,7 +98,7 @@
% The next thing we do is to process the options. The default option
% ``grlog'' generates Greek names for log functions and the ``enlog''
% option generates Latin names for log functions.
-% \begin{macrocode}
+% \begin{macrocode}
\DeclareOption{grlog}{%
\def\log{\mathop{\mathgroup\symgroperators log_{10}}\nolimits}
\def\ln{\mathop{\mathgroup\symgroperators log_%
@@ -111,10 +111,10 @@
\ExecuteOptions{grlog}
\ProcessOptions
% \end{macrocode}
-%
+%
% Now we check to see if the |babel| package is loaded with at least
% the |greek| option. In case it isn't, we opt to produce an error message.
-% \begin{macrocode}
+% \begin{macrocode}
\@ifpackagewith{babel}{greek}{}{%
\@ifpackagewith{babel}{polutonikogreek}{}{%
\PackageError{grmath}{%
@@ -135,7 +135,7 @@
% \end{macrocode}
%
% We are now ready to proceed with the redefinitions of the log-like
-% operator names.
+% operator names.
% \begin{macrocode}
\def\sin{\mathop{\mathgroup\symgroperators hm}\nolimits}
\def\cos{\mathop{\mathgroup\symgroperators sun}\nolimits}
@@ -162,7 +162,7 @@
% \end{macrocode}
%
% \section*{Dedication}
-% I would like to dedicate this piece of work to my son
+% I would like to dedicate this piece of work to my son
% \begin{center}Demetrios-Georgios.\end{center}
% \Finale
\endinput
diff --git a/macros/latex/contrib/babel-contrib/greek/grmath.pdf b/macros/latex/contrib/babel-contrib/greek/grmath.pdf
index b97893d195..aff6edf036 100644
--- a/macros/latex/contrib/babel-contrib/greek/grmath.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/grmath.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf
deleted file mode 100644
index 7fcbc9a0f5..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex
deleted file mode 100644
index ea8812b5b3..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-8bit-greek.tex
+++ /dev/null
@@ -1,422 +0,0 @@
-\documentclass[a4paper]{article}
-
-\usepackage[LGR,T1]{fontenc}
-\usepackage[utf8]{luainputenc}
-% XeTeX in 8-bit compatibility mode fails :(
-% LuaTeX in 8-bit compatibility mode:
-% hyphenation in Greek text parts fails!
-% (would require the 8-bit, a loader fix for luatex).
-
-% \usepackage{textalpha}
-\usepackage{textcomp}
-\usepackage[unicode]{hyperref}
-% \usepackage{bookmark}
-\usepackage{parskip}
-\usepackage{booktabs}
-
-\usepackage{lmodern}
-% \usepackage{kerkis}
-% \usepackage{gfsdidot}
-% \usepackage{dejavu}
-
-% Load the Babel package with Greek and English language definitions:
-%
-% Uncomment the desired language variant
-
-% Default: modern monotonic Greek
-\usepackage[greek,english]{babel}
-% Obsolete: used instead of `greek', kept for backwards compatibility:
-% \usepackage[polutonikogreek,english]{babel}
-
-% For backwards compatibility, you can also use
-% \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc.
-% if the (modern) polytonic Greek language variant is selected.
-
-% uncomment for modern polytonic Greek
-% \languageattribute{greek}{polutoniko}
-
-% uncomment for ancient Greek
-\languageattribute{greek}{ancient}
-
-% \message{Latin encoding is \latinencoding}
-
-\begin{document}
-
-\title{Test the Greek support for Babel}
-\author{Günter Milde}
-\date{2020/11/10}
-\maketitle
-
-The babel option ``greek'' activates the support for the Greek language
-defined in the file \texttt{greek.ldf} (source \texttt{greek.dtx}).
-
-\section{Language Switch}
-
-The declaration \verb|\selectlanguage| switches between languages.
-
-\begin{quote}
- \selectlanguage{greek}
- Τί φήις; Ἱδὼν ἐνθέδε παῖδ’ ἐλευθέραν
- τὰς πλησίον Νύμφας στεφανοῦσαν, Σώστρατε,
- ἐρῶν άπῆλθες εὐθύς;
-\end{quote}
-
-The macro \verb|\foreignlanguage| sets its second argument in the specified
-language. This is intended for short text parts or single words like
-\foreignlanguage{greek}{Βιβλιοθήκη}.
-
-There should be no inserted space before or after the language switch (may
-happen if there are unescaped linebreaks in the font or language definitions):
-
-\begin{quote}
- Change script with \verb|ensuregreek|: |\ensuregreek{do\~ulos}|. Change
- language with \verb|\foreignlanguage|: |\foreignlanguage{greek}{do\~ulos}|.
-\end{quote}
-
-\section{Font Encoding}
-
-In Greek text parts, the font encoding is automatically set to LGR if an
-8-bit TeX engine is used. (See \url{test-unicode-greek.tex} for usage of
-babel-greek with XeTeX or LuaTeX.)
-
-LGR has Greek characters in the slots reserved in a TeX \emph{standard text
-font encoding}. This means you need an explicit font encoding change for
-every Latin letter and some other symbols if the current font encoding is
-LGR.
-
-Babel defines the declaration \verb|\latintext| and the command
-\verb|\textlatin| to switch to the T1 or OT1 font encoding or typeset the
-argument using this encoding.
-
-Switching to a font encoding supporting the Greek script is possible without
-switching the Babel language using the declarations \verb|\greekscript| (no
-switch if the current encoding supports Greek script (e.g. the Unicode font
-encoding TU)) or \verb|\greektext| (always switch to LGR) and the
-corresponding macros \verb|\ensuregreek| or \verb|\textgreek|. These
-commands do not start a new paragraph:
-
-\greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
-\latintext Friends (\ensuregreek{F\'ilwn}) of TeX.
-
-\texttt{greek.ldf} has some workarounds, so that macros relying on Latin
-characters in standard positions keep working. We test, that these
-definitions do not overwrite the selection of pre-composed characters for
-``copyright'' and ``registered trade mark'' by \emph{textcomp} (try copy and
-paste from the PDF output):
-
-Latin: A \& O, © ® ™ \\
-Greek (LGR): \ensuregreek{Α \& Ω, © ® ™}
-or input as macro \ensuregreek{\textAlpha{} \textampersand{} \textOmega{},
-\textcopyright{} \textregistered{} \texttrademark{}}.
-
-The ampersand should also work in mathematical mode: $ 1 \& 2 $
-
-To prevent Roman numerals being typeset in Greek letters we need to adopt
-the internal LaTeX commands. Note that this may cause errors when roman
-numerals are used in a situation where the macros need to be expanded:
-
-\makeatletter
-Latin:
-\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975}
-\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975}
-
-Greek: \ensuregreek{
-\@roman{1}, \@roman{2}, \@roman{3}, \@roman{4}, \ldots, \@roman{1975}
-\@Roman{1}, \@Roman{2}, \@Roman{3}, \@Roman{4}, \ldots, \@Roman{1975}
-}
-\makeatother
-
-\section{MakeUppercase, MakeLowercase}
-
-Capital Greek letters have diacritics (except the dialytika and sub-iota) to
-the left (instead of above) and drop them in uppercase, e.g.
-\ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}.
-
-Upcased letters with diacritics keep the dialytika. This is implemented for
-all input variants of diacritics with dialytika. (\texttt{greek.ldf} has
-\emph{composite command} definitions to ensure this also works for accent
-characters "upcased" to the charcter No 159.)
-
-\foreignlanguage{greek}{\"i \"'i \"`i \"~i \'"i \`"i \~"i
- \"u \"\'u \"\`u \"\~u
- ϊ ΐ ῒ ῗ ΐ ῒ ῗ ϋ ΰ ῢ ῧ
- $\mapsto$ \MakeUppercase{\"i \"'i \"`i \"~i \'"i \`"i \~"i
- \"u \"\'u \"\`u \"\~u
- ϊ ΐ ῒ ῗ ΐ ῒ ῗ ϋ ΰ ῢ ῧ
- }
-}
-
-
-Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if
-placed on the first vowel of a diphthong
-(\ensuregreek{\'ai, \'au, \'ei, \'>ai, \'>au, \'>ei}).
-A dialytika must be placed on the second vowel if they are dropped:
-(\ensuregreek{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \'>au, \'>ei}}).
-
-\selectlanguage{greek}
-% from teubner: άυλος/ΑΫΛΟΣ
-\'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}
-\accpsili{a}upn\'ia $\mapsto$ \MakeUppercase{\accpsili{a}upn\'ia}
-\selectlanguage{english}
-
-There are several alternative styles for the capitalized sub-iota.
-
-In order to let the Up/Downcasing work also with the Latin transcription
-defined by the LGR font encoding, ``babel-greek'' also defines lc/uccodes
-for non-standard assignments:
-
-\selectlanguage{greek}
-', ", `, >, <, | $\mapsto$ \MakeUppercase{', ", `, >, <, |}
-\selectlanguage{english}
-
-The uppercase of the zero-width space at the place of ``v'' is kept to point
-to the glyph at the position of ``V'', the Dasia-Oxia accent
-(\ensuregreek{\MakeUppercase{v}}):
-
-\begin{quotation}
- greek-1.3i 2000/10/02: uc code of `v' is switched to V
- so that mixed text appears correctly in headers.
-\end{quotation}
-
-Use \verb+\textcompwordmark+:
-not \foreignlanguage{greek}{avu $\mapsto$ \MakeUppercase{avu}} but
-\foreignlanguage{greek}{a\textcompwordmark u
-$\mapsto$ \MakeUppercase{a\textcompwordmark u}}
-
-The following subsections test MakeUppercase and MakeLowercase with all
-characters defined in lgrenc.dfu:
-
-\subsection{Greek and Coptic}
-
-\newcommand{\GreekAndCoptic}{\ensuregreek{
-ʹ͵ͺ; ΄ ΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}}
-\newcommand{\greekandcoptic}{\ensuregreek{
-άέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϙϛϝϟϡ}}
-
-Characters of the Greek and Coptic Unicode Block:
-
-\begin{quote}
- \GreekAndCoptic\\
- \greekandcoptic
-\end{quote}
-
-MakeUppercase:
-
-\begin{quote}
- \MakeUppercase{\GreekAndCoptic}\\
- \MakeUppercase{\greekandcoptic}
-\end{quote}
-\end{document}
-
-Letters and sub-iota upcased, other diacritics except dialytika dropped.
-
-There is no capital Koppa in LGR, therefore \ensuregreek{ϟ} is left
-unchanged with MakeUppercase.
-
-
-MakeLowercase:
-
-\begin{quote}
- \MakeLowercase{\GreekAndCoptic}\\
- \MakeLowercase{\greekandcoptic}
-\end{quote}
-
-The lowercase of \ensuregreek{Σ} is the «auto-sigma» (\verb+\textautosigma+):
-\ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. Add a ZWNJ or use the
-\verb+\noboundary+ macro to prevent conversion to final sigma:
-\ensuregreek{\MakeLowercase{ΣΣ‌}}. The lowercase of GREEK LETTER STIGMA
-\ensuregreek{Ϛ} is \ensuregreek{\MakeLowercase{Ϛ}} not \verb|\textvarstigma|
-(\ensuregreek\textvarstigma).
-
-% \newpage
-
-\subsection{Greek extended}
-
-Characters of the Greek extended Unicode block:
-
-\selectlanguage{greek}
-ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
-ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
-ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
-ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
-ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
-ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ \\
-ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
-ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
-ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
-ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
-ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
-ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
-῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
-ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ \\
-ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
- ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾
-\selectlanguage{english}
-
-MakeUppercase:
-
-\selectlanguage{greek}
-
-\MakeUppercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\
-\MakeUppercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\
-\MakeUppercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\
-\MakeUppercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\
-\MakeUppercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\
-\MakeUppercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\
-\MakeUppercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\
-\MakeUppercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\
-\MakeUppercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\
-\MakeUppercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\
-\MakeUppercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\
-\MakeUppercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\
-\MakeUppercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\
-\MakeUppercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\
-\MakeUppercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\
-\MakeUppercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ }
-\selectlanguage{english}
-
-MakeLowercase:
-
-\selectlanguage{greek}
-\MakeLowercase{ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ }\\
-\MakeLowercase{ ἐ ἑ ἒ ἓ ἔ ἕ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ }\\
-\MakeLowercase{ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ }\\
-\MakeLowercase{ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ }\\
-\MakeLowercase{ ὀ ὁ ὂ ὃ ὄ ὅ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ }\\
-\MakeLowercase{ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ Ὑ Ὓ Ὕ Ὗ }\\
-\MakeLowercase{ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ }\\
-\MakeLowercase{ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ }\\
-\MakeLowercase{ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ }\\
-\MakeLowercase{ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ }\\
-\MakeLowercase{ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ }\\
-\MakeLowercase{ ᾰ ᾱ ᾲ ᾳ ᾴ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ }\\
-\MakeLowercase{ ῀ ῁ ῂ ῃ ῄ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ }\\
-\MakeLowercase{ ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝ ῞ ῟ }\\
-\MakeLowercase{ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` }\\
-\MakeLowercase{ ῲ ῳ ῴ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ }
-\selectlanguage{english}
-
-\section{Babel Strings}
-
-Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. babel-greek uses LICRs in order to let the
-string macros work independent of the font encoding, in both 8-bit and
-Unicode-aware TeX.
-
-\subsection{Captions}
-
-\selectlanguage{greek}
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename ,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname,
-\selectlanguage{english}
-
-
-\subsection{Months}
-
-\selectlanguage{greek}
-\newcounter{foo}
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\selectlanguage{english}
-
-\section{Greek Numerals}
-
-See greek.pdf for the formation rules of Greek numerals.
-Some examples:
-
-\selectlanguage{greek}
-
-\greeknumeral{1},
-\greeknumeral{2},
-\greeknumeral{3},
-\greeknumeral{4},
-\greeknumeral{5},
-\greeknumeral{6},
-\greeknumeral{7},
-\greeknumeral{8},
-\greeknumeral{9},
-\greeknumeral{10},
-\greeknumeral{11},
-\greeknumeral{12},
-\greeknumeral{20},
-\greeknumeral{345},
-\greeknumeral{500},
-\greeknumeral{1997},
-\greeknumeral{2013},
-
-\Greeknumeral{1},
-\Greeknumeral{2},
-\Greeknumeral{3},
-\Greeknumeral{4},
-\Greeknumeral{5},
-\Greeknumeral{6},
-\Greeknumeral{7},
-\Greeknumeral{8},
-\Greeknumeral{9},
-\Greeknumeral{10},
-\Greeknumeral{11},
-\Greeknumeral{12},
-\Greeknumeral{20},
-\Greeknumeral{345},
-\Greeknumeral{500},
-\Greeknumeral{1997},
-\Greeknumeral{2013},
-
-\selectlanguage{english}
-
-Enumerated lists use Greek numerals in the second and fourth level:
-
-\selectlanguage{greek}
-\begin{enumerate}
- \item \textlatin{Item} 1
- \begin{enumerate}
- \item \textlatin{Item} 1.1
- \begin{enumerate}
- \item \textlatin{Item} 1.1.1
- \begin{enumerate}
- \item \textlatin{Item} 1.1.1.1
- \item \textlatin{Item} 1.1.1.2
- \end{enumerate}
- \item \textlatin{Item} 1.1.2
- \end{enumerate}
- \end{enumerate}
-\end{enumerate}
-\selectlanguage{english}
-
-
-\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf
new file mode 100644
index 0000000000..fa56892ffa
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.tex b/macros/latex/contrib/babel-contrib/greek/test-athnum.tex
new file mode 100644
index 0000000000..0d8a6bfb6b
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-athnum.tex
@@ -0,0 +1,70 @@
+\documentclass[a4paper]{article}
+\usepackage{ifthen}
+\usepackage[LGR,T1]{fontenc}
+\usepackage{booktabs}
+\usepackage{longtable,ltcaption,array}
+\usepackage[textwidth=14cm]{geometry} % to fit the number table
+\setlength{\extrarowheight}{2pt}
+\usepackage{parskip}
+
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ % \setmainfont{Linux Libertine O} % no GREEK ACROPHONIC ATTIC numbers
+ % \setmainfont{Liberation Serif} % no GREEK ACROPHONIC ATTIC numbers
+ \setmainfont{FreeSerif}
+\else
+ \usepackage{lmodern}
+\fi
+
+
+\usepackage{textalpha}
+\usepackage{athnum}
+
+\begin{document}
+\title{Test Attic numerals}
+\author{Günter Milde}
+\date{2022/12/08}
+\maketitle
+
+The Greek font encoding is \greekfontencoding.\footnote{
+ Since version 2.0 you can use \emph{athnum} also without
+ \emph{babel-greek} and with Unicode fonts (if they support the
+ ``Greek acrophonic attic'' number symbols for 50, 500, and 5000).}
+
+\begin{tabular}{rrrrrrrrr}
+\toprule
+1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
+\athnum{1} & \athnum{2} & \athnum{3} & \athnum{4} &
+\athnum{5} & \athnum{6} & \athnum{7} & \athnum{8} & \athnum{9} \\
+
+10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\
+\athnum{10} & \athnum{20} & \athnum{30} & \athnum{40} &
+\athnum{50} & \athnum{60} & \athnum{70} & \athnum{80} & \athnum{90} \\
+
+100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
+\athnum{100} & \athnum{200} & \athnum{300} & \athnum{400} &
+\athnum{500} & \athnum{600} & \athnum{700} & \athnum{800} & \athnum{900} \\
+
+1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\
+\athnum{1000}& \athnum{2000}& \athnum{3000}& \athnum{4000}&
+\athnum{5000}& \athnum{6000}& \athnum{7000}& \athnum{8000}& \athnum{9000} \\
+
+10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\
+\athnum{10000}&\athnum{20000}&\athnum{30000}&\athnum{40000}&
+\athnum{50000}&\athnum{60000}&\athnum{70000}&\athnum{80000}&\athnum{90000} \\
+
+\bottomrule
+\end{tabular}
+
+Some examples:
+
+
+678 = \athnum{678}, 2022 = \athnum{2022}
+
+Largest ``canonical'' number: 9999 = \athnum{9999}
+
+Largest allowed number: 249999 = \athnum{249999}
+
+Hexadecimal input works, too: \texttt{"10} = \athnum{"10}
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex
new file mode 100644
index 0000000000..c2b61596ad
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex
@@ -0,0 +1,1048 @@
+% Backrolling does not work for \MakeUppercase (cf. LaTeX News 35)
+% \RequirePackage{latexbug}
+%\RequirePackage[2022-05-01]{latexrelease}
+
+\documentclass[a4paper]{article}
+
+\usepackage[LGR,T1]{fontenc}
+\usepackage{lmodern}
+
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ \setmainfont[Scale=0.92]{DejaVu Serif}
+ \newcommand*{\texengine}{Xe/LuaLaTeX}
+\else
+ \usepackage{lmodern}
+ \newcommand*{\texengine}{pdfLaTeX}
+\fi
+
+% Load encoding definitions
+\usepackage[normalize-symbols]{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"
+\languageattribute{greek}{polutoniko} % "modern" polytonic Greek
+
+
+\usepackage[unicode,colorlinks,linkcolor=blue]{hyperref}
+\usepackage{bookmark}
+
+% Auxiliary commands
+
+\newcommand{\langGreek}{\foreignlanguage{greek}}
+
+% print the selected language variant
+\newcommand{\GreekLanguageVariant}{%
+ \ifx\captionsgreek\captionspolutonikogreek
+ \ifx\captionsgreek\captionsancientgreek
+ ancient%
+ \else
+ polutoniko%
+ \fi
+ \else
+ monotoniko%
+ \fi
+}
+
+% -----------------------------------------------------------------------
+
+\begin{document}
+
+\tableofcontents
+
+\section{Test case conversions of Greek letters}
+
+This document tests the combination of \verb|MakeUppercase| and Greek.
+
+\makeatletter
+It is compiled with \texengine, format version \fmtversion{} patch-level
+\patch@level{} and the L3 programming layer from \ExplFileDate{}.
+\makeatother
+The \verb|\greekfontencoding| is \greekfontencoding.
+
+\section{Unicode literals}
+
+\subsection{Greek and Coptic}
+
+Characters from the Greek and Coptic Unicode block that are supported by
+\emph{greek-fontenc} and \emph{greek-inputenc}:
+
+\newcommand{\GreekAndCoptic}{
+ \raggedright
+ ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\
+ ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\
+ Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣
+}
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+
+The lowercase of \langGreek{Σ} is the «auto-sigma»
+(\verb|\textautosigma|): \langGreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}.
+Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to
+final sigma: \langGreek{\MakeLowercase{ΣΣ‌}}.
+
+
+\subsection{Greek extended}
+
+Characters of the Greek Extended Unicode block:
+
+\newcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+ ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣
+}
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+% With TeXLive 2020 (old \verb|\Makeuppercase|),
+% all accents except dialytika and prosgegrammeni are dropped in UPPERCASE
+% and kept in lowercase.
+% No errors.
+%
+% With current TeXLive:
+% pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022)
+% LaTeX2e <2022-11-01> patch level 1
+% L3 programming layer <2023-02-22>
+%
+% Upcasing ``Unicode errors'' are resolved.
+%
+% Uppercase of character ';' 0x37E GREEK QUESTION MARK is a semicolon
+% which is mapped to '·' 0x387 GREEK ANO TELEIA by LGR. :(
+%
+% Accents dropped with MakeUppercase (not for single letter ή) :)
+% TODO: how to treat MakeUppercase of a single captial «΄Η»?
+%
+% The "Latin" accents macron and breve should be kept. (minor)
+%
+% Spacing prosgegrammeni (ι) turned to capital Iota. (minor)
+%
+% Spacing single diacritics are kept. (irrelevant, OK)
+% Spacing combining diacritics are mapped to single diacritics. (irrelevant)
+%
+% Auto-Hiatus: ἀυπνία → ΑΥΠΝΙΑ (missing dialytika on the Upsilon).
+
+% With pdfLaTeX and LGR, a ZWNJ or the ``\noboundary`` macro can be used to
+% prevent conversion of trailing Σ to a final sigma ς by ``\MakeLowercase``.
+% This does not work with Unicode fonts (XeTeX/LuaTeX).
+
+% With XeTeX and Unicode fonts,
+\subsubsection{hiatus}
+
+Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on
+the first of two consecutive vowels (άι, άυ, έι, ἀυ, ἄι, ἄυ, ἔι).
+A dialytika must be placed on the second vowel if they are dropped.
+
+Since the 2022/06 LaTeX release, it works with monotonic Unicode literals
+(since 2023/02/10] also some polytonic but fails with psili):
+\begin{quote}
+ \selectlanguage{greek}
+ \newcommand*{\hiatest}{άι, άυ, έι, ἄι, ἄυ, ἔι, ἀυ}
+ \hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
+\end{quote}
+
+Example \foreignlanguage{greek}{ἀυπνία $\mapsto$ \MakeUppercase{ἀυπνία}}
+(missing dialytika on the Upsilon).
+
+\section{LICR macros}
+
+This section compares literal Unicode Greek characters to characters input
+as LICR macros
+
+\subsection{Greek and Coptic}
+
+\subsubsection{short accent macros}
+
+\renewcommand{\GreekAndCoptic}{% only characters supported by LGR
+ \raggedright
+ ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\
+ ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{}
+ ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\
+
+ ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+
+ ␣ ␣ ␣ ␣ \'{ } \"'{ } \'\textAlpha{} \textanoteleia{}
+ \'\textEpsilon{} \'\textEta{} \'\textIota{}
+ ␣ \'\textOmicron{} ␣ \'\textUpsilon{} \'\textOmega{} \\
+
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ \'"\textiota{} \textAlpha{} \textBeta{} \textGamma{} \textDelta{}
+ \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{}
+ \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\
+
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{}
+ \textPhi{} \textChi{} \textPsi{} \textOmega{} \"\textIota{}
+ \"\textUpsilon{} \'\textalpha{} \'\textepsilon{} \'\texteta{}
+ \'\textiota{} \\
+
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ \"'\textupsilon{} \textalpha{} \textbeta{} \textgamma{} \textdelta{}
+ \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{}
+ \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\
+
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{}
+ \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{} \"\textiota{}
+ \"\textupsilon{} \'\textomicron{} \'\textupsilon{} \'\textomega{} \\
+
+ ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\
+ \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{}
+ \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{}
+ \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\
+
+ Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\
+ \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣
+ \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol
+}
+
+No case change:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+
+\subsubsection{named accent macros}
+
+\renewcommand{\GreekAndCoptic}{% only characters supported by LGR
+ \raggedright
+ ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\
+ ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{}
+ ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\
+
+ ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+ ␣ ␣ ␣ ␣ \acctonos{ } \accdialytikatonos{ } \acctonos\textAlpha{}
+ \textanoteleia{} \acctonos\textEpsilon{} \acctonos\textEta{}
+ \acctonos\textIota{} ␣ \acctonos\textOmicron{} ␣ \acctonos\textUpsilon{}
+ \acctonos\textOmega{} \\
+
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ \accdialytikatonos\textiota{} \textAlpha{} \textBeta{} \textGamma{}
+ \textDelta{} \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{}
+ \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\
+
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{}
+ \textPhi{} \textChi{} \textPsi{} \textOmega{} \accdialytika\textIota{}
+ \accdialytika\textUpsilon{} \acctonos\textalpha{} \acctonos\textepsilon{}
+ \acctonos\texteta{} \acctonos\textiota{} \\
+
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ \accdialytikatonos\textupsilon{} \textalpha{} \textbeta{} \textgamma{}
+ \textdelta{} \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{}
+ \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\
+
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{}
+ \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{}
+ \accdialytika\textiota{} \accdialytika\textupsilon{}
+ \acctonos\textomicron{} \acctonos\textupsilon{} \acctonos\textomega{} \\
+
+ ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\
+ \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{}
+ \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{}
+ \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\
+
+ Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\
+ \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣
+ \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol
+}
+No case change:
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+
+
+\subsection{Greek extended}
+
+\subsubsection{short accent macros}
+
+\renewcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ \>\textalpha{}
+ \<\textalpha{}
+ \>`\textalpha{}
+ \<`\textalpha{}
+ \>'\textalpha{}
+ \<'\textalpha{}
+ \~>\textalpha{}
+ \~<\textalpha{}
+ \>\textAlpha{}
+ \<\textAlpha{}
+ \>`\textAlpha{}
+ \<`\textAlpha{}
+ \>'\textAlpha{}
+ \<'\textAlpha{}
+ \~>\textAlpha{}
+ \~<\textAlpha{} \\
+
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ \>\textepsilon{}
+ \<\textepsilon{}
+ \>`\textepsilon{}
+ \<`\textepsilon{}
+ \>'\textepsilon{}
+ \<'\textepsilon{}
+ ␣ ␣ \>\textEpsilon{}
+ \<\textEpsilon{}
+ \>`\textEpsilon{}
+ \<`\textEpsilon{}
+ \>'\textEpsilon{}
+ \<'\textEpsilon{}\\
+
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ \>\texteta{}
+ \<\texteta{}
+ \>`\texteta{}
+ \<`\texteta{}
+ \>'\texteta{}
+ \<'\texteta{}
+ \~>\texteta{}
+ \~<\texteta{}
+ \>\textEta{}
+ \<\textEta{}
+ \>`\textEta{}
+ \<`\textEta{}
+ \>'\textEta{}
+ \<'\textEta{}
+ \~>\textEta{}
+ \~<\textEta{} \\
+
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ \>\textiota{}
+ \<\textiota{}
+ \>`\textiota{}
+ \<`\textiota{}
+ \>'\textiota{}
+ \<'\textiota{}
+ \~>\textiota{}
+ \~<\textiota{}
+ \>\textIota{}
+ \<\textIota{}
+ \>`\textIota{}
+ \<`\textIota{}
+ \>'\textIota{}
+ \<'\textIota{}
+ \~>\textIota{}
+ \~<\textIota{} \\
+
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ \>\textomicron{}
+ \<\textomicron{}
+ \>`\textomicron{}
+ \<`\textomicron{}
+ \>'\textomicron{}
+ \<'\textomicron{}
+ ␣ ␣ \>\textOmicron{}
+ \<\textOmicron{}
+ \>`\textOmicron{}
+ \<`\textOmicron{}
+ \>'\textOmicron{}
+ \<'\textOmicron{} \\
+
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ \>\textupsilon{}
+ \<\textupsilon{}
+ \>`\textupsilon{}
+ \<`\textupsilon{}
+ \>'\textupsilon{}
+ \<'\textupsilon{}
+ \~>\textupsilon{}
+ \~<\textupsilon{}
+ ␣ \<\textUpsilon{}
+ ␣ \<`\textUpsilon{}
+ ␣ \<'\textUpsilon{}
+ ␣ \~<\textUpsilon{} \\
+
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ \>\textomega{}
+ \<\textomega{}
+ \>`\textomega{}
+ \<`\textomega{}
+ \>'\textomega{}
+ \<'\textomega{}
+ \~>\textomega{}
+ \~<\textomega{}
+ \>\textOmega{}
+ \<\textOmega{}
+ \>`\textOmega{}
+ \<`\textOmega{}
+ \>'\textOmega{}
+ \<'\textOmega{}
+ \~>\textOmega{}
+ \~<\textOmega{} \\
+
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ \`\textalpha{}
+ \'\textalpha{}
+ \`\textepsilon{}
+ \'\textepsilon{}
+ \`\texteta{}
+ \'\texteta{}
+ \`\textiota{}
+ \'\textiota{}
+ \`\textomicron{}
+ \'\textomicron{}
+ \`\textupsilon{}
+ \'\textupsilon{}
+ \`\textomega{}
+ \'\textomega{} \\
+
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ \>\textalpha\ypogegrammeni{}
+ \<\textalpha\ypogegrammeni{}
+ \>`\textalpha\ypogegrammeni{}
+ \<`\textalpha\ypogegrammeni{}
+ \>'\textalpha\ypogegrammeni{}
+ \<'\textalpha\ypogegrammeni{}
+ \~>\textalpha\ypogegrammeni{}
+ \~<\textalpha\ypogegrammeni{}
+ \>\textAlpha\ypogegrammeni{}
+ \<\textAlpha\ypogegrammeni{}
+ \>`\textAlpha\ypogegrammeni{}
+ \<`\textAlpha\ypogegrammeni{}
+ \>'\textAlpha\ypogegrammeni{}
+ \<'\textAlpha\ypogegrammeni{}
+ \~>\textAlpha\ypogegrammeni{}
+ \~<\textAlpha\ypogegrammeni{} \\
+
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ \>\texteta\ypogegrammeni{}
+ \<\texteta\ypogegrammeni{}
+ \>`\texteta\ypogegrammeni{}
+ \<`\texteta\ypogegrammeni{}
+ \>'\texteta\ypogegrammeni{}
+ \<'\texteta\ypogegrammeni{}
+ \~>\texteta\ypogegrammeni{}
+ \~<\texteta\ypogegrammeni{}
+ \>\textEta\ypogegrammeni{}
+ \<\textEta\ypogegrammeni{}
+ \>`\textEta\ypogegrammeni{}
+ \<`\textEta\ypogegrammeni{}
+ \>'\textEta\ypogegrammeni{}
+ \<'\textEta\ypogegrammeni{}
+ \~>\textEta\ypogegrammeni{}
+ \~<\textEta\ypogegrammeni{} \\
+
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ \>\textomega\ypogegrammeni{}
+ \<\textomega\ypogegrammeni{}
+ \>`\textomega\ypogegrammeni{}
+ \<`\textomega\ypogegrammeni{}
+ \>'\textomega\ypogegrammeni{}
+ \<'\textomega\ypogegrammeni{}
+ \~>\textomega\ypogegrammeni{}
+ \~<\textomega\ypogegrammeni{}
+ \>\textOmega\ypogegrammeni{}
+ \<\textOmega\ypogegrammeni{}
+ \>`\textOmega\ypogegrammeni{}
+ \<`\textOmega\ypogegrammeni{}
+ \>'\textOmega\ypogegrammeni{}
+ \<'\textOmega\ypogegrammeni{}
+ \~>\textOmega\ypogegrammeni{}
+ \~<\textOmega\ypogegrammeni{} \\
+
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+ \u\textalpha{}
+ \=\textalpha{}
+ \`\textalpha\ypogegrammeni{}
+ \textalpha\ypogegrammeni{}
+ \'\textalpha\ypogegrammeni{}
+ ␣ \~\textalpha{}
+ \~\textalpha\ypogegrammeni{}
+ \u\textAlpha{}
+ \=\textAlpha{}
+ \`\textAlpha{}
+ \'\textAlpha{}
+ \textAlpha\ypogegrammeni{}
+ \>{}
+ \prosgegrammeni{}
+ \>{} \\
+
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ \~{}
+ \"\~{}
+ \`\texteta\ypogegrammeni{}
+ \texteta\ypogegrammeni{}
+ \'\texteta\ypogegrammeni{}
+ ␣ \~\texteta{}
+ \~\texteta\ypogegrammeni{}
+ \`\textEpsilon{}
+ \'\textEpsilon{}
+ \`\textEta{}
+ \'\textEta{}
+ \textEta\ypogegrammeni{}
+ \>`{}
+ \>'{}
+ \~>{} \\
+
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+ \u\textiota{}
+ \=\textiota{}
+ \`"\textiota{}
+ \'"\textiota{}
+ ␣ ␣ \~\textiota{}
+ \~"\textiota{}
+ \u\textIota{}
+ \=\textIota{}
+ \`\textIota{}
+ \'\textIota{}
+ ␣
+ \<`{}
+ \<'{}
+ \~<{} \\
+
+ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
+ \u\textupsilon{}
+ \=\textupsilon{}
+ \`"\textupsilon{}
+ \'"\textupsilon{}
+ \>\textrho{}
+ \<\textrho{}
+ \~\textupsilon{}
+ \~"\textupsilon{}
+ \u\textUpsilon{}
+ \=\textUpsilon{}
+ \`\textUpsilon{}
+ \'\textUpsilon{}
+ \<\textRho{}
+ \`"{}
+ \'"{}
+ \`{} \\
+
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\
+
+ ␣ ␣ \`\textomega\ypogegrammeni{}
+ \textomega\ypogegrammeni{}
+ \'\textomega\ypogegrammeni{}
+ ␣ \~\textomega{}
+ \~\textomega\ypogegrammeni{}
+ \`\textOmicron{}
+ \'\textOmicron{}
+ \`\textOmega{}
+ \'\textOmega{}
+ \textOmega\ypogegrammeni{}
+ \'{}
+ \<{} ␣
+}
+
+No case change:
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+
+\subsubsection{named accent macros}
+
+\renewcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ \accpsili\textalpha{}
+ \accdasia\textalpha{}
+ \accpsilivaria\textalpha{}
+ \accdasiavaria\textalpha{}
+ \accpsilioxia\textalpha{}
+ \accdasiaoxia\textalpha{}
+ \accpsiliperispomeni\textalpha{}
+ \accdasiaperispomeni\textalpha{}
+ \accpsili\textAlpha{}
+ \accdasia\textAlpha{}
+ \accpsilivaria\textAlpha{}
+ \accdasiavaria\textAlpha{}
+ \accpsilioxia\textAlpha{}
+ \accdasiaoxia\textAlpha{}
+ \accpsiliperispomeni\textAlpha{}
+ \accdasiaperispomeni\textAlpha{} \\
+
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ \accpsili\textepsilon{}
+ \accdasia\textepsilon{}
+ \accpsilivaria\textepsilon{}
+ \accdasiavaria\textepsilon{}
+ \accpsilioxia\textepsilon{}
+ \accdasiaoxia\textepsilon{}
+ ␣ ␣ \accpsili\textEpsilon{}
+ \accdasia\textEpsilon{}
+ \accpsilivaria\textEpsilon{}
+ \accdasiavaria\textEpsilon{}
+ \accpsilioxia\textEpsilon{}
+ \accdasiaoxia\textEpsilon{}\\
+
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ \accpsili\texteta{}
+ \accdasia\texteta{}
+ \accpsilivaria\texteta{}
+ \accdasiavaria\texteta{}
+ \accpsilioxia\texteta{}
+ \accdasiaoxia\texteta{}
+ \accpsiliperispomeni\texteta{}
+ \accdasiaperispomeni\texteta{}
+ \accpsili\textEta{}
+ \accdasia\textEta{}
+ \accpsilivaria\textEta{}
+ \accdasiavaria\textEta{}
+ \accpsilioxia\textEta{}
+ \accdasiaoxia\textEta{}
+ \accpsiliperispomeni\textEta{}
+ \accdasiaperispomeni\textEta{} \\
+
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ \accpsili\textiota{}
+ \accdasia\textiota{}
+ \accpsilivaria\textiota{}
+ \accdasiavaria\textiota{}
+ \accpsilioxia\textiota{}
+ \accdasiaoxia\textiota{}
+ \accpsiliperispomeni\textiota{}
+ \accdasiaperispomeni\textiota{}
+ \accpsili\textIota{}
+ \accdasia\textIota{}
+ \accpsilivaria\textIota{}
+ \accdasiavaria\textIota{}
+ \accpsilioxia\textIota{}
+ \accdasiaoxia\textIota{}
+ \accpsiliperispomeni\textIota{}
+ \accdasiaperispomeni\textIota{} \\
+
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ \accpsili\textomicron{}
+ \accdasia\textomicron{}
+ \accpsilivaria\textomicron{}
+ \accdasiavaria\textomicron{}
+ \accpsilioxia\textomicron{}
+ \accdasiaoxia\textomicron{}
+ ␣ ␣ \accpsili\textOmicron{}
+ \accdasia\textOmicron{}
+ \accpsilivaria\textOmicron{}
+ \accdasiavaria\textOmicron{}
+ \accpsilioxia\textOmicron{}
+ \accdasiaoxia\textOmicron{} \\
+
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ \accpsili\textupsilon{}
+ \accdasia\textupsilon{}
+ \accpsilivaria\textupsilon{}
+ \accdasiavaria\textupsilon{}
+ \accpsilioxia\textupsilon{}
+ \accdasiaoxia\textupsilon{}
+ \accpsiliperispomeni\textupsilon{}
+ \accdasiaperispomeni\textupsilon{}
+ ␣ \accdasia\textUpsilon{}
+ ␣ \accdasiavaria\textUpsilon{}
+ ␣ \accdasiaoxia\textUpsilon{}
+ ␣ \accdasiaperispomeni\textUpsilon{} \\
+
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ \accpsili\textomega{}
+ \accdasia\textomega{}
+ \accpsilivaria\textomega{}
+ \accdasiavaria\textomega{}
+ \accpsilioxia\textomega{}
+ \accdasiaoxia\textomega{}
+ \accpsiliperispomeni\textomega{}
+ \accdasiaperispomeni\textomega{}
+ \accpsili\textOmega{}
+ \accdasia\textOmega{}
+ \accpsilivaria\textOmega{}
+ \accdasiavaria\textOmega{}
+ \accpsilioxia\textOmega{}
+ \accdasiaoxia\textOmega{}
+ \accpsiliperispomeni\textOmega{}
+ \accdasiaperispomeni\textOmega{} \\
+
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ \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{} \\
+
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ \accpsili\textalpha\ypogegrammeni{}
+ \accdasia\textalpha\ypogegrammeni{}
+ \accpsilivaria\textalpha\ypogegrammeni{}
+ \accdasiavaria\textalpha\ypogegrammeni{}
+ \accpsilioxia\textalpha\ypogegrammeni{}
+ \accdasiaoxia\textalpha\ypogegrammeni{}
+ \accpsiliperispomeni\textalpha\ypogegrammeni{}
+ \accdasiaperispomeni\textalpha\ypogegrammeni{}
+ \accpsili\textAlpha\ypogegrammeni{}
+ \accdasia\textAlpha\ypogegrammeni{}
+ \accpsilivaria\textAlpha\ypogegrammeni{}
+ \accdasiavaria\textAlpha\ypogegrammeni{}
+ \accpsilioxia\textAlpha\ypogegrammeni{}
+ \accdasiaoxia\textAlpha\ypogegrammeni{}
+ \accpsiliperispomeni\textAlpha\ypogegrammeni{}
+ \accdasiaperispomeni\textAlpha\ypogegrammeni{} \\
+
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ \accpsili\texteta\ypogegrammeni{}
+ \accdasia\texteta\ypogegrammeni{}
+ \accpsilivaria\texteta\ypogegrammeni{}
+ \accdasiavaria\texteta\ypogegrammeni{}
+ \accpsilioxia\texteta\ypogegrammeni{}
+ \accdasiaoxia\texteta\ypogegrammeni{}
+ \accpsiliperispomeni\texteta\ypogegrammeni{}
+ \accdasiaperispomeni\texteta\ypogegrammeni{}
+ \accpsili\textEta\ypogegrammeni{}
+ \accdasia\textEta\ypogegrammeni{}
+ \accpsilivaria\textEta\ypogegrammeni{}
+ \accdasiavaria\textEta\ypogegrammeni{}
+ \accpsilioxia\textEta\ypogegrammeni{}
+ \accdasiaoxia\textEta\ypogegrammeni{}
+ \accpsiliperispomeni\textEta\ypogegrammeni{}
+ \accdasiaperispomeni\textEta\ypogegrammeni{} \\
+
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ \accpsili\textomega\ypogegrammeni{}
+ \accdasia\textomega\ypogegrammeni{}
+ \accpsilivaria\textomega\ypogegrammeni{}
+ \accdasiavaria\textomega\ypogegrammeni{}
+ \accpsilioxia\textomega\ypogegrammeni{}
+ \accdasiaoxia\textomega\ypogegrammeni{}
+ \accpsiliperispomeni\textomega\ypogegrammeni{}
+ \accdasiaperispomeni\textomega\ypogegrammeni{}
+ \accpsili\textOmega\ypogegrammeni{}
+ \accdasia\textOmega\ypogegrammeni{}
+ \accpsilivaria\textOmega\ypogegrammeni{}
+ \accdasiavaria\textOmega\ypogegrammeni{}
+ \accpsilioxia\textOmega\ypogegrammeni{}
+ \accdasiaoxia\textOmega\ypogegrammeni{}
+ \accpsiliperispomeni\textOmega\ypogegrammeni{}
+ \accdasiaperispomeni\textOmega\ypogegrammeni{} \\
+
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+ \u\textalpha{}
+ \=\textalpha{}
+ \accvaria\textalpha\ypogegrammeni{}
+ \textalpha\ypogegrammeni{}
+ \accoxia\textalpha\ypogegrammeni{}
+ ␣ \accperispomeni\textalpha{}
+ \accperispomeni\textalpha\ypogegrammeni{}
+ \u\textAlpha{}
+ \=\textAlpha{}
+ \accvaria\textAlpha{}
+ \accoxia\textAlpha{}
+ \textAlpha\ypogegrammeni{}
+ \accpsili{}
+ \prosgegrammeni{}
+ \accpsili{} \\
+
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ \accperispomeni{}
+ \accdialytikaperispomeni{}
+ \accvaria\texteta\ypogegrammeni{}
+ \texteta\ypogegrammeni{}
+ \accoxia\texteta\ypogegrammeni{}
+ ␣ \accperispomeni\texteta{}
+ \accperispomeni\texteta\ypogegrammeni{}
+ \accvaria\textEpsilon{}
+ \accoxia\textEpsilon{}
+ \accvaria\textEta{}
+ \accoxia\textEta{}
+ \textEta\ypogegrammeni{}
+ \accpsilivaria{}
+ \accpsilioxia{}
+ \accpsiliperispomeni{} \\
+
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+ \u\textiota{}
+ \=\textiota{}
+ \accdialytikavaria\textiota{}
+ \accdialytikatonos\textiota{}
+ ␣ ␣ \accperispomeni\textiota{}
+ \accperispomeni"\textiota{}
+ \u\textIota{}
+ \=\textIota{}
+ \accvaria\textIota{}
+ \accoxia\textIota{}
+ ␣
+ \accdasiavaria{}
+ \accdasiaoxia{}
+ \accdasiaperispomeni{} \\
+
+ ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\
+ \u\textupsilon{}
+ \=\textupsilon{}
+ \accdialytikavaria\textupsilon{}
+ \accdialytikatonos\textupsilon{}
+ \accpsili\textrho{}
+ \accdasia\textrho{}
+ \accperispomeni\textupsilon{}
+ \accdialytikaperispomeni\textupsilon{}
+ \u\textUpsilon{}
+ \=\textUpsilon{}
+ \accvaria\textUpsilon{}
+ \accoxia\textUpsilon{}
+ \accdasia\textRho{}
+ \accdialytikavaria{}
+ \accdialytikatonos{}
+ \accvaria{} \\
+
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\
+
+ ␣ ␣ \accvaria\textomega\ypogegrammeni{}
+ \textomega\ypogegrammeni{}
+ \accoxia\textomega\ypogegrammeni{}
+ ␣ \accperispomeni\textomega{}
+ \accperispomeni\textomega\ypogegrammeni{}
+ \accvaria\textOmicron{}
+ \accoxia\textOmicron{}
+ \accvaria\textOmega{}
+ \accoxia\textOmega{}
+ \textOmega\ypogegrammeni{}
+ \accoxia{}
+ \accdasia{} ␣
+}
+
+No case change:
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+%
+MakeUppercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+%
+MakeLowercase:
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+
+\section{Latin transliteration}
+
+\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
+ \textbf{Warning:}
+ As the uc/lccode re-definitions are not performed when Unicode fonts are
+ used, the accents are not dropped from upcased Latin transliterations.
+ Accent macros work fine also in Latin transliterations with Xe/LuaTeX.
+\fi
+
+\subsection{Greek and Coptic}
+
+Every second line is input as Latin transliteration:
+
+\renewcommand{\GreekAndCoptic}{%
+ ͺ ; ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\
+ \lgrfont{ | ? ␣ ␣ ' "' 'A ; 'E 'H 'I ␣ 'O ␣ 'U 'W} \\
+ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\
+ \lgrfont{'"i A B G D E Z H J I K L M N X O} \\
+ Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\
+ \lgrfont{ P R ␣ S T U F Q Y W "I "U 'a 'e 'h 'i} \\
+ ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\
+ \lgrfont{'"u a b g d e z h j i k l m n x o} \\
+ π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\
+ \lgrfont{ p r s s\textcompwordmark{}
+ t u f q y w "i "u 'o 'u 'w ␣}
+}
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekAndCoptic
+\end{quote}
+%
+MakeUppercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekAndCoptic}
+\end{quote}
+%
+Letters upcased, dialytika and sub-iota unchanged, other diacritics dropped
+(if \verb|\greekfontencoding| is LGR).
+
+
+MakeLowercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekAndCoptic}
+\end{quote}
+%
+With LGR, the lowercase of \ensuregreek{Σ} is the «auto-sigma»
+(\verb|\textautosigma|): \ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}.
+Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to
+final sigma: \ensuregreek{\MakeLowercase{ΣΣ‌}}.
+The lowercase of GREEK LETTER STIGMA \ensuregreek{Ϛ} is
+\ensuregreek{\MakeLowercase{Ϛ}}, not \verb|\textvarstigma|%
+\ifdefined \UnicodeEncodingName \else
+ (\ensuregreek\textvarstigma)%
+\fi .
+
+\subsection{Greek extended}
+
+Every second line is input as Latin transliteration. The current language
+variant is \emph\GreekLanguageVariant.
+
+\renewcommand{\GreekExtended}{\raggedright
+ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\
+ \lgrfont{>a <a >`a <`a >'a <'a >~a <~a >A <A >`A <`A >'A <'A >~A <~A } \\
+ ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\
+ \lgrfont{>e <e >`e <`e >'e <'e ␣ ␣ >E <E >`E <`E >'E <'E } \\
+ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\
+ \lgrfont{>h <h >`h <`h >'h <'h >~h <~h >H <H >`H <`H >'H <'H >~H <~H } \\
+ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\
+ \lgrfont{>i <i >`i <`i >'i <'i >~i <~i >I <I >`I <`I >'I <'I >~I <~I } \\
+ ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\
+ \lgrfont{>o <o >`o <`o >'o <'o ␣ ␣ >O <O >`O <`O >'O <'O } \\
+ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\
+ \lgrfont{>u <u >`u <`u >'u <'u >~u <~u ␣ <U ␣ <`U ␣ <'U ␣ <~U } \\
+ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\
+ \lgrfont{>w <w >`w <`w >'w <'w >~w <~w >W <W >`W <`W >'W <'W >~W <~W } \\
+ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\
+ \lgrfont{`a 'a `e 'e `h 'h `i 'i `o 'o `u 'u `w 'w } \\
+ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\
+ \lgrfont{>a| <a| >`a| <`a| >'a| <'a| >~a| <~a| >A| <A| >`A| <`A| >'A| <'A| >~A| <~A|} \\
+ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\
+ \lgrfont{>h| <h| >`h| <`h| >'h| <'h| >~h| <~h| >H| <H| >`H| <`H| >'H| <'H| >~H| <~H|} \\
+ ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\
+ \lgrfont{>w| <w| >`w| <`w| >'w| <'w| >~w| <~w| >W| <W| >`W| <`W| >'W| <'W| >~W| <~W|} \\
+ ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\
+\lgrfont{\u{a} \=a `a| a| 'a| ␣ ~a ~a| \u{A} \=A `A 'A A| > | > } \\
+ ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\
+ \lgrfont{~ "~ `h| h| 'h| ␣ ~h ~h| `E 'E `H 'H H| >` >' ~> } \\
+ ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\
+\lgrfont{\u{i} \=i `"i '"i ␣ ␣ ~i ~"i \u{I} \=I `I 'I ␣ <` <' ~< } \\
+ ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\
+\lgrfont{\u{u} \=u `"u '"u ␣ ␣ >r <r ~u ~"u `U 'U <R `" '" ` } \\
+ ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ \\
+ \lgrfont{ ␣ ␣ `w| w| 'w| ␣ ~w ~w| `O 'O `W 'W W| ' < } \\
+}
+
+\begin{quote}
+ \selectlanguage{greek}
+ \GreekExtended
+\end{quote}
+
+With monotonic Greek or if the Greek font encoding is not LGR, the tilde
+keeps its default expansion as NBSP and transliterations involving \verb|~|
+fail. (The tilde accent \verb|\~| as well as combined accents involving the
+tilde work in all language variants.)
+
+MakeUppercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeUppercase{\GreekExtended}
+\end{quote}
+
+Breathings, combined accents and varia are re-mapped to the "empty" char
+only with the language variants \emph{polutoniko} or \emph{ancient}
+(currently \GreekLanguageVariant) as they are not required with monotonic
+Greek and only if \verb|\greekfontencoding| is LGR.
+
+In literal input, the uppercase of spacing combining accents including a
+dialytika \verb|"~ "` "'| appears as apostrophe, as a single \verb|"| stands
+for an apostrophe in the LGR transliteration if followed by a space or empty
+character.
+
+MakeLowercase:
+
+\begin{quote}
+ \selectlanguage{greek}
+ \MakeLowercase{\GreekExtended}
+\end{quote}
+
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex
new file mode 100644
index 0000000000..5fba328dc6
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek-8bitcompat.tex
@@ -0,0 +1,37 @@
+% Test Babel-Greek with LuaTeX and 8-bit fonts
+% © 2022 Günter Milde
+
+% Setup for LuaTeX with 8-bit fonts
+\newcommand{\SETUP}{
+ % LGR must be defined before loading "luainputenc" (bug in luainputenc?)
+ \usepackage[LGR,T1]{fontenc}
+ \usepackage{lmodern}
+ \usepackage[utf8]{luainputenc}
+ \newcommand*{\greekfontencoding}{LGR} % force LGR setup¹
+
+ \usepackage[greek,
+ % greek.local-LGR-fixes,
+ english]{babel}
+ % Uncomment the desired language variant
+ % \languageattribute{greek}{polutoniko} % "modern" polytonic Greek
+ \languageattribute{greek}{ancient} % ancient Greek
+}
+
+\newcommand{\SETUPDOC}{%
+This test is
+\ifdefined\luatexversion compiled
+\else intended for but \textbf{not} compiled
+\fi
+with LuaTeX in 8-bit compatibility mode.
+It loads the \pkgref{luainputenc} package for UTF-8 decoding
+and sets \texttt{\textbackslash greekfontencoding} to LGR.
+
+Hyphenation in Greek text parts fails (would require the
+8-bit hyphenation patterns, i.a., a loader fix for LuaTeX).
+}
+
+\input{test-greek.tex}
+
+% ¹TODO: Currently, defining \greekfontencoding must be done with
+% \def or \newcommand* and fails with \newcommand because
+% of the fragile string comparison using \ifx in greek.ldf!
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex
new file mode 100644
index 0000000000..f6fe1e15be
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex
@@ -0,0 +1,60 @@
+% Test Babel's "ini" file for Greek
+% © 2023 Günter Milde
+
+% Setup for Greek with localisation from the "ini" files.
+\newcommand{\SETUP}{
+
+ \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
+ \else % 8-bit TeX
+ \usepackage{lmodern}
+ \usepackage[LGR,T1]{fontenc}
+ % \usepackage{textalpha}
+ \ProvideTextCommandDefault{\greekscript}{\fontencoding{LGR}\selectfont
+ \def\encodingdefault{\greekfontencoding}}
+ \ProvideTextCommandDefault{\ensuregreek}[1]{\leavevmode{\greekscript ##1}}
+ % Babel <= (3.84) misses the automatic font encoding switch to LGR
+ % \addto\extrasgreek{\greekscript}
+ % \addto\noextrasgreek{\latintext}
+ \fi
+
+ \usepackage[greek, english, provide*=*]{babel}
+
+ \ifdefined\UnicodeEncodingName % set by XeTeX/LuaTeX
+ \babelfont{rm}[Scale=0.92]{DejaVu Serif}
+ % The "ini" Greek setup does not load extended Greek definitions for TU.
+ % Load textalpha or provide dummy definitions:
+ % \usepackage{textalpha}
+ \ProvideTextCommand{\ensuregreek}{TU}[1]{##1}
+ \ProvideTextCommand{\greekscript}{TU}{}
+ \ProvideTextCommand{\textalpha}{TU}{\cs{textalpha}}
+ \ProvideTextCommand{\textOmega}{TU}{\cs{textOmega}}
+ \fi
+
+ \usepackage{hyperref}
+ \hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue}
+
+ % fallbacks for commands defined in babel-greek:
+ \providecommand*\greekfontencoding{None}
+ % \providecommand*\lgrfont[1]{\cs{lgrfont} \emph{missing}}
+ \ProvideTextCommandDefault{\textampersand}{\&}
+ \providecommand*\greeknumeral[1]{\{##1\}}
+}
+
+\newcommand{\SETUPDOC}{%
+This test uses Babel's built-in Greek support (``ini'' file,
+cf. \href{https://latex3.github.io/babel/guides/locale-greek.html}
+{Babel guides ``Greek''}).
+
+The following problems can be easily fixed by loading the \emph{textalpha}
+package.
+\begin{itemize}
+ \item Accents not dropped with old (pre 2022/06) \cs{MakeUppercase}.
+ \item Greek LICR macros unknown in TU.
+\end{itemize}
+
+The new 2023/02/10 \cs{MakeUppercase} code fixes the UPPERCASE of Greek
+Unicode literals (including a fix for the ``hiatus'' problem).
+
+}
+
+\input{test-greek.tex}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf
deleted file mode 100644
index c1e973315c..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greek-lgr.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf
deleted file mode 100644
index c022976fbe..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greek-tu.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
new file mode 100644
index 0000000000..2abc4e024d
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-greek.tex
index 03dd9db4e3..8c72c355a6 100644
--- a/macros/latex/contrib/babel-contrib/greek/test-greek.tex
+++ b/macros/latex/contrib/babel-contrib/greek/test-greek.tex
@@ -1,30 +1,127 @@
+% Test document for Babel-Greek
+% © 2013, 2022 Günter Milde
+
+% Configuration constants (see test-greek-8bit-luatex.tex for a use case)
+
+\providecommand{\SETUP}{
+ \usepackage[LGR,T1]{fontenc}
+ \usepackage{lmodern}
+ % \usepackage{kerkis}
+ % \usepackage{gfsdidot}
+ % \usepackage{dejavu}
+ % \usepackage{textalpha} % support Greek literal chars and LICR "everywhere"
+ \ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ % \setmainfont[%
+ % ItalicFont=NewCM10-Italic.otf,%
+ % BoldFont=NewCM10-Bold.otf,%
+ % BoldItalicFont=NewCM10-BoldItalic.otf,%
+ % SmallCapsFeatures={Numbers=OldStyle}]{NewCM10-Regular.otf}
+ % \setsansfont[%
+ % ItalicFont=NewCMSans10-Oblique.otf,%
+ % BoldFont=NewCMSans10-Bold.otf,%
+ % BoldItalicFont=NewCMSans10-BoldOblique.otf,%
+ % SmallCapsFeatures={Numbers=OldStyle}]{NewCMSans10-Regular.otf}
+ % \setmonofont[%
+ % ItalicFont=NewCMMono10-Italic.otf,%
+ % BoldFont=NewCMMono10-Bold.otf,%
+ % BoldItalicFont=NewCMMono10-BoldOblique.otf,%
+ % SmallCapsFeatures={Numbers=OldStyle}]{NewCMMono10-Regular.otf}
+ %
+ \setmainfont[Scale=0.92]{DejaVu Serif}
+ \fi
+
+ % Load and configure Babel:
+
+ % Default: modern monotonic Greek
+ \usepackage[greek,% comment out "greek" to test the "basic support"
+ % greek.local-LGR-fixes,
+ english]{babel}
+ % Uncomment the desired language variant
+ \languageattribute{greek}{polutoniko} % "modern" polytonic Greek
+ % \languageattribute{greek}{ancient} % ancient Greek
+
+ % The "polytonic" language attribute is an alias for "polutoniko" matching
+ % the spelling in polyglossia and Babel *.ini files.
+ % \languageattribute{greek}{polytonic}
+
+ % Support for the pseudo-language "polutonikogreek", used instead of "greek",
+ % is kept for backwards compatibility:
+ % \usepackage[polutonikogreek,english]{babel}
+
+ % For backwards compatibility, you can also use
+ % \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc.
+ % if the "polutoniko" Greek language variant is selected.
+}
+
+\providecommand{\SETUPDOC}{}
+
+
\documentclass[a4paper]{article}
-\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
+
+\SETUP
+
+\usepackage{hyperref}
+\hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue}
+% \usepackage{bookmark}
+
\usepackage{parskip}
-\usepackage[greek,english]{babel}
-% \languageattribute{greek}{polutoniko}
-% \languageattribute{greek}{ancient}
+% Semantic styling:
-\ifdefined \UnicodeEncodingName
- \usepackage{fontspec}
- \setmainfont{DejaVu Serif}
-\fi
+\newcommand{\file}{\texttt}
+\newcommand{\cs}[1]{\texttt{\textbackslash#1}}
+\newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}}
+
+
+% Auxiliary commands:
+
+% print the selected language variant
+\newcommand{\GreekLanguageVariant}{%
+ \ifx\captionsgreek\captionspolutonikogreek
+ \ifx\captionsgreek\captionsancientgreek
+ ancient%
+ \else
+ polutoniko%
+ \fi
+ \else
+ monotoniko%
+ \fi
+}
+
+% The paragraph after \showhyphenpar is printed with all words
+% shown as hy-phen-ated.
+% from https://tex.stackexchange.com/questions/55282/display-hyphenation-options-for-a-specific-word/55283#55283
+\def\showhyphenpar{\bgroup
+ \def\par{\setparams\endgraf\composelines}
+ \setbox0=\vbox\bgroup \noindent\hskip0pt\relax}
+\def\setparams{\rightskip=0pt plus1fil
+ \linepenalty=1000 \pretolerance=-1 \hyphenpenalty=-10000}
+\def\composelines{\setbox2=\hbox{}%
+ \loop \setbox0=\lastbox \unskip \unpenalty
+ \ifhbox0 % je už \vbox vyprázdněn?
+ \global\setbox2=\hbox{\unhbox0\unskip\unhbox2}
+ \repeat
+ \egroup % vyprázdněný \vbox ukončím
+ \exhyphenpenalty=10000 % \box2 vyšoupnu do vnějšího seznamu
+ \emergencystretch=4em \leavevmode\unhbox2 \endgraf\egroup}
+
+% --------------------------------------------------------------------------
\begin{document}
-\title{Greek support for Babel}
+\title{Test the Greek support for Babel}
\author{Günter Milde}
-\date{2020/11/10}
+\date{\today}
\maketitle
-The babel option «greek» activates the support for the Greek language
-defined in the file «greek.ldf» (source «greek.dtx»).
+Test support for the Greek language as defined in the file
+\file{greek.ldf} (source \file{greek.dtx}).
+
+\SETUPDOC % print additional setup information.
+
+\tableofcontents
-Typesetting Greek texts requires a font containing Greek letters. With the
-XeTeX or LuaTeX engines, the user must ensure that the selected font
-contains the required glyphs (the default Latin Modern fonts miss most of
-them).
\section{Language Switch}
@@ -38,172 +135,376 @@ The declaration \verb|\selectlanguage| switches between languages.
\end{quote}
The command \verb|\foreignlanguage| sets its second argument in the language
-specified as first argument. This is intended for short text parts like
-\foreignlanguage{greek}{Βιβλιοθήκη}.
+specified as first argument. This is intended for short text parts or
+single words like \foreignlanguage{greek}{Βιβλιοθήκη}.
-\section{Font Encoding}
+Input may use literal Greek characters (\foreignlanguage{greek}{α \ldots Ω}),
+LICR macros (\foreignlanguage{greek}{\textalpha{} \ldots{} \textOmega}),
+or the Latin transliteration (\foreignlanguage{greek}{a \ldots{} W}) defined
+by the LGR font encoding (if LGR is used).
-Every language switch to \texttt{greek} calls the \verb|\extrasgreek|
-command which in turn calls \verb|\greekscript| to ensure a Greek-supporting
-font encoding (LGR or TU). At this point, the «greekfontencoding»
-is \texttt{\greekfontencoding}.
+There should be no inserted space before or after the language switch (this
+may happen if there are unescaped linebreaks in the font or language
+definitions):
+\begin{quotation}
+ Change script with \verb|ensuregreek|: |\ensuregreek{δοῦλος}|.
+ Change
+ language with \verb|\foreignlanguage|: |\foreignlanguage{greek}{δοῦλος}|.
-LGR has Greek characters in the slots reserved in a TeX \emph{standard text
-font encoding}. Therefore, the Babel core defines the declaration
-\verb|\latintext| and the command \verb|\textlatin| to switch to the TU, T1
-or OT1 font encoding or typeset the argument using this encoding. At this
-point, the «latinencoding» is \texttt{\latinencoding}.
+ Change language with \verb|\selectlanguage|:
+ |\selectlanguage{greek}δοῦλος\selectlanguage{english}|.
+\end{quotation}
-With the Unicode font encoding \texttt{TU},
-Latin characters can be used in Greek text parts and
-input via the «LGR Latin transcription» is not possible.
-The following quote mixes Latin transcription and Greek literal characters:
+\section{Auto-strings}
-\begin{quote}
- \greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
- \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.%
-\end{quote}
-
-\section{LICR Macros}
-
-Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. \emph{babel-greek} uses LICR%
+\emph{Babel} defines macros for several autogenerated strings so that they
+may appear in the choosen language. \emph{Babel-greek} uses LICR%
\footnote{LaTeX internal character representation} macros in
order to let the string macros work independent of the font encoding.
-If \verb|\greekfontencoding| is TU, \emph{babel-greek} loads Greek LICR
-definitions from the file \texttt{tuenc-greek.def} provided by
-\href{http://www.ctan.org/pkg/greek-fontenc}{greek-fontenc}
-since version~0.14 (2020-02-28).
+\selectlanguage{greek}
+\begin{abstract}
+ \ensureascii{Look for the abstract name. Today is} \today.
+\end{abstract}
+\selectlanguage{english}
-With this setup, it is also possible to use accent macros instead of
-pre-composed Unicode characters for letters with diacritics%
-\ifdefined \UnicodeEncodingName
- : Τ\'ι φ\'ηις;, \`<ορα = \accdasiavaria{ο}ρα
-\fi
-.
+Show the auto-strings for language variant ``\GreekLanguageVariant''.
\subsection{Captions}
+\newcommand{\AutoStrings}{%
+ \abstractname,
+ \alsoname,
+ \appendixname,
+ \bibname,\\
+ \ccname,
+ \chaptername,
+ \contentsname,
+ \enclname,\\
+ \figurename,
+ \glossaryname,
+ \headtoname,
+ \indexname,\\
+ \listfigurename ,
+ \listtablename,\\
+ \pagename,
+ \partname,
+ \prefacename,
+ \proofname,\\
+ \refname,
+ \seename,
+ \tablename
+}
\selectlanguage{greek}
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename ,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
+\AutoStrings
\selectlanguage{english}
Test correct upcasing (dropping of accents):
\selectlanguage{greek}
-\MakeUppercase{
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
-}
+\MakeUppercase{\AutoStrings}
\selectlanguage{english}
-
\subsection{Months}
-\selectlanguage{greek}
-\newcounter{foo}
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\selectlanguage{english}
-\section{Greek Numerals (\greeknumeral{1} to \Greeknumeral{999999})}
+\begin{quotation}
+ \selectlanguage{greek}
+ \newcounter{origmonth}
+ \setcounter{origmonth}{\the\month}
+ \newcounter{foo}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-See greek.pdf for the formation rules of Greek numerals.
-Some examples:
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-\selectlanguage{greek}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-\greeknumeral{1},
-\greeknumeral{2},
-\greeknumeral{3},
-\greeknumeral{4},
-\greeknumeral{5},
-\greeknumeral{6},
-\greeknumeral{7},
-\greeknumeral{8},
-\greeknumeral{9},
-\greeknumeral{10},
-\greeknumeral{11},
-\greeknumeral{12},
-\greeknumeral{20},
-\greeknumeral{345},
-\greeknumeral{500},
-\greeknumeral{1997},
-\greeknumeral{2013}
-
-\Greeknumeral{1},
-\Greeknumeral{2},
-\Greeknumeral{3},
-\Greeknumeral{4},
-\Greeknumeral{5},
-\Greeknumeral{6},
-\Greeknumeral{7},
-\Greeknumeral{8},
-\Greeknumeral{9},
-\Greeknumeral{10},
-\Greeknumeral{11},
-\Greeknumeral{12},
-\Greeknumeral{20},
-\Greeknumeral{345},
-\Greeknumeral{500},
-\Greeknumeral{1997},
-\Greeknumeral{2013}
-\selectlanguage{english}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
-Enumerated lists use Greek characters/numerals in the second and fourth level:
+ \stepcounter{foo} \month=\value{foo} \today \qquad \MakeUppercase{\today}
+ \month=\value{origmonth}
+\end{quotation}
+
+
+\section{Hyphenation}
+
+Patterns for the Greek language variants:
+
+\makeatletter
+monotonic: \verb|\l@monogreek| = \the\l@monogreek \\
+polytonic: \verb|\l@polygreek| = \the\l@polygreek \\
+ancient: \verb|\l@ancientgreek| = \the\l@ancientgreek
+
+current: \verb|\l@greek| = \the\l@greek
+\makeatletter
+
+Greek paragraph:
+\begin{quote}
+ \selectlanguage{greek}
+ \showhyphenpar
+ \ensureascii{monotonic:} Ευρετήριο, επίσης, Απόδειξη \\
+ \ensureascii{polytonic:} Εὑρετήριο, ἐπίσης, Ἀπόδειξη \\
+ \ensureascii{ancient:} Εὑρετήριον, ὡσαύτως, Ἀπόδειξις
+\end{quote}
+
+English paragraph with Greek text (\verb|\foreignlanguage{greek}|):
+\begin{quote}
+ \showhyphenpar
+ monotonic: \foreignlanguage{greek}{Ευρετήριο, επίσης, Απόδειξη } \\
+ polytonic: \foreignlanguage{greek}{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\
+ ancient: \foreignlanguage{greek}{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις}
+\end{quote}
+
+English paragraph with Greek script (\verb|\ensuregreek|): no hypenation
+\begin{quote}
+ \showhyphenpar
+ monotonic: \ensuregreek{Ευρετήριο, επίσης, Απόδειξη } \\
+ polytonic: \ensuregreek{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\
+ ancient: \ensuregreek{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις}
+\end{quote}
+
+\section{Greek Numerals (\greeknumeral{1} \ldots{} \greeknumeral{999999})%
+ \label{sec:greek-numerals}}
+
+\emph{Babel-Greek} provides the macros \verb|\greeknumeral| and
+\verb|\Greeknumeral| for the conversion of Arabic numbers from 1 to 999\,999
+into their Greek counterparts (\greeknumeral{1}, \greeknumeral{2},
+\greeknumeral{3}, \ldots, \greeknumeral{999999}).
+See \file{babel-greek.pdf} for the formation rules and configuration
+options and \file{test-greeknum.pdf} for samples.
+
+Examples:
+
+\newcommand*{\shownumeral}[2]{\mbox{#2 = \csname #1\endcsname{#2}}}
+\newcommand*{\numeralsample}[1]{%
+ \shownumeral{#1}{36}\quad
+ \shownumeral{#1}{94}\quad
+ \shownumeral{#1}{678}\quad
+ \shownumeral{#1}{2002}\quad
+ \shownumeral{#1}{923090}}
+
+\numeralsample{greeknumeral}
+
+\numeralsample{Greeknumeral}
+
+Users can redefine the macros \verb`\greeknumeralsix` and
+\verb`\greeknumeralSix` as well as \verb`\greeknumeralninety`
+\verb`\greeknumeralNinety` to configure the used symbols.
+
+If a font misses glyphs for the Greek numeral signs, subsitute characters
+may be defined with the macros
+\cs{textdexiakeraia} and \cs{textaristerikeraia}.
+
+\ifdefined \greeknumeralsix
+ Example (use ``archaic kappa'', ``varstigma'' with pdftex and substitute
+ chars for the numeral signs with Xe/LuaTeX):
+ \renewcommand*{\greeknumeralninety}{\textqoppa}
+ \renewcommand*{\greeknumeralNinety}{\textQoppa}
+ \ifdefined\UnicodeEncodingName
+ \renewcommand*{\textdexiakeraia}{\textquoteright}
+ \renewcommand*{\textaristerikeraia}{\quotesinglbase}
+ \else
+ \renewcommand*{\greeknumeralSix}{\textvarstigma}
+ \fi
+
+ \numeralsample{greeknumeral}
+
+ \numeralsample{Greeknumeral}
+
+ The macro \verb|\Grtoday| produces the current date with the month
+ and the day as greek numerals. Today is \ensuregreek{\Grtoday}.
+
+ \subsection{Alphabetical counters}
+
+ In line with Greek typographical tradition (and to avoid messed up
+ alphabetical counters with LGR fonts), \emph{babel-greek} changes
+ the internal LaTeX commands \cs{@alph} and \cs{@Alph}
+ to use Greek numerals inside Greek text parts
+ (see section~\ref{sec:LGR-redefinitions} for an example).
+
+\fi
+
+\section{Font Encoding}
+
+TeX's standard 8-bit text fonts don't provide for Greek characters.
+Every language switch to \texttt{greek} calls the \verb|\extrasgreek|
+language hook which in turn calls \verb|\greekscript| to ensure a
+Greek-supporting font encoding (LGR or TU).
+With the current setup, this document uses
+\begin{itemize}
+ \item \greekfontencoding{} as \verb|\greekfontencoding|,
+ \item \latinencoding{} as \verb|\latinencoding|, and
+ \makeatletter \ensureascii{\cf@encoding} \makeatother
+ inside \verb|\ensureascii|.
+\end{itemize}
+
+If \verb|\greekfontencoding| is LGR, \emph{babel-greek} performs additional
+setup steps to fix issues with the Latin transliteration (see below).
+If it is TU, \emph{babel-greek} loads Greek LICR definitions from the file
+\file{tuenc-greek.def}\footnote{%
+ Provided by \pkgref{greek-fontenc} since version~0.14 (2020-02-28)}.
+\ifdefined\UnicodeEncodingName
+ %
+ % Attention: \meaning\greekfontencoding\ != \meaning\UnicodeEncodingName
+ \expandafter\ifx\greekfontencoding\UnicodeEncodingName
+ With this setup, it is also possible to use accent macros instead of
+ pre-composed Unicode characters for letters with diacritics,
+ ὃρα = \`<ορα = \accdasiavaria{ο}ρα.
+ \fi
+\fi
+
+\ifdefined\greekscript
+ Switching to a font encoding supporting the Greek script is possible without
+ switching the Babel language using the declarations \verb|\greekscript| (no
+ switch if the current encoding supports the Greek script (e.g. the Unicode
+ font encodings TU and PU) or \verb|\greektext| (always switch to LGR) and the
+ corresponding functions \verb|\ensuregreek| and \verb|\lgrfont|.%
+ \footnote{Hyphenation patterns are not changed,
+ check for wrong hyphenations.}
+ These commands also work in the middle of a paragraph or word:
+ \greekscript Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
+ \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.
+\fi
+
+
+\subsection{LGR's \emph{Latin transliteration}}
+
+LGR has Greek characters in the slots reserved for Latin characters and
+other symbols in a TeX \emph{standard text font encoding}.
+This allows the use of a \emph{Latin transliteration} for the input of Greek
+characters\footnote{see \file{usage.pdf}}, however, characters that should
+be printed as Latin characters must be protected from conversion by a font
+encoding switch, either selecting a different language or wrapping them with
+\verb|\ensureascii| (provided by the Babel core), that sets its argument
+using an ASCII-compatible font encoding. The legacy declaration
+\verb|\latintext| switches the font encoding to \verb|\latinencoding|.
+
+With the Unicode font encoding TU, Latin characters can be used in Greek
+text parts and the Latin transliteration does not work (but see the
+last example below).
+
+The following quote (with the Babel language set to Greek) illustrates the
+problem:
+
+Literal characters, words in the ``foreign'' script protected:
+\begin{quote}
+ \selectlanguage{greek}
+ Φίλων τοῦ \textlatin{TeX} (ΕΦΤ) --
+ \selectlanguage{english}
+ Friends (\ensuregreek{Φίλων}) of TeX.
+\end{quote}
+
+Unprotected ASCII characters come out as Greek characters with LGR:
+\begin{quote}
+ \selectlanguage{greek}
+ Φίλων τοῦ TeX (ΕΦΤ) -- Friends (Φίλων) of TeX.
+\end{quote}
+
+The Latin transliteration works in LGR but not TU:
+\begin{quote}
+ \selectlanguage{greek}
+ F'ilwn to\~u \ensureascii{TeX} (EFT) --
+ \selectlanguage{english}
+ \latintext Friends (\ensuregreek{F\'ilwn}) of TeX.
+\end{quote}
+
+\ifdefined\lgrfont
+ The Latin transliteration can be used with also with
+ Xe/LuaTeX, if the input text is wrapped in \cs{lgrfont}
+ \footnote{available, if the LGR encoding is loaded
+ with the \pkgref{fontenc} package}
+ but may result in non-matching fonts and wrong hyphenation:
+ \begin{quote}
+ \selectlanguage{greek}
+ \lgrfont{F'ilwn to\~u \ensureascii{TeX} (EFT)} --
+ \selectlanguage{english}
+ \latintext Friends (\lgrfont{F\'ilwn}) of TeX.
+ \end{quote}
+\fi
+
+\subsubsection{LGR-proofed macros}
+
+\emph{Babel-greek} provides LGR-local variants for some
+\emph{TextCommand}s that rely on a standard text encoding.\footnote{%
+ These workarounds cannot be done in \file{lgrenc.def} from the
+ \pkgref{greek-fontenc} package because they are not allowed in a
+ ``font encoding definition file'' [\file{fntguide.pdf}].}
+The fallback definitions for some \emph{textcomp} symbols compose the
+symbols out of Latin letters.
+The fixes must not overwrite the selection of pre-composed symbols
+from \pkgref{textcomp} or TU (try copy and paste from the PDF output).
+
+LGR fonts have a middle dot glyph at the place of the ampersand. The new
+\emph{TextCommand} \verb|\textampersand| always prints an ampersand.
+\makeatletter \newcommand{\AsciiSymbolTest}{(\f@encoding) ©®™
+ A\textampersand W}
+\makeatother
+\begin{quote}
+ English: \AsciiSymbolTest\\
+ English: \ensuregreek{\AsciiSymbolTest}\\
+ Greek: \foreignlanguage{greek}{\AsciiSymbolTest}
+\end{quote}
+% English (LGR), input as macro:
+% \lgrfont{|\textcopyright|\textregistered|\texttrademark|
+% A\textampersand W.}
+
+\ifdefined\lgrfont% babel-greek and LGR font encoding loaded
+
+ \subsection{LGR re-definitions \label{sec:LGR-redefinitions}}
+
+ The generic macro \verb|\&| is re-defined inside Greek text parts to use
+ the original definition in math mode and \cs{textampersand} in text
+ mode.
+
+ \subsubsection{Roman numerals \label{sec:roman-numerals}}
+
+ Without fixes, Roman numerals are printed according to the Latin
+ transliteration (including the conversion of ``v'' to a
+ ZERO WIDTH NON-JOINER) if the font encoding is LGR:
+
+ \makeatletter
+ \newcommand{\RomanNumeralTest}{\f@encoding:
+ \romannumeral 1, \romannumeral 2, \romannumeral 3,
+ \romannumeral 4, \ldots, \romannumeral 1975}
+ \makeatother
+ \begin{quote}
+ \RomanNumeralTest\\
+ \lgrfont{\RomanNumeralTest}
+ \end{quote}
+
+ Roman numerals are used by the default document classes, e.g., in the third
+ level of enumerations or as page numbers in the frontmatter of a book.
+ They may move to auto-generated document parts like the ToC,
+ (hyper)references, or an index.
+
+ As document authors cannot wrap page numbers in a ToC in \verb|\ensureascii|,
+ \emph{Babel-greek} redefines the internal LaTeX commands \verb|\@roman| and
+ \verb|\@Roman| to make Roman numberals LGR-proof.
+ Unfortunately, this breaks Makeindex (cf. \file{test-lgr-fixes.tex}).
+
+\fi
+
+
+\subsubsection{Example}
+
+In Greek text parts, enumerated lists use Greek numerals in the second and
+fourth level and ASCII-proofed Roman numerals in the third level.
\selectlanguage{greek}
\begin{enumerate}
@@ -215,6 +516,7 @@ Enumerated lists use Greek characters/numerals in the second and fourth level:
\begin{enumerate}
\item item 1.1.1.1
\item item 1.1.1.2
+ \item item 1.1.1.3 \label{item 1.1.1.3}
\end{enumerate}
\item item 1.1.2
\end{enumerate}
@@ -222,20 +524,183 @@ Enumerated lists use Greek characters/numerals in the second and fourth level:
\end{enumerate}
\selectlanguage{english}
+\selectlanguage{english}
+Setting the language back to English should restore the alphabetic numbering:
+\begin{enumerate}
+ \item item 1
+ \begin{enumerate}
+ \item item 1.1
+ \begin{enumerate}
+ \item item 1.1.1
+ \begin{enumerate}
+ \item item 1.1.1.1
+ \item item 1.1.1.2
+ \item item 1.1.1.3
+ \end{enumerate}
+ \item item 1.1.2
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
-This may be problematic with fonts that only partially support Greek and
-miss the numeral signs (dexiakeraia and aristerikeraia).
+More test of the LGR-redefinitions are in \file{test-lgr-fixes.tex}.
-You may redefine the commands \verb+\textdexiakeraia+ and
-\verb+\textaristerikeraia+ to some substitute characters.
-Or, if you prefer the ``normal'' enumeration, write in the preamble after
-loading babel:
+\ifdefined\lgrfont
+\else
+ \end{document}
+\fi
-\begin{verbatim}
- \makeatletter
- \addto\extrasgreek{\let\@alph\latin@alph
- \let\@Alph\latin@Alph}
- \makeatother
-\end{verbatim}
+\section{Up- and downcasing in Greek}
+
+Capital Greek letters have diacritics (except the dialytika and sub-iota) to
+the left (instead of above) and drop them in uppercase (except the
+dialytika), e.g., \ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}.
+For literal Greek characters and accent macros, these rules are implemented
+and tested in the required package \pkgref{greek-fontenc}.
+
+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, e.g.
+%
+\newcommand{\HiatusLICR}{\acctonos\textalpha\textiota,
+ \acctonos\textalpha\textupsilon,
+ \acctonos\textepsilon\textiota,
+ \'>\textalpha\textiota,
+ \'>\textalpha\textupsilon,
+ \accpsili\textalpha\textupsilon,
+ \accdasiaoxia\textepsilon\textiota}%
+\ensuregreek{\HiatusLICR\ $\mapsto$ \MakeUppercase{\HiatusLICR}}.
+
+Some affected words:
+\begin{quotation}
+ \selectlanguage{greek}
+ \newcommand*{\aylos}{% from teubner.sty: άυλος → ΑΫΛΟΣ
+ \acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma}
+ \aylos{} $\mapsto$ \MakeUppercase{\aylos},
+ \renewcommand*{\aylos}{% polytonic: ἄυλος → ΑΫΛΟΣ
+ \'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma}
+ \aylos{} $\mapsto$ \MakeUppercase{\aylos},
+
+ % from http://diacritics.typo.cz/index.php?id=69
+ \newcommand*{\maina}{%μάινα → ΜΑΪΝΑ
+ \textmu\acctonos\textalpha\textiota\textnu\textalpha}
+ \maina{} $\mapsto$ \MakeUppercase{\maina},
+
+ % from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
+ \newcommand*{\keik}{% κέικ → ΚΕΪΚ
+ \textkappa\acctonos\textepsilon\textiota\textkappa}
+ \keik{} $\mapsto$ \MakeUppercase{\keik},
+
+ \newcommand*{\ahypnia}{% ἀυπνία → ΑΫΠΝΙΑ
+ \accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha}
+ \ahypnia{} $\mapsto$ \MakeUppercase{\ahypnia},
+
+ % from http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/
+ \newcommand*{\romeika}{\textrho\textomega\textmu
+ \acctonos\textepsilon\textiota\textkappa\textalpha}
+ \romeika{} $\mapsto$ \MakeUppercase{\romeika}.
+\end{quotation}
+
+With the pre-2022/06 \cs{MakeUppercase}, automatic upcasing of words with
+\emph{hiatus} works correctly only if the accents are input as macro and the
+letters as macro or via the Latin transliteration.
+
+With the current (2023/02/10) \cs{MakeUppercase}, it works for literal
+Unicode input and named accents. The definitions in \texttt{*enc.def} files,
+\texttt{uccode}s and the \texttt{@uclclist} are ignored.
+
+\subsection{Changed uccode/lccode values for LGR}
+
+LGR encoded fonts define ligatures for characters with diacritics. To enable
+correct upcasing, \emph{babel-greek} changes the uc/lccodes of some
+characters. Characters used to input diacritics are mapped to the ``empty''
+character 0x9f = 159.
+
+To minimise side-effects (see below), uc/lccodes are only changed:
+\begin{itemize}
+ \item if \cs{greekfontencoding} is a ``short macro'' expanding to LGR,%
+ \footnote{i.e. not in documents using Unicode fonts unless
+ \cs{greekfontencoding} is explicitly set to \texttt{LGR} before
+ loading \emph{babel-greek}}
+ \item if the LaTeX version is older than 2022/06, as uccodes are ignored
+ by the \cs{MakeUppercase} implementation introduced in this version
+ \item for accents that are actually required in the selcected language
+ variant (i.e. only for the \emph{tonos}, if the language variant
+ is the default ``monotonic''.
+\end{itemize}
+
+With \cs{greekfontencoding} \greekfontencoding, LaTeX version \fmtversion,
+and language variant ``\GreekLanguageVariant'' we get for
+dialytika\footnote{%
+ Unless followed by a to-be accented vowel, the quotation mark \texttt{"}
+ is converted to an upper right apostrophe by LGR.},
+sub-iota, tonos/oxia, varia, psili, and dasia:
+
+\newcommand{\AccentCharacters}{" | ' ` > <}
+\begin{quote}
+ \selectlanguage{greek}
+ \AccentCharacters{} $\mapsto$ \MakeUppercase{\AccentCharacters}
+\end{quote}
+
+\emph{Composite command} definitions ensure that combined accents
+also work for accent characters ``upcased'' to the charcter
+No 159 = 0x9f):
+
+\newcommand{\CombinedAccentSample}{
+ \ifdefined \UnicodeEncodingName
+ % TODO: combined accents swallow whitespace after base char
+ % unless protected
+ \"'υ{} \"`υ{} \`"υ{} \'"υ{} \`<α{} \'<α{}
+ \else
+ \"'u \"`u \`"u \'"u \`<a \'<a \'<ai
+ \fi
+ \'<\textalpha\textiota
+}
+\begin{quote}
+ \selectlanguage{greek}
+ \CombinedAccentSample{} $\mapsto$ \MakeUppercase{\CombinedAccentSample}
+\end{quote}
+
+With babel-greek versions up to 1.11, using the tilde for the
+\emph{perispomeni} accent inside \verb|\MakeUppercase| led to a
+\begin{quote}
+ \texttt{Package inputenc Error: Invalid UTF-8 byte "9F}
+\end{quote}
+(even without loading \emph{inputenc} and with \verb|\UseRawInputEncoding|).%
+\footnote{cf.
+ \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf}%
+ {LaTeX News 28}}
+Version 1.12 fixes the issue so that all three input variants work again
+(with LaTeX versions up to 2022/06)%
+\footnote{There are new issues with the implementation of \cs{MakeUppercase}
+ introduced in the 2022/06 LaTeX release, cf.\
+ \href{https://www.latex-project.org/news/latex2e-news/ltnews35.pdf}%
+ {LaTeX News 35}}
+\begin{quote}
+ \selectlanguage{greek}
+ \greektext
+ ~u \~u \accperispomeni{u} $\mapsto$ \MakeUppercase{~u \~u \accperispomeni{u}}
+\end{quote}
+
+
+The changed uc/lccodes have strange effects on Latin text parts
+in Greek paragraphs if only the encoding is switched:
+\begin{quote}
+ \selectlanguage{greek}
+ \foreignlanguage{english}{English:
+ Let's see: \AccentCharacters{} $\mapsto$
+ \MakeUppercase{Let's see: \AccentCharacters}}\\
+ \ensureascii{\cs{ensureascii}:
+ Let's see: \AccentCharacters{} $\mapsto$
+ \MakeUppercase{Let's see: \AccentCharacters}}
+\end{quote}
+%
+To limit the effect on, e.g., section headings (which are printed
+capitalised with the ``headings'' style), uccodes for ``v''
+(zero-width space) and ``c'' (final sigma) are not changed.
+Use \verb|\textcompwordmark| instead of \texttt{v} and autosigma
+(\texttt{s}) instead of \texttt{c} in text parts that could/should
+become upcased, e.g., \lgrfont{a\textcompwordmark us $\mapsto$
+\MakeUppercase{a\textcompwordmark us}}
+not \lgrfont{avuc $\mapsto$ \MakeUppercase{avuc}}.
\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex b/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex
new file mode 100644
index 0000000000..c04699d905
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-greeknum.tex
@@ -0,0 +1,131 @@
+\documentclass[a4paper]{article}
+\usepackage{ifthen}
+\usepackage[LGR,T1]{fontenc}
+\usepackage{booktabs}
+\usepackage{longtable,ltcaption,array}
+\usepackage[textwidth=14cm]{geometry} % to fit the number table
+\setlength{\extrarowheight}{2pt}
+\usepackage{parskip}
+\pagestyle{empty}
+
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ \setmainfont{Linux Libertine O} % no GREEK ACROPHONIC ATTIC numbers
+ % \setmainfont{Liberation Serif} % no GREEK ACROPHONIC ATTIC numbers
+ % \setmainfont{FreeSerif}
+\else
+ \usepackage{lmodern}
+ % \usepackage{kerkis} % !! Data loss: \textStigma and \textSampi
+ % characters missing!
+ % \usepackage{gfsdidot} % !! Data loss: \textsampi, \textSampi,
+ % and \textStigma characters missing!
+ % \usepackage{dejavu} % !! Data loss: \textSampi character missing!
+ % Prevent dataloss with re-definitions, e.g:
+ % \renewcommand*{\greeknumeralSix}{\textSigma\textTau} % default \textStigma
+ % \renewcommand*{\greeknumeralNinety}{\textsampi} % default \textSampi
+\fi
+
+
+\usepackage[greek,english]{babel}
+
+\begin{document}
+\section*{Test Greek (Milesian) numerals}
+\author{Günter Milde}
+\date{2023/01/06}
+
+Babel-greek defines the functions \verb|\greeknumeral| and
+\verb|\Greeknumeral| that work similar to the TeX primitive
+\verb|\romannumeral|. For details and configuration options, see
+\texttt{babel-greek.pdf}.
+
+Examples:
+
+\newcommand*{\greeknumeralsample}[1]{\mbox{#1 = \greeknumeral{#1}}}
+\newcommand*{\Greeknumeralsample}[1]{\mbox{#1 = \Greeknumeral{#1}}}
+
+\greeknumeralsample{16}\quad
+\greeknumeralsample{32}\quad
+\greeknumeralsample{64}\quad
+\greeknumeralsample{678}\quad
+\greeknumeralsample{2022}\quad
+\greeknumeralsample{123456}
+
+\Greeknumeralsample{16}\quad
+\Greeknumeralsample{32}\quad
+\Greeknumeralsample{64}\quad
+\Greeknumeralsample{678}\quad
+\Greeknumeralsample{2022}\quad
+\Greeknumeralsample{123456}
+
+Hexadecimal input works, too: \greeknumeralsample{"10}
+
+Largest supported number: \greeknumeralsample{999999}
+
+Values outside the supported range are printed as arabic decimal numbers
+(a warning is issued):
+\greeknumeralsample{-1}\quad
+\greeknumeralsample{0}\quad
+\greeknumeralsample{"1000000}
+
+All Ionic number symbols.
+The Greek font encoding is \greekfontencoding.
+
+\begin{tabular}{rrrrrrrrr}
+\toprule
+1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
+\greeknumeral{1} & \greeknumeral{2} & \greeknumeral{3} & \greeknumeral{4} &
+\greeknumeral{5} & \greeknumeral{6} & \greeknumeral{7} & \greeknumeral{8} & \greeknumeral{9} \\[0.3em]
+
+10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\
+\greeknumeral{10} & \greeknumeral{20} & \greeknumeral{30} & \greeknumeral{40} &
+\greeknumeral{50} & \greeknumeral{60} & \greeknumeral{70} & \greeknumeral{80} & \greeknumeral{90} \\[0.3em]
+
+100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
+\greeknumeral{100} & \greeknumeral{200} & \greeknumeral{300} & \greeknumeral{400} &
+\greeknumeral{500} & \greeknumeral{600} & \greeknumeral{700} & \greeknumeral{800} & \greeknumeral{900} \\[0.3em]
+
+1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\
+\greeknumeral{1000}& \greeknumeral{2000}& \greeknumeral{3000}& \greeknumeral{4000}&
+\greeknumeral{5000}& \greeknumeral{6000}& \greeknumeral{7000}& \greeknumeral{8000}& \greeknumeral{9000} \\[0.3em]
+
+10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\
+\greeknumeral{10000}&\greeknumeral{20000}&\greeknumeral{30000}&\greeknumeral{40000}&
+\greeknumeral{50000}&\greeknumeral{60000}&\greeknumeral{70000}&\greeknumeral{80000}&\greeknumeral{90000} \\[0.3em]
+
+100000 & 200000 & 300000 & 400000 & 500000 & 600000 & 700000 & 800000 & 900000 \\
+\greeknumeral{100000}&\greeknumeral{200000}&\greeknumeral{300000}&\greeknumeral{400000}&
+\greeknumeral{500000}&\greeknumeral{600000}&\greeknumeral{700000}&\greeknumeral{800000}&\greeknumeral{900000} \\[0.3em]
+
+\bottomrule
+\end{tabular}
+
+\begin{tabular}{rrrrrrrrr}
+\toprule
+1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\
+\Greeknumeral{1} & \Greeknumeral{2} & \Greeknumeral{3} & \Greeknumeral{4} &
+\Greeknumeral{5} & \Greeknumeral{6} & \Greeknumeral{7} & \Greeknumeral{8} & \Greeknumeral{9} \\[0.3em]
+
+10 & 20 & 30 & 40 & 50 & 60 & 70 & 80 & 90 \\
+\Greeknumeral{10} & \Greeknumeral{20} & \Greeknumeral{30} & \Greeknumeral{40} &
+\Greeknumeral{50} & \Greeknumeral{60} & \Greeknumeral{70} & \Greeknumeral{80} & \Greeknumeral{90} \\[0.3em]
+
+100 & 200 & 300 & 400 & 500 & 600 & 700 & 800 & 900 \\
+\Greeknumeral{100} & \Greeknumeral{200} & \Greeknumeral{300} & \Greeknumeral{400} &
+\Greeknumeral{500} & \Greeknumeral{600} & \Greeknumeral{700} & \Greeknumeral{800} & \Greeknumeral{900} \\[0.3em]
+
+1000 & 2000 & 3000 & 4000 & 5000 & 6000 & 7000 & 8000 & 9000 \\
+\Greeknumeral{1000}& \Greeknumeral{2000}& \Greeknumeral{3000}& \Greeknumeral{4000}&
+\Greeknumeral{5000}& \Greeknumeral{6000}& \Greeknumeral{7000}& \Greeknumeral{8000}& \Greeknumeral{9000} \\[0.3em]
+
+10000 & 20000 & 30000 & 40000 & 50000 & 60000 & 70000 & 80000 & 90000 \\
+\Greeknumeral{10000}&\Greeknumeral{20000}&\Greeknumeral{30000}&\Greeknumeral{40000}&
+\Greeknumeral{50000}&\Greeknumeral{60000}&\Greeknumeral{70000}&\Greeknumeral{80000}&\Greeknumeral{90000} \\[0.3em]
+
+100000 & 200000 & 300000 & 400000 & 500000 & 600000 & 700000 & 800000 & 900000 \\
+\Greeknumeral{100000}&\Greeknumeral{200000}&\Greeknumeral{300000}&\Greeknumeral{400000}&
+\Greeknumeral{500000}&\Greeknumeral{600000}&\Greeknumeral{700000}&\Greeknumeral{800000}&\Greeknumeral{900000} \\
+
+\bottomrule
+\end{tabular}
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf b/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf
deleted file mode 100644
index fafe3a1a08..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex b/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex
deleted file mode 100644
index f60bcaff75..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-greeknumeral.tex
+++ /dev/null
@@ -1,236 +0,0 @@
-\documentclass[a4paper]{scrartcl}
-
-% Load font packages depending on engine:
-\ifdefined\luatexversion
- \usepackage{fontspec}
-\fi
-\ifdefined\XeTeXrevision
- \usepackage{fontspec}
-\fi
-\ifdefined \UTFencname % set by "fontspec.sty"
- % Latin Modern misses most Greek characters.
- \setmainfont{DejaVu Serif}
- \setsansfont{DejaVu Sans}
-\else
- \usepackage[LGR,T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage{lmodern}
- % \usepackage{kerkis} % missing glyphs (Qoppa, in sans serif also koppa, Koppa)
- % \usepackage{dejavu} missing glyphs (qoppa, Qoppa, Sampi)
- % \usepackage{epigrafica} # many missing glyphs
- % \usepackage{gentium} % missing glyphs (Qoppa, Sampi)
- % \usepackage{gfsdidot} % sampi in place of qoppa, missing sampi Sampi
- % \usepackage{gfsartemisia} % sampi in place of qoppa, missing sampi Sampi
- % \usepackage{libertinegc}
- % \usepackage{noto}
- % \usepackage{OldStandard}
- % \usepackage{roboto}
-\fi
-
-
-% Greek script support with textalpha (greek-fontec) or babel-greek:
-
-% \usepackage{textalpha}
-\usepackage[greek,english]{babel}
-
-% Save the unpatched version
-\let\origgreeknumeral\greeknumeral
-\let\origGreeknumeral\Greeknumeral
-
-% uncomment, if you prefer Qoppa for Koppa
-% \let\textKoppa\textQoppa
-% \let\textkoppa\textqoppa
-
-
-% Hyperref
-% default PDFstring encoding is PD1 without Greek support:
-% \usepackage[unicode]{hyperref}
-% With option unicode, there is partial Greek support (no polytonic)
-\usepackage[unicode]{hyperref}
-
-
-\DeclareTextCommand{\greekscript}{PU}{}
-\DeclareTextCommand{\ensuregreek}{PU}[1]{#1}
-% Greek LICR names from "greek-fontenc"
-\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164}% U+0374
-\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165}% U+0375
-\DeclareTextCommand{\textQoppa}{PU}{\83\330}% U+03D8
-\DeclareTextCommand{\textqoppa}{PU}{\83\331}% U+03D9
-\DeclareTextCommand{\textStigma}{PU}{\83\332}% U+03DA
-\DeclareTextCommand{\textstigma}{PU}{\83\333}% U+03DB
-\DeclareTextCommand{\textDigamma}{PU}{\83\334}% U+03DC
-\DeclareTextCommand{\textdigamma}{PU}{\83\335}% U+03DD
-\DeclareTextCommand{\textKoppa}{PU}{\83\336}% U+03DE
-\DeclareTextCommand{\textkoppa}{PU}{\83\337}% U+03DF
-\DeclareTextCommand{\textSampi}{PU}{\83\340}% U+03E0
-\DeclareTextCommand{\textsampi}{PU}{\83\341}% U+03E1
-% TODO: support polytonic Greek (Greek Extended Unicode block)
-
-
-
-\begin{document}
-
-% \textuppercase{Grüße}
-
-% \selectlanguage{greek}
-% \selectlanguage{english}
-
-
-\section{Test Hyperref-safe implementation of Greek numerals}
-
-Every number is set in 4 versions:
-
-1: lowercase Babel,
-2: lowercase Hyperref-patched,
-
-3: uppercase Babel,
-4: uppercase Hyperref-patched,
-
-
-\DeclareRobustCommand{\numeraltest}[1]{
- \origgreeknumeral{#1}
- \ensuregreek{\greeknumeral{#1}}\
- \origGreeknumeral{#1}
- \ensuregreek{\Greeknumeral{#1}}
-}
-
-
-\noindent single numerals
-
-1-5
-\numeraltest{1}
-\numeraltest{2}
-\numeraltest{3}
-\numeraltest{4}
-\numeraltest{5}
-
-6-9
-\numeraltest{6}
-\numeraltest{7}
-\numeraltest{8}
-\numeraltest{9}
-
-10-50
-\numeraltest{10}
-\numeraltest{20}
-\numeraltest{30}
-\numeraltest{40}
-\numeraltest{50}
-
-60-90
-\numeraltest{60}
-\numeraltest{70}
-\numeraltest{80}
-\numeraltest{90}
-
-100-500
-\numeraltest{100}
-\numeraltest{200}
-\numeraltest{300}
-\numeraltest{400}
-\numeraltest{500}
-
-600-900
-\numeraltest{600}
-\numeraltest{700}
-\numeraltest{800}
-\numeraltest{900}
-
-1000-5000
-\numeraltest{1000}
-\numeraltest{2000}
-\numeraltest{3000}
-\numeraltest{4000}
-\numeraltest{5000}
-
-6000-9000
-\numeraltest{6000}
-\numeraltest{7000}
-\numeraltest{8000}
-\numeraltest{9000}
-
-10 000 - 900 000
-\numeraltest{10000}
-\numeraltest{20000}
-\numeraltest{800000}
-\numeraltest{900000}
-
-\noindent compound numbers
-
-123-323
-\numeraltest{123}
-\numeraltest{223}
-\numeraltest{323}
-
-445-645
-\numeraltest{445}
-\numeraltest{545}
-\numeraltest{645}
-
-767-967
-\numeraltest{767}
-\numeraltest{867}
-\numeraltest{967}
-
-967021 \numeraltest{967021}
-
-\noindent outside of bounds
-
-Negative and zero
-\greeknumeral{-1}
-% \Greeknumeral{-1}
-\greeknumeral{0}
-%\Greeknumeral{0}
-
-Too large:
-\greeknumeral{1000000}
-% \Greeknumeral{1000000}
-
-\paragraph{Discussion}
-
-The new implementation gives identical results.
-
-\section{Greek numerals in PDF bookmarks}
-
-\section{
- \numeraltest{1}
- \numeraltest{90}
- \numeraltest{200}
-}
-
-\section{
- \numeraltest{1000}
- \numeraltest{90000}
- \numeraltest{200000}
-}
-\section{
- \numeraltest{24}
- \numeraltest{96}
-}
-
-\section{
- \numeraltest{96}
- \numeraltest{263}
-}
-
-\section{
- \numeraltest{4695}
-}
-
-\section{Original numeral:
- \greekscript{\origgreeknumeral{1293}}
- % \greekscript{\origGreeknumeral{1293}}
-}
-
-Babels original lower case version works fine in text. However, use in a
-section heading results in spurious numeral marks (dexia keraia) in the
-PDF bookmark. and the warning
-\begin{verbatim}
- Package hyperref Warning: Token not allowed in a PDF string (Unicode):
- (hyperref) removing `\@ifnextchar' on input line 353.
-\end{verbatim}
-
-The upper case version fails because MakeUpercase is not defined for
-PDFstrings.
-
-\end{document},
diff --git a/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex b/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex
new file mode 100644
index 0000000000..88c628cbca
--- /dev/null
+++ b/macros/latex/contrib/babel-contrib/greek/test-lgr-fixes.tex
@@ -0,0 +1,189 @@
+% Test fixes for the LGR font encoding
+\documentclass[a4paper,oneside]{book}
+
+\pagestyle{headings}
+
+\usepackage[LGR,T1]{fontenc}
+\usepackage{lmodern}
+
+% Play with the modifiers and watch the effects:
+\newcommand*{\greeklanguagespecifier}{%
+ % greek%
+ greek.local-LGR-fixes%
+ % greek.no-LGR-fixes%
+}
+
+\usepackage[\greeklanguagespecifier,english]{babel}
+
+% hyperref and makeindex both have special requirements for \@roman & \@Roman
+\usepackage{hyperref}
+\hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue}
+\usepackage{makeidx}
+\makeindex
+
+
+\begin{document}
+
+% Pagenumbering uses Roman numerals in the front matter for "book" class
+\frontmatter
+
+\tableofcontents
+% Check Roman page numbers!
+
+\chapter{Preface \label{ch:preface}}
+
+This document tests workarounds for the non-standard LGR Greek text font
+encoding for \emph{necessity}, \emph{effects}, and \emph{side-effects}.
+
+The ideal result would be that all Roman numerals came out as expeced
+and the Index would contain two entries.
+
+The new language attributes \texttt{local-LGR-fixes} and
+\texttt{no-LGR-fixes} provide a tradeoff: limiting the work-arounds to local
+scope or skipping them completely helps with the index but breaks some of
+the Roman numbers. This can help in documents using only small Greek text
+parts. In the current compilation, Babel is called with the
+\texttt{\greeklanguagespecifier} and \texttt{english} options.
+
+In this document, English text in Greek text parts is not protected against
+the Greek transliteration (deliberately, to show clearly where Greek is the
+active language). See the source \texttt{*.tex} file for the English
+original.
+
+\begin{enumerate}
+ \item Problem
+ \begin{enumerate}
+ \item Roman numerals require Latin characters.
+ \item Alphabetic counters use Latin characters, too.
+ \item
+ In document parts using the LGR font encoding, this leads to errors.
+ \begin{enumerate}
+ \item While an ``i'' is still recognizable after conversion to a
+ small Iota, a ``v'', say, becomes an invisible no-break space.
+ \item The transliteration of ``a) b) c) d) e) f) g)''
+ leads to strange results, too.%
+ \label{item with roman number}
+ \end{enumerate}
+ \end{enumerate}
+ \item Solution for (a): wrapping roman numbers in \verb|\ensureascii|.
+ \begin{enumerate}
+ \item However, some numbers, e.g. page numbers are auto-generated
+ at ``unpredictible'' places.
+ Other are used at places ``inaccessible'' to the author (e.g. the
+ page number of a Greek chapter in the ToC).
+
+ → Re-define counter-formatting functions to make them LGR-proof.
+
+ \item Moving arguments complicate the matter.
+ \begin{enumerate}
+ \item The proofing must be robust (to some degree) to fix, e.g.,
+ a Roman page number of a Greek chapter in the ToC.
+ \item The proofing must be global to work reliably.
+ \end{enumerate}
+ \end{enumerate}
+ \item Side-effect: the proofing makes Makeindex fail if there are
+ index entries on pages with Roman numbering.
+
+ \index{makeindex-problem}
+ Makeindex expects ``pagenumbers'' to be simple text strings, without
+ font encoding change or similar. Cf.
+ \href{https://github.com/latex3/babel/issues/170}{Babel issue~\#170}.
+
+\end{enumerate}
+
+
+\selectlanguage{greek}
+\chapter{Προλογος \label{ch:prologos}}
+
+\begin{enumerate}
+ \item Problem
+ \begin{enumerate}
+ \item Roman numerals require Latin characters.
+ \item Alphabetic counters use Latin characters, too.
+ \item
+ In document parts using the LGR font encoding, this leads to errors.
+ \begin{enumerate}
+ \item While an ``i'' is still recognizable after conversion to a
+ small Iota, a ``v'', say, becomes an invisible no-break space.
+ \index{invisible-v-problem}
+ \item A transliteration of ``a) b) c) d) e) f) g)''
+ leads to strange results, too.%
+ \label{item with roman number greek}
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
+
+% \newpage
+% Second page of the Greek preface.
+
+\selectlanguage{english}
+
+
+\mainmatter
+
+\chapter{First Chapter \label{ch:1}}
+
+\section{Page references}
+
+The ``preface'' is at page \pageref{ch:preface}.
+The ``\ensuregreek{prologos}'' is at page \pageref{ch:prologos}.
+
+\section{Page references from a Greek text part}
+
+\selectlanguage{greek}
+
+Ο ''\ensureascii{preface}'' βρίσκεται στη σελίδα
+ \pageref{ch:preface}.
+Ο ``πρόλογος'' βρίσκεται στη σελίδα \pageref{ch:prologos}.
+
+\selectlanguage{english}
+
+\begin{itemize}
+\item With ``local-LGR-fixes'', the page number of the \ensuregreek{Προλογος}
+ comes out wrong.
+\item Authors can fix it by wrapping the \verb|\pageref| function.
+ However, a change of the the default ``LGR fix scope'' to ``local''
+ may break existing documents.
+\end{itemize}
+
+
+\section{References to items in an enumeration}
+
+See item \ref{item with roman number} in an English list.
+See item \ref{item with roman number greek} in a Greek list.
+
+\section{References to items in an enumeration from a Greek text part}
+
+\selectlanguage{greek}
+
+See item \ref{item with roman number} in an English list.
+See item \ref{item with roman number greek} in a Greek list.
+
+\selectlanguage{english}
+
+\begin{itemize}
+\item The ``alph'' counter in the ``English'' list comes out wrong.
+ (This is also the behaviour in previous versions of babel-greek.)
+\item Authors must treat references to non-Greek text parts similar to
+ non-Greek words and abbreviations (wrap in \verb|\ensureascii|).
+\end{itemize}
+
+\section{The Index}
+
+The next page should show an Index with 2 entries
+(see \texttt{test-lgr-fixes.idx}).
+
+\begin{itemize}
+\item With global LGR fixes, no index entry is printed (both are rejected by
+ \texttt{makeindex} because of the font encoding change command
+ preceding the page number.
+\item With ``local-LGR-fixes'', only ``makeindex-problem'' is rejected.
+ (The pagenumber is generated when the \verb|\chapter| command starts
+ the \ensuregreek{Prologos} on a new page. At this point, the active
+ language is Greek and the font encoding LGR.)
+\end{itemize}
+
+\backmatter
+\printindex
+
+\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf b/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf
deleted file mode 100644
index c1ddae2a47..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex b/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex
deleted file mode 100644
index e1994f3136..0000000000
--- a/macros/latex/contrib/babel-contrib/greek/test-tu-lgr.tex
+++ /dev/null
@@ -1,264 +0,0 @@
-\documentclass[a4paper]{article}
-% \usepackage{textcomp}
-\usepackage{hyperref}
-% \usepackage{bookmark}
-\usepackage{parskip}
-
-% Declare the font encoding and Greek LICR definitions:
-\usepackage[LGR]{fontenc}
-
-% Set up Latin Modern OpenType unicode font
-\usepackage{fontspec}
-
-\usepackage[greek,english]{babel}
-% \languageattribute{greek}{polutoniko}
-% \languageattribute{greek}{ancient}
-
-% use LGR (8-bit CB-fonts) instead of Unicode fonts for Greek:
-\addto{\extrasgreek}{\greektext}
-% Alternative:
-% \renewcommand*{\greekscript}{\fontencoding{LGR}\selectfont}
-
-\begin{document}
-
-\title{XeTeX/LuaTeX with LGR fonts}
-\author{Günter Milde}
-\date{2020/11/10}
-\maketitle
-
-The babel option «greek» activates the support for the Greek language
-defined in «greek.ldf» (source «greek.dtx»).
-
-Typesetting Greek texts requires a font containing Greek letters. With the
-XeTeX or LuaTeX engines, the user must ensure that the selected font
-contains the required glyphs (the default Latin Modern fonts miss them).
-
-Latin Modern can be combined with the matching CB-Greek 8-bit font. For the
-setup, see the preamble of this document \texttt{test-unicode-lgr.tex}
-
-Caveat: Currently, hyphenation does not work with this setup. Use it only
-for short Greek quotes or as a last ressort.
-
-\section{Language Switch}
-
-The declaration \verb|\selectlanguage| switches between languages. With
-XeTeX or LuaTeX and LGR as \verb|\greekfontencoding|, Unicode input is not
-possible. Instead, use the Latin transliteration or LICR macros:
-
-\begin{quote}
- \selectlanguage{greek}
- T'i f'hic? <Id`wn >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}
-
-The macro \verb|\foreignlanguage| sets its second argument in the specified
-language. This is intended for short text parts like
-\foreignlanguage{greek}{Biblioj'hkh}.
-
-\section{Font Encoding}
-
-Switching to a font encoding supporting the Greek script is possible without
-switching the text language using the declarations \verb|\greekscript| or
-\verb|\greektext| (always LGR) and the macros \verb|\ensuregreek| or
-\verb|\textgreek|. These commands do not start a new paragraph.
-
-The Babel core defines the declaration \verb|\latintext| and the command
-\verb|\textlatin| to switch to the T1 or OT1 font encoding or typeset the
-argument using this encoding. \texttt{greek.ldf} adds a test for the Unicode
-font encodings TU, EU1, and EU2. Here, \verb|\latinencoding| is
-\latinencoding.
-
-With Unicode fonts, the macros \verb|\greektext| and \verb|\textgreek| are
-only defined, if the LGR font encoding is loaded via the \texttt{fontenc}
-package (see test-unicode-lgr.tex).
-
-% don't change the font encoding.
-With LGR, Latin characters in Greek text parts are typeset as Greek characters
-according to the Latin transcription defined in LGR.%
-
-\begin{quote}
- \greektext F\'ilwn to\~u \textlatin{TeX} (EFT) --
- \latintext{Friends (\textgreek{F\'ilwn}) of TeX.}%
-\end{quote}
-
-\section{MakeUppercase, MakeLowercase}
-
-Capital Greek letters have diacritics (except the dialytika and sub-iota) to
-the left (instead of above) and drop them in uppercase.
-
-Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on
-the first vowel of a diphthong (\textgreek{\'ai, \'au, \'ei, \'>ai, \'>au,
-\'>ei}). A dialytika must be placed on the second vowel if they are dropped.
-(\foreignlanguage{greek}{\MakeUppercase{\'ai, \'au, \'ei, \'>ai, \'>au,
-\'>ei}}).
-
-\section{LICR Macros}
-
-Babel defines macros for several autogenerated strings so that they may
-appear in the choosen language. \emph{babel-greek} uses LICR macros in
-order to let the string macros work independent of the font encoding.
-
-If \texttt{fontspec} is loaded before babel, babel-greek loads Greek LICR
-for TU from the file \texttt{tuenc-greek.def} provided with
-\emph{greek-fontenc} since version~0.14 (2020-02-28).
-
-\subsection{Hiatus}
-
-The «hiatus» feature works with macro input:
-
-\selectlanguage{greek}
-% from teubner: άυλος/ΑΫΛΟΣ
-\acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma{}
-$\mapsto$
-\MakeUppercase{\acctonos\textalpha\textupsilon\textlambda\textomicron\textfinalsigma},
-\'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma{} $\mapsto$
-\MakeUppercase{\'>\textalpha\textupsilon\textlambda\textomicron\textfinalsigma},
-% from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ
-\textmu\acctonos\textalpha\textiota\textnu\textalpha{} $\mapsto$
-\MakeUppercase{\textmu\acctonos\textalpha\textiota\textnu\textalpha},
-% from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema
-% κέικ, ἀυπνία/αϋπνία
-\textkappa\acctonos\textepsilon\textiota\textkappa $\mapsto$
-\MakeUppercase{\textkappa\acctonos\textepsilon\textiota\textkappa},
-\accpsili\textalpha\textupsilon\textpi\textnu\'\textiota\textalpha{} $\mapsto$
-\MakeUppercase{\accpsili\textalpha\textupsilon\textpi\textnu\'\textiota\textalpha}.
-\selectlanguage{english}
-
-\subsection{Captions}
-
-\selectlanguage{greek}
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename ,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
-\selectlanguage{english}
-
-Test correct upcasing (dropping of accents):
-
-\selectlanguage{greek}
-\MakeUppercase{
-\prefacename,
-\refname,
-\abstractname,
-\bibname,
-\chaptername,
-\appendixname,
-\contentsname,
-\listfigurename,
-\listtablename,
-\indexname,
-\figurename,
-\tablename,
-\partname,
-\enclname,
-\ccname,
-\headtoname,
-\pagename,
-\seename,
-\alsoname,
-\proofname,
-\glossaryname
-}
-\selectlanguage{english}
-
-\subsection{Months}
-
-\selectlanguage{greek}
-\newcounter{foo}
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\stepcounter{foo} \month=\value{foo} \today \\
-\selectlanguage{english}
-
-\section{Greek Numerals}
-
-See greek.pdf for the formation rules of Greek numerals.
-Some examples:
-
-\selectlanguage{greek}
-
-\greeknumeral{1},
-\greeknumeral{2},
-\greeknumeral{3},
-\greeknumeral{4},
-\greeknumeral{5},
-\greeknumeral{6},
-\greeknumeral{7},
-\greeknumeral{8},
-\greeknumeral{9},
-\greeknumeral{10},
-\greeknumeral{11},
-\greeknumeral{12},
-\greeknumeral{20},
-\greeknumeral{345},
-\greeknumeral{500},
-\greeknumeral{1997},
-\greeknumeral{2013},
-
-\Greeknumeral{1},
-\Greeknumeral{2},
-\Greeknumeral{3},
-\Greeknumeral{4},
-\Greeknumeral{5},
-\Greeknumeral{6},
-\Greeknumeral{7},
-\Greeknumeral{8},
-\Greeknumeral{9},
-\Greeknumeral{10},
-\Greeknumeral{11},
-\Greeknumeral{12},
-\Greeknumeral{20},
-\Greeknumeral{345},
-\Greeknumeral{500},
-\Greeknumeral{1997},
-\Greeknumeral{2013},
-
-
-\selectlanguage{english}
-Enumerated lists use Greek characters/numerals in the second and fourth level:
-
-\selectlanguage{greek}
-\begin{enumerate}
- \item \textlatin{item} 1
- \begin{enumerate}
- \item \textlatin{item} 1.1
- \begin{enumerate}
- \item \textlatin{item} 1.1.1
- \begin{enumerate}
- \item \textlatin{item} 1.1.1.1
- \item \textlatin{item} 1.1.1.2
- \end{enumerate}
- \item \textlatin{item} 1.1.2
- \end{enumerate}
- \end{enumerate}
-\end{enumerate}
-\selectlanguage{english}
-
-\end{document}
diff --git a/macros/latex/contrib/babel-contrib/greek/usage.pdf b/macros/latex/contrib/babel-contrib/greek/usage.pdf
index 43a51a2053..884321bacf 100644
--- a/macros/latex/contrib/babel-contrib/greek/usage.pdf
+++ b/macros/latex/contrib/babel-contrib/greek/usage.pdf
Binary files differ
diff --git a/macros/latex/contrib/babel-contrib/greek/usage.tex b/macros/latex/contrib/babel-contrib/greek/usage.tex
index 519b721e5f..167bcca38c 100644
--- a/macros/latex/contrib/babel-contrib/greek/usage.tex
+++ b/macros/latex/contrib/babel-contrib/greek/usage.tex
@@ -1,11 +1,8 @@
-% \iffalse meta-comment
+% Copyright 1997 Apostolos Syropoulos
+%
+% This file is part of the babel-greek package.
+% ---------------------------------------------
%
-% Copyright 1989-2008 Johannes L. Braams and any individual authors
-% listed elsewhere in this file. All rights reserved.
-%
-% This file is part of the Babel system.
-% --------------------------------------
-%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -13,22 +10,17 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2003/12/01 or later.
-%
+%
% This work has the LPPL maintenance status "maintained".
-%
+%
% The Current Maintainer of this work is Günter Milde.
-%
-% The list of all files belonging to the Babel system is
-% given in the file `manifest.bbl. See also `legal.bbl' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
-% \fi
+
\documentclass[11pt]{article}
\usepackage[american,greek]{babel}
\languageattribute{greek}{polutoniko}
+% \languageattribute{greek}{ancient}
+\newcommand{\langGreek}{\foreignlanguage{greek}}
+
\usepackage{athnum,grmath}
\newcommand{\sg}{\selectlanguage{greek}}
\newcommand{\sa}{\selectlanguage{american}}
@@ -49,8 +41,8 @@
\abstract{\noindent
This document describes the use of the Latin transliteration for Greek that
is defined by the LGR font encoding. Today, all modern LaTeX distributions
-support literal input of Greek, which is the preferred method for new
-documents. [G. Milde 2013/12/02]}
+support literal input of Greek characters, which is the preferred method for
+new documents. [G. Milde 2013/12/02]}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,11 +51,11 @@ documents. [G. Milde 2013/12/02]}
The \texttt{greek} option of the \texttt{babel} package is an attempt to
make it possible for someone to write Greek text with \LaTeX. The current
version of the \texttt{greek} option supports the
-\textgreek{monotonik'o} and \textgreek{polutonik'o}
+\langGreek{monotonik'o} and \langGreek{polutonik'o}
accentual systems of the Greek language.
-Moreover, there is now support for Greek numerals. One can produce easily
+Moreover, there is now support for Greek numerals. One can produce easily
valid Greek numerals both in uppercase and lowercase forms, e.g,
-\textgreek{\greeknumeral{1997}}\ and \textgreek{\Greeknumeral{1997}}. The
+\langGreek{\greeknumeral{1997}}\ and \langGreek{\Greeknumeral{1997}}. The
labels in second and fourth level enumerations are lowercase
and uppercase Greek numerals correspondingly.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -78,60 +70,60 @@ which are mapped to their Greek ``counterparts'' by \TeX. The following
table shows the transliteration employed:
\begin{center}
\begin{tabular}{|lllllllllllll|}\hline
-\textgreek{a}&
-\textgreek{b}&
-\textgreek{g}&
-\textgreek{d}&
-\textgreek{e}&
-\textgreek{z}&
-\textgreek{h}&
-\textgreek{j}&
-\textgreek{i}&
-\textgreek{k}&
-\textgreek{l}&
-\textgreek{m}&
-\textgreek{n}\\
+\langGreek{a}&
+\langGreek{b}&
+\langGreek{g}&
+\langGreek{d}&
+\langGreek{e}&
+\langGreek{z}&
+\langGreek{h}&
+\langGreek{j}&
+\langGreek{i}&
+\langGreek{k}&
+\langGreek{l}&
+\langGreek{m}&
+\langGreek{n}\\
a& b& g& d& e& z& h& j& i& k& l& m& n\\
-\hline
-\textgreek{x}&
-\textgreek{o}&
-\textgreek{p}&
-\textgreek{r}&
-\textgreek{sv}&
-\textgreek{t}&
-\textgreek{u}&
-\textgreek{f}&
-\textgreek{q}&
-\textgreek{y}&
-\textgreek{w}&
-\textgreek{c}& \hbox{ } \\
-x& o& p& r& s&
+\hline
+\langGreek{x}&
+\langGreek{o}&
+\langGreek{p}&
+\langGreek{r}&
+\langGreek{sv}&
+\langGreek{t}&
+\langGreek{u}&
+\langGreek{f}&
+\langGreek{q}&
+\langGreek{y}&
+\langGreek{w}&
+\langGreek{c}& \hbox{ } \\
+x& o& p& r& s&
t& u& f& q& y& w& c& \hbox{ }\\ \hline
\end{tabular}
\end{center}
-Please, note that in order to produce the letter \textgreek{sv} in isolation
-on has to type \texttt{sv}. This feature is due to the strong ligature
-that \TeX\ employs.
-In the ``modern'' \textgreek{monotonik'o} accentual system only one accent is
-used---\textgreek{oxe'ia} (acute). In the traditional \textgreek{polutonik'o}
-accentual system we
+Please, note that in order to produce the letter \langGreek{sv} in isolation
+one has to type \texttt{sv}. This feature is due to the strong ligature
+that \TeX\ employs.
+In the ``modern'' \langGreek{monotonik'o} accentual system only one accent is
+used---\langGreek{oxe'ia} (acute). In the traditional \langGreek{polutonik'o}
+accentual system we
need more accents and breathing signs. We can produce an accented letter by
prefixing the letter with he symbol that denotes the accent, e.g.,
-\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the
+\texttt{>a'erac} produces the word \sg >a'erac.\sa\footnote{For the
technically inclined reader, we must say that \TeX\ uses the ligature table of
the font in order to determine the character that corresponds to the
-input character sequence.} Here are the symbols that are recognized:
+input character sequence.} Here are the symbols that are recognized:
\begin{center}
\begin{tabular}{cccc}\hline
Accent & Symbol & Example & Output\\ \hline
-acute & \texttt{'} & \texttt{g'ata} & \textgreek{g'ata}\\
-grave & \texttt{`} & \texttt{dad`i} & \textgreek{dad`i}\\
-circumflex & \verb+~+ & \verb+ful~hc+ & \sg\textgreek{ful~hc}\sa\\
-rough breathing & \verb+<+ & \verb+<'otan+ & \sg\textgreek{<'otan}\sa\\
-smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\textgreek{>'aneu}\sa\\
-subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\textgreek{>anate'ilh|}\\
-dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\textgreek{qa"ide'uh|c}\\
+acute & \texttt{'} & \texttt{g'ata} & \langGreek{g'ata}\\
+grave & \texttt{`} & \texttt{dad`i} & \langGreek{dad`i}\\
+circumflex & \verb+~+ & \verb+ful~hc+ & \sg\langGreek{ful~hc}\sa\\
+rough breathing & \verb+<+ & \verb+<'otan+ & \sg\langGreek{<'otan}\sa\\
+smooth breathing & \verb+>+ & \verb+>'aneu+ & \sg\langGreek{>'aneu}\sa\\
+subscript & \texttt{|} & \verb+>anate'ilh|+ & \sg\langGreek{>anate'ilh|}\\
+dieresis & \texttt{"}& \texttt{qa"ide'uh|c} & \sg\langGreek{qa"ide'uh|c}\\
\hline
\end{tabular}
\end{center}
@@ -141,21 +133,22 @@ text is the punctuation marks used in the language:
\begin{center}
\begin{tabular}{ccc}\hline
Punctuation Sign & Symbol & Output\\ \hline
-period & \texttt{.} & \sg\textgreek{.}\sa\\
-semicolon & \texttt{;} & \sg\textgreek{;}\sa\\
-exclamation mark & \texttt{!} & \sg\textgreek{!}\sa\\
-comma & \texttt{,} & \sg\textgreek{,}\sa\\
-colon & \texttt{:} & \sg\textgreek{:}\sa\\
-question mark & \texttt{?} & \sg\textgreek{?}\sa\\
-left apostrophe & \texttt{``} & \sg\textgreek{``}\sa\\
-right apostrophe & \texttt{''} & \sg\textgreek{''}\sa\\
-left quotation mark & \texttt{((} & \sg\textgreek{))}\sa\\
-right quotation mark & \texttt{))} & \sg\textgreek{))}\sa\\ \hline
+period & \texttt{.} & \sg\langGreek{.}\sa\\
+semicolon & \texttt{;} & \sg\langGreek{;}\sa\\
+exclamation mark & \texttt{!} & \sg\langGreek{!}\sa\\
+comma & \texttt{,} & \sg\langGreek{,}\sa\\
+colon & \texttt{:} & \sg\langGreek{:}\sa\\
+question mark & \texttt{?} & \sg\langGreek{?}\sa\\
+left apostrophe & \texttt{``} & \sg\langGreek{``}\sa\\
+right apostrophe & \texttt{''} & \sg\langGreek{''}\sa\\
+right apostrophe (alias) & \texttt{"} & \sg\langGreek{"}\sa\\
+left quotation mark & \texttt{((} & \sg\langGreek{((}\sa\\
+right quotation mark & \texttt{))} & \sg\langGreek{))}\sa\\ \hline
\end{tabular}
\end{center}
Using these conventions it is a straightforward exercise to write Greek
-\textgreek{polutoniko} text. For example the following excerpt from
-\textgreek{D'uskoloc} of \textgreek{M'enandroc}
+\langGreek{polutoniko} text. For example the following excerpt from
+\langGreek{D'uskoloc} of \langGreek{M'enandroc}
\sg
\begin{quote}
T'i f'hic? <Id`wn >enj'ede pa~id'' >eleuj'eran\\
@@ -177,69 +170,76 @@ Once the Greek language is selected with the command
\verb+\selectlanguage{greek}+
\end{center}
whatever we type will be typeset with the Greek fonts. The command
-\verb+\textlatin+ can be used for short passages in some language that
-uses the Latin alphabet, while the the command \verb+\latintext+ changes
-the base fonts to the ones used by languages that use the Latin alphabet.
+\verb+\ensureascii+ can be used for short passages in some language that
+uses the Latin alphabet.
However, all words will be hyphenated by following the Greek hyphenation
-rules! Similar commands are available once someone has selected some
-other language. The commands \verb+\textgreek+ and \verb+\greektext+
-behave exactly like their ``latin'' counterparts. For example, the
-word \textgreek{M'imhc} has been produced with the command
-\verb+\textgreek{M'imhc}+. Please note that certain symbols cannot have
-their expected result for Greek text, unless someone has selected the Greek
+rules! Therefore it is better to switch to the other language
+with \verb+\foreignlanguage+. The commands \verb+\lgrfont+ and
+\verb+\greektext+ switch to the Greek LGR font encoding.
+For example, the word \lgrfont{M'imhc} has been produced with the command
+\verb+\lgrfont{M'imhc}+. Please note that Greek hyphenation and upcasing rules
+are not applied and certain symbols cannot have
+their expected result for Greek text, unless someone has selected the Greek
language, e.g., \verb+~+ is such a symbol.
As we have mentioned above this version of the \texttt{greek} option of the
\texttt{babel} package supports the use of Greek numerals. The commands
-\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and
-the uppercase Greek numeral, e.g.,
+\verb+\greeknumeral+ and \verb+\Greeknumeral+ produce the lowercase and
+the uppercase Greek numeral, e.g.,
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb+\Greeknumeral{9999}+ & \sg\textgreek{\Greeknumeral{9999}}\\
-\verb+\greeknumeral{9999}+ & \sg\textgreek{\greeknumeral{9999}}\\
+\verb+\Greeknumeral{9999}+ & \sg\langGreek{\Greeknumeral{9999}}\\
+\verb+\greeknumeral{9999}+ & \sg\langGreek{\greeknumeral{9999}}\\
\hline
\end{tabular}
\end{center}
In order to correctly typeset the greek numerals the greek option file
-provides the following commands:
+uses the following commands:
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb+\textkoppa+ & \textgreek{\textkoppa}\\
-\verb+\textsampi+ & \textgreek{\textsampi}\\
-\verb+\textstigma+ & \textgreek{\textstigma}\\
-\verb+\textKoppa+ & \textgreek{\textKoppa}\\
-\verb+\textSampi+ & \textgreek{\textSampi}\\
-\verb+\textStigma+ & \textgreek{\textStigma}\\
+% symbol names updated to current defaults [GM]
+% name used by package "greek-fontenc" % obsolete name
+\verb+\textdexiakeraia+ & \langGreek{\textdexiakeraia}\\ % \anwtonos
+\verb+\textaristerikeraia+ & \langGreek{\textaristerikeraia}\\ % \katwtonos
+\verb+\textkoppa+ & \langGreek{\textkoppa}\\ % \qoppa
+\verb+\textsampi+ & \langGreek{\textsampi}\\ % \sampi
+\verb+\textstigma+ & \langGreek{\textstigma}\\ % \stigma
+\verb+\textKoppa+ & \langGreek{\textKoppa}\\ % n.a. (\qoppa)
+\verb+\textSampi+ & \langGreek{\textSampi}\\
+\verb+\textStigma+ & \langGreek{\textStigma}\\
\hline
\end{tabular}
\end{center}
-In traditional Greek typography the first paragraph after a header is
-always indented, contrary to the habit of, say, American typography. This
-effect can be achieved by using the package \verb+indentfirst+.
-
Additional symbols are available:
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb+\textDigamma+ & \textgreek{\textDigamma}\\
-\verb+\textdigamma+ & \textgreek{\textdigamma}\\
-\verb+\VarQoppa+ & \textgreek{\textQoppa}\\
-\verb+\textqoppa+ & \textgreek{\textqoppa}\\
-\verb+\texteuro+ & \textgreek{\euro}\\
-\verb+\textperthousand+ & \textgreek{\permill}\\
+% symbol names updated to current defaults [GM]
+% name used by package "greek-fontenc" % obsolete name
+\verb+\textDigamma+ & \langGreek{\textDigamma}\\ % \Digamma
+\verb+\textdigamma+ & \langGreek{\textdigamma}\\ % \ddigamma
+\verb+\textQoppa+ & \langGreek{\textQoppa}\\ % \varqoppa
+\verb+\textqoppa+ & \langGreek{\textqoppa}\\ % \VarQoppa
+\verb+\textvarstigma+ & \langGreek{\textvarstigma}\\ % \varstigma
+\verb+\texteuro+ & \langGreek{\texteuro}\\ % \texteuro
+\verb+\textperthousand+ & \langGreek{\textperthousand}\\ % \permill
\hline
\end{tabular}
\end{center}
+In traditional Greek typography the first paragraph after a header is
+always indented, contrary to the habit of, say, American typography. This
+effect can be achieved by using the package \verb+indentfirst+.
+
The package \verb|athnum| provides the command \verb|\athnum|, with which
one can produce the so called \textit{Athenian numerals}:
\begin{center}
\begin{tabular}{cc}\hline
Command & Output\\ \hline
-\verb|\athnum{1997}| & \textgreek{\athnum{1997}}\\
+\verb|\athnum{1997}| & \langGreek{\athnum{1997}}\\
\hline
\end{tabular}
\end{center}