summaryrefslogtreecommitdiff
path: root/language
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-09-13 03:01:35 +0000
committerNorbert Preining <norbert@preining.info>2023-09-13 03:01:35 +0000
commitde0fb15550a55ba5685a755fec7326e21a79fccd (patch)
treed31a21d9ea35405a0482f92ff12caabd84eae9e4 /language
parentbecf79ac9bbdddd15ef9d66a35c6d64252a2cd46 (diff)
CTAN sync 202309130301
Diffstat (limited to 'language')
-rw-r--r--language/greek/greek-fontenc/README.md2
-rw-r--r--language/greek/greek-fontenc/alphabeta-doc-tu.pdfbin80652 -> 180054 bytes
-rw-r--r--language/greek/greek-fontenc/alphabeta-doc.pdfbin381960 -> 535896 bytes
-rw-r--r--language/greek/greek-fontenc/alphabeta-doc.tex1300
-rw-r--r--language/greek/greek-fontenc/alphabeta-lgr.def189
-rw-r--r--language/greek/greek-fontenc/alphabeta-lgr.def.html978
-rw-r--r--language/greek/greek-fontenc/alphabeta-tuenc.def251
-rw-r--r--language/greek/greek-fontenc/alphabeta-tuenc.def.html1049
-rw-r--r--language/greek/greek-fontenc/alphabeta.sty441
-rw-r--r--language/greek/greek-fontenc/alphabeta.sty.html461
-rw-r--r--language/greek/greek-fontenc/char-list-alphabeta-tu.pdfbin0 -> 57292 bytes
-rw-r--r--language/greek/greek-fontenc/char-list-alphabeta.pdfbin0 -> 360224 bytes
-rw-r--r--language/greek/greek-fontenc/char-list-luatex.pdfbin77527 -> 0 bytes
-rw-r--r--language/greek/greek-fontenc/char-list-pdftex.pdfbin441004 -> 0 bytes
-rw-r--r--language/greek/greek-fontenc/char-list-tu.pdfbin0 -> 84828 bytes
-rw-r--r--language/greek/greek-fontenc/char-list-xetex.pdfbin72052 -> 0 bytes
-rw-r--r--language/greek/greek-fontenc/char-list.pdfbin0 -> 484229 bytes
-rw-r--r--language/greek/greek-fontenc/char-list.tex451
-rw-r--r--language/greek/greek-fontenc/greek-fontenc-doc.html226
-rw-r--r--language/greek/greek-fontenc/greek-fontenc-doc.rst180
-rw-r--r--language/greek/greek-fontenc/greek-fontenc.def212
-rw-r--r--language/greek/greek-fontenc/greek-fontenc.def.html213
-rw-r--r--language/greek/greek-fontenc/hyperref-with-greek.pdfbin413532 -> 407929 bytes
-rw-r--r--language/greek/greek-fontenc/hyperref-with-greek.tex360
-rw-r--r--language/greek/greek-fontenc/lgr2licr.lua.html9
-rw-r--r--language/greek/greek-fontenc/lgrenc.def54
-rw-r--r--language/greek/greek-fontenc/lgrenc.def.html57
-rw-r--r--language/greek/greek-fontenc/puenc-greek.def42
-rw-r--r--language/greek/greek-fontenc/puenc-greek.def.html40
-rw-r--r--language/greek/greek-fontenc/test-lgrenc.pdfbin367125 -> 365264 bytes
-rw-r--r--language/greek/greek-fontenc/test-lgrenc.tex20
-rw-r--r--language/greek/greek-fontenc/test-licr-input.pdfbin414914 -> 0 bytes
-rw-r--r--language/greek/greek-fontenc/test-luainputenc.pdfbin0 -> 117921 bytes
-rw-r--r--language/greek/greek-fontenc/test-luainputenc.tex (renamed from language/greek/greek-fontenc/test-licr-input.tex)186
-rw-r--r--language/greek/greek-fontenc/test-tuenc-greek.pdfbin86286 -> 77573 bytes
-rw-r--r--language/greek/greek-fontenc/test-tuenc-greek.tex815
-rw-r--r--language/greek/greek-fontenc/textalpha-doc-tu.pdfbin86618 -> 85257 bytes
-rw-r--r--language/greek/greek-fontenc/textalpha-doc.pdfbin521862 -> 468693 bytes
-rw-r--r--language/greek/greek-fontenc/textalpha-doc.tex350
-rw-r--r--language/greek/greek-fontenc/textalpha.sty29
-rw-r--r--language/greek/greek-fontenc/textalpha.sty.html36
-rw-r--r--language/greek/greek-fontenc/tuenc-greek.def552
-rw-r--r--language/greek/greek-fontenc/tuenc-greek.def.html568
43 files changed, 3776 insertions, 5295 deletions
diff --git a/language/greek/greek-fontenc/README.md b/language/greek/greek-fontenc/README.md
index da3da0ece5..2b8c906b30 100644
--- a/language/greek/greek-fontenc/README.md
+++ b/language/greek/greek-fontenc/README.md
@@ -8,7 +8,7 @@ script.
The included LaTeX packages [textalpha][textalpha.sty] and
[alphabeta][alphabeta.sty] facilitate the use of Greek symbols in text.
-**Version**: 2.4
+**Version**: 2.5
**Copyright**: © 2010 – 2023 Günter Milde
diff --git a/language/greek/greek-fontenc/alphabeta-doc-tu.pdf b/language/greek/greek-fontenc/alphabeta-doc-tu.pdf
index 2cfe30bae8..f9d2cf0536 100644
--- a/language/greek/greek-fontenc/alphabeta-doc-tu.pdf
+++ b/language/greek/greek-fontenc/alphabeta-doc-tu.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/alphabeta-doc.pdf b/language/greek/greek-fontenc/alphabeta-doc.pdf
index f1b625fb99..5ad89f5873 100644
--- a/language/greek/greek-fontenc/alphabeta-doc.pdf
+++ b/language/greek/greek-fontenc/alphabeta-doc.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/alphabeta-doc.tex b/language/greek/greek-fontenc/alphabeta-doc.tex
index 35cd14c204..2bf4e068b0 100644
--- a/language/greek/greek-fontenc/alphabeta-doc.tex
+++ b/language/greek/greek-fontenc/alphabeta-doc.tex
@@ -11,12 +11,9 @@
% As it contains tests for the different limitations, there will be warnings
% in the log, which can be safely ignored.
-\documentclass{scrartcl}
+\documentclass[a4paper]{scrartcl}
+\addtokomafont{disposition}{\rmfamily}
-\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
-% \usepackage{bookmark}
-\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,pdfencoding=auto}
-% \usepackage{parskip}
\usepackage{amssymb, amsmath}
\frenchspacing
@@ -28,15 +25,17 @@
\newcommand{\engine}{LuaTeX}
\fi
% Setup for Unicode fonts (Xe-/LuaTeX)
- \usepackage[no-math,tuenc]{fontspec}
- \setmainfont{Linux Libertine O}
- \setsansfont{Linux Biolinum O}
- \setmonofont{Liberation Mono}[Scale=MatchLowercase]
+ \usepackage[no-math]{fontspec}
+ % The Harfbuzz renderer provides selection of pre-composed characters
+ % (NFC normalization) with LuaTeX
+ \setmainfont[Renderer=Harfbuzz]{Linux Libertine O}
+ \setsansfont[Renderer=Harfbuzz]{Linux Biolinum O}
+ \setmonofont[Renderer=Harfbuzz,Scale=MatchLowercase]{Liberation Mono}
\usepackage[libertine,slantedGreek]{newtxmath}
% \usepackage{unicode-math} % package conflict
\newcommand{\fontset}{fontspec with Unicode fonts}
\else
- \newcommand{\engine}{8-bit TeX}
+ \newcommand{\engine}{pdfTeX}
\usepackage[utf8]{inputenc}
\DeclareUnicodeCharacter{03DE}{\textKoppa} % in LGR mapped to \textkoppa
\usepackage[LGR,T1]{fontenc}
@@ -46,15 +45,26 @@
% \usepackage{gfsdidot}
% \usepackage{kerkis}
% \usepackage{newtxtext,newtxmath}
- % \usepackage{substitutefont}
- % \substitutefont{LGR}{\rmdefault}{artemisia}
\usepackage{isomath}
\newcommand{\fontset}{fontenc with TeX fonts}
\fi
% load alphabeta after math setup and encoding setup!
-% \usepackage{alphabeta}[2015/08/08]
-\usepackage[normalize-symbols]{alphabeta}[2015/08/08]
+\usepackage[normalize-symbols]{alphabeta}
+
+% Check, if loading hyperref after/before alphabeta works:
+\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
+\usepackage{bookmark}
+\hypersetup{colorlinks=true,linkcolor=blue,urlcolor=blue,pdfencoding=auto}
+
+\DeclareTextCommandDefault{\,}{\thinspace}
+\DeclareTextCommand{\,}{PU}{\9040\011}% U+2009 THIN SPACE
+
+
+% correct upcasing requires Babel,
+% the remainder should work without requiring Babel
+\usepackage[greek.polutoniko,english]{babel}
+
% Fallback macros:
@@ -63,7 +73,7 @@
\ProvideTextCommandDefault{\textvarstigma}{\missing}
% varkappa, only defined with newtxmath
\providecommand*{\varkappa}{\missing}
-% varbeta and varTheta only defined with unicode-math
+% varbeta only defined with additional packages
\providecommand*{\varbeta}{\missing}
% Semantic styling:
@@ -88,12 +98,12 @@
\begin{abstract}\noindent
The \emph{alphabeta} package makes the standard macros for Greek letters in
-mathematical mode also available in text mode. This way, you can input Greek
+mathe­matical mode also available in text mode. This way, you can input Greek
letters ``by name'' everywhere in the document. The mode determines whether
the characters are taken from the text or math font.
With 8-bit TeX and \pkgref{greek-inputenc},
-literal Unicode charactes can also be used in mathematical mode.
+literal Unicode charactes can also be used in mathematical mode.%
\footnote{\label{compiler}%
This document was compiled with \engine{} using the
\href{https://ctan.org/pkg/encguide}{font encoding} \encodingdefault{}
@@ -109,7 +119,7 @@ literal Unicode charactes can also be used in mathematical mode.
}
\end{abstract}
-% \tableofcontents
+\tableofcontents
\section{Requirements and Conflicts}
@@ -124,7 +134,7 @@ Depending on the converter and fonts, different
The package conflicts with \pkgref{unicode-math}.
It also fails, if the \texttt{utf8x} input encoding is selected.
-(The interface to the \pkgref{ucs} package uses a non-compatible
+(The interface to the \pkgref{ucs} package uses an incompatible
definition of \cs{DeclareUnicodeCharacter}.)
@@ -138,16 +148,21 @@ setup) with
%
Now you can write a single Greek symbol (like \Psi{} or \mu{}) or
a \lambda\omicron\gamma\omicron\varsigma{} in non-Greek text as well as
-ISO-conforming formulas with upright symbols for constants
-like $A = \text{\pi} r^2$ (instead of $A = \pi r^2$).%
-\footnote{The \pkgref{isomath} documentation describes more alternatives
- for upright Greek symbols in math mode.}
-
+ISO-conforming formulas with upright symbols\footnote{
+ The \pkgref{isomath} documentation describes more alternatives
+ for upright Greek symbols in math mode.}
+for constants like
+\[
+ A = \text{\pi} r^2
+\]
+(instead of $A = \pi r^2$).
Just like Latin letters, the Greek counterparts are by default italic in
math mode%
\footnote{Capital Greek letters are upright in TeX unless a package selects
- the ``ISO'' math-style. See the \pkgref{isomath} documentation
- for a detailled discussion of math-styles.}
+ the ``ISO'' math-style. This document uses \pkgref{isomath} with
+ 8-bit Tex and \pkgref{newtxmath} with the \texttt{slantedgreek}
+ option with Xe/LuaTeX. See the \emph{isomath} documentation for a
+ detailled discussion of math-styles.}
and upright in text:
\begin{quote}
@@ -155,7 +170,7 @@ and upright in text:
mathematics: $ L \ \Gamma \ l \ \gamma $
\end{quote}
%
-See the source of this document \url{alphabeta-doc.tex} for a setup and
+See the source of this document \texttt{alphabeta-doc.tex} for a setup and
usage example.
@@ -168,23 +183,29 @@ package. Example call with options:
\usepackage[normalize-symbols,keep-semicolon]{alphabeta}
\end{verbatim}
-\texttt{normalize-symbols} merges ``letter'' and ``symbol`` variants of some
-Greek letters (cf. next section) to the ``letter'' character: Without this
-option, the symbol variant characters cannot be used in text, because they
-are not supported by 8-bit Greek fonts (LGR encoding).
-\textbf{Attention}: Be careful in cases where the distinction between the
-symbol variants may be important (e.g. in a mathematical or scientific
-context). Use XeTeX/LuaTeX with Unicode fonts or the respective characters
-in mathematical mode (e.g. $\pi$ vs. $\varpi$).
-
-The option \texttt{keep-semicolon} prevents conversion of the
-semicolon to an \emph{ano teleia} in 8-bit TeX
-(see \emph{\href{textalpha-doc.pdf}{textalpha-doc}}).
-
+\begin{description}
+\item[\texttt{normalize-symbols}] \label{item:normalize-symbols}
+ merges ``letter'' and ``symbol`` variants of some Greek letters
+ (cf. Table\,\ref{tab:symbol-variant-macros} and
+ section~\ref{sec:symbol-variants} below) to the ``letter'' character:
+ Without this option, the symbol variant characters cannot be used in text
+ under 8-bit LaTeX, because they are not supported by the Greek 8-bit font
+ encoding LGR.
+
+ \textbf{Attention}: Be careful in cases where the distinction between the
+ symbol variants may be important (e.g. in a mathematical or scientific
+ context). Use XeTeX/LuaTeX with Unicode fonts or the respective characters
+ in mathematical mode (e.g. $\pi$ vs. $\varpi$).
+
+\item[\texttt{keep-semicolon}]
+ prevents conversion of the semicolon to an \emph{ano teleia} in 8-bit TeX
+ (see \emph{\href{textalpha-doc.pdf}{textalpha-doc}}).
+\end{description}
+%
Both options are ignored in text set using Unicode fonts.
-\subsection{symbol variants}
+\subsection{symbol variants \label{sec:symbol-variants}}
Mathematical notation uses variant shapes of some Greek letters as
additional symbols. The variations have no syntactic meaning in Greek text
@@ -206,19 +227,24 @@ are short forms of the set defined in \file{tuenc-greek.def}
GREEK ... SYMBOL variant,
\verb|\var<name>| selects the variant
- shape according to TeX' mathematical mode
+ shape according to TeX's mathematical mode
\end{quote}
-See Table \ref{tab:symbol-variant-macros} for the full list.
+See Table\,\ref{tab:symbol-variant-macros} at the end of this document for
+the full list.
\section{Limitations \label{sec:limitations}}
With 8-bit TeX, the limitations described in the
-\href{textalpha-doc.pdf}{textalpha documentation} apply. See also the tests
-in section \hyperref[sec:8-bit-limitations]{8 bit limitations}.
+\href{textalpha-doc.pdf}{textalpha documentation} apply
+(see also section~\ref{sec:diacritics}).
These limitations do not apply, if the text language is switched to ``greek''
-with Babel, the text part is wrapped in \verb+\ensuregreek+, or set using
-Unicode fonts (with XeTeX/LuaTeX).
+with Babel\footnote{\label{footnote:babel-greek}
+ Setting the correct language for Greek text parts with the
+ \pkgref{babel} package additionally ensures correct hyphenation and
+ upcasing.},
+the text part is wrapped in \verb+\ensuregreek+,
+or set using Unicode fonts with XeTeX/LuaTeX.
With XeTeX/LuaTeX and Unicode fonts, literal Unicode characters cannot be
used in formulas (the log file reports missing characters) This is a generic
@@ -238,94 +264,129 @@ switch (active font encoding \encodingdefault):
\Alpha{} \Beta{} \Gamma{} \Delta{} \Epsilon{} \Zeta{} \Eta{} \Theta{}
\Iota{} \Kappa{} \Lambda{} \Mu{} \Nu{} \Xi{} \Omicron{} \Pi{} \Rho{}
\Sigma{} \Tau{} \Upsilon{} \Phi{} \Chi{} \Psi{} \Omega{}
+ \quad
+ \Digamma{} \Stigma{} \Koppa
+ \footnote{In LGR, there is no separate glyph for uppercase Koppa.}
+ \Qoppa{} \Sampi{}
\\
\alpha{} \beta{} \gamma{} \delta{} \epsilon{} \zeta{} \eta{} \theta{}
\iota{} \kappa{} \lambda{} \mu{} \nu{} \xi{} \omicron{} \pi{} \rho{}
- \sigma{} \varsigma{} \tau{} \upsilon{} \phi{} \chi{} \psi{} \omega{}
- \\
- \digamma{} \Digamma{} \stigma{} \varstigma{}%
+ \sigma{} \finalsigma{} \tau{} \upsilon{} \phi{} \chi{} \psi{} \omega{}
+ \quad
+ \digamma{} \stigma{} \varstigma
\footnote{There is no separate Unicode code point for a stigma variant
- symbol, \cs{varstigma} is not defined with
- Xe/LuaTeX and similar to \cs{stigma} in some fonts.}
- \koppa{} \Koppa{}%
- \footnote{In LGR, there is no separate glyph for uppercase Koppa.}
- \qoppa{} \Qoppa{} \Stigma{} \Sampi{} \sampi{}
+ symbol, \cs{varstigma} is not defined with
+ Xe/LuaTeX and similar to \cs{stigma} in some fonts.}
+ \koppa{} \qoppa{} \sampi{}
+
\end{quote}
%
-Greek letters via Unicode (active font encoding \encodingdefault):
+Greek letters via Unicode literals (active font encoding \encodingdefault):
\begin{quote}
- Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω\\
- α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω\\
- ϝ Ϝ ϛ ϟ Ϟ ϙ Ϙ Ϛ Ϡ ϡ
+ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω \quad Ϝ Ϛ Ϟ Ϙ Ϡ
+ \\
+ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω \quad ϝ ϛ ϟ ϙ ϡ
\end{quote}
-\subsection{Diacritics}
-
-Accent macros are set up for use with the generic macros by definition of
-``TextComposite'' commands.
-
-Diacritics (except the dialytika) should placed
-before capital letters.
-According to Greek typographical conventions, diacritics are dropped in
-UPPERCASE. Since 2022, \cs{MakeUppercase} only drops diacritics when the
-text language is set to \texttt{greek} with Babel or Polyglossia.
+\subsection{Diacritics \label{sec:diacritics}}
+According to Greek typographical conventions, diacritics (except the
+dialytika and sub iota) are placed before capital letters and
+dropped in UPPERCASE.
+Since 2022, \cs{MakeUppercase} only drops diacritics from Greek literals
+when the text language is set to \texttt{greek} with Babel or Polyglossia.
+Diacritics input as standard accent macros are only dropped if the Greek
+language is defined with Babel (i.e. not in this document).
+For an example using \pkgref{babel-greek} see
+\href{char-list-alphabeta.pdf}{char-list-alphabeta.pdf}).
+%
\begin{quote}
-\ensuregreek{
-\<{\alpha} \>{\epsilon} \"'{\iota} \>`{\eta}
-\'<{\omicron} \~<{\upsilon} \~>{\omega}
-\\
-\<{\Alpha} \>{\Epsilon} \'{\Iota} \>`{\Eta}
-\'<{\Omicron} \~<{\Upsilon} \~>{\Omega}
-\\
-\MakeUppercase{%
- \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{}
- \'<{\omicron} \~<{\upsilon} \~>{\omega}
-}}
+ \greekscript
+ \newcommand{\sample}{\<{\alpha} \>{\epsilon} \"'{\iota} \>`{\eta}
+ \'<{\omicron} \~<{\upsilon} \~>{\omega}}
+ \sample{} → \MakeUppercase{\sample}
+
+ \renewcommand{\sample}{\<{\Alpha} \>{\Epsilon} \"{\Iota} \>`{\Eta}
+ \'<{\Omicron} \~<{\Upsilon} \~>{\Omega}}
+ \sample{} → \MakeUppercase{\sample}
\end{quote}
+%
+Certain \textbf{limitations} apply \textbf{if} Greek LICRs are
+\textbf{used in a non-Greek font encoding} (e.g. T1).%
+\ifdefined \UnicodeEncodingName
+ \footnote{This document is typeset using Unicode fonts,
+ for details see the version using 8-bit fonts
+ \href{alphabeta-doc.pdf}{alphabeta-doc.pdf}.}
+\else
+ \footnote{This document is typeset using 8-bit fonts.}
+
+ \begin{itemize}
+
+ \item Composition of diacritics (like \verb|\>\'| or \verb|\accpsili\accoxia|)
+ fails: \\
+ \"'{\iota} \>`\eta{}
+ \'<{\omicron} \~<{\upsilon} \~>{\omega} (\currentEncoding) vs.
+ \ensuregreek{\"'{\iota} \>`\eta{}
+ \'<{\omicron} \~<{\upsilon} \~>{\omega} (\currentEncoding)}
+
+ Simple diacritics and long names (like \verb+\accdasiaoxia+) work in
+ any font encoding.
+
+ \item Accent macros do not select precomposed characters
+ (the subtle difference becomes obvious if you drag-and-drop text from
+ the PDF version of this document):
+ \\
+ \accdasiaoxia\alpha{} (\currentEncoding) vs.
+ \ensuregreek{\accdasiaoxia\alpha{} (\currentEncoding)}
+
+ \item Wrong placement of diacritics on capital letters:
+ \'\Alpha{} \accdasiaoxia\Omega{} (\currentEncoding) vs.
+ \ensuregreek{\'\Alpha{} \accdasiaoxia\Omega{} (\currentEncoding)}
+
+ \item Uppercasing characters with diacritics leads to compilation errors
+ unless the base letter is put in braces,
+ e.g., \verb|\MakeUppercase{\'\alpha}| fails,\\
+ \verb|\MakeUppercase{\'{\alpha}}| works.
+ \end{itemize}
+ The \cs{ensuregreek} macro can be used to avoid these problems.
+ It sets its argument with a font encoding supporting Greek.%
+ \footref{footnote:babel-greek}
+\fi
\subsection{normalize-symbols}
The \texttt{normalize-symbols} option merges ``letters'' and ``symbol``
variants of some Greek letters to the ``letter'' character. It is ignored,
-if the document uses Unicode fonts and is compiled with XeTeX or LuaTeX.
-(This document is compiled using \engine.)
+if the document uses Unicode fonts and is compiled with XeTeX or LuaTeX
+(this document is compiled using \engine).
\begin{quote}
The source of this quote uses both variants for beta (β|ϐ),
epsilon (ε|ϵ), phi (φ|ϕ), kappa (κ|ϰ), pi (π|ϖ), rho (ρ|ϱ), theta (θ|ϑ),
- and Theta (Θ|ϴ) in the LaTeX source.%
+ and Theta (Θ|ϴ).
\end{quote}
\subsection{\ensuregreek{%
- Ἑλληνικά (\<\Epsilon\lambda\lambda\eta\nu\iota\kappa\'\alpha{})}
- in PDF strings}
+ \<\Epsilon\lambda\lambda\eta\nu\iota\kappa\'\alpha} in PDF strings}
With the alphabeta package, you get Greek letters in both, the document body
-and PDF metadata generated by hyperref if the input uses Unicode literals or
-macros. Wrapping in \verb+\ensuregreek+ ensures the right placement of the
-accents and breathings (before, not above capital letters). With LICR input
-(accent macros as well as symbol macros), non-standard diacritics are
-missing in the PDF data, as hyperref's PU encoding currently does not
-support polytonic Greek. (Here, the dasia is dropped at the start of the
-word in parentheses in the PDF toc. The warning ``\texttt{Glyph not defined
-in PU encoding, removing `\textbackslash<' on input line 145.}'' is written
-to the log.)
+and PDF metadata generated by \pkgref{hyperref} if the input uses Unicode
+literals or macros. Wrapping in \verb+\ensuregreek+ ensures the right
+placement of the accents and breathings (before, not above capital letters).
\subsection{Greek in maths $\Gamma = \sin\alpha / \cos{\beta}$}
-In the main document, Greek in math mode should work as usual:
+In the main document, Greek in ``math'' mode should work as usual:
\[\Gamma = \frac{\sin\alpha}{\cos{\beta}}.
\]
-Greek letters and symbols in math mode,\footnote{%
- There are no math macros for Greek letters wich exist with similar
- shape in the Latin alphabet}
-input as macro:
+Greek letters and symbols in math mode, input as macro:\footnote{
+ There are no math macros for Greek letters wich exist
+ with similar shape in the Latin alphabet.}
\begin{align*}
&
% \Alpha{} \Beta{}
@@ -386,101 +447,964 @@ so that the output matches the Unicode reference glyph
This corresponds to the behaviour of \pkgref{unicode-math}.
-\subsection{8-bit limitations \label{sec:8-bit-limitations}}
+\section{Character Tables}
-Certain limitations apply if Greek LICRs are used in non-Greek context with
-8-bit TeX fonts (this document is typeset using
-\ifdefined \UnicodeEncodingName
- Unicode fonts%
-\else
- 8-bit fonts%
-\fi
-).
-
-\begin{itemize}
-
-\item Composition of diacritics (like \verb+\>\'+) fails:
- \<{\alpha} \>{\epsilon} \"'{\iota} \>`\eta{}
- \'<{\omicron} \~<{\upsilon} \~>{\omega}
-
- Simple diacritics and long names (like \verb+\accdasiaoxia+) work in
- any font encoding, however they do not select precomposed characters
- (the difference becomes obvious if you drag-and-drop text from the PDF
- version of this document):
- %
- \ensuregreek{\<'\alpha{} \accdasia\acctonos\alpha{} \accdasiaoxia\alpha{}
- (\currentEncoding)} vs. \accdasiaoxia\alpha{} (\currentEncoding)
-
-\item MakeUppercase fails with composite diacritics in other font encodings.%
- \footnote{Since the re-implementation 2022/06, MakeUppercase follows
- the Greek typesetting rules only for text parts given the
- \pkgref{babel} language \texttt{greek}.}
- % \MakeUppercase{%
- % \<\alpha{} \>\epsilon{} \'\iota{} \`\eta{} \~\upsilon{}
- % }
-
-\item There is no kerning between Greek letters, if the font encoding does not
- support Greek: compare \ensuregreek{\Alpha\Upsilon\Alpha{}
- (\currentEncoding)} to \Alpha\Upsilon\Alpha{} (\currentEncoding).
-\end{itemize}
-%
-The \verb+\ensuregreek+ macro ensures that the argument is typeset with a
-font encoding supporting Greek. This keeps kerning (if the kerning pair is
-inside the argument, \ensuregreek{\Alpha\"\Upsilon\Alpha}), and allows
-combining of accent macros where pre-composed characters are selected
-(\ensuregreek{\<'\alpha}).
-Setting the corrct language for Greek text parts with the \pkgref{babel}
-package additionally ensures correct hyphenation and upcasing.
+\subsection{Greek and Coptic}
+\newcommand*{\GreekAndCopticI}{%
+ \ensuregreek{%
+ \'{} % ΄
+ \"'{} % ΅
+ \'\Alpha{} % Ά
+ \textanoteleia{} % ·
+ \'\Epsilon{} % Έ
+ \'\Eta{} % Ή
+ \'\Iota{} % Ί
+ \'\Omicron{} % Ό
+ \'\Upsilon{} % Ύ
+ \'\Omega{} % Ώ
+}}
+\newcommand*{\GreekAndCopticII}{%
+ \ensuregreek{%
+ \'"\iota{} % ΐ
+ \Alpha{} % Α
+ \Beta{} % Β
+ \Gamma{} % Γ
+ \Delta{} % Δ
+ \Epsilon{} % Ε
+ \Zeta{} % Ζ
+ \Eta{} % Η
+ \Theta{} % Θ
+ \Iota{} % Ι
+ \Kappa{} % Κ
+ \Lambda{} % Λ
+ \Mu{} % Μ
+ \Nu{} % Ν
+ \Xi{} % Ξ
+ \Omicron{} % Ο
+}}
+\newcommand*{\GreekAndCopticIII}{%
+ \ensuregreek{%
+ \Pi{} % Π
+ \Rho{} % Ρ
+ \Sigma{} % Σ
+ \Tau{} % Τ
+ \Upsilon{} % Υ
+ \Phi{} % Φ
+ \Chi{} % Χ
+ \Psi{} % Ψ
+ \Omega{} % Ω
+ \"\Iota{} % Ϊ
+ \"\Upsilon{} % Ϋ
+ \'\alpha{} % ά
+ \'\epsilon{} % έ
+ \'\eta{} % ή
+ \'\iota{} % ί
+}}
+\newcommand*{\GreekAndCopticIV}{%
+ \ensuregreek{%
+ \"'\upsilon{} % ΰ
+ \alpha{} % α
+ \beta{} % β
+ \gamma{} % γ
+ \delta{} % δ
+ \epsilon{} % ε
+ \zeta{} % ζ
+ \eta{} % η
+ \theta{} % θ
+ \iota{} % ι
+ \kappa{} % κ
+ \lambda{} % λ
+ \mu{} % μ
+ \nu{} % ν
+ \xi{} % ξ
+ \omicron{} % ο
+}}
+\newcommand*{\GreekAndCopticV}{%
+ \ensuregreek{%
+ \pi{} % π
+ \rho{} % ρ
+ \finalsigma{} % ς
+ \sigma{} % σ
+ \tau{} % τ
+ \upsilon{} % υ
+ \phi{} % φ
+ \chi{} % χ
+ \psi{} % ψ
+ \omega{} % ω
+ \"\iota{} % ϊ
+ \"\upsilon{} % ϋ
+ \'\omicron{} % ό
+ \'\upsilon{} % ύ
+ \'\omega{} % ώ
+}}
+\newcommand*{\GreekAndCopticVI}{%
+ \ensuregreek{%
+ % x03D0
+ \betasymbol{} % ϐ
+ \thetasymbol{} % ϑ
+ \phisymbol{} % ϕ
+ \pisymbol{} % ϖ
+ \Qoppa{} % Ϙ
+ \qoppa{} % ϙ
+ \Stigma{} % Ϛ
+ \stigma{} % ϛ
+ \Digamma{} % Ϝ
+ \digamma{} % ϝ
+ \Koppa{} % Ϟ
+ \koppa{} % ϟ
+}}
+\newcommand*{\GreekAndCopticVII}{%
+ \ensuregreek{%
+ % x03E0
+ \Sampi{} % Ϡ
+ \sampi{} % ϡ
+ % x03F0
+ \kappasymbol{} % ϰ
+ \rhosymbol{} % ϱ
+ \Thetasymbol{} % ϴ
+ \epsilonsymbol{} % ϵ
+}}
+
+\begin{minipage}{0.48\linewidth}
+ symbol accent macros
+
+ \GreekAndCopticI
+
+ \GreekAndCopticII
+
+ \GreekAndCopticIII
+
+ \GreekAndCopticIV
+
+ \GreekAndCopticV
+
+ \GreekAndCopticVI
+
+ \GreekAndCopticVII
+\end{minipage}
+\hfill
+\begin{minipage}{0.5\linewidth}
+\noindent
+named accent macros
+
+\ensuregreek{%
+% x0384
+\acctonos{} % ΄
+\accdialytikatonos{} % ΅
+\acctonos\Alpha{} % Ά
+\textanoteleia{} % ·
+\acctonos\Epsilon{} % Έ
+\acctonos\Eta{} % Ή
+\acctonos\Iota{} % Ί
+\acctonos\Omicron{} % Ό
+\acctonos\Upsilon{} % Ύ
+\acctonos\Omega{} % Ώ
+
+% x0390
+\accdialytikatonos\iota{} % ΐ
+\Alpha{} % Α
+\Beta{} % Β
+\Gamma{} % Γ
+\Delta{} % Δ
+\Epsilon{} % Ε
+\Zeta{} % Ζ
+\Eta{} % Η
+\Theta{} % Θ
+\Iota{} % Ι
+\Kappa{} % Κ
+\Lambda{} % Λ
+\Mu{} % Μ
+\Nu{} % Ν
+\Xi{} % Ξ
+\Omicron{} % Ο
+
+% 0x3A0
+\Pi{} % Π
+\Rho{} % Ρ
+\Sigma{} % Σ
+\Tau{} % Τ
+\Upsilon{} % Υ
+\Phi{} % Φ
+\Chi{} % Χ
+\Psi{} % Ψ
+\Omega{} % Ω
+\accdialytika\Iota{} % Ϊ
+\accdialytika\Upsilon{} % Ϋ
+\acctonos\alpha{} % ά
+\acctonos\epsilon{} % έ
+\acctonos\eta{} % ή
+\acctonos\iota{} % ί
+
+% x03B0
+\accdialytikatonos\upsilon{} % ΰ
+\alpha{} % α
+\beta{} % β
+\gamma{} % γ
+\delta{} % δ
+\epsilon{} % ε
+\zeta{} % ζ
+\eta{} % η
+\theta{} % θ
+\iota{} % ι
+\kappa{} % κ
+\lambda{} % λ
+\mu{} % μ
+\nu{} % ν
+\xi{} % ξ
+\omicron{} % ο
+
+% x03C0
+\pi{} % π
+\rho{} % ρ
+\finalsigma{} % ς
+\sigma{} % σ
+\tau{} % τ
+\upsilon{} % υ
+\phi{} % φ
+\chi{} % χ
+\psi{} % ψ
+\omega{} % ω
+\accdialytika\iota{} % ϊ
+\accdialytika\upsilon{} % ϋ
+\acctonos\omicron{} % ό
+\acctonos\upsilon{} % ύ
+\acctonos\omega{} % ώ
+
+% x03D0
+\betasymbol{} % ϐ
+\thetasymbol{} % ϑ
+\phisymbol{} % ϕ
+\pisymbol{} % ϖ
+\Qoppa{} % Ϙ
+\qoppa{} % ϙ
+\Stigma{} % Ϛ
+\stigma{} % ϛ
+\Digamma{} % Ϝ
+\digamma{} % ϝ
+\Koppa{} % Ϟ
+\koppa{} % ϟ
+
+% x03E0
+\Sampi{} % Ϡ
+\sampi{} % ϡ
+% x03F0
+\kappasymbol{} % ϰ
+\rhosymbol{} % ϱ
+\Thetasymbol{} % ϴ
+\epsilonsymbol{} % ϵ
+} % end \ensuregreek
+\end{minipage}
+
+
+\subsection{Greek Extended}
+
+\newcommand*{\GreekExtendedI}{%
+ \ensuregreek{%
+ \>\alpha{}
+ \<\alpha{}
+ \>`\alpha{}
+ \<`\alpha{}
+ \>'\alpha{}
+ \<'\alpha{}
+ \~>\alpha{}
+ \~<\alpha{}
+ \>\Alpha{}
+ \<\Alpha{}
+ \>`\Alpha{}
+ \<`\Alpha{}
+ \>'\Alpha{}
+ \<'\Alpha{}
+ \~>\Alpha{}
+ \~<\Alpha{}
+}}
+\newcommand*{\GreekExtendedII}{%
+ \ensuregreek{%
+ \>\epsilon{}
+ \<\epsilon{}
+ \>`\epsilon{}
+ \<`\epsilon{}
+ \>'\epsilon{}
+ \<'\epsilon{}
+ \>\Epsilon{}
+ \<\Epsilon{}
+ \>`\Epsilon{}
+ \<`\Epsilon{}
+ \>'\Epsilon{}
+ \<'\Epsilon{}
+}}
+\newcommand*{\GreekExtendedIII}{%
+ \ensuregreek{%
+ \>\eta{}
+ \<\eta{}
+ \>`\eta{}
+ \<`\eta{}
+ \>'\eta{}
+ \<'\eta{}
+ \~>\eta{}
+ \~<\eta{}
+ \>\Eta{}
+ \<\Eta{}
+ \>`\Eta{}
+ \<`\Eta{}
+ \>'\Eta{}
+ \<'\Eta{}
+ \~>\Eta{}
+ \~<\Eta{}
+}}
+\newcommand*{\GreekExtendedIV}{%
+ \ensuregreek{%
+ \>\iota{}
+ \<\iota{}
+ \>`\iota{}
+ \<`\iota{}
+ \>'\iota{}
+ \<'\iota{}
+ \~>\iota{}
+ \~<\iota{}
+ \>\Iota{}
+ \<\Iota{}
+ \>`\Iota{}
+ \<`\Iota{}
+ \>'\Iota{}
+ \<'\Iota{}
+ \~>\Iota{}
+ \~<\Iota{}
+}}
+\newcommand*{\GreekExtendedV}{%
+ \ensuregreek{%
+ \>\omicron{}
+ \<\omicron{}
+ \>`\omicron{}
+ \<`\omicron{}
+ \>'\omicron{}
+ \<'\omicron{}
+ \>\Omicron{}
+ \<\Omicron{}
+ \>`\Omicron{}
+ \<`\Omicron{}
+ \>'\Omicron{}
+ \<'\Omicron{}
+}}
+\newcommand*{\GreekExtendedVI}{%
+ \ensuregreek{%
+ \>\upsilon{}
+ \<\upsilon{}
+ \>`\upsilon{}
+ \<`\upsilon{}
+ \>'\upsilon{}
+ \<'\upsilon{}
+ \~>\upsilon{}
+ \~<\upsilon{}
+ \<\Upsilon{}
+ \<`\Upsilon{}
+ \<'\Upsilon{}
+ \~<\Upsilon{}
+}}
+\newcommand*{\GreekExtendedVII}{%
+ \ensuregreek{%
+ \>\omega{}
+ \<\omega{}
+ \>`\omega{}
+ \<`\omega{}
+ \>'\omega{}
+ \<'\omega{}
+ \~>\omega{}
+ \~<\omega{}
+ \>\Omega{}
+ \<\Omega{}
+ \>`\Omega{}
+ \<`\Omega{}
+ \>'\Omega{}
+ \<'\Omega{}
+ \~>\Omega{}
+ \~<\Omega{}
+}}
+\newcommand*{\GreekExtendedVIII}{%
+ \ensuregreek{%
+ \`\alpha{}
+ \'\alpha{}
+ \`\epsilon{}
+ \'\epsilon{}
+ \`\eta{}
+ \'\eta{}
+ \`\iota{}
+ \'\iota{}
+ \`\omicron{}
+ \'\omicron{}
+ \`\upsilon{}
+ \'\upsilon{}
+ \`\omega{}
+ \'\omega{}
+}}
+\newcommand*{\GreekExtendedIX}{%
+ \ensuregreek{%
+ \>\alpha\ypogegrammeni{}
+ \<\alpha\ypogegrammeni{}
+ \>`\alpha\ypogegrammeni{}
+ \<`\alpha\ypogegrammeni{}
+ \>'\alpha\ypogegrammeni{}
+ \<'\alpha\ypogegrammeni{}
+ \~>\alpha\ypogegrammeni{}
+ \~<\alpha\ypogegrammeni{}
+ \>\Alpha\ypogegrammeni{}
+ \<\Alpha\ypogegrammeni{}
+ \>`\Alpha\ypogegrammeni{}
+ \<`\Alpha\ypogegrammeni{}
+ \>'\Alpha\ypogegrammeni{}
+ \<'\Alpha\ypogegrammeni{}
+ \~>\Alpha\ypogegrammeni{}
+ \~<\Alpha\ypogegrammeni{}
+}}
+\newcommand*{\GreekExtendedX}{%
+ \ensuregreek{%
+ \>\eta\ypogegrammeni{}
+ \<\eta\ypogegrammeni{}
+ \>`\eta\ypogegrammeni{}
+ \<`\eta\ypogegrammeni{}
+ \>'\eta\ypogegrammeni{}
+ \<'\eta\ypogegrammeni{}
+ \~>\eta\ypogegrammeni{}
+ \~<\eta\ypogegrammeni{}
+ \>\Eta\ypogegrammeni{}
+ \<\Eta\ypogegrammeni{}
+ \>`\Eta\ypogegrammeni{}
+ \<`\Eta\ypogegrammeni{}
+ \>'\Eta\ypogegrammeni{}
+ \<'\Eta\ypogegrammeni{}
+ \~>\Eta\ypogegrammeni{}
+ \~<\Eta\ypogegrammeni{}
+}}
+\newcommand*{\GreekExtendedXI}{%
+ \ensuregreek{%
+ \>\omega\ypogegrammeni{}
+ \<\omega\ypogegrammeni{}
+ \>`\omega\ypogegrammeni{}
+ \<`\omega\ypogegrammeni{}
+ \>'\omega\ypogegrammeni{}
+ \<'\omega\ypogegrammeni{}
+ \~>\omega\ypogegrammeni{}
+ \~<\omega\ypogegrammeni{}
+ \>\Omega\ypogegrammeni{}\,%
+ \<\Omega\ypogegrammeni{}\,%
+ \>`\Omega\ypogegrammeni{}\,%
+ \<`\Omega\ypogegrammeni{}\,%
+ \>'\Omega\ypogegrammeni{}\,%
+ \<'\Omega\ypogegrammeni{}\,%
+ \~>\Omega\ypogegrammeni{}\,%
+ \~<\Omega\ypogegrammeni{}
+}}
+\newcommand*{\GreekExtendedXII}{%
+ \ensuregreek{%
+ \u\alpha{}
+ \=\alpha{}
+ \`\alpha\ypogegrammeni{}
+ \alpha\ypogegrammeni{}
+ \'\alpha\ypogegrammeni{}
+ \~\alpha{}
+ \~\alpha\ypogegrammeni{}
+ \u\Alpha{}
+ \=\Alpha{}
+ \`\Alpha{}
+ \'\Alpha{}
+ \Alpha\ypogegrammeni{}
+ \>{}
+ \prosgegrammeni{}
+ \>{}
+}}
+\newcommand*{\GreekExtendedXIII}{%
+ \ensuregreek{%
+ \~{}
+ \"\~{}
+ \`\eta\ypogegrammeni{}
+ \eta\ypogegrammeni{}
+ \'\eta\ypogegrammeni{}
+ \~\eta{}
+ \~\eta\ypogegrammeni{}
+ \`\Epsilon{}
+ \'\Epsilon{}
+ \`\Eta{}
+ \'\Eta{}
+ \Eta\ypogegrammeni{}
+ \>`{}
+ \>'{}
+ \~>{}
+}}
+\newcommand*{\GreekExtendedXIV}{%
+ \ensuregreek{%
+ \u\iota{}
+ \=\iota{}
+ \`"\iota{}
+ \'"\iota{}
+ \~\iota{}
+ \~"\iota{}
+ \u\Iota{}
+ \=\Iota{}
+ \`\Iota{}
+ \'\Iota{}
+ \<`{}
+ \<'{}
+ \~<{}
+}}
+\newcommand*{\GreekExtendedXV}{%
+ \ensuregreek{%
+ \u\upsilon{}
+ \=\upsilon{}
+ \`"\upsilon{}
+ \'"\upsilon{}
+ \>\rho{}
+ \<\rho{}
+ \~\upsilon{}
+ \~"\upsilon{}
+ \u\Upsilon{}
+ \=\Upsilon{}
+ \`\Upsilon{}
+ \'\Upsilon{}
+ \<\Rho{}
+ \`"{}
+ \'"{}
+ \`{}
+}}
+\newcommand*{\GreekExtendedXVI}{%
+ \ensuregreek{%
+ \`\omega\ypogegrammeni{}
+ \omega\ypogegrammeni{}
+ \'\omega\ypogegrammeni{}
+ \~\omega{}
+ \~\omega\ypogegrammeni{}
+ \`\Omicron{}
+ \'\Omicron{}
+ \`\Omega{}
+ \'\Omega{}
+ \Omega\ypogegrammeni{}
+ \'{}
+ \<{}
+}}
+
+
+\begin{minipage}{0.5\linewidth}
+ symbol accent macros
+
+ \GreekExtendedI
+
+ \GreekExtendedII
+
+ \GreekExtendedIII
+
+ \GreekExtendedIV
+
+ \GreekExtendedV
+
+ \GreekExtendedVI
+
+ \GreekExtendedVII
+
+ \GreekExtendedVIII
+
+ \GreekExtendedIX
+
+ \GreekExtendedX
+
+ \GreekExtendedXI
+
+ \GreekExtendedXII
+
+ \GreekExtendedXIII
+
+ \GreekExtendedXIV
+
+ \GreekExtendedXV
+
+ \GreekExtendedXVI
+\end{minipage}
+\hfill
+\begin{minipage}{0.48\linewidth}
+\noindent
+named accent macros
+
+\ensuregreek{%
+\accpsili\alpha{}
+\accdasia\alpha{}
+\accpsilivaria\alpha{}
+\accdasiavaria\alpha{}
+\accpsilioxia\alpha{}
+\accdasiaoxia\alpha{}
+\accpsiliperispomeni\alpha{}
+\accdasiaperispomeni\alpha{}
+\accpsili\Alpha{}
+\accdasia\Alpha{}
+\accpsilivaria\Alpha{}
+\accdasiavaria\Alpha{}
+\accpsilioxia\Alpha{}
+\accdasiaoxia\Alpha{}
+\accpsiliperispomeni\Alpha{}
+\accdasiaperispomeni\Alpha{}
+
+\accpsili\epsilon{}
+\accdasia\epsilon{}
+\accpsilivaria\epsilon{}
+\accdasiavaria\epsilon{}
+\accpsilioxia\epsilon{}
+\accdasiaoxia\epsilon{}
+\accpsili\Epsilon{}
+\accdasia\Epsilon{}
+\accpsilivaria\Epsilon{}
+\accdasiavaria\Epsilon{}
+\accpsilioxia\Epsilon{}
+\accdasiaoxia\Epsilon{}
+
+\accpsili\eta{}
+\accdasia\eta{}
+\accpsilivaria\eta{}
+\accdasiavaria\eta{}
+\accpsilioxia\eta{}
+\accdasiaoxia\eta{}
+\accpsiliperispomeni\eta{}
+\accdasiaperispomeni\eta{}
+\accpsili\Eta{}
+\accdasia\Eta{}
+\accpsilivaria\Eta{}
+\accdasiavaria\Eta{}
+\accpsilioxia\Eta{}
+\accdasiaoxia\Eta{}
+\accpsiliperispomeni\Eta{}
+\accdasiaperispomeni\Eta{}
+
+\accpsili\iota{}
+\accdasia\iota{}
+\accpsilivaria\iota{}
+\accdasiavaria\iota{}
+\accpsilioxia\iota{}
+\accdasiaoxia\iota{}
+\accpsiliperispomeni\iota{}
+\accdasiaperispomeni\iota{}
+\accpsili\Iota{}
+\accdasia\Iota{}
+\accpsilivaria\Iota{}
+\accdasiavaria\Iota{}
+\accpsilioxia\Iota{}
+\accdasiaoxia\Iota{}
+\accpsiliperispomeni\Iota{}
+\accdasiaperispomeni\Iota{}
+
+\accpsili\omicron{}
+\accdasia\omicron{}
+\accpsilivaria\omicron{}
+\accdasiavaria\omicron{}
+\accpsilioxia\omicron{}
+\accdasiaoxia\omicron{}
+\accpsili\Omicron{}
+\accdasia\Omicron{}
+\accpsilivaria\Omicron{}
+\accdasiavaria\Omicron{}
+\accpsilioxia\Omicron{}
+\accdasiaoxia\Omicron{}
+
+\accpsili\upsilon{}
+\accdasia\upsilon{}
+\accpsilivaria\upsilon{}
+\accdasiavaria\upsilon{}
+\accpsilioxia\upsilon{}
+\accdasiaoxia\upsilon{}
+\accpsiliperispomeni\upsilon{}
+\accdasiaperispomeni\upsilon{}
+\accdasia\Upsilon{}
+\accdasiavaria\Upsilon{}
+\accdasiaoxia\Upsilon{}
+\accdasiaperispomeni\Upsilon{}
+
+\accpsili\omega{}
+\accdasia\omega{}
+\accpsilivaria\omega{}
+\accdasiavaria\omega{}
+\accpsilioxia\omega{}
+\accdasiaoxia\omega{}
+\accpsiliperispomeni\omega{}
+\accdasiaperispomeni\omega{}
+\accpsili\Omega{}
+\accdasia\Omega{}
+\accpsilivaria\Omega{}
+\accdasiavaria\Omega{}
+\accpsilioxia\Omega{}
+\accdasiaoxia\Omega{}
+\accpsiliperispomeni\Omega{}
+\accdasiaperispomeni\Omega{}
+
+\accvaria\alpha{}
+\accoxia\alpha{}
+\accvaria\epsilon{}
+\accoxia\epsilon{}
+\accvaria\eta{}
+\accoxia\eta{}
+\accvaria\iota{}
+\accoxia\iota{}
+\accvaria\omicron{}
+\accoxia\omicron{}
+\accvaria\upsilon{}
+\accoxia\upsilon{}
+\accvaria\omega{}
+\accoxia\omega{}
+
+\accpsili\alpha\ypogegrammeni{}
+\accdasia\alpha\ypogegrammeni{}
+\accpsilivaria\alpha\ypogegrammeni{}
+\accdasiavaria\alpha\ypogegrammeni{}
+\accpsilioxia\alpha\ypogegrammeni{}
+\accdasiaoxia\alpha\ypogegrammeni{}
+\accpsiliperispomeni\alpha\ypogegrammeni{}
+\accdasiaperispomeni\alpha\ypogegrammeni{}
+\accpsili\Alpha\ypogegrammeni{}
+\accdasia\Alpha\ypogegrammeni{}
+\accpsilivaria\Alpha\ypogegrammeni{}
+\accdasiavaria\Alpha\ypogegrammeni{}
+\accpsilioxia\Alpha\ypogegrammeni{}
+\accdasiaoxia\Alpha\ypogegrammeni{}
+\accpsiliperispomeni\Alpha\ypogegrammeni{}
+\accdasiaperispomeni\Alpha\ypogegrammeni{}
+
+\accpsili\eta\ypogegrammeni{}
+\accdasia\eta\ypogegrammeni{}
+\accpsilivaria\eta\ypogegrammeni{}
+\accdasiavaria\eta\ypogegrammeni{}
+\accpsilioxia\eta\ypogegrammeni{}
+\accdasiaoxia\eta\ypogegrammeni{}
+\accpsiliperispomeni\eta\ypogegrammeni{}
+\accdasiaperispomeni\eta\ypogegrammeni{}
+\accpsili\Eta\ypogegrammeni{}
+\accdasia\Eta\ypogegrammeni{}
+\accpsilivaria\Eta\ypogegrammeni{}
+\accdasiavaria\Eta\ypogegrammeni{}
+\accpsilioxia\Eta\ypogegrammeni{}
+\accdasiaoxia\Eta\ypogegrammeni{}
+\accpsiliperispomeni\Eta\ypogegrammeni{}
+\accdasiaperispomeni\Eta\ypogegrammeni{}
+
+\accpsili\omega\ypogegrammeni{}
+\accdasia\omega\ypogegrammeni{}
+\accpsilivaria\omega\ypogegrammeni{}
+\accdasiavaria\omega\ypogegrammeni{}
+\accpsilioxia\omega\ypogegrammeni{}
+\accdasiaoxia\omega\ypogegrammeni{}
+\accpsiliperispomeni\omega\ypogegrammeni{}
+\accdasiaperispomeni\omega\ypogegrammeni{}
+\accpsili\Omega\ypogegrammeni{}\,%
+\accdasia\Omega\ypogegrammeni{}\,%
+\accpsilivaria\Omega\ypogegrammeni{}\,%
+\accdasiavaria\Omega\ypogegrammeni{}\,%
+\accpsilioxia\Omega\ypogegrammeni{}\,%
+\accdasiaoxia\Omega\ypogegrammeni{}\,%
+\accpsiliperispomeni\Omega\ypogegrammeni{}\,%
+\accdasiaperispomeni\Omega\ypogegrammeni{}
+
+\u\alpha{}
+\=\alpha{}
+\accvaria\alpha\ypogegrammeni{}
+\alpha\ypogegrammeni{}
+\accoxia\alpha\ypogegrammeni{}
+\accperispomeni\alpha{}
+\accperispomeni\alpha\ypogegrammeni{}
+\u\Alpha{}
+\=\Alpha{}
+\accvaria\Alpha{}
+\accoxia\Alpha{}
+\Alpha\ypogegrammeni{}
+\accpsili{}
+\prosgegrammeni{}
+\accpsili{}
+
+\accperispomeni{}
+\accdialytikaperispomeni{}
+\accvaria\eta\ypogegrammeni{}
+\eta\ypogegrammeni{}
+\accoxia\eta\ypogegrammeni{}
+\accperispomeni\eta{}
+\accperispomeni\eta\ypogegrammeni{}
+\accvaria\Epsilon{}
+\accoxia\Epsilon{}
+\accvaria\Eta{}
+\accoxia\Eta{}
+\Eta\ypogegrammeni{}
+\accpsilivaria{}
+\accpsilioxia{}
+\accpsiliperispomeni{}
+
+\u\iota{}
+\=\iota{}
+\accdialytikavaria\iota{}
+\accdialytikatonos\iota{}
+\accperispomeni\iota{}
+\accdialytikaperispomeni\iota{}
+\u\Iota{}
+\=\Iota{}
+\accvaria\Iota{}
+\accoxia\Iota{}
+\accdasiavaria{}
+\accdasiaoxia{}
+\accdasiaperispomeni{}
+
+\u\upsilon{}
+\=\upsilon{}
+\accdialytikavaria\upsilon{}
+\accdialytikatonos\upsilon{}
+\accpsili\rho{}
+\accdasia\rho{}
+\accperispomeni\upsilon{}
+\accdialytikaperispomeni\upsilon{}
+\u\Upsilon{}
+\=\Upsilon{}
+\accvaria\Upsilon{}
+\accoxia\Upsilon{}
+\accdasia\Rho{}
+\accdialytikavaria{}
+\accdialytikatonos{}
+\accvaria{}
+
+\accvaria\omega\ypogegrammeni{}
+\omega\ypogegrammeni{}
+\accoxia\omega\ypogegrammeni{}
+\accperispomeni\omega{}
+\accperispomeni\omega\ypogegrammeni{}
+\accvaria\Omicron{}
+\accoxia\Omicron{}
+\accvaria\Omega{}
+\accoxia\Omega{}
+\Omega\ypogegrammeni{}
+\accoxia{}
+\accdasia{}
+} % end \ensuregreek
+\end{minipage}
+
+\section{PDF Strings}
+
+Generic LICRs and symbol accent macros.
+(Check the ToC in the PDF sidebar to see how PDF strings are handled.)
+
+\subsection{Greek and Coptic}
+
+\subsubsection{\GreekAndCopticI}
+\subsubsection{\GreekAndCopticII}
+\subsubsection{\GreekAndCopticIII}
+\subsubsection{\GreekAndCopticIV}
+\subsubsection{\GreekAndCopticV}
+\subsubsection{\GreekAndCopticVI}
+\subsubsection{\GreekAndCopticVII}
+
+\subsection{Greek Extended}
+
+\subsubsection{\GreekExtendedI}
+\subsubsection{\GreekExtendedII}
+\subsubsection{\GreekExtendedIII}
+\subsubsection{\GreekExtendedIV}
+\subsubsection{\GreekExtendedV}
+\subsubsection{\GreekExtendedVI}
+\subsubsection{\GreekExtendedVII}
+\subsubsection{\GreekExtendedVIII}
+\subsubsection{\GreekExtendedIX}
+\subsubsection{\GreekExtendedX}
+\subsubsection{\GreekExtendedXI}
+\subsubsection{\GreekExtendedXII}
+\subsubsection{\GreekExtendedXIII}
+\subsubsection{\GreekExtendedXIV}
+\subsubsection{\GreekExtendedXV}
+\subsubsection{\GreekExtendedXVI}
+
+If this document is compiled with a post 2022 LaTeX and \emph{Babel},
+a test for \cs{MakeUppercase} follows.
+
+\ifdefined \AddToNoCaseChangeList
+ % skip \MakeUppercase tests for LaTeX older than 2022/6
+
+ \subsection{MakeUppercase}
+
+ \ifdefined \extrasgreek
+ \selectlanguage{greek} % must be done before the \section command
+ \fi
+
+ \subsubsection{\MakeUppercase{\GreekAndCopticI}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticII}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticIII}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticIV}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticV}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticVI}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticVII}}
+
+ \subsubsection{\MakeUppercase{\GreekExtendedI}}
+ \subsubsection{\MakeUppercase{\GreekExtendedII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedIII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedIV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedVI}}
+ \subsubsection{\MakeUppercase{\GreekExtendedVII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedVIII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedIX}}
+ \subsubsection{\MakeUppercase{\GreekExtendedX}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXI}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXIII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXIV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXVI}}
+
+ \ifdefined \extrasgreek
+ \selectlanguage{english}
+ \fi
+\fi
\begin{table}[bp]
\centering
- \begin{tabular}{lcc}
- \hline
- macro & text & math \\
- \hline
- \verb$\beta$ & \beta & $\beta$ \\
- \verb$\varbeta$ & \varbeta & $\varbeta$ \\
- \verb$\betasymbol$ & \betasymbol & $\betasymbol$ \\
- \hline
- \verb$\epsilon$ & \epsilon & $\epsilon$ \\
- \verb$\varepsilon$ & \varepsilon & $\varepsilon$ \\
- \verb$\epsilonsymbol$ & \epsilonsymbol & $\epsilonsymbol$ \\
- \hline
- \verb$\phi$ & \phi & $\phi$ \\
- \verb$\varphi$ & \varphi & $\varphi$ \\
- \verb$\phisymbol$ & \phisymbol & $\phisymbol$ \\
- \hline
- \verb$\kappa$ & \kappa & $\kappa$ \\
- \verb$\varkappa$ & \varkappa & $\varkappa$ \\
- \verb$\kappasymbol$ & \kappasymbol & $\kappasymbol$ \\
- \hline
- \verb$\pi$ & \pi & $\pi$ \\
- \verb$\varpi$ & \varpi & $\varpi$ \\
- \verb$\pisymbol$ & \pisymbol & $\pisymbol$ \\
- \hline
- \verb$\rho$ & \rho & $\rho$ \\
- \verb$\varrho$ & \varrho & $\varrho$ \\
- \verb$\rhosymbol$ & \rhosymbol & $\rhosymbol$ \\
- \hline
- \verb$\sigma$ & \sigma & $\sigma$ \\
- \verb$\varsigma$ & \varsigma & $\varsigma$ \\
- \verb$\finalsigma$ & \finalsigma & $\finalsigma$ \\
- \hline
- \verb$\theta$ & \theta & $\theta$ \\
- \verb$\vartheta$ & \vartheta & $\vartheta$ \\
- \verb$\thetasymbol$ & \thetasymbol & $\thetasymbol$ \\
- \hline
- \verb$\Theta$ & \Theta & $\Theta$ \\
- \verb$\varTheta$ & \missing & $\varTheta$ \\
- \verb$\Thetasymbol$ & \Thetasymbol & \missing \\
- \hline
+ \begin{tabular}[t]{lcc}
+ \hline
+ macro & text & math \\
+ \hline \\
+ \verb$\beta$ & \beta & $\beta$ \\
+ \verb$\varbeta$ & \varbeta & $\varbeta$ \\
+ \verb$\betasymbol$ & \betasymbol & $\betasymbol$ \\
+ \hline \\
+ \verb$\epsilon$ & \epsilon & $\epsilon$ \\
+ \verb$\varepsilon$ & \varepsilon & $\varepsilon$ \\
+ \verb$\epsilonsymbol$ & \epsilonsymbol & $\epsilonsymbol$\\
+ \hline \\
+ \verb$\phi$ & \phi & $\phi$ \\
+ \verb$\varphi$ & \varphi & $\varphi$ \\
+ \verb$\phisymbol$ & \phisymbol & $\phisymbol$ \\
+ \hline \\
+ \verb$\kappa$ & \kappa & $\kappa$ \\
+ \verb$\varkappa$ & \varkappa & $\varkappa$ \\
+ \verb$\kappasymbol$ & \kappasymbol & $\kappasymbol$ \\
+ \hline \\
+ \verb$\pi$ & \pi & $\pi$ \\
+ \verb$\varpi$ & \varpi & $\varpi$ \\
+ \verb$\pisymbol$ & \pisymbol & $\pisymbol$ \\
+ \hline \\
+ % \end{tabular}
+ % \begin{tabular}[t]{lcc}
+ % \hline
+ % macro & text & math \\
+ % \hline \\
+ \verb$\rho$ & \rho & $\rho$ \\
+ \verb$\varrho$ & \varrho & $\varrho$ \\
+ \verb$\rhosymbol$ & \rhosymbol & $\rhosymbol$ \\
+ \hline \\
+ \verb$\sigma$ & \sigma & $\sigma$ \\
+ \verb$\varsigma$ & \varsigma & $\varsigma$ \\
+ \verb$\finalsigma$ & \finalsigma & $\finalsigma$ \\
+ \hline \\
+ \verb$\theta$ & \theta & $\theta$ \\
+ \verb$\vartheta$ & \vartheta & $\vartheta$ \\
+ \verb$\thetasymbol$ & \thetasymbol & $\thetasymbol$ \\
+ \hline \\
+ \verb$\Theta$ & \Theta & $\Theta$ \\
+ \verb$\varTheta$ & \varTheta & $\varTheta$ \\
+ \verb$\Thetasymbol$ & \Thetasymbol & \missing \\
+ \hline \\
\end{tabular}
- \caption{Macros for Greek symbol variants (\missing = symbol only
- available with additional packages).
- With 8-bit TeX and the \texttt{normalize-symbols} option, the output for
- both variants in text mode is the same (8-bit Greek text fonts contain
- only one symbol variant). \label{tab:symbol-variant-macros}}
+ \caption{Macros for Greek \hyperref[sec:symbol-variants]{symbol variants}
+ (\missing = symbol only available with additional packages).
+ With 8-bit TeX and the
+ \hyperref[item:normalize-symbols]{\texttt{normalize-symbols}} option,
+ the output for both variants in text mode is the same (8-bit Greek text
+ fonts contain only one symbol variant). \label{tab:symbol-variant-macros}}
\end{table}
+
\end{document}
diff --git a/language/greek/greek-fontenc/alphabeta-lgr.def b/language/greek/greek-fontenc/alphabeta-lgr.def
deleted file mode 100644
index 1affabd264..0000000000
--- a/language/greek/greek-fontenc/alphabeta-lgr.def
+++ /dev/null
@@ -1,189 +0,0 @@
-% alphabeta-lgr.def
-% ===================
-% Composite definitions for 8-bit TeX
-% ******************************************
-%
-% :Copyright: © 2014, 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.
-% :Identification:
-% ::
-
-\ProvidesFile{alphabeta-lgr}
-[2020/09/25 1.0 Composite definitions for 8-bit TeX]
-
-% :Changelog:
-% .. class:: borderless
-%
-% ====== ========== =====================================================
-% 0.11.2 2014-09-04 outsourced from ``alphabeta.sty``.
-% 1.0 2020-09-25 New package version. No changes in this file.
-% ====== ========== =====================================================
-%
-% The alphabeta_ package re-defines the math macros for Greek letters to work
-% in both, text and math mode, so that Greek letters can be specified with
-% the established command names in text, too.
-%
-% The NFSS TextComposite mechanism looks for the next token without expanding
-% it. In order to let compositions like ``\>"\alpha`` work as expected we
-% define TextComposites with the `letter name commands`.
-%
-% This file expands the font encoding definitions in lgrenc.def_ with
-% composite commands for use with 8-bit TeX fonts. It is sourced by
-% alphabeta_ under 8-bit TeX (pdfTeX, eTeX, TeX).
-%
-% ::
-
- \DeclareTextComposite{\accvaria}{LGR}{\alpha}{128}
- \DeclareTextComposite{\accdasia}{LGR}{\alpha}{129}
- \DeclareTextComposite{\accpsili}{LGR}{\alpha}{130}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\alpha}{131}
- \DeclareTextComposite{\acctonos}{LGR}{\alpha}{136}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\alpha}{137}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\alpha}{138}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\alpha}{139}
- \DeclareTextComposite{\accperispomeni}{LGR}{\alpha}{144}
- \DeclareTextComposite{\accdasiaperispomeni}{LGR}{\alpha}{145}
- \DeclareTextComposite{\accpsiliperispomeni}{LGR}{\alpha}{146}
- \DeclareTextComposite{\accvaria}{LGR}{\eta}{152}
- \DeclareTextComposite{\accdasia}{LGR}{\eta}{153}
- \DeclareTextComposite{\accpsili}{LGR}{\eta}{154}
- \DeclareTextComposite{\acctonos}{LGR}{\eta}{160}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\eta}{161}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\eta}{162}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\eta}{163}
- \DeclareTextComposite{\accperispomeni}{LGR}{\eta}{168}
- \DeclareTextComposite{\accdasiaperispomeni}{LGR}{\eta}{169}
- \DeclareTextComposite{\accpsiliperispomeni}{LGR}{\eta}{170}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\eta}{171}
- \DeclareTextComposite{\accvaria}{LGR}{\omega}{176}
- \DeclareTextComposite{\accdasia}{LGR}{\omega}{177}
- \DeclareTextComposite{\accpsili}{LGR}{\omega}{178}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\omega}{179}
- \DeclareTextComposite{\acctonos}{LGR}{\omega}{184}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\omega}{185}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\omega}{186}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\omega}{187}
- \DeclareTextComposite{\accperispomeni}{LGR}{\omega}{192}
- \DeclareTextComposite{\accdasiaperispomeni}{LGR}{\omega}{193}
- \DeclareTextComposite{\accpsiliperispomeni}{LGR}{\omega}{194}
- \DeclareTextComposite{\accvaria}{LGR}{\iota}{200}
- \DeclareTextComposite{\accdasia}{LGR}{\iota}{201}
- \DeclareTextComposite{\accpsili}{LGR}{\iota}{202}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\iota}{203}
- \DeclareTextComposite{\acctonos}{LGR}{\iota}{208}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\iota}{209}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\iota}{210}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\iota}{211}
- \DeclareTextComposite{\accperispomeni}{LGR}{\iota}{216}
- \DeclareTextComposite{\accdasiaperispomeni}{LGR}{\iota}{217}
- \DeclareTextComposite{\accpsiliperispomeni}{LGR}{\iota}{218}
- \DeclareTextComposite{\accdialytika}{LGR}{\iota}{240}
- \DeclareTextComposite{\accdialytikavaria}{LGR}{\iota}{241}
- \DeclareTextComposite{\accdialytikatonos}{LGR}{\iota}{242}
- \DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\iota}{243}
- \DeclareTextComposite{\accvaria}{LGR}{\upsilon}{204}
- \DeclareTextComposite{\accdasia}{LGR}{\upsilon}{205}
- \DeclareTextComposite{\accpsili}{LGR}{\upsilon}{206}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\upsilon}{207}
- \DeclareTextComposite{\acctonos}{LGR}{\upsilon}{212}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\upsilon}{213}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\upsilon}{214}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\upsilon}{215}
- \DeclareTextComposite{\accperispomeni}{LGR}{\upsilon}{220}
- \DeclareTextComposite{\accdasiaperispomeni}{LGR}{\upsilon}{221}
- \DeclareTextComposite{\accpsiliperispomeni}{LGR}{\upsilon}{222}
- \DeclareTextComposite{\accdialytika}{LGR}{\upsilon}{244}
- \DeclareTextComposite{\accdialytikavaria}{LGR}{\upsilon}{245}
- \DeclareTextComposite{\accdialytikatonos}{LGR}{\upsilon}{246}
- \DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\upsilon}{247}
- \DeclareTextComposite{\accvaria}{LGR}{\epsilon}{224}
- \DeclareTextComposite{\accdasia}{LGR}{\epsilon}{225}
- \DeclareTextComposite{\accpsili}{LGR}{\epsilon}{226}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\epsilon}{227}
- \DeclareTextComposite{\acctonos}{LGR}{\epsilon}{232}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\epsilon}{233}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\epsilon}{234}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\epsilon}{235}
- \DeclareTextComposite{\accvaria}{LGR}{\omicron}{228}
- \DeclareTextComposite{\accdasia}{LGR}{\omicron}{229}
- \DeclareTextComposite{\accpsili}{LGR}{\omicron}{230}
- \DeclareTextComposite{\accdasiavaria}{LGR}{\omicron}{231}
- \DeclareTextComposite{\acctonos}{LGR}{\omicron}{236}
- \DeclareTextComposite{\accdasiaoxia}{LGR}{\omicron}{237}
- \DeclareTextComposite{\accpsilioxia}{LGR}{\omicron}{238}
- \DeclareTextComposite{\accpsilivaria}{LGR}{\omicron}{239}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Alpha}{<A}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Alpha}{<`A}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Alpha}{<'A}
- \DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Alpha}{<\char126A}
- \DeclareTextCompositeCommand{\accpsili}{LGR}{\Alpha}{>A}
- \DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Alpha}{>`A}
- \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Alpha}{>'A}
- \DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Alpha}{>\char126A}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Alpha}{'A}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Alpha}{`A}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Epsilon}{<E}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Epsilon}{<'E}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Epsilon}{<`E}
- \DeclareTextCompositeCommand{\accpsili}{LGR}{\Epsilon}{>E}
- \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Epsilon}{>'E}
- \DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Epsilon}{>`E}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Epsilon}{'E}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Epsilon}{`E}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Eta}{<H}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Eta}{<`H}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Eta}{<'H}
- \DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Eta}{<\char126H}
- \DeclareTextCompositeCommand{\accpsili}{LGR}{\Eta}{>H}
- \DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Eta}{>`H}
- \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Eta}{>'H}
- \DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Eta}{>\char126H}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Eta}{'H}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Eta}{`H}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Iota}{<I}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Iota}{<`I}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Iota}{<'I}
- \DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Iota}{<\char126I}
- \DeclareTextCompositeCommand{\accpsili}{LGR}{\Iota}{>I}
- \DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Iota}{>`I}
- \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Iota}{>'I}
- \DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Iota}{>\char126I}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Iota}{'I}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Iota}{`I}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Omicron}{<O}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Omicron}{<`O}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Omicron}{<'O}
- \DeclareTextCompositeCommand{\accpsili}{LGR}{\Omicron}{>O}
- \DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Omicron}{>`O}
- \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Omicron}{>'O}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Omicron}{'O}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Omicron}{`O}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Upsilon}{<U}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Upsilon}{<`U}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Upsilon}{<'U}
- \DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Upsilon}{<\char126U}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Upsilon}{'U}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Upsilon}{`U}
- \DeclareTextCompositeCommand{\accdasia}{LGR}{\Omega}{<W}
- \DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Omega}{<`W}
- \DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Omega}{<'W}
- \DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Omega}{<\char126W}
- \DeclareTextCompositeCommand{\accpsili}{LGR}{\Omega}{>W}
- \DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Omega}{>`W}
- \DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Omega}{>'W}
- \DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Omega}{>\char126W}
- \DeclareTextCompositeCommand{\acctonos}{LGR}{\Omega}{'W}
- \DeclareTextCompositeCommand{\accvaria}{LGR}{\Omega}{`W}
- \DeclareTextComposite{\accdialytika}{LGR}{\Iota}{219}
- \DeclareTextComposite{\accdialytika}{LGR}{\Upsilon}{223}
- \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{\Alpha}{\LGR@A@hiatus}
- \DeclareTextCompositeCommand{\LGR@hiatus}{LGR}{\Epsilon}{\LGR@E@hiatus}
-
-
-% .. References
-%
-% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
-% .. _alphabeta: alphabeta.sty.html
-% .. _lgrenc.def: lgrenc.def.html
diff --git a/language/greek/greek-fontenc/alphabeta-lgr.def.html b/language/greek/greek-fontenc/alphabeta-lgr.def.html
deleted file mode 100644
index 05af3f854e..0000000000
--- a/language/greek/greek-fontenc/alphabeta-lgr.def.html
+++ /dev/null
@@ -1,978 +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.20b.dev: https://docutils.sourceforge.io/" />
-<meta name="viewport" content="width=device-width, initial-scale=1" />
-<meta name="dcterms.rights" content="© 2014, 2020 Günter Milde" />
-<title>alphabeta-lgr.def</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>
-<main id="alphabeta-lgr-def">
-<h1 class="title">alphabeta-lgr.def</h1>
-<p class="subtitle" id="composite-definitions-for-8-bit-tex">Composite definitions for 8-bit TeX</p>
-<dl class="docinfo">
-<dt class="copyright">Copyright<span class="colon">:</span></dt>
-<dd class="copyright">© 2014, 2020 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="identification">Identification<span class="colon">:</span></dt>
-<dd class="identification"><pre class="literal-block">\ProvidesFile{alphabeta-lgr}
-[2020/09/25 1.0 Composite definitions for 8-bit TeX]</pre>
-</dd>
-<dt class="changelog">Changelog<span class="colon">:</span></dt>
-<dd class="changelog"><table class="borderless">
-<tbody>
-<tr><td><p>0.11.2</p></td>
-<td><p>2014-09-04</p></td>
-<td><p>outsourced from <span class="docutils literal">alphabeta.sty</span>.</p></td>
-</tr>
-<tr><td><p>1.0</p></td>
-<td><p>2020-09-25</p></td>
-<td><p>New package version. No changes in this file.</p></td>
-</tr>
-</tbody>
-</table>
-</dd>
-</dl>
-<p>The <a class="reference external" href="alphabeta.sty.html">alphabeta</a> package re-defines the math macros for Greek letters to work
-in both, text and math mode, so that Greek letters can be specified with
-the established command names in text, too.</p>
-<p>The NFSS TextComposite mechanism looks for the next token without expanding
-it. In order to let compositions like <span class="docutils literal"><span class="pre">\&gt;&quot;\alpha</span></span> work as expected we
-define TextComposites with the <cite>letter name commands</cite>.</p>
-<p>This file expands the font encoding definitions in <a class="reference external" href="lgrenc.def.html">lgrenc.def</a> with
-composite commands for use with 8-bit TeX fonts. It is sourced by
-<a class="reference external" href="alphabeta.sty.html">alphabeta</a> under 8-bit TeX (pdfTeX, eTeX, TeX).</p>
-<pre class="literal-block">\DeclareTextComposite{\accvaria}{LGR}{\alpha}{128}
-\DeclareTextComposite{\accdasia}{LGR}{\alpha}{129}
-\DeclareTextComposite{\accpsili}{LGR}{\alpha}{130}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\alpha}{131}
-\DeclareTextComposite{\acctonos}{LGR}{\alpha}{136}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\alpha}{137}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\alpha}{138}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\alpha}{139}
-\DeclareTextComposite{\accperispomeni}{LGR}{\alpha}{144}
-\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\alpha}{145}
-\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\alpha}{146}
-\DeclareTextComposite{\accvaria}{LGR}{\eta}{152}
-\DeclareTextComposite{\accdasia}{LGR}{\eta}{153}
-\DeclareTextComposite{\accpsili}{LGR}{\eta}{154}
-\DeclareTextComposite{\acctonos}{LGR}{\eta}{160}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\eta}{161}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\eta}{162}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\eta}{163}
-\DeclareTextComposite{\accperispomeni}{LGR}{\eta}{168}
-\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\eta}{169}
-\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\eta}{170}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\eta}{171}
-\DeclareTextComposite{\accvaria}{LGR}{\omega}{176}
-\DeclareTextComposite{\accdasia}{LGR}{\omega}{177}
-\DeclareTextComposite{\accpsili}{LGR}{\omega}{178}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\omega}{179}
-\DeclareTextComposite{\acctonos}{LGR}{\omega}{184}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\omega}{185}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\omega}{186}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\omega}{187}
-\DeclareTextComposite{\accperispomeni}{LGR}{\omega}{192}
-\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\omega}{193}
-\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\omega}{194}
-\DeclareTextComposite{\accvaria}{LGR}{\iota}{200}
-\DeclareTextComposite{\accdasia}{LGR}{\iota}{201}
-\DeclareTextComposite{\accpsili}{LGR}{\iota}{202}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\iota}{203}
-\DeclareTextComposite{\acctonos}{LGR}{\iota}{208}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\iota}{209}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\iota}{210}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\iota}{211}
-\DeclareTextComposite{\accperispomeni}{LGR}{\iota}{216}
-\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\iota}{217}
-\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\iota}{218}
-\DeclareTextComposite{\accdialytika}{LGR}{\iota}{240}
-\DeclareTextComposite{\accdialytikavaria}{LGR}{\iota}{241}
-\DeclareTextComposite{\accdialytikatonos}{LGR}{\iota}{242}
-\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\iota}{243}
-\DeclareTextComposite{\accvaria}{LGR}{\upsilon}{204}
-\DeclareTextComposite{\accdasia}{LGR}{\upsilon}{205}
-\DeclareTextComposite{\accpsili}{LGR}{\upsilon}{206}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\upsilon}{207}
-\DeclareTextComposite{\acctonos}{LGR}{\upsilon}{212}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\upsilon}{213}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\upsilon}{214}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\upsilon}{215}
-\DeclareTextComposite{\accperispomeni}{LGR}{\upsilon}{220}
-\DeclareTextComposite{\accdasiaperispomeni}{LGR}{\upsilon}{221}
-\DeclareTextComposite{\accpsiliperispomeni}{LGR}{\upsilon}{222}
-\DeclareTextComposite{\accdialytika}{LGR}{\upsilon}{244}
-\DeclareTextComposite{\accdialytikavaria}{LGR}{\upsilon}{245}
-\DeclareTextComposite{\accdialytikatonos}{LGR}{\upsilon}{246}
-\DeclareTextComposite{\accdialytikaperispomeni}{LGR}{\upsilon}{247}
-\DeclareTextComposite{\accvaria}{LGR}{\epsilon}{224}
-\DeclareTextComposite{\accdasia}{LGR}{\epsilon}{225}
-\DeclareTextComposite{\accpsili}{LGR}{\epsilon}{226}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\epsilon}{227}
-\DeclareTextComposite{\acctonos}{LGR}{\epsilon}{232}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\epsilon}{233}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\epsilon}{234}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\epsilon}{235}
-\DeclareTextComposite{\accvaria}{LGR}{\omicron}{228}
-\DeclareTextComposite{\accdasia}{LGR}{\omicron}{229}
-\DeclareTextComposite{\accpsili}{LGR}{\omicron}{230}
-\DeclareTextComposite{\accdasiavaria}{LGR}{\omicron}{231}
-\DeclareTextComposite{\acctonos}{LGR}{\omicron}{236}
-\DeclareTextComposite{\accdasiaoxia}{LGR}{\omicron}{237}
-\DeclareTextComposite{\accpsilioxia}{LGR}{\omicron}{238}
-\DeclareTextComposite{\accpsilivaria}{LGR}{\omicron}{239}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Alpha}{&lt;A}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Alpha}{&lt;`A}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Alpha}{&lt;'A}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Alpha}{&lt;\char126A}
-\DeclareTextCompositeCommand{\accpsili}{LGR}{\Alpha}{&gt;A}
-\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Alpha}{&gt;`A}
-\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Alpha}{&gt;'A}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Alpha}{&gt;\char126A}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Alpha}{'A}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Alpha}{`A}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Epsilon}{&lt;E}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Epsilon}{&lt;'E}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Epsilon}{&lt;`E}
-\DeclareTextCompositeCommand{\accpsili}{LGR}{\Epsilon}{&gt;E}
-\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Epsilon}{&gt;'E}
-\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Epsilon}{&gt;`E}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Epsilon}{'E}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Epsilon}{`E}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Eta}{&lt;H}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Eta}{&lt;`H}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Eta}{&lt;'H}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Eta}{&lt;\char126H}
-\DeclareTextCompositeCommand{\accpsili}{LGR}{\Eta}{&gt;H}
-\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Eta}{&gt;`H}
-\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Eta}{&gt;'H}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Eta}{&gt;\char126H}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Eta}{'H}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Eta}{`H}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Iota}{&lt;I}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Iota}{&lt;`I}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Iota}{&lt;'I}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Iota}{&lt;\char126I}
-\DeclareTextCompositeCommand{\accpsili}{LGR}{\Iota}{&gt;I}
-\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Iota}{&gt;`I}
-\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Iota}{&gt;'I}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Iota}{&gt;\char126I}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Iota}{'I}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Iota}{`I}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Omicron}{&lt;O}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Omicron}{&lt;`O}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Omicron}{&lt;'O}
-\DeclareTextCompositeCommand{\accpsili}{LGR}{\Omicron}{&gt;O}
-\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Omicron}{&gt;`O}
-\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Omicron}{&gt;'O}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Omicron}{'O}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Omicron}{`O}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Upsilon}{&lt;U}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Upsilon}{&lt;`U}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Upsilon}{&lt;'U}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Upsilon}{&lt;\char126U}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Upsilon}{'U}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Upsilon}{`U}
-\DeclareTextCompositeCommand{\accdasia}{LGR}{\Omega}{&lt;W}
-\DeclareTextCompositeCommand{\accdasiavaria}{LGR}{\Omega}{&lt;`W}
-\DeclareTextCompositeCommand{\accdasiaoxia}{LGR}{\Omega}{&lt;'W}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{LGR}{\Omega}{&lt;\char126W}
-\DeclareTextCompositeCommand{\accpsili}{LGR}{\Omega}{&gt;W}
-\DeclareTextCompositeCommand{\accpsilivaria}{LGR}{\Omega}{&gt;`W}
-\DeclareTextCompositeCommand{\accpsilioxia}{LGR}{\Omega}{&gt;'W}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{LGR}{\Omega}{&gt;\char126W}
-\DeclareTextCompositeCommand{\acctonos}{LGR}{\Omega}{'W}
-\DeclareTextCompositeCommand{\accvaria}{LGR}{\Omega}{`W}
-\DeclareTextComposite{\accdialytika}{LGR}{\Iota}{219}
-\DeclareTextComposite{\accdialytika}{LGR}{\Upsilon}{223}
-\DeclareTextCompositeCommand{\LGR&#64;hiatus}{LGR}{\Alpha}{\LGR&#64;A&#64;hiatus}
-\DeclareTextCompositeCommand{\LGR&#64;hiatus}{LGR}{\Epsilon}{\LGR&#64;E&#64;hiatus}</pre>
-<!-- References -->
-</main>
-</body>
-</html>
diff --git a/language/greek/greek-fontenc/alphabeta-tuenc.def b/language/greek/greek-fontenc/alphabeta-tuenc.def
deleted file mode 100644
index 897cd68516..0000000000
--- a/language/greek/greek-fontenc/alphabeta-tuenc.def
+++ /dev/null
@@ -1,251 +0,0 @@
-% alphabeta-tuenc.def
-% ===================
-% Composite definitions for XeTeX and LuaTeX
-% ******************************************
-%
-% :Copyright: © 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.
-% :Identification:
-% ::
-
-\ProvidesFile{alphabeta-tuenc}
-[2020/10/30 2.0 Composite definitions for XeTeX and LuaTeX]
-
-% :Abstract:
-% Composite definitions for ``alphabeta.sty`` with XeTeX and LuaTeX.
-%
-% :Changelog:
-% .. class:: borderless
-%
-% ====== ========== ========================================================
-% 0.1 2013-09-12 initial version
-% 0.1.1 2013-10-01 remove clashing defs for legacy characters with oxia.
-% 0.11.2 2014-09-04 documentation update
-% 0.14 2020-02-28 rename to ``alphabeta-tuenc.def``,
-% use ``\UTFencname`` instead of ``\LastDeclaredEncoding``
-% 1.0 2020-09-25 New package version. No changes in this file.
-% 2.0 2020-10-30 Use ``\UnicodeEncodingName`` instead of ``\UTFencname``.
-% ====== ========== ========================================================
-%
-%
-% The alphabeta_ package re-defines the math macros for Greek letters to work
-% in both, text and math mode, so that Greek letters can be specified with
-% the established command names in text, too.
-%
-% The NFSS TextComposite mechanism looks for the next token without expanding
-% it. In order to let compositions like ``\>"\alpha`` work as expected we
-% define TextComposites with the `letter name commands`.
-%
-% This file expands the font encoding definitions in tuenc-greek.def_ with
-% composite commands for use with Unicode fonts. It is sourced by alphabeta_
-% under XeTeX/LuaTeX.
-%
-% Greek and Coptic
-% ~~~~~~~~~~~~~~~~
-% ::
-
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Alpha}{Ά}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Epsilon}{Έ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Eta}{Ή}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Iota}{Ί}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Omicron}{Ό}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Upsilon}{Ύ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Omega}{Ώ}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\iota}{ΐ}
-
-\DeclareTextCompositeCommand{\"}{\UnicodeEncodingName}{\Iota}{Ϊ}
-\DeclareTextCompositeCommand{\"}{\UnicodeEncodingName}{\Upsilon}{Ϋ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\alpha}{ά}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\epsilon}{έ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\eta}{ή}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\iota}{ί}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\upsilon}{ΰ}
-
-\DeclareTextCompositeCommand{\"}{\UnicodeEncodingName}{\iota}{ϊ}
-\DeclareTextCompositeCommand{\"}{\UnicodeEncodingName}{\upsilon}{ϋ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\omicron}{ό}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\upsilon}{ύ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\omega}{ώ}
-
-
-% Greek Extended
-% ~~~~~~~~~~~~~~
-% Postfix ypogegrammeni cannot be second part of composite defs.
-% ::
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\alpha}{ἀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\alpha}{ἁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\alpha}{ἂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\alpha}{ἃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\alpha}{ἄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\alpha}{ἅ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\alpha}{ἆ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\alpha}{ἇ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Alpha}{Ἀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Alpha}{Ἁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Alpha}{Ἂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Alpha}{Ἃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Alpha}{Ἄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Alpha}{Ἅ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Alpha}{Ἆ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Alpha}{Ἇ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\epsilon}{ἐ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\epsilon}{ἑ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\epsilon}{ἒ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\epsilon}{ἓ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\epsilon}{ἔ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\epsilon}{ἕ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Epsilon}{Ἐ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Epsilon}{Ἑ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Epsilon}{Ἒ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Epsilon}{Ἓ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Epsilon}{Ἔ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Epsilon}{Ἕ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\eta}{ἠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\eta}{ἡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\eta}{ἢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\eta}{ἣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\eta}{ἤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\eta}{ἥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\eta}{ἦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\eta}{ἧ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Eta}{Ἠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Eta}{Ἡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Eta}{Ἢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Eta}{Ἣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Eta}{Ἤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Eta}{Ἥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Eta}{Ἦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Eta}{Ἧ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\iota}{ἰ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\iota}{ἱ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\iota}{ἲ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\iota}{ἳ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\iota}{ἴ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\iota}{ἵ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\iota}{ἶ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\iota}{ἷ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Iota}{Ἰ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Iota}{Ἱ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Iota}{Ἲ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Iota}{Ἳ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Iota}{Ἴ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Iota}{Ἵ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Iota}{Ἶ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Iota}{Ἷ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\omicron}{ὀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\omicron}{ὁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\omicron}{ὂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\omicron}{ὃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\omicron}{ὄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\omicron}{ὅ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Omicron}{Ὀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Omicron}{Ὁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Omicron}{Ὂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Omicron}{Ὃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Omicron}{Ὄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Omicron}{Ὅ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\upsilon}{ὐ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\upsilon}{ὑ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\upsilon}{ὒ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\upsilon}{ὓ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\upsilon}{ὔ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\upsilon}{ὕ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\upsilon}{ὖ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\upsilon}{ὗ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Upsilon}{Ὑ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Upsilon}{Ὓ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Upsilon}{Ὕ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Upsilon}{Ὗ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\omega}{ὠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\omega}{ὡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\omega}{ὢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\omega}{ὣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\omega}{ὤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\omega}{ὥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\omega}{ὦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\omega}{ὧ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Omega}{Ὠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Omega}{Ὡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Omega}{Ὢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Omega}{Ὣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Omega}{Ὤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Omega}{Ὥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Omega}{Ὦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Omega}{Ὧ}
-
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\alpha}{ὰ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\epsilon}{ὲ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\eta}{ὴ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\iota}{ὶ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\omicron}{ὸ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\upsilon}{ὺ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\omega}{ὼ}
-
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\alpha}{ᾰ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\alpha}{ᾱ}
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\alpha}{ᾶ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\alpha}{ᾶ}
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\Alpha}{Ᾰ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\Alpha}{Ᾱ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Alpha}{Ὰ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Alpha}{Ὰ}
-
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\eta}{ῆ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\eta}{ῆ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Epsilon}{Ὲ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Eta}{Ὴ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Epsilon}{Ὲ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Eta}{Ὴ}
-
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\iota}{ῐ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\iota}{ῑ}
-\DeclareTextCompositeCommand{\accdialytikavaria}{\UnicodeEncodingName}{\iota}{ῒ}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\iota}{ΐ}
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\iota}{ῖ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\iota}{ῖ}
-\DeclareTextCompositeCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}{\iota}{ῗ}
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\Iota}{Ῐ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\Iota}{Ῑ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Iota}{Ὶ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Iota}{Ὶ}
-
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\upsilon}{ῠ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\upsilon}{ῡ}
-\DeclareTextCompositeCommand{\accdialytikavaria}{\UnicodeEncodingName}{\upsilon}{ῢ}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\upsilon}{ΰ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\rho}{ῤ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\rho}{ῥ}
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\upsilon}{ῦ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\upsilon}{ῦ}
-\DeclareTextCompositeCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}{\upsilon}{ῧ}
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\Upsilon}{Ῠ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\Upsilon}{Ῡ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Upsilon}{Ὺ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Upsilon}{Ὺ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Rho}{Ῥ}
-
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\omega}{ῶ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\omega}{ῶ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Omicron}{Ὸ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Omega}{Ὼ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Omicron}{Ὸ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Omega}{Ὼ}
-
-% .. References
-%
-% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
-% .. _alphabeta: alphabeta.sty.html
-% .. _tuenc-greek.def: tuenc-greek.def.html
-%
-% .. fix scaling in mobile browsers
-% .. meta::
-% :viewport: width=device-width, initial-scale=1
diff --git a/language/greek/greek-fontenc/alphabeta-tuenc.def.html b/language/greek/greek-fontenc/alphabeta-tuenc.def.html
deleted file mode 100644
index 55e8042b22..0000000000
--- a/language/greek/greek-fontenc/alphabeta-tuenc.def.html
+++ /dev/null
@@ -1,1049 +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.20b.dev: https://docutils.sourceforge.io/" />
-<meta name="viewport" content="width=device-width, initial-scale=1" />
-<meta content="width=device-width, initial-scale=1" name="viewport" />
-<meta name="dcterms.rights" content="© 2013, 2020 Günter Milde" />
-<title>alphabeta-tuenc.def</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>
-<main id="alphabeta-tuenc-def">
-<h1 class="title">alphabeta-tuenc.def</h1>
-<p class="subtitle" id="composite-definitions-for-xetex-and-luatex">Composite definitions for XeTeX and LuaTeX</p>
-<dl class="docinfo">
-<dt class="copyright">Copyright<span class="colon">:</span></dt>
-<dd class="copyright">© 2013, 2020 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="identification">Identification<span class="colon">:</span></dt>
-<dd class="identification"><pre class="literal-block">\ProvidesFile{alphabeta-tuenc}
-[2020/10/30 2.0 Composite definitions for XeTeX and LuaTeX]</pre>
-</dd>
-<dt class="changelog">Changelog<span class="colon">:</span></dt>
-<dd class="changelog"><table class="borderless">
-<tbody>
-<tr><td><p>0.1</p></td>
-<td><p>2013-09-12</p></td>
-<td><p>initial version</p></td>
-</tr>
-<tr><td><p>0.1.1</p></td>
-<td><p>2013-10-01</p></td>
-<td><p>remove clashing defs for legacy characters with oxia.</p></td>
-</tr>
-<tr><td><p>0.11.2</p></td>
-<td><p>2014-09-04</p></td>
-<td><p>documentation update</p></td>
-</tr>
-<tr><td><p>0.14</p></td>
-<td><p>2020-02-28</p></td>
-<td><p>rename to <span class="docutils literal"><span class="pre">alphabeta-tuenc.def</span></span>,
-use <span class="docutils literal">\UTFencname</span> instead of <span class="docutils literal">\LastDeclaredEncoding</span></p></td>
-</tr>
-<tr><td><p>1.0</p></td>
-<td><p>2020-09-25</p></td>
-<td><p>New package version. No changes in this file.</p></td>
-</tr>
-<tr><td><p>2.0</p></td>
-<td><p>2020-10-30</p></td>
-<td><p>Use <span class="docutils literal">\UnicodeEncodingName</span> instead of <span class="docutils literal">\UTFencname</span>.</p></td>
-</tr>
-</tbody>
-</table>
-</dd>
-</dl>
-<div class="topic abstract" role="doc-abstract">
-<p class="topic-title">Abstract</p>
-<p>Composite definitions for <span class="docutils literal">alphabeta.sty</span> with XeTeX and LuaTeX.</p>
-</div>
-<p>The <a class="reference external" href="alphabeta.sty.html">alphabeta</a> package re-defines the math macros for Greek letters to work
-in both, text and math mode, so that Greek letters can be specified with
-the established command names in text, too.</p>
-<p>The NFSS TextComposite mechanism looks for the next token without expanding
-it. In order to let compositions like <span class="docutils literal"><span class="pre">\&gt;&quot;\alpha</span></span> work as expected we
-define TextComposites with the <cite>letter name commands</cite>.</p>
-<p>This file expands the font encoding definitions in <a class="reference external" href="tuenc-greek.def.html">tuenc-greek.def</a> with
-composite commands for use with Unicode fonts. It is sourced by <a class="reference external" href="alphabeta.sty.html">alphabeta</a>
-under XeTeX/LuaTeX.</p>
-<section id="greek-and-coptic">
-<h2>Greek and Coptic</h2>
-<pre class="literal-block">\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Alpha}{Ά}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Epsilon}{Έ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Eta}{Ή}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Iota}{Ί}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Omicron}{Ό}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Upsilon}{Ύ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\Omega}{Ώ}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\iota}{ΐ}
-
-\DeclareTextCompositeCommand{\&quot;}{\UnicodeEncodingName}{\Iota}{Ϊ}
-\DeclareTextCompositeCommand{\&quot;}{\UnicodeEncodingName}{\Upsilon}{Ϋ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\alpha}{ά}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\epsilon}{έ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\eta}{ή}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\iota}{ί}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\upsilon}{ΰ}
-
-\DeclareTextCompositeCommand{\&quot;}{\UnicodeEncodingName}{\iota}{ϊ}
-\DeclareTextCompositeCommand{\&quot;}{\UnicodeEncodingName}{\upsilon}{ϋ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\omicron}{ό}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\upsilon}{ύ}
-\DeclareTextCompositeCommand{\'}{\UnicodeEncodingName}{\omega}{ώ}</pre>
-</section>
-<section id="greek-extended">
-<h2>Greek Extended</h2>
-<p>Postfix ypogegrammeni cannot be second part of composite defs.</p>
-<pre class="literal-block">\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\alpha}{ἀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\alpha}{ἁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\alpha}{ἂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\alpha}{ἃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\alpha}{ἄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\alpha}{ἅ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\alpha}{ἆ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\alpha}{ἇ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Alpha}{Ἀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Alpha}{Ἁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Alpha}{Ἂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Alpha}{Ἃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Alpha}{Ἄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Alpha}{Ἅ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Alpha}{Ἆ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Alpha}{Ἇ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\epsilon}{ἐ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\epsilon}{ἑ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\epsilon}{ἒ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\epsilon}{ἓ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\epsilon}{ἔ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\epsilon}{ἕ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Epsilon}{Ἐ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Epsilon}{Ἑ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Epsilon}{Ἒ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Epsilon}{Ἓ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Epsilon}{Ἔ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Epsilon}{Ἕ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\eta}{ἠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\eta}{ἡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\eta}{ἢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\eta}{ἣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\eta}{ἤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\eta}{ἥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\eta}{ἦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\eta}{ἧ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Eta}{Ἠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Eta}{Ἡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Eta}{Ἢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Eta}{Ἣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Eta}{Ἤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Eta}{Ἥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Eta}{Ἦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Eta}{Ἧ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\iota}{ἰ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\iota}{ἱ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\iota}{ἲ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\iota}{ἳ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\iota}{ἴ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\iota}{ἵ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\iota}{ἶ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\iota}{ἷ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Iota}{Ἰ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Iota}{Ἱ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Iota}{Ἲ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Iota}{Ἳ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Iota}{Ἴ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Iota}{Ἵ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Iota}{Ἶ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Iota}{Ἷ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\omicron}{ὀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\omicron}{ὁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\omicron}{ὂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\omicron}{ὃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\omicron}{ὄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\omicron}{ὅ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Omicron}{Ὀ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Omicron}{Ὁ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Omicron}{Ὂ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Omicron}{Ὃ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Omicron}{Ὄ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Omicron}{Ὅ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\upsilon}{ὐ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\upsilon}{ὑ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\upsilon}{ὒ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\upsilon}{ὓ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\upsilon}{ὔ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\upsilon}{ὕ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\upsilon}{ὖ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\upsilon}{ὗ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Upsilon}{Ὑ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Upsilon}{Ὓ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Upsilon}{Ὕ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Upsilon}{Ὗ}
-
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\omega}{ὠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\omega}{ὡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\omega}{ὢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\omega}{ὣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\omega}{ὤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\omega}{ὥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\omega}{ὦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\omega}{ὧ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\Omega}{Ὠ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Omega}{Ὡ}
-\DeclareTextCompositeCommand{\accpsilivaria}{\UnicodeEncodingName}{\Omega}{Ὢ}
-\DeclareTextCompositeCommand{\accdasiavaria}{\UnicodeEncodingName}{\Omega}{Ὣ}
-\DeclareTextCompositeCommand{\accpsilioxia}{\UnicodeEncodingName}{\Omega}{Ὤ}
-\DeclareTextCompositeCommand{\accdasiaoxia}{\UnicodeEncodingName}{\Omega}{Ὥ}
-\DeclareTextCompositeCommand{\accpsiliperispomeni}{\UnicodeEncodingName}{\Omega}{Ὦ}
-\DeclareTextCompositeCommand{\accdasiaperispomeni}{\UnicodeEncodingName}{\Omega}{Ὧ}
-
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\alpha}{ὰ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\epsilon}{ὲ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\eta}{ὴ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\iota}{ὶ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\omicron}{ὸ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\upsilon}{ὺ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\omega}{ὼ}
-
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\alpha}{ᾰ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\alpha}{ᾱ}
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\alpha}{ᾶ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\alpha}{ᾶ}
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\Alpha}{Ᾰ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\Alpha}{Ᾱ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Alpha}{Ὰ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Alpha}{Ὰ}
-
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\eta}{ῆ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\eta}{ῆ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Epsilon}{Ὲ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Eta}{Ὴ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Epsilon}{Ὲ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Eta}{Ὴ}
-
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\iota}{ῐ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\iota}{ῑ}
-\DeclareTextCompositeCommand{\accdialytikavaria}{\UnicodeEncodingName}{\iota}{ῒ}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\iota}{ΐ}
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\iota}{ῖ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\iota}{ῖ}
-\DeclareTextCompositeCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}{\iota}{ῗ}
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\Iota}{Ῐ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\Iota}{Ῑ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Iota}{Ὶ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Iota}{Ὶ}
-
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\upsilon}{ῠ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\upsilon}{ῡ}
-\DeclareTextCompositeCommand{\accdialytikavaria}{\UnicodeEncodingName}{\upsilon}{ῢ}
-\DeclareTextCompositeCommand{\accdialytikatonos}{\UnicodeEncodingName}{\upsilon}{ΰ}
-\DeclareTextCompositeCommand{\accpsili}{\UnicodeEncodingName}{\rho}{ῤ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\rho}{ῥ}
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\upsilon}{ῦ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\upsilon}{ῦ}
-\DeclareTextCompositeCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}{\upsilon}{ῧ}
-\DeclareTextCompositeCommand{\u}{\UnicodeEncodingName}{\Upsilon}{Ῠ}
-\DeclareTextCompositeCommand{\=}{\UnicodeEncodingName}{\Upsilon}{Ῡ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Upsilon}{Ὺ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Upsilon}{Ὺ}
-\DeclareTextCompositeCommand{\accdasia}{\UnicodeEncodingName}{\Rho}{Ῥ}
-
-\DeclareTextCompositeCommand{\~}{\UnicodeEncodingName}{\omega}{ῶ}
-\DeclareTextCompositeCommand{\accperispomeni}{\UnicodeEncodingName}{\omega}{ῶ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Omicron}{Ὸ}
-\DeclareTextCompositeCommand{\`}{\UnicodeEncodingName}{\Omega}{Ὼ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Omicron}{Ὸ}
-\DeclareTextCompositeCommand{\accvaria}{\UnicodeEncodingName}{\Omega}{Ὼ}</pre>
-<!-- References -->
-<!-- fix scaling in mobile browsers -->
-</section>
-</main>
-</body>
-</html>
diff --git a/language/greek/greek-fontenc/alphabeta.sty b/language/greek/greek-fontenc/alphabeta.sty
index a0352815db..223126275c 100644
--- a/language/greek/greek-fontenc/alphabeta.sty
+++ b/language/greek/greek-fontenc/alphabeta.sty
@@ -3,9 +3,9 @@
% Greek symbols in text and math
% ******************************
%
-% :Version: 2.2.1 (changelog_)
+% :Version: 2.5 (changelog_)
%
-% :Copyright: © 2010, 2020 Günter Milde
+% :Copyright: © 2010, 2020, 2023 Günter Milde
%
% :Licence: This work may be distributed and/or modified under the
% conditions of the `LaTeX Project Public License`_, either
@@ -27,8 +27,9 @@
% math mode, so that Greek letters can be specified with the established
% command names in text, too.
%
-% If used together with the ``utf8`` option of inputenc_, literal Unicode
-% characters can be used for Greek symbols in mathematical formulas.
+% The package works with both, 8-bit TeX as well as Xe/LuaTeX.
+% Under 8-bit TeX, literal Unicode characters can be used for Greek symbols
+% in mathematical formulas.
%
% .. Attention::
% The macros work well in any font encoding for single symbols.
@@ -39,7 +40,7 @@
% Therefore, Greek text should be written with the help of Babel_ or
% Polyglossia_ (setting the language to ``greek``) or wrapped in the
% provided ``ensuregreek`` macro. Using Babel_ or Polyglossia_ also helps
-% to ensure proper hyphenation.
+% to ensure correct hyphenation and case changes.
%
%
% Usage
@@ -47,15 +48,11 @@
%
% .. code:: latex
%
-% \usepackage{alphabeta}
+% \usepackage[<options>]{alphabeta}
%
-% The greek-inputenc_ package provides support for Unicode (utf-8) input
-% of Greek characters with 8-bit TeX and the inputenc_ package:
+% The package provides the same options__ as textalpha_.
%
-% .. code:: latex
-%
-% \usepackage[utf-8]{inputenc}
-% \usepackage{alphabeta}
+% __ textalpha.sty.html#options
%
% Conflicts
% ----------
@@ -77,29 +74,24 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{alphabeta}
- [2023/03/08 2.2.1 macros for Greek letters in text and math]
+ [2023-09-12 2.5 macros for Greek letters in text and math]
% Requirements
% ------------
%
% This package extends the `textalpha <textalpha.sty.html>`_ package.
+% (Just like `alphabeta`, `textalpha`_ is part of greek-fontenc_.)
% Package options are passed on to `textalpha`::
\RequirePackageWithOptions{textalpha}
-% Just like `alphabeta`, `textalpha` is part of greek-fontenc_.
-%
% This package requires the e-TeX_ extensions (i.e. a not too old TeX
% distribution) for the ``\ifdefined`` test.
%
-% It uses the ``\TextOrMath`` test from the fixltx2e_ standard LaTeX package.
-% ``fixltx2e`` is loaded by default since TeXLive 2015. In case of an
-% ``\TextOrMath undefined`` error, load it in the document preamble via
-%
-% .. code:: latex
-%
-% \usepackage{fixltx2e}
+% It uses the ``\TextOrMath`` test (in the LaTeX kernel since 2015).
+% In case of an ``\TextOrMath undefined`` error, load the
+% ``fixltx2e`` package.
%
%
% Postpone the re-definitions
@@ -110,6 +102,10 @@
\AtBeginDocument{
+% save @-catcode, allow @ in command names::
+
+\edef\RestoreAtCatcode{\catcode`@=\the\catcode`@\relax}%
+\makeatletter
% Save math macros
% ----------------
@@ -150,7 +146,6 @@
\let\mathvarrho\varrho
\let\mathsigma\sigma
\let\mathvarsigma\varsigma
-\let\mathfinalsigma\varsigma
\let\mathtau\tau
\let\mathupsilon\upsilon
\let\mathphi\phi
@@ -162,7 +157,10 @@
\providecommand*{\digamma}{\textit{\textdigamma}}
\let\mathdigamma\digamma
-% \varkappa and \varbeta are defined by some math packages
+% \varTheta, \varkappa, and \varbeta are defined by math packages
+\ifdefined\varTheta
+ \let\mathvarTheta\varTheta
+\fi
\ifdefined\varbeta
\let\mathvarbeta\varbeta
\fi
@@ -187,14 +185,21 @@
% no syntactic meaning in Greek text and are not given code-points in the LGR
% encoding while Unicode defines separate code points for the symbol variants.
%
-% Greek Alphabet:
+% Greek Alphabet
+% ''''''''''''''
%
% Macros keep their meaning in mathematical mode (i.e. use the same shape as
% without this package) and refer to GREEK LETTER ... in text. For
% ``\epsilon`` and ``phi``, this means that the selected symbol variant
% differs in text vs. math mode. Use ``\varepsilon`` and ``\varphi`` (see
-% section `variant shape symbols`_ below) to select the GREEK LETTER ...”
+% section `variant shape symbols`_ below) to select the "GREEK LETTER ..."
% in both, text and math mode.
+%
+% Macros for letters that can take diacritical marks and are used in text
+% and math mode are defined with ``\DeclareTextCommandDefault`` to ensure
+% the selection of pre-composed characters and correct case changes with
+% ``\MakeUppercase`` and ``\MakeLowercase``.
+%
% ::
\providecommand*{\Alpha}{\textAlpha}
@@ -216,21 +221,21 @@
\providecommand*{\Rho}{\textRho}
\renewcommand*{\Sigma}{\TextOrMath{\textSigma}{\mathSigma}}
\providecommand*{\Tau}{\textTau}
-\renewcommand*{\Upsilon}{\TextOrMath{\textUpsilon}{\mathUpsilon}}
+\DeclareTextCommandDefault{\Upsilon}{\TextOrMath{\textUpsilon}{\mathUpsilon}}
\renewcommand*{\Phi}{\TextOrMath{\textPhi}{\mathPhi}}
\providecommand*{\Chi}{\textChi}
\renewcommand*{\Psi}{\TextOrMath{\textPsi}{\mathPsi}}
-\renewcommand*{\Omega}{\TextOrMath{\textOmega}{\mathOmega}}
+\DeclareTextCommandDefault{\Omega}{\TextOrMath{\textOmega}{\mathOmega}}
%
-\renewcommand*{\alpha}{\TextOrMath{\textalpha}{\mathalpha}}
+\DeclareTextCommandDefault{\alpha}{\TextOrMath{\textalpha}{\mathalpha}}
\renewcommand*{\beta}{\TextOrMath{\textbeta}{\mathbeta}}
\renewcommand*{\gamma}{\TextOrMath{\textgamma}{\mathgamma}}
\renewcommand*{\delta}{\TextOrMath{\textdelta}{\mathdelta}}
-\renewcommand*{\epsilon}{\TextOrMath{\textepsilon}{\mathepsilon}} % ε/ϵ
+\DeclareTextCommandDefault{\epsilon}{\TextOrMath{\textepsilon}{\mathepsilon}} % ε/ϵ
\renewcommand*{\zeta}{\TextOrMath{\textzeta}{\mathzeta}}
-\renewcommand*{\eta}{\TextOrMath{\texteta}{\matheta}}
+\DeclareTextCommandDefault{\eta}{\TextOrMath{\texteta}{\matheta}}
\renewcommand*{\theta}{\TextOrMath{\texttheta}{\maththeta}}
-\renewcommand*{\iota}{\TextOrMath{\textiota}{\mathiota}}
+\DeclareTextCommandDefault{\iota}{\TextOrMath{\textiota}{\mathiota}}
\renewcommand*{\kappa}{\TextOrMath{\textkappa}{\mathkappa}}
\renewcommand*{\lambda}{\TextOrMath{\textlambda}{\mathlambda}}
\renewcommand*{\mu}{\TextOrMath{\textmu}{\mathmu}}
@@ -238,16 +243,16 @@
\renewcommand*{\xi}{\TextOrMath{\textxi}{\mathxi}}
\providecommand*{\omicron}{\textomicron}
\renewcommand*{\pi}{\TextOrMath{\textpi}{\mathpi}}
-\renewcommand*{\rho}{\TextOrMath{\textrho}{\mathrho}}
+\DeclareTextCommandDefault{\rho}{\TextOrMath{\textrho}{\mathrho}}
\renewcommand*{\sigma}{\TextOrMath{\textsigma}{\mathsigma}}
-\renewcommand*{\varsigma}{\TextOrMath{\textvarsigma}{\mathvarsigma}}
-\providecommand*{\finalsigma}{\varsigma}
+\providecommand*{\finalsigma}{\TextOrMath{\textfinalsigma}{\mathvarsigma}}
+\renewcommand*{\varsigma}{\finalsigma}
\renewcommand*{\tau}{\TextOrMath{\texttau}{\mathtau}}
-\renewcommand*{\upsilon}{\TextOrMath{\textupsilon}{\mathupsilon}}
+\DeclareTextCommandDefault{\upsilon}{\TextOrMath{\textupsilon}{\mathupsilon}}
\renewcommand*{\phi}{\TextOrMath{\textphi}{\mathphi}} % ϕ/φ
\renewcommand*{\chi}{\TextOrMath{\textchi}{\mathchi}}
\renewcommand*{\psi}{\TextOrMath{\textpsi}{\mathpsi}}
-\renewcommand*{\omega}{\TextOrMath{\textomega}{\mathomega}}
+\DeclareTextCommandDefault{\omega}{\TextOrMath{\textomega}{\mathomega}}
% Archaic letters
@@ -261,7 +266,8 @@
\providecommand*{\varstigma}{\textvarstigma} % stigma variant (CB.enc, teubner)
\providecommand*{\koppa}{\textkoppa} % ϟ (greek small letter koppa)
\providecommand*{\Koppa}{\textKoppa} % Ϟ (greek letter koppa)
-\providecommand*{\qoppa}{\textqoppa} % ϙ (archaic koppa)
+% !! babel-greek defines \qoppa as alias for ϟ (\textkoppa)!
+\def\qoppa{\textqoppa} % ϙ (archaic koppa)
\providecommand*{\Qoppa}{\textQoppa} % Ϙ (archaic Koppa)
\providecommand*{\Stigma}{\textStigma} % Ϛ (in some fonts ϹΤ ligature)
\providecommand*{\Sampi}{\textSampi} % Ϡ
@@ -304,36 +310,353 @@
\providecommand*{\varkappa}{\textkappasymbol}
\fi
\providecommand*{\kappasymbol}{\varkappa}
-% \Theta/\varTheta are not a symbol variants but upright/italic shape of Theta
+% ..symbol != var.. (in "amsmath", \varTheta is italic shape of \Theta)
+\ifdefined\mathvarTheta
+ \renewcommand*{\varTheta}{\TextOrMath{\textTheta}{\mathvarTheta}}
+\else
+ \providecommand*{\varTheta}{\textTheta} % Θ
+\fi
\providecommand*{\Thetasymbol}{\textThetasymbol} % ϴ
-% TextCompositeCommands for the generic macros
-% --------------------------------------------
+% TextCompositeCommands for the letter-name macros
+% ------------------------------------------------
%
% The NFSS TextComposite mechanism looks for the next token without expanding
% it. In order to let compositions like ``\ensuregreek{\'\Alpha}`` or
-% ``\ensuregreek{\>"\alpha}`` work as expected we define TextComposites with the
-% `letter name commands`. (Composition only works if the active font encoding
-% is LGR). ::
+% ``\ensuregreek{\>"\alpha}`` work as expected we define TextComposites with
+% the `letter name commands`.
+%
+% TextCompositeCommands are always specific for the font-encoding.
+% Documents may use TU, LGR, and PU in parallel.
+% We define auxiliary commands with definitions
+% that are required by more than one font encoding.
+%
+%
+% Select pre-composed characters.
+% '''''''''''''''''''''''''''''''
+%
+% Required by LGR and PU.
+%
+% With TU, most pre-composed characters are selected by the the engine.
+% (Actually by the `Harfbuzz` renderer which is default for XeTeX and can
+% be selected with fontspec for LuaTeX). ::
+
+\newcommand*{\alphabeta@select@precomposed}[1]{
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Alpha} {\accvaria\textalpha}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\alpha} {\accdasia\textalpha}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\alpha} {\accpsili\textalpha}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\alpha} {\accdasiavaria\textalpha}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\alpha} {\acctonos\textalpha}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\alpha} {\accdasiaoxia\textalpha}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\alpha} {\accpsilioxia\textalpha}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\alpha} {\accpsilivaria\textalpha}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\alpha} {\accperispomeni\textalpha}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\alpha} {\accdasiaperispomeni\textalpha}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\alpha} {\accpsiliperispomeni\textalpha}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\eta} {\accvaria\texteta}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\eta} {\accdasia\texteta}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\eta} {\accpsili\texteta}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\eta} {\acctonos\texteta}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\eta} {\accdasiaoxia\texteta}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\eta} {\accpsilioxia\texteta}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\eta} {\accdasiavaria\texteta}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\eta} {\accperispomeni\texteta}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\eta} {\accdasiaperispomeni\texteta}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\eta} {\accpsiliperispomeni\texteta}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\eta} {\accpsilivaria\texteta}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\omega} {\accvaria\textomega}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\omega} {\accdasia\textomega}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\omega} {\accpsili\textomega}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\omega} {\accdasiavaria\textomega}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\omega} {\acctonos\textomega}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\omega} {\accdasiaoxia\textomega}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\omega} {\accpsilioxia\textomega}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\omega} {\accpsilivaria\textomega}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\omega} {\accperispomeni\textomega}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\omega} {\accdasiaperispomeni\textomega}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\omega} {\accpsiliperispomeni\textomega}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\iota} {\accvaria\textiota}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\iota} {\accdasia\textiota}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\iota} {\accpsili\textiota}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\iota} {\accdasiavaria\textiota}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\iota} {\acctonos\textiota}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\iota} {\accdasiaoxia\textiota}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\iota} {\accpsilioxia\textiota}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\iota} {\accpsilivaria\textiota}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\iota} {\accperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\iota} {\accdasiaperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\iota} {\accpsiliperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\iota} {\accdialytika\textiota}
+ \DeclareTextCompositeCommand{\accdialytikavaria}{#1}{\iota} {\accdialytikavaria\textiota}
+ \DeclareTextCompositeCommand{\accdialytikatonos}{#1}{\iota} {\accdialytikatonos\textiota}
+ \DeclareTextCompositeCommand{\accdialytikaperispomeni}{#1}{\iota} {\accdialytikaperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\upsilon} {\accvaria\textupsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\upsilon} {\accdasia\textupsilon}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\upsilon} {\accpsili\textupsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\upsilon} {\accdasiavaria\textupsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\upsilon} {\acctonos\textupsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\upsilon} {\accdasiaoxia\textupsilon}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\upsilon} {\accpsilioxia\textupsilon}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\upsilon} {\accpsilivaria\textupsilon}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\upsilon} {\accperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\upsilon} {\accdasiaperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\upsilon} {\accpsiliperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\upsilon} {\accdialytika\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytikavaria}{#1}{\upsilon} {\accdialytikavaria\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytikatonos}{#1}{\upsilon} {\accdialytikatonos\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytikaperispomeni}{#1}{\upsilon} {\accdialytikaperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\epsilon} {\accvaria\textepsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\epsilon} {\accdasia\textepsilon}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\epsilon} {\accpsili\textepsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\epsilon} {\accdasiavaria\textepsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\epsilon} {\acctonos\textepsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\epsilon} {\accdasiaoxia\textepsilon}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\epsilon} {\accpsilioxia\textepsilon}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\epsilon} {\accpsilivaria\textepsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\omicron} {\accvaria\textomicron}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\omicron} {\accdasia\textomicron}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\omicron} {\accpsili\textomicron}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\omicron} {\accdasiavaria\textomicron}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\omicron} {\acctonos\textomicron}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\omicron} {\accdasiaoxia\textomicron}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\omicron} {\accpsilioxia\textomicron}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\omicron} {\accpsilivaria\textomicron}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\Iota} {\accdialytika\textIota}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\Upsilon} {\accdialytika\textUpsilon}
+ %
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Alpha}{\accdasia\textAlpha}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Alpha}{\accdasiavaria\textAlpha}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Alpha}{\accdasiaoxia\textAlpha}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Alpha}{\accdasiaperispomeni\textAlpha}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Alpha}{\accpsili\textAlpha}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Alpha}{\accpsilivaria\textAlpha}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Alpha}{\accpsilioxia\textAlpha}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Alpha}{\accpsiliperispomeni\textAlpha}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Alpha}{\acctonos\textAlpha}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Alpha}{\accvaria\textAlpha}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Epsilon}{\accdasia\textEpsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Epsilon}{\accdasiaoxia\textEpsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Epsilon}{\accdasiavaria\textEpsilon}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Epsilon}{\accpsili\textEpsilon}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Epsilon}{\accpsilioxia\textEpsilon}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Epsilon}{\accpsilivaria\textEpsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Epsilon}{\acctonos\textEpsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Epsilon}{\accvaria\textEpsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Eta}{\accdasia\textEta}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Eta}{\accdasiavaria\textEta}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Eta}{\accdasiaoxia\textEta}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Eta}{\accdasiaperispomeni\textEta}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Eta}{\accpsili\textEta}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Eta}{\accpsilivaria\textEta}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Eta}{\accpsilioxia\textEta}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Eta}{\accpsiliperispomeni\textEta}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Eta}{\acctonos\textEta}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Eta}{\accvaria\textEta}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Iota}{\accdasia\textIota}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Iota}{\accdasiavaria\textIota}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Iota}{\accdasiaoxia\textIota}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Iota}{\accdasiaperispomeni\textIota}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Iota}{\accpsili\textIota}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Iota}{\accpsilivaria\textIota}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Iota}{\accpsilioxia\textIota}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Iota}{\accpsiliperispomeni\textIota}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Iota}{\acctonos\textIota}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Iota}{\accvaria\textIota}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Omicron}{\accdasia\textOmicron}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Omicron}{\accdasiavaria\textOmicron}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Omicron}{\accdasiaoxia\textOmicron}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Omicron}{\accpsili\textOmicron}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Omicron}{\accpsilivaria\textOmicron}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Omicron}{\accpsilioxia\textOmicron}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Omicron}{\acctonos\textOmicron}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Omicron}{\accvaria\textOmicron}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Upsilon}{\accdasia\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Upsilon}{\accdasiavaria\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Upsilon}{\accdasiaoxia\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Upsilon}{\accdasiaperispomeni\textUpsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Upsilon}{\acctonos\textUpsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Upsilon}{\accvaria\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Rho}{\accdasia\textRho}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Omega}{\accdasia\textOmega}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Omega}{\accdasiavaria\textOmega}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Omega}{\accdasiaoxia\textOmega}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Omega}{\accdasiaperispomeni\textOmega}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Omega}{\accpsili\textOmega}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Omega}{\accpsilivaria\textOmega}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Omega}{\accpsilioxia\textOmega}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Omega}{\accpsiliperispomeni\textOmega}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Omega}{\acctonos\textOmega}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Omega}{\accvaria\textOmega}
+}
+
+% Drop "capital" accents
+% ''''''''''''''''''''''
+%
+% Definitions in babel-greek_ let ``\MakeUppercase`` convert standard accents
+% ``\'``, ``\` ``, ``\~``, and ``\"`` to "capital" versions.
+%
+% In LGR, the "capital" accents are generally dropped. In PU and TU, they
+% must be kept on Latin letters but dropped from Greek letters::
+
+\newcommand*{\alphabeta@drop@capital@accents}[1]{
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Alpha }{\alphabeta@alpha@hiatus}
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Epsilon}{\alphabeta@epsilon@hiatus}
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Eta }{\textEta }
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Iota }{\textIota }
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Upsilon}{\textUpsilon}
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Omega }{\textOmega }
+ %
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Alpha }{\textAlpha }
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Epsilon}{\textEpsilon}
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Eta }{\textEta }
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Iota }{\textIota }
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Upsilon}{\textUpsilon}
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Omega }{\textOmega }
+ %
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Alpha }{\textAlpha }
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Eta }{\textEta }
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Iota }{\textIota }
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Upsilon}{\textUpsilon}
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Omega }{\textOmega }
+}
+
+% Hiatus feature
+% ''''''''''''''
+%
+% Look ahead and place a diaeresis on Ι or Υ.
+% Leads to errors in PU. ::
+
+\newcommand*{\alphabeta@hiatus@composites}[1]{
+ \DeclareTextCommand{\alphabeta@alpha@hiatus}{#1}{%
+ \csname LGR@ifnextchar\endcsname {\Iota}{\Alpha\"}{%
+ \csname LGR@ifnextchar\endcsname {\Upsilon}{\Alpha\"}{\Alpha}%
+ }%
+ }
+ \DeclareTextCommand{\alphabeta@epsilon@hiatus}{#1}{%
+ \csname LGR@ifnextchar\endcsname {\Iota}{\Epsilon\"}{%
+ \csname LGR@ifnextchar\endcsname {\Upsilon}{\Epsilon\"}{\Epsilon}%
+ }%
+ }
+ \DeclareTextCompositeCommand{\LGR@hiatus}{#1}{\Alpha}{\alphabeta@alpha@hiatus}
+ \DeclareTextCompositeCommand{\LGR@hiatus}{#1}{\Epsilon}{\alphabeta@epsilon@hiatus}
+}
+
+
+% Composites for TU
+% '''''''''''''''''
+%
+% With font encoding TU, pre-composed characters are selected by the
+% the Harfbuzz renderer (default for XeTeX, select with fontspec for LuaTeX).
+% Exception: the (standard) combining tilde. ::
\@ifl@aded{def}{tuenc-greek}{
- \input{alphabeta-tuenc.def}
+ \DeclareUnicodeComposite{\~}{\alpha }{"1FB6} % ᾶ
+ \DeclareUnicodeComposite{\~}{\eta }{"1FC6} % ῆ
+ \DeclareUnicodeComposite{\~}{\iota }{"1FD6} % ῖ
+ \DeclareUnicodeComposite{\~}{\upsilon}{"1FE6} % ῦ
+ \DeclareUnicodeComposite{\~}{\omega }{"1FF6} % ῶ
+
+ \alphabeta@drop@capital@accents{\UnicodeEncodingName}
+ \alphabeta@hiatus@composites{\UnicodeEncodingName}
}{}
+
+
+% Composites for LGR
+% ''''''''''''''''''
+% ::
+
\@ifl@aded{def}{lgrenc}{
- \input{alphabeta-lgr.def}
+ \alphabeta@select@precomposed{LGR}
+ \alphabeta@hiatus@composites{LGR}
+}{}
+
+
+% Composites for PU
+% '''''''''''''''''
+%
+% Composite commands in PDF strings work only, if aliases set up with
+% ``DeclareTextCommandDefault`` are also defined for the PU font encoding::
+
+\@ifl@aded{def}{puenc}{
+ \DeclareTextCommand{\Upsilon}{PU}{\textUpsilon}
+ \DeclareTextCommand{\Omega}{PU}{\textOmega}
+ \DeclareTextCommand{\alpha}{PU}{\textalpha}
+ \DeclareTextCommand{\epsilon}{PU}{\textepsilon}
+ \DeclareTextCommand{\eta}{PU}{\texteta}
+ \DeclareTextCommand{\iota}{PU}{\textiota}
+ \DeclareTextCommand{\rho}{PU}{\textrho}
+ \DeclareTextCommand{\upsilon}{PU}{\textupsilon}
+ \DeclareTextCommand{\omega}{PU}{\textomega}
+
+% Now load composite defs::
+
+ \alphabeta@select@precomposed{PU}
+ \alphabeta@drop@capital@accents{PU}
+
+% The hiatus feature leads to errors in PU::
+
+ \DeclareTextCompositeCommand{\LGR@hiatus}{PU}{\Alpha}{\textAlpha}
+ \DeclareTextCompositeCommand{\LGR@hiatus}{PU}{\Epsilon}{\textEpsilon}
+ % fix ``\'\alpha`` and ``\'\epsilon`` (\'{\alpha} works):
+ \DeclareTextCompositeCommand{\accACUTE}{PU}{\Alpha }{\textAlpha}
+ \DeclareTextCompositeCommand{\accACUTE}{PU}{\Epsilon}{\textEpsilon}
}{}
+% -------------------------------------------
+
+% Drop auxiliary definitions to free memory::
+
+\renewcommand*{\alphabeta@select@precomposed }{\relax}
+\renewcommand*{\alphabeta@drop@capital@accents}{\relax}
+\renewcommand*{\alphabeta@hiatus@composites }{\relax}
+
+
+% Case changing
+% -------------
+%
+% We need to extend the case-mapping ``\@uclclist`` for characters that are
+% defined with ``\DeclareTextCommandDefault``.
+%
+% The definition of an auxiliary, self-resetting macro makes this idempotent
+% (only the first use of this function will expand the ``@uclclist``).
+% The second and third lines are TeX's way of writing ``@uclclist += …``.
+%
+% Since 2022, ``\MakeUppercase`` expects the default for ambiguous mappings
+% in first position, before, the default was in last position.
+% ::
+
+\providecommand*\alphabeta@update@uclclist{%
+ \expandafter\def\expandafter\@uclclist\expandafter{%
+ \@uclclist
+ \alpha \Alpha
+ \epsilon \Epsilon
+ \epsilonsymbol \Epsilon
+ \varepsilon \Epsilon
+ \eta \Eta
+ \iota \Iota
+ \omicron \Omicron
+ \rho \Rho
+ \varrho \Rho
+ \rhosymbol \Rho
+ \upsilon \Upsilon
+ \omega \Omega
+ % repeat default for pre-2022 \MakeUppercase
+ \epsilon \Epsilon
+ \rho \Rho
+ }%
+ \let\alphabeta@update@uclclist\relax
+}
+
+% Expand the @uclclist using the just defined macro::
+
+\alphabeta@update@uclclist
+
% Re-definition for Greek Unicode input in math mode
% --------------------------------------------------
%
-% Check with ``\ifdefined`` for the definition of
-% ``\DeclareUnicodeCharacter``. In contrast to ``\@ifdefined``, this works
-% without side-effects. It makes the package dependent on the `e-TeX`_
-% extensions but these are standard in all current TeX distributions anyway.
-%
-% Map Greek characters that are also defined in math mode to the generic
+% Map Greek characters that are also defined in math mode to the letter-name
% macros::
\ifdefined\DeclareUnicodeCharacter
@@ -365,7 +688,7 @@
\DeclareUnicodeCharacter{03BE}{\xi} % ξ
\DeclareUnicodeCharacter{03C0}{\pi} % π
\DeclareUnicodeCharacter{03C1}{\rho} % ρ
- \DeclareUnicodeCharacter{03C2}{\varsigma} % ς
+ \DeclareUnicodeCharacter{03C2}{\finalsigma} % ς
\DeclareUnicodeCharacter{03C3}{\sigma} % σ
\DeclareUnicodeCharacter{03C4}{\tau} % τ
\DeclareUnicodeCharacter{03C5}{\upsilon} % υ
@@ -380,11 +703,11 @@
\DeclareUnicodeCharacter{03DD}{\digamma} % ϝ
\DeclareUnicodeCharacter{03F1}{\rhosymbol} % ϱ
\DeclareUnicodeCharacter{03F5}{\epsilonsymbol} % ϵ $\epsilon$
-
\fi
% ::
+\RestoreAtCatcode
} % close the \AtBeginDocument macro
@@ -407,6 +730,14 @@
% 1.0 2020/09/25 New package version. No changes in this file.
% 2.0 2020/10/13 Provide ``\Koppa``.
% 2.2.1 2023-03-08 Documentation update.
+% 2.5 2023-09-12 Fixes for ``\MakeUppercase`` / ``\MakeLowercase``.
+% .. Text mode alias ``\varTheta`` → ``\Theta``.
+% .. Overwrite legacy `babel-greek` alias ``\qoppa`` (ϟ)
+% with ``\textqoppa`` (ϙ).
+% .. Inline ``alphabeta-tuenc.def`` and ``alphabeta-lgr.def``
+% (dropping redundant composite definitions).
+% .. Composite definitions to select pre-composed characters
+% in PU (PDF strings).
% ====== =========== ========================================================
%
%
@@ -415,9 +746,9 @@
% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
% .. _CB Fonts: https://ctan.org/pkg/cbgreek-complete
% .. _Babel: https://ctan.org/pkg/babel
+% .. _babel-greek: https://ctan.org/pkg/babel-greek
% .. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex
% .. _greek-fontenc: https://ctan.org/pkg/greek-fontenc
% .. _greek-inputenc: https://ctan.org/pkg/greek-inputenc
-% .. _inputenc: https://ctan.org/pkg/inputenc
% .. _fixltx2e: https://ctan.org/pkg/fixltx2e
% .. _Polyglossia: https://ctan.org/pkg/polyglossia
diff --git a/language/greek/greek-fontenc/alphabeta.sty.html b/language/greek/greek-fontenc/alphabeta.sty.html
index f6deffaf26..3ba83c0486 100644
--- a/language/greek/greek-fontenc/alphabeta.sty.html
+++ b/language/greek/greek-fontenc/alphabeta.sty.html
@@ -2,9 +2,9 @@
<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="generator" content="Docutils 0.21b.dev: https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
-<meta name="dcterms.rights" content="© 2010, 2020 Günter Milde" />
+<meta name="dcterms.rights" content="© 2010, 2020, 2023 Günter Milde" />
<title>alphabeta.sty</title>
<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>
<style type="text/css">
@@ -308,8 +308,8 @@ p img, p video, figure img, figure video {
/* .. _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: */
+/* Note: */
+/* This style sheet is provisional: */
/* the API is not settled and may change with any minor Docutils version. */
@@ -648,7 +648,8 @@ math .boldsymbol {
font-weight: bold;
}
mstyle.mathscr, mi.mathscr {
- font-family: STIX;
+ font-family: STIX, XITSMathJax_Script, rsfs10,
+ "Asana Math", Garamond, cursive;
}
/* Adaptive page layout */
@@ -793,9 +794,9 @@ mstyle.mathscr, mi.mathscr {
<p class="subtitle" id="greek-symbols-in-text-and-math">Greek symbols in text and math</p>
<dl class="docinfo">
<dt class="version">Version<span class="colon">:</span></dt>
-<dd class="version">2.2.1 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
+<dd class="version">2.5 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
<dt class="copyright">Copyright<span class="colon">:</span></dt>
-<dd class="copyright">© 2010, 2020 Günter Milde</dd>
+<dd class="copyright">© 2010, 2020, 2023 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
@@ -824,15 +825,26 @@ mode.</p>
<li><p><a class="reference internal" href="#save-math-macros" id="toc-entry-8">Save math macros</a></p></li>
<li><p><a class="reference internal" href="#commands-to-access-greek-letters-by-name" id="toc-entry-9">Commands to access Greek letters by name</a></p>
<ul>
-<li><p><a class="reference internal" href="#archaic-letters" id="toc-entry-10">Archaic letters</a></p></li>
-<li><p><a class="reference internal" href="#variant-shape-symbols" id="toc-entry-11">Variant shape symbols</a></p></li>
+<li><p><a class="reference internal" href="#greek-alphabet" id="toc-entry-10">Greek Alphabet</a></p></li>
+<li><p><a class="reference internal" href="#archaic-letters" id="toc-entry-11">Archaic letters</a></p></li>
+<li><p><a class="reference internal" href="#variant-shape-symbols" id="toc-entry-12">Variant shape symbols</a></p></li>
</ul>
</li>
-<li><p><a class="reference internal" href="#textcompositecommands-for-the-generic-macros" id="toc-entry-12">TextCompositeCommands for the generic macros</a></p></li>
-<li><p><a class="reference internal" href="#re-definition-for-greek-unicode-input-in-math-mode" id="toc-entry-13">Re-definition for Greek Unicode input in math mode</a></p></li>
+<li><p><a class="reference internal" href="#textcompositecommands-for-the-letter-name-macros" id="toc-entry-13">TextCompositeCommands for the letter-name macros</a></p>
+<ul>
+<li><p><a class="reference internal" href="#select-pre-composed-characters" id="toc-entry-14">Select pre-composed characters.</a></p></li>
+<li><p><a class="reference internal" href="#drop-capital-accents" id="toc-entry-15">Drop “capital” accents</a></p></li>
+<li><p><a class="reference internal" href="#hiatus-feature" id="toc-entry-16">Hiatus feature</a></p></li>
+<li><p><a class="reference internal" href="#composites-for-tu" id="toc-entry-17">Composites for TU</a></p></li>
+<li><p><a class="reference internal" href="#composites-for-lgr" id="toc-entry-18">Composites for LGR</a></p></li>
+<li><p><a class="reference internal" href="#composites-for-pu" id="toc-entry-19">Composites for PU</a></p></li>
+</ul>
+</li>
+<li><p><a class="reference internal" href="#case-changing" id="toc-entry-20">Case changing</a></p></li>
+<li><p><a class="reference internal" href="#re-definition-for-greek-unicode-input-in-math-mode" id="toc-entry-21">Re-definition for Greek Unicode input in math mode</a></p></li>
</ul>
</li>
-<li><p><a class="reference internal" href="#changelog" id="toc-entry-14">Changelog</a></p></li>
+<li><p><a class="reference internal" href="#changelog" id="toc-entry-22">Changelog</a></p></li>
</ul>
</nav>
<section id="motivation">
@@ -842,8 +854,9 @@ are only valid in mathematical mode.</p>
<p>With this package, the math macros are redefined to work in both, text and
math mode, so that Greek letters can be specified with the established
command names in text, too.</p>
-<p>If used together with the <span class="docutils literal">utf8</span> option of <a class="reference external" href="https://ctan.org/pkg/inputenc">inputenc</a>, literal Unicode
-characters can be used for Greek symbols in mathematical formulas.</p>
+<p>The package works with both, 8-bit TeX as well as Xe/LuaTeX.
+Under 8-bit TeX, literal Unicode characters can be used for Greek symbols
+in mathematical formulas.</p>
<aside class="admonition attention">
<p class="admonition-title">Attention!</p>
<p>The macros work well in any font encoding for single symbols.
@@ -853,16 +866,13 @@ accent+character with a pre-composed character.</p>
<p>Therefore, Greek text should be written with the help of <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> or
<a class="reference external" href="https://ctan.org/pkg/polyglossia">Polyglossia</a> (setting the language to <span class="docutils literal">greek</span>) or wrapped in the
provided <span class="docutils literal">ensuregreek</span> macro. Using <a class="reference external" href="https://ctan.org/pkg/babel">Babel</a> or <a class="reference external" href="https://ctan.org/pkg/polyglossia">Polyglossia</a> also helps
-to ensure proper hyphenation.</p>
+to ensure correct hyphenation and case changes.</p>
</aside>
</section>
<section id="usage">
<h2><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Usage</a></h2>
-<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name builtin">{</span>alphabeta<span class="name builtin">}</span></code></pre>
-<p>The <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a> package provides support for Unicode (utf-8) input
-of Greek characters with 8-bit TeX and the <a class="reference external" href="https://ctan.org/pkg/inputenc">inputenc</a> package:</p>
-<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[utf-8]</span><span class="name builtin">{</span>inputenc<span class="name builtin">}</span>
-<span class="keyword">\usepackage</span><span class="name builtin">{</span>alphabeta<span class="name builtin">}</span></code></pre>
+<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[&lt;options&gt;]</span><span class="name builtin">{</span>alphabeta<span class="name builtin">}</span></code></pre>
+<p>The package provides the same <a class="reference external" href="textalpha.sty.html#options">options</a> as <a class="reference external" href="textalpha.sty.html">textalpha</a>.</p>
<section id="conflicts">
<h3><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Conflicts</a></h3>
<p><cite>alphabeta</cite> does not work if the <span class="docutils literal">utf8x</span> input encoding is selected.
@@ -877,26 +887,28 @@ non-compatible definition of <span class="docutils literal">\DeclareUnicodeChara
<h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Identification</a></h3>
<pre class="literal-block">\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{alphabeta}
- [2023/03/08 2.2.1 macros for Greek letters in text and math]</pre>
+ [2023-09-12 2.5 macros for Greek letters in text and math]</pre>
</section>
<section id="requirements">
<h3><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">Requirements</a></h3>
<p>This package extends the <a class="reference external" href="textalpha.sty.html">textalpha</a> package.
+(Just like <cite>alphabeta</cite>, <a class="reference external" href="textalpha.sty.html">textalpha</a> is part of <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>.)
Package options are passed on to <cite>textalpha</cite>:</p>
<pre class="literal-block">\RequirePackageWithOptions{textalpha}</pre>
-<p>Just like <cite>alphabeta</cite>, <cite>textalpha</cite> is part of <a class="reference external" href="https://ctan.org/pkg/greek-fontenc">greek-fontenc</a>.</p>
<p>This package requires the <a class="reference external" href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex">e-TeX</a> extensions (i.e. a not too old TeX
distribution) for the <span class="docutils literal">\ifdefined</span> test.</p>
-<p>It uses the <span class="docutils literal">\TextOrMath</span> test from the <a class="reference external" href="https://ctan.org/pkg/fixltx2e">fixltx2e</a> standard LaTeX package.
-<span class="docutils literal">fixltx2e</span> is loaded by default since TeXLive 2015. In case of an
-<span class="docutils literal">\TextOrMath undefined</span> error, load it in the document preamble via</p>
-<pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name builtin">{</span>fixltx2e<span class="name builtin">}</span></code></pre>
+<p>It uses the <span class="docutils literal">\TextOrMath</span> test (in the LaTeX kernel since 2015).
+In case of an <span class="docutils literal">\TextOrMath undefined</span> error, load the
+<span class="docutils literal">fixltx2e</span> package.</p>
</section>
<section id="postpone-the-re-definitions">
<h3><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">Postpone the re-definitions</a></h3>
<p>To prevent other packages overwriting the re-defined commands we postpone
the next steps until the start of the document body:</p>
<pre class="literal-block">\AtBeginDocument{</pre>
+<p>save &#64;-catcode, allow &#64; in command names:</p>
+<pre class="literal-block">\edef\RestoreAtCatcode{\catcode`&#64;=\the\catcode`&#64;\relax}%
+\makeatletter</pre>
</section>
<section id="save-math-macros">
<h3><a class="toc-backref" href="#toc-entry-8" role="doc-backlink">Save math macros</a></h3>
@@ -935,7 +947,6 @@ the next steps until the start of the document body:</p>
\let\mathvarrho\varrho
\let\mathsigma\sigma
\let\mathvarsigma\varsigma
-\let\mathfinalsigma\varsigma
\let\mathtau\tau
\let\mathupsilon\upsilon
\let\mathphi\phi
@@ -947,7 +958,10 @@ the next steps until the start of the document body:</p>
\providecommand*{\digamma}{\textit{\textdigamma}}
\let\mathdigamma\digamma
-% \varkappa and \varbeta are defined by some math packages
+% \varTheta, \varkappa, and \varbeta are defined by math packages
+\ifdefined\varTheta
+ \let\mathvarTheta\varTheta
+\fi
\ifdefined\varbeta
\let\mathvarbeta\varbeta
\fi
@@ -967,13 +981,18 @@ rho, theta (small and capital), beta, and kappa (characters for the latter
three symbols are not included in TeX’s math fonts). These variations have
no syntactic meaning in Greek text and are not given code-points in the LGR
encoding while Unicode defines separate code points for the symbol variants.</p>
-<p>Greek Alphabet:</p>
+<section id="greek-alphabet">
+<h4><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Greek Alphabet</a></h4>
<p>Macros keep their meaning in mathematical mode (i.e. use the same shape as
without this package) and refer to GREEK LETTER … in text. For
<span class="docutils literal">\epsilon</span> and <span class="docutils literal">phi</span>, this means that the selected symbol variant
differs in text vs. math mode. Use <span class="docutils literal">\varepsilon</span> and <span class="docutils literal">\varphi</span> (see
-section <a class="reference internal" href="#variant-shape-symbols">variant shape symbols</a> below) to select the GREEK LETTER …”
+section <a class="reference internal" href="#variant-shape-symbols">variant shape symbols</a> below) to select the “GREEK LETTER …”
in both, text and math mode.</p>
+<p>Macros for letters that can take diacritical marks and are used in text
+and math mode are defined with <span class="docutils literal">\DeclareTextCommandDefault</span> to ensure
+the selection of pre-composed characters and correct case changes with
+<span class="docutils literal">\MakeUppercase</span> and <span class="docutils literal">\MakeLowercase</span>.</p>
<pre class="literal-block">\providecommand*{\Alpha}{\textAlpha}
\providecommand*{\Beta}{\textBeta}
\renewcommand*{\Gamma}{\TextOrMath{\textGamma}{\mathGamma}}
@@ -993,21 +1012,21 @@ in both, text and math mode.</p>
\providecommand*{\Rho}{\textRho}
\renewcommand*{\Sigma}{\TextOrMath{\textSigma}{\mathSigma}}
\providecommand*{\Tau}{\textTau}
-\renewcommand*{\Upsilon}{\TextOrMath{\textUpsilon}{\mathUpsilon}}
+\DeclareTextCommandDefault{\Upsilon}{\TextOrMath{\textUpsilon}{\mathUpsilon}}
\renewcommand*{\Phi}{\TextOrMath{\textPhi}{\mathPhi}}
\providecommand*{\Chi}{\textChi}
\renewcommand*{\Psi}{\TextOrMath{\textPsi}{\mathPsi}}
-\renewcommand*{\Omega}{\TextOrMath{\textOmega}{\mathOmega}}
+\DeclareTextCommandDefault{\Omega}{\TextOrMath{\textOmega}{\mathOmega}}
%
-\renewcommand*{\alpha}{\TextOrMath{\textalpha}{\mathalpha}}
+\DeclareTextCommandDefault{\alpha}{\TextOrMath{\textalpha}{\mathalpha}}
\renewcommand*{\beta}{\TextOrMath{\textbeta}{\mathbeta}}
\renewcommand*{\gamma}{\TextOrMath{\textgamma}{\mathgamma}}
\renewcommand*{\delta}{\TextOrMath{\textdelta}{\mathdelta}}
-\renewcommand*{\epsilon}{\TextOrMath{\textepsilon}{\mathepsilon}} % ε/ϵ
+\DeclareTextCommandDefault{\epsilon}{\TextOrMath{\textepsilon}{\mathepsilon}} % ε/ϵ
\renewcommand*{\zeta}{\TextOrMath{\textzeta}{\mathzeta}}
-\renewcommand*{\eta}{\TextOrMath{\texteta}{\matheta}}
+\DeclareTextCommandDefault{\eta}{\TextOrMath{\texteta}{\matheta}}
\renewcommand*{\theta}{\TextOrMath{\texttheta}{\maththeta}}
-\renewcommand*{\iota}{\TextOrMath{\textiota}{\mathiota}}
+\DeclareTextCommandDefault{\iota}{\TextOrMath{\textiota}{\mathiota}}
\renewcommand*{\kappa}{\TextOrMath{\textkappa}{\mathkappa}}
\renewcommand*{\lambda}{\TextOrMath{\textlambda}{\mathlambda}}
\renewcommand*{\mu}{\TextOrMath{\textmu}{\mathmu}}
@@ -1015,32 +1034,34 @@ in both, text and math mode.</p>
\renewcommand*{\xi}{\TextOrMath{\textxi}{\mathxi}}
\providecommand*{\omicron}{\textomicron}
\renewcommand*{\pi}{\TextOrMath{\textpi}{\mathpi}}
-\renewcommand*{\rho}{\TextOrMath{\textrho}{\mathrho}}
+\DeclareTextCommandDefault{\rho}{\TextOrMath{\textrho}{\mathrho}}
\renewcommand*{\sigma}{\TextOrMath{\textsigma}{\mathsigma}}
-\renewcommand*{\varsigma}{\TextOrMath{\textvarsigma}{\mathvarsigma}}
-\providecommand*{\finalsigma}{\varsigma}
+\providecommand*{\finalsigma}{\TextOrMath{\textfinalsigma}{\mathvarsigma}}
+\renewcommand*{\varsigma}{\finalsigma}
\renewcommand*{\tau}{\TextOrMath{\texttau}{\mathtau}}
-\renewcommand*{\upsilon}{\TextOrMath{\textupsilon}{\mathupsilon}}
+\DeclareTextCommandDefault{\upsilon}{\TextOrMath{\textupsilon}{\mathupsilon}}
\renewcommand*{\phi}{\TextOrMath{\textphi}{\mathphi}} % ϕ/φ
\renewcommand*{\chi}{\TextOrMath{\textchi}{\mathchi}}
\renewcommand*{\psi}{\TextOrMath{\textpsi}{\mathpsi}}
-\renewcommand*{\omega}{\TextOrMath{\textomega}{\mathomega}}</pre>
+\DeclareTextCommandDefault{\omega}{\TextOrMath{\textomega}{\mathomega}}</pre>
+</section>
<section id="archaic-letters">
-<h4><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Archaic letters</a></h4>
+<h4><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">Archaic letters</a></h4>
<pre class="literal-block">\renewcommand*{\digamma}{\TextOrMath{\textdigamma}{\mathdigamma}} % ϝ
\providecommand*{\Digamma}{\textDigamma} % Ϝ
\providecommand*{\stigma}{\textstigma} % ϛ
\providecommand*{\varstigma}{\textvarstigma} % stigma variant (CB.enc, teubner)
\providecommand*{\koppa}{\textkoppa} % ϟ (greek small letter koppa)
\providecommand*{\Koppa}{\textKoppa} % Ϟ (greek letter koppa)
-\providecommand*{\qoppa}{\textqoppa} % ϙ (archaic koppa)
+% !! babel-greek defines \qoppa as alias for ϟ (\textkoppa)!
+\def\qoppa{\textqoppa} % ϙ (archaic koppa)
\providecommand*{\Qoppa}{\textQoppa} % Ϙ (archaic Koppa)
\providecommand*{\Stigma}{\textStigma} % Ϛ (in some fonts ϹΤ ligature)
\providecommand*{\Sampi}{\textSampi} % Ϡ
\providecommand*{\sampi}{\textsampi} % ϡ</pre>
</section>
<section id="variant-shape-symbols">
-<h4><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">Variant shape symbols</a></h4>
+<h4><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">Variant shape symbols</a></h4>
<p>TeX’s concept of “standard” vs. “variant” math symbols does not map to the
distinction between GREEK LETTER … vs. GREEK … SYMBOL in the Unicode
standard (see <a class="reference external" href="test-tuenc-greek.pdf">test-tuenc-greek.pdf</a>).</p>
@@ -1073,31 +1094,316 @@ math (or, if not supported, the SYMBOL shape):</p>
\providecommand*{\varkappa}{\textkappasymbol}
\fi
\providecommand*{\kappasymbol}{\varkappa}
-% \Theta/\varTheta are not a symbol variants but upright/italic shape of Theta
+% ..symbol != var.. (in &quot;amsmath&quot;, \varTheta is italic shape of \Theta)
+\ifdefined\mathvarTheta
+ \renewcommand*{\varTheta}{\TextOrMath{\textTheta}{\mathvarTheta}}
+\else
+ \providecommand*{\varTheta}{\textTheta} % Θ
+\fi
\providecommand*{\Thetasymbol}{\textThetasymbol} % ϴ</pre>
</section>
</section>
-<section id="textcompositecommands-for-the-generic-macros">
-<h3><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">TextCompositeCommands for the generic macros</a></h3>
+<section id="textcompositecommands-for-the-letter-name-macros">
+<h3><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">TextCompositeCommands for the letter-name macros</a></h3>
<p>The NFSS TextComposite mechanism looks for the next token without expanding
it. In order to let compositions like <span class="docutils literal"><span class="pre">\ensuregreek{\'\Alpha}</span></span> or
-<span class="docutils literal"><span class="pre">\ensuregreek{\&gt;&quot;\alpha}</span></span> work as expected we define TextComposites with the
-<cite>letter name commands</cite>. (Composition only works if the active font encoding
-is LGR).</p>
+<span class="docutils literal"><span class="pre">\ensuregreek{\&gt;&quot;\alpha}</span></span> work as expected we define TextComposites with
+the <cite>letter name commands</cite>.</p>
+<p>TextCompositeCommands are always specific for the font-encoding.
+Documents may use TU, LGR, and PU in parallel.
+We define auxiliary commands with definitions
+that are required by more than one font encoding.</p>
+<section id="select-pre-composed-characters">
+<h4><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">Select pre-composed characters.</a></h4>
+<p>Required by LGR and PU.</p>
+<p>With TU, most pre-composed characters are selected by the the engine.
+(Actually by the <cite>Harfbuzz</cite> renderer which is default for XeTeX and can
+be selected with fontspec for LuaTeX).</p>
+<pre class="literal-block">\newcommand*{\alphabeta&#64;select&#64;precomposed}[1]{
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Alpha} {\accvaria\textalpha}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\alpha} {\accdasia\textalpha}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\alpha} {\accpsili\textalpha}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\alpha} {\accdasiavaria\textalpha}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\alpha} {\acctonos\textalpha}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\alpha} {\accdasiaoxia\textalpha}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\alpha} {\accpsilioxia\textalpha}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\alpha} {\accpsilivaria\textalpha}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\alpha} {\accperispomeni\textalpha}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\alpha} {\accdasiaperispomeni\textalpha}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\alpha} {\accpsiliperispomeni\textalpha}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\eta} {\accvaria\texteta}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\eta} {\accdasia\texteta}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\eta} {\accpsili\texteta}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\eta} {\acctonos\texteta}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\eta} {\accdasiaoxia\texteta}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\eta} {\accpsilioxia\texteta}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\eta} {\accdasiavaria\texteta}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\eta} {\accperispomeni\texteta}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\eta} {\accdasiaperispomeni\texteta}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\eta} {\accpsiliperispomeni\texteta}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\eta} {\accpsilivaria\texteta}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\omega} {\accvaria\textomega}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\omega} {\accdasia\textomega}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\omega} {\accpsili\textomega}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\omega} {\accdasiavaria\textomega}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\omega} {\acctonos\textomega}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\omega} {\accdasiaoxia\textomega}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\omega} {\accpsilioxia\textomega}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\omega} {\accpsilivaria\textomega}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\omega} {\accperispomeni\textomega}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\omega} {\accdasiaperispomeni\textomega}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\omega} {\accpsiliperispomeni\textomega}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\iota} {\accvaria\textiota}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\iota} {\accdasia\textiota}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\iota} {\accpsili\textiota}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\iota} {\accdasiavaria\textiota}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\iota} {\acctonos\textiota}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\iota} {\accdasiaoxia\textiota}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\iota} {\accpsilioxia\textiota}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\iota} {\accpsilivaria\textiota}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\iota} {\accperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\iota} {\accdasiaperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\iota} {\accpsiliperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\iota} {\accdialytika\textiota}
+ \DeclareTextCompositeCommand{\accdialytikavaria}{#1}{\iota} {\accdialytikavaria\textiota}
+ \DeclareTextCompositeCommand{\accdialytikatonos}{#1}{\iota} {\accdialytikatonos\textiota}
+ \DeclareTextCompositeCommand{\accdialytikaperispomeni}{#1}{\iota} {\accdialytikaperispomeni\textiota}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\upsilon} {\accvaria\textupsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\upsilon} {\accdasia\textupsilon}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\upsilon} {\accpsili\textupsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\upsilon} {\accdasiavaria\textupsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\upsilon} {\acctonos\textupsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\upsilon} {\accdasiaoxia\textupsilon}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\upsilon} {\accpsilioxia\textupsilon}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\upsilon} {\accpsilivaria\textupsilon}
+ \DeclareTextCompositeCommand{\accperispomeni}{#1}{\upsilon} {\accperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\upsilon} {\accdasiaperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\upsilon} {\accpsiliperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\upsilon} {\accdialytika\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytikavaria}{#1}{\upsilon} {\accdialytikavaria\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytikatonos}{#1}{\upsilon} {\accdialytikatonos\textupsilon}
+ \DeclareTextCompositeCommand{\accdialytikaperispomeni}{#1}{\upsilon} {\accdialytikaperispomeni\textupsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\epsilon} {\accvaria\textepsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\epsilon} {\accdasia\textepsilon}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\epsilon} {\accpsili\textepsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\epsilon} {\accdasiavaria\textepsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\epsilon} {\acctonos\textepsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\epsilon} {\accdasiaoxia\textepsilon}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\epsilon} {\accpsilioxia\textepsilon}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\epsilon} {\accpsilivaria\textepsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\omicron} {\accvaria\textomicron}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\omicron} {\accdasia\textomicron}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\omicron} {\accpsili\textomicron}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\omicron} {\accdasiavaria\textomicron}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\omicron} {\acctonos\textomicron}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\omicron} {\accdasiaoxia\textomicron}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\omicron} {\accpsilioxia\textomicron}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\omicron} {\accpsilivaria\textomicron}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\Iota} {\accdialytika\textIota}
+ \DeclareTextCompositeCommand{\accdialytika}{#1}{\Upsilon} {\accdialytika\textUpsilon}
+ %
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Alpha}{\accdasia\textAlpha}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Alpha}{\accdasiavaria\textAlpha}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Alpha}{\accdasiaoxia\textAlpha}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Alpha}{\accdasiaperispomeni\textAlpha}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Alpha}{\accpsili\textAlpha}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Alpha}{\accpsilivaria\textAlpha}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Alpha}{\accpsilioxia\textAlpha}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Alpha}{\accpsiliperispomeni\textAlpha}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Alpha}{\acctonos\textAlpha}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Alpha}{\accvaria\textAlpha}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Epsilon}{\accdasia\textEpsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Epsilon}{\accdasiaoxia\textEpsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Epsilon}{\accdasiavaria\textEpsilon}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Epsilon}{\accpsili\textEpsilon}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Epsilon}{\accpsilioxia\textEpsilon}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Epsilon}{\accpsilivaria\textEpsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Epsilon}{\acctonos\textEpsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Epsilon}{\accvaria\textEpsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Eta}{\accdasia\textEta}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Eta}{\accdasiavaria\textEta}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Eta}{\accdasiaoxia\textEta}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Eta}{\accdasiaperispomeni\textEta}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Eta}{\accpsili\textEta}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Eta}{\accpsilivaria\textEta}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Eta}{\accpsilioxia\textEta}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Eta}{\accpsiliperispomeni\textEta}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Eta}{\acctonos\textEta}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Eta}{\accvaria\textEta}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Iota}{\accdasia\textIota}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Iota}{\accdasiavaria\textIota}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Iota}{\accdasiaoxia\textIota}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Iota}{\accdasiaperispomeni\textIota}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Iota}{\accpsili\textIota}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Iota}{\accpsilivaria\textIota}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Iota}{\accpsilioxia\textIota}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Iota}{\accpsiliperispomeni\textIota}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Iota}{\acctonos\textIota}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Iota}{\accvaria\textIota}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Omicron}{\accdasia\textOmicron}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Omicron}{\accdasiavaria\textOmicron}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Omicron}{\accdasiaoxia\textOmicron}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Omicron}{\accpsili\textOmicron}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Omicron}{\accpsilivaria\textOmicron}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Omicron}{\accpsilioxia\textOmicron}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Omicron}{\acctonos\textOmicron}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Omicron}{\accvaria\textOmicron}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Upsilon}{\accdasia\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Upsilon}{\accdasiavaria\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Upsilon}{\accdasiaoxia\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Upsilon}{\accdasiaperispomeni\textUpsilon}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Upsilon}{\acctonos\textUpsilon}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Upsilon}{\accvaria\textUpsilon}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Rho}{\accdasia\textRho}
+ \DeclareTextCompositeCommand{\accdasia}{#1}{\Omega}{\accdasia\textOmega}
+ \DeclareTextCompositeCommand{\accdasiavaria}{#1}{\Omega}{\accdasiavaria\textOmega}
+ \DeclareTextCompositeCommand{\accdasiaoxia}{#1}{\Omega}{\accdasiaoxia\textOmega}
+ \DeclareTextCompositeCommand{\accdasiaperispomeni}{#1}{\Omega}{\accdasiaperispomeni\textOmega}
+ \DeclareTextCompositeCommand{\accpsili}{#1}{\Omega}{\accpsili\textOmega}
+ \DeclareTextCompositeCommand{\accpsilivaria}{#1}{\Omega}{\accpsilivaria\textOmega}
+ \DeclareTextCompositeCommand{\accpsilioxia}{#1}{\Omega}{\accpsilioxia\textOmega}
+ \DeclareTextCompositeCommand{\accpsiliperispomeni}{#1}{\Omega}{\accpsiliperispomeni\textOmega}
+ \DeclareTextCompositeCommand{\acctonos}{#1}{\Omega}{\acctonos\textOmega}
+ \DeclareTextCompositeCommand{\accvaria}{#1}{\Omega}{\accvaria\textOmega}
+}</pre>
+</section>
+<section id="drop-capital-accents">
+<h4><a class="toc-backref" href="#toc-entry-15" role="doc-backlink">Drop “capital” accents</a></h4>
+<p>Definitions in <a class="reference external" href="https://ctan.org/pkg/babel-greek">babel-greek</a> let <span class="docutils literal">\MakeUppercase</span> convert standard accents
+<span class="docutils literal">\'</span>, <span class="docutils literal">\` ``, <span class="pre">``\~</span></span>, and <span class="docutils literal">\&quot;</span> to “capital” versions.</p>
+<p>In LGR, the “capital” accents are generally dropped. In PU and TU, they
+must be kept on Latin letters but dropped from Greek letters:</p>
+<pre class="literal-block">\newcommand*{\alphabeta&#64;drop&#64;capital&#64;accents}[1]{
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Alpha }{\alphabeta&#64;alpha&#64;hiatus}
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Epsilon}{\alphabeta&#64;epsilon&#64;hiatus}
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Eta }{\textEta }
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Iota }{\textIota }
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Upsilon}{\textUpsilon}
+ \DeclareTextCompositeCommand{\accACUTE}{#1}{\Omega }{\textOmega }
+ %
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Alpha }{\textAlpha }
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Epsilon}{\textEpsilon}
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Eta }{\textEta }
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Iota }{\textIota }
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Upsilon}{\textUpsilon}
+ \DeclareTextCompositeCommand{\accGRAVE}{#1}{\Omega }{\textOmega }
+ %
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Alpha }{\textAlpha }
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Eta }{\textEta }
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Iota }{\textIota }
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Upsilon}{\textUpsilon}
+ \DeclareTextCompositeCommand{\accTILDE}{#1}{\Omega }{\textOmega }
+}</pre>
+</section>
+<section id="hiatus-feature">
+<h4><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">Hiatus feature</a></h4>
+<p>Look ahead and place a diaeresis on Ι or Υ.
+Leads to errors in PU.</p>
+<pre class="literal-block">\newcommand*{\alphabeta&#64;hiatus&#64;composites}[1]{
+ \DeclareTextCommand{\alphabeta&#64;alpha&#64;hiatus}{#1}{%
+ \csname LGR&#64;ifnextchar\endcsname {\Iota}{\Alpha\&quot;}{%
+ \csname LGR&#64;ifnextchar\endcsname {\Upsilon}{\Alpha\&quot;}{\Alpha}%
+ }%
+ }
+ \DeclareTextCommand{\alphabeta&#64;epsilon&#64;hiatus}{#1}{%
+ \csname LGR&#64;ifnextchar\endcsname {\Iota}{\Epsilon\&quot;}{%
+ \csname LGR&#64;ifnextchar\endcsname {\Upsilon}{\Epsilon\&quot;}{\Epsilon}%
+ }%
+ }
+ \DeclareTextCompositeCommand{\LGR&#64;hiatus}{#1}{\Alpha}{\alphabeta&#64;alpha&#64;hiatus}
+ \DeclareTextCompositeCommand{\LGR&#64;hiatus}{#1}{\Epsilon}{\alphabeta&#64;epsilon&#64;hiatus}
+}</pre>
+</section>
+<section id="composites-for-tu">
+<h4><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">Composites for TU</a></h4>
+<p>With font encoding TU, pre-composed characters are selected by the
+the Harfbuzz renderer (default for XeTeX, select with fontspec for LuaTeX).
+Exception: the (standard) combining tilde.</p>
<pre class="literal-block">\&#64;ifl&#64;aded{def}{tuenc-greek}{
- \input{alphabeta-tuenc.def}
-}{}
-\&#64;ifl&#64;aded{def}{lgrenc}{
- \input{alphabeta-lgr.def}
+ \DeclareUnicodeComposite{\~}{\alpha }{&quot;1FB6} % ᾶ
+ \DeclareUnicodeComposite{\~}{\eta }{&quot;1FC6} % ῆ
+ \DeclareUnicodeComposite{\~}{\iota }{&quot;1FD6} % ῖ
+ \DeclareUnicodeComposite{\~}{\upsilon}{&quot;1FE6} % ῦ
+ \DeclareUnicodeComposite{\~}{\omega }{&quot;1FF6} % ῶ
+
+ \alphabeta&#64;drop&#64;capital&#64;accents{\UnicodeEncodingName}
+ \alphabeta&#64;hiatus&#64;composites{\UnicodeEncodingName}
+}{}</pre>
+</section>
+<section id="composites-for-lgr">
+<h4><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">Composites for LGR</a></h4>
+<pre class="literal-block">\&#64;ifl&#64;aded{def}{lgrenc}{
+ \alphabeta&#64;select&#64;precomposed{LGR}
+ \alphabeta&#64;hiatus&#64;composites{LGR}
}{}</pre>
</section>
+<section id="composites-for-pu">
+<h4><a class="toc-backref" href="#toc-entry-19" role="doc-backlink">Composites for PU</a></h4>
+<p>Composite commands in PDF strings work only, if aliases set up with
+<span class="docutils literal">DeclareTextCommandDefault</span> are also defined for the PU font encoding:</p>
+<pre class="literal-block">\&#64;ifl&#64;aded{def}{puenc}{
+ \DeclareTextCommand{\Upsilon}{PU}{\textUpsilon}
+ \DeclareTextCommand{\Omega}{PU}{\textOmega}
+ \DeclareTextCommand{\alpha}{PU}{\textalpha}
+ \DeclareTextCommand{\epsilon}{PU}{\textepsilon}
+ \DeclareTextCommand{\eta}{PU}{\texteta}
+ \DeclareTextCommand{\iota}{PU}{\textiota}
+ \DeclareTextCommand{\rho}{PU}{\textrho}
+ \DeclareTextCommand{\upsilon}{PU}{\textupsilon}
+ \DeclareTextCommand{\omega}{PU}{\textomega}</pre>
+<p>Now load composite defs:</p>
+<pre class="literal-block">\alphabeta&#64;select&#64;precomposed{PU}
+\alphabeta&#64;drop&#64;capital&#64;accents{PU}</pre>
+<p>The hiatus feature leads to errors in PU:</p>
+<pre class="literal-block"> \DeclareTextCompositeCommand{\LGR&#64;hiatus}{PU}{\Alpha}{\textAlpha}
+ \DeclareTextCompositeCommand{\LGR&#64;hiatus}{PU}{\Epsilon}{\textEpsilon}
+ % fix ``\'\alpha`` and ``\'\epsilon`` (\'{\alpha} works):
+ \DeclareTextCompositeCommand{\accACUTE}{PU}{\Alpha }{\textAlpha}
+ \DeclareTextCompositeCommand{\accACUTE}{PU}{\Epsilon}{\textEpsilon}
+}{}</pre>
+<hr class="docutils" />
+<p>Drop auxiliary definitions to free memory:</p>
+<pre class="literal-block">\renewcommand*{\alphabeta&#64;select&#64;precomposed }{\relax}
+\renewcommand*{\alphabeta&#64;drop&#64;capital&#64;accents}{\relax}
+\renewcommand*{\alphabeta&#64;hiatus&#64;composites }{\relax}</pre>
+</section>
+</section>
+<section id="case-changing">
+<h3><a class="toc-backref" href="#toc-entry-20" role="doc-backlink">Case changing</a></h3>
+<p>We need to extend the case-mapping <span class="docutils literal">\&#64;uclclist</span> for characters that are
+defined with <span class="docutils literal">\DeclareTextCommandDefault</span>.</p>
+<p>The definition of an auxiliary, self-resetting macro makes this idempotent
+(only the first use of this function will expand the <span class="docutils literal">&#64;uclclist</span>).
+The second and third lines are TeX’s way of writing <span class="docutils literal">&#64;uclclist += …</span>.</p>
+<p>Since 2022, <span class="docutils literal">\MakeUppercase</span> expects the default for ambiguous mappings
+in first position, before, the default was in last position.</p>
+<pre class="literal-block">\providecommand*\alphabeta&#64;update&#64;uclclist{%
+ \expandafter\def\expandafter\&#64;uclclist\expandafter{%
+ \&#64;uclclist
+ \alpha \Alpha
+ \epsilon \Epsilon
+ \epsilonsymbol \Epsilon
+ \varepsilon \Epsilon
+ \eta \Eta
+ \iota \Iota
+ \omicron \Omicron
+ \rho \Rho
+ \varrho \Rho
+ \rhosymbol \Rho
+ \upsilon \Upsilon
+ \omega \Omega
+ % repeat default for pre-2022 \MakeUppercase
+ \epsilon \Epsilon
+ \rho \Rho
+ }%
+ \let\alphabeta&#64;update&#64;uclclist\relax
+}</pre>
+<p>Expand the &#64;uclclist using the just defined macro:</p>
+<pre class="literal-block">\alphabeta&#64;update&#64;uclclist</pre>
+</section>
<section id="re-definition-for-greek-unicode-input-in-math-mode">
-<h3><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">Re-definition for Greek Unicode input in math mode</a></h3>
-<p>Check with <span class="docutils literal">\ifdefined</span> for the definition of
-<span class="docutils literal">\DeclareUnicodeCharacter</span>. In contrast to <span class="docutils literal">\&#64;ifdefined</span>, this works
-without side-effects. It makes the package dependent on the <a class="reference external" href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex">e-TeX</a>
-extensions but these are standard in all current TeX distributions anyway.</p>
-<p>Map Greek characters that are also defined in math mode to the generic
+<h3><a class="toc-backref" href="#toc-entry-21" role="doc-backlink">Re-definition for Greek Unicode input in math mode</a></h3>
+<p>Map Greek characters that are also defined in math mode to the letter-name
macros:</p>
<pre class="literal-block">\ifdefined\DeclareUnicodeCharacter
\DeclareUnicodeCharacter{0393}{\Gamma} % Γ
@@ -1128,7 +1434,7 @@ macros:</p>
\DeclareUnicodeCharacter{03BE}{\xi} % ξ
\DeclareUnicodeCharacter{03C0}{\pi} % π
\DeclareUnicodeCharacter{03C1}{\rho} % ρ
- \DeclareUnicodeCharacter{03C2}{\varsigma} % ς
+ \DeclareUnicodeCharacter{03C2}{\finalsigma} % ς
\DeclareUnicodeCharacter{03C3}{\sigma} % σ
\DeclareUnicodeCharacter{03C4}{\tau} % τ
\DeclareUnicodeCharacter{03C5}{\upsilon} % υ
@@ -1143,13 +1449,13 @@ macros:</p>
\DeclareUnicodeCharacter{03DD}{\digamma} % ϝ
\DeclareUnicodeCharacter{03F1}{\rhosymbol} % ϱ
\DeclareUnicodeCharacter{03F5}{\epsilonsymbol} % ϵ $\epsilon$
-
\fi</pre>
-<pre class="literal-block">} % close the \AtBeginDocument macro</pre>
+<pre class="literal-block">\RestoreAtCatcode
+} % close the \AtBeginDocument macro</pre>
</section>
</section>
<section id="changelog">
-<h2><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">Changelog</a></h2>
+<h2><a class="toc-backref" href="#toc-entry-22" role="doc-backlink">Changelog</a></h2>
<table class="borderless">
<tbody>
<tr><td><p>0.1</p></td>
@@ -1199,6 +1505,33 @@ macros:</p>
<td><p>2023-03-08</p></td>
<td><p>Documentation update.</p></td>
</tr>
+<tr><td><p>2.5</p></td>
+<td><p>2023-09-12</p></td>
+<td><p>Fixes for <span class="docutils literal">\MakeUppercase</span> / <span class="docutils literal">\MakeLowercase</span>.</p></td>
+</tr>
+<tr><td><!-- -->
+</td>
+<td></td>
+<td><p>Text mode alias <span class="docutils literal">\varTheta</span> → <span class="docutils literal">\Theta</span>.</p></td>
+</tr>
+<tr><td><!-- -->
+</td>
+<td></td>
+<td><p>Overwrite legacy <cite>babel-greek</cite> alias <span class="docutils literal">\qoppa</span> (ϟ)
+with <span class="docutils literal">\textqoppa</span> (ϙ).</p></td>
+</tr>
+<tr><td><!-- -->
+</td>
+<td></td>
+<td><p>Inline <span class="docutils literal"><span class="pre">alphabeta-tuenc.def</span></span> and <span class="docutils literal"><span class="pre">alphabeta-lgr.def</span></span>
+(dropping redundant composite definitions).</p></td>
+</tr>
+<tr><td><!-- -->
+</td>
+<td></td>
+<td><p>Composite definitions to select pre-composed characters
+in PU (PDF strings).</p></td>
+</tr>
</tbody>
</table>
<!-- References
diff --git a/language/greek/greek-fontenc/char-list-alphabeta-tu.pdf b/language/greek/greek-fontenc/char-list-alphabeta-tu.pdf
new file mode 100644
index 0000000000..94e2628d6d
--- /dev/null
+++ b/language/greek/greek-fontenc/char-list-alphabeta-tu.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list-alphabeta.pdf b/language/greek/greek-fontenc/char-list-alphabeta.pdf
new file mode 100644
index 0000000000..72ad8d1a0e
--- /dev/null
+++ b/language/greek/greek-fontenc/char-list-alphabeta.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list-luatex.pdf b/language/greek/greek-fontenc/char-list-luatex.pdf
deleted file mode 100644
index fe5318ce5b..0000000000
--- a/language/greek/greek-fontenc/char-list-luatex.pdf
+++ /dev/null
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list-pdftex.pdf b/language/greek/greek-fontenc/char-list-pdftex.pdf
deleted file mode 100644
index 01fdfc5344..0000000000
--- a/language/greek/greek-fontenc/char-list-pdftex.pdf
+++ /dev/null
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list-tu.pdf b/language/greek/greek-fontenc/char-list-tu.pdf
new file mode 100644
index 0000000000..09f1723f2b
--- /dev/null
+++ b/language/greek/greek-fontenc/char-list-tu.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list-xetex.pdf b/language/greek/greek-fontenc/char-list-xetex.pdf
deleted file mode 100644
index 8ed6ee7210..0000000000
--- a/language/greek/greek-fontenc/char-list-xetex.pdf
+++ /dev/null
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list.pdf b/language/greek/greek-fontenc/char-list.pdf
new file mode 100644
index 0000000000..d48279f17f
--- /dev/null
+++ b/language/greek/greek-fontenc/char-list.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/char-list.tex b/language/greek/greek-fontenc/char-list.tex
index 72b993393e..027065bb0d 100644
--- a/language/greek/greek-fontenc/char-list.tex
+++ b/language/greek/greek-fontenc/char-list.tex
@@ -1,24 +1,25 @@
\documentclass[a4paper]{article}
-
+\usepackage[left=3.5cm, right=3.5cm]{geometry}
\ifdefined \UnicodeEncodingName
\usepackage{fontspec}
- \setmainfont{FreeSerif}
- % \setmainfont{Linux Libertine O}
+ % The Harfbuzz renderer provides selection of pre-composed characters
+ % (NFC normalization) with LuaTeX
+ \setmainfont[Renderer=Harfbuzz]{FreeSerif}
+ % \setmainfont[Renderer=Harfbuzz]{Linux Libertine O}
\ifdefined\luatexversion
- \newcommand*{\texengine}{LuaLaTeX}
+ \newcommand*{\texengine}{LuaTeX}
\else
- \newcommand*{\texengine}{XeLaTeX}
+ \newcommand*{\texengine}{XeTeX}
\fi
\newcommand*{\ux}[2]{#1}
\else
\usepackage[LGR,T1]{fontenc}
\usepackage{lmodern}
- \newcommand*{\texengine}{pdfLaTeX}
+ \newcommand*{\texengine}{pdfTeX}
\newcommand*{\ux}[2]{#2}
\fi
-
% Load encoding definitions
\usepackage[normalize-symbols]{textalpha} % "Greek script everywhere"
@@ -55,6 +56,7 @@
\providecommand*{\greekfontencoding}{undefined}
\newcommand{\cs}[1]{\texttt{\textbackslash#1}}
+\newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}}
% print the selected language variant
\newcommand*{\GreekLanguageVariant}{%
@@ -74,14 +76,8 @@
& \Greek{#1} & \Greek{\MakeUppercase{#1}} & \Greek{\MakeLowercase{#1}}
}
-\newcommand*{\TestUppercase}[1]{%
- \Greek{#1 → \MakeUppercase{#1}}%
-}
+\newcommand*{\TestUppercase}[1]{\Greek{#1 → \MakeUppercase{#1}}}
-% % Test: pre-composed characters with LuaTeX
-% \ifdefined\luatexversion
-% \DeclareUnicodeComposite{\'}{Α} {"0386} % Ά
-% \fi
% -----------------------------------------------------------------------
@@ -92,7 +88,7 @@
\maketitle
\abstract{ \noindent This document lists all Greek characters that are
-supported by \emph{greek-fontenc}. It also tests the outcome of
+supported by \emph{greek-fontenc} and tests the outcome of
\cs{MakeUppercase} and \cs{MakeLowercase} for different input variants
(literal input, LICR%
\footnote{LaTeX internal character representation}
@@ -140,13 +136,13 @@ Characters from the Greek and Coptic Unicode block that are supported by
\begin{longtable}{llll}
x0374 \Cases{ ʹ \textdexiakeraia{} } \\
x0375 \Cases{ ͵ \textaristerikeraia{} } \\
- x037A \Cases{ ͺ { }\ypogegrammeni{} { }\ypogegrammeni{} \ux{ͺ} {| |} } \\
- 0x37E \Cases{ ; \texterotimatiko{} \texterotimatiko{} \ux{;} {? ?} } \\
+ x037A \Cases{ ͺ { }\ypogegrammeni{} \ux{} {| } } \\
+ x037E \Cases{ ; \texterotimatiko{} \ux{} {? } } \\
\\
- x0384 \Cases{ ΄ \acctonos{ } \'{ } \ux{΄} {\'{} '} } \\
+ x0384 \Cases{ ΄ \acctonos{ } \'{ } \ux{} {\'{} '} } \\
x0385 \Cases{ ΅ \accdialytikatonos{ } \"'{ } \ux{\"'{}} {\"'{} "'} } \\
x0386 \Cases{ Ά \acctonos\textAlpha{} \'\textAlpha{} \ux{\'Α} {\'A 'A} } \\
- x0387 \Cases{ · \textanoteleia{} \textanoteleia{} \ux{·} {; ;} } \\
+ x0387 \Cases{ · \textanoteleia{} \textanoteleia{} \ux{} {; ;} } \\
x0388 \Cases{ Έ \acctonos\textEpsilon{} \'\textEpsilon{} \ux{\'Ε} {\'E 'E} } \\
x0389 \Cases{ Ή \acctonos\textEta{} \'\textEta{} \ux{\'Η} {\'H 'H} } \\
x038A \Cases{ Ί \acctonos\textIota{} \'\textIota{} \ux{\'Ι} {\'I 'I} } \\
@@ -154,76 +150,81 @@ Characters from the Greek and Coptic Unicode block that are supported by
x038E \Cases{ Ύ \acctonos\textUpsilon{} \'\textUpsilon{} \ux{\'Υ} {\'U 'U} } \\
x038F \Cases{ Ώ \acctonos\textOmega{} \'\textOmega{} \ux{\'Ω} {\'W 'W} } \\
\\
- x0390 \Cases{ ΐ \accdialytikatonos\textiota{} \'"\textiota{} \ux{\'"ι \"'ι \'\"ι \"\'ι} {\'"i \"'i \'\"i \"\'i '"i "'i} } \\
- x0391 \Cases{ Α \textAlpha{} \textAlpha{} \ux{Α} {A A } } \\
- x0392 \Cases{ Β \textBeta{} \textBeta{} \ux{Β} {B B } } \\
- x0393 \Cases{ Γ \textGamma{} \textGamma{} \ux{Γ} {G G } } \\
- x0394 \Cases{ Δ \textDelta{} \textDelta{} \ux{Δ} {D D } } \\
- x0395 \Cases{ Ε \textEpsilon{} \textEpsilon{} \ux{Ε} {E E } } \\
- x0396 \Cases{ Ζ \textZeta{} \textZeta{} \ux{Ζ} {Z Z } } \\
- x0397 \Cases{ Η \textEta{} \textEta{} \ux{Η} {H H } } \\
- x0398 \Cases{ Θ \textTheta{} \textTheta{} \ux{Θ} {J J } } \\
- x0399 \Cases{ Ι \textIota{} \textIota{} \ux{Ι} {I I } } \\
- x039A \Cases{ Κ \textKappa{} \textKappa{} \ux{Κ} {K K } } \\
- x039B \Cases{ Λ \textLambda{} \textLambda{} \ux{Λ} {L L } } \\
- x039C \Cases{ Μ \textMu{} \textMu{} \ux{Μ} {M M } } \\
- x039D \Cases{ Ν \textNu{} \textNu{} \ux{Ν} {N N } } \\
- x039E \Cases{ Ξ \textXi{} \textXi{} \ux{Ξ} {X X } } \\
- x039F \Cases{ Ο \textOmicron{} \textOmicron{} \ux{Ο} {O O } } \\
+ x0390 \Cases{ ΐ \accdialytikatonos\textiota{} \'"\textiota{} \ux{\'"ι \"'ι \'\"ι \"\'ι} {\'"i \"'i \'\"i \"\'i '"i "'i}}%
+ \ux{}{\footnote{With the pre-2022 \cs{MakeUppercase} and literal input,
+ the order of combined accents involving the dialytika is important,
+ e.g., \texttt{"'i} results in \Greek{"'i → "vI}.}} \\
+ x0391 \Cases{ Α \textAlpha{} \ux{} {A } } \\
+ x0392 \Cases{ Β \textBeta{} \ux{} {B } } \\
+ x0393 \Cases{ Γ \textGamma{} \ux{} {G } } \\
+ x0394 \Cases{ Δ \textDelta{} \ux{} {D } } \\
+ x0395 \Cases{ Ε \textEpsilon{} \ux{} {E } } \\
+ x0396 \Cases{ Ζ \textZeta{} \ux{} {Z } } \\
+ x0397 \Cases{ Η \textEta{} \ux{} {H } } \\
+ x0398 \Cases{ Θ \textTheta{} \textvarTheta{} \ux{} {J } } \\
+ x0399 \Cases{ Ι \textIota{} \ux{} {I } } \\
+ x039A \Cases{ Κ \textKappa{} \ux{} {K } } \\
+ x039B \Cases{ Λ \textLambda{} \ux{} {L } } \\
+ x039C \Cases{ Μ \textMu{} \ux{} {M } } \\
+ x039D \Cases{ Ν \textNu{} \ux{} {N } } \\
+ x039E \Cases{ Ξ \textXi{} \ux{} {X } } \\
+ x039F \Cases{ Ο \textOmicron{} \ux{} {O } } \\
\\
- 0x3A0 \Cases{ Π \textPi{} \textPi{} \ux{Π} {P P } } \\
- 0x3A1 \Cases{ Ρ \textRho{} \textRho{} \ux{Ρ} {R R } } \\
- 0x3A3 \Cases{ Σ \textSigma{} \textSigma{} \ux{Σ} {S S } } \\
- 0x3A4 \Cases{ Τ \textTau{} \textTau{} \ux{Τ} {T T } } \\
- 0x3A5 \Cases{ Υ \textUpsilon{} \textUpsilon{} \ux{Υ} {U U } } \\
- 0x3A6 \Cases{ Φ \textPhi{} \textPhi{} \ux{Φ} {F F } } \\
- 0x3A7 \Cases{ Χ \textChi{} \textChi{} \ux{Χ} {Q Q } } \\
- 0x3A8 \Cases{ Ψ \textPsi{} \textPsi{} \ux{Ψ} {Y Y } } \\
- 0x3A9 \Cases{ Ω \textOmega{} \textOmega{} \ux{Ω} {W W } } \\
+ 0x3A0 \Cases{ Π \textPi{} \ux{} {P } } \\
+ 0x3A1 \Cases{ Ρ \textRho{} \ux{} {R } } \\
+ 0x3A3 \Cases{ Σ \textSigma{} \ux{} {S } }%
+ cf. section~\ref{sec:sigma} \\
+ 0x3A4 \Cases{ Τ \textTau{} \ux{} {T } } \\
+ 0x3A5 \Cases{ Υ \textUpsilon{} \ux{} {U } } \\
+ 0x3A6 \Cases{ Φ \textPhi{} \ux{} {F } } \\
+ 0x3A7 \Cases{ Χ \textChi{} \ux{} {Q } } \\
+ 0x3A8 \Cases{ Ψ \textPsi{} \ux{} {Y } } \\
+ 0x3A9 \Cases{ Ω \textOmega{} \ux{} {W } } \\
0x3AA \Cases{ Ϊ \accdialytika\textIota{} \"\textIota{} \ux{\"Ι} {\"I "I } } \\
0x3AB \Cases{ Ϋ \accdialytika\textUpsilon{} \"\textUpsilon{} \ux{\"Υ} {\"U "U } } \\
0x3AC \Cases{ ά \acctonos\textalpha{} \'\textalpha{} \ux{\'α} {\'a 'a } } \\
0x3AD \Cases{ έ \acctonos\textepsilon{} \'\textepsilon{} \ux{\'ε} {\'e 'e } } \\
0x3AE \Cases{ ή \acctonos\texteta{} \'\texteta{} \ux{\'η} {\'h 'h } } \\
0x3AF \Cases{ ί \acctonos\textiota{} \'\textiota{} \ux{\'ι} {\'i 'i } } \\
- \\
+ \\
x03B0 \Cases{ ΰ \accdialytikatonos\textupsilon{} \"'\textupsilon{} \ux{\"'υ \'"υ \'\"υ \"\'υ} {\'"u \"'u \'\"u \"\'u '"u "'u} } \\
- x03B1 \Cases{ α \textalpha{} \textalpha{} \ux{α} {a a } } \\
- x03B2 \Cases{ β \textbeta{} \textbeta{} \ux{β} {b b } } \\
- x03B3 \Cases{ γ \textgamma{} \textgamma{} \ux{γ} {g g } } \\
- x03B4 \Cases{ δ \textdelta{} \textdelta{} \ux{δ} {d d } } \\
- x03B5 \Cases{ ε \textepsilon{} \textepsilon{} \ux{ε} {e e } } \\
- x03B6 \Cases{ ζ \textzeta{} \textzeta{} \ux{ζ} {z z } } \\
- x03B7 \Cases{ η \texteta{} \texteta{} \ux{η} {h h } } \\
- x03B8 \Cases{ θ \texttheta{} \texttheta{} \ux{θ} {j j } } \\
- x03B9 \Cases{ ι \textiota{} \textiota{} \ux{ι} {i i } } \\
- x03BA \Cases{ κ \textkappa{} \textkappa{} \ux{κ} {k k } } \\
- x03BB \Cases{ λ \textlambda{} \textlambda{} \ux{λ} {l l } } \\
- x03BC \Cases{ μ \textmu{} \textmu{} \ux{μ} {m m } } \\
- x03BD \Cases{ ν \textnu{} \textnu{} \ux{ν} {n n } } \\
- x03BE \Cases{ ξ \textxi{} \textxi{} \ux{ξ} {x x } } \\
- x03BF \Cases{ ο \textomicron{} \textomicron{} \ux{ο} {o o } } \\
+ x03B1 \Cases{ α \textalpha{} \ux{} {a } } \\
+ x03B2 \Cases{ β \textbeta{} \ux{} {b } } \\
+ x03B3 \Cases{ γ \textgamma{} \ux{} {g } } \\
+ x03B4 \Cases{ δ \textdelta{} \ux{} {d } } \\
+ x03B5 \Cases{ ε \textepsilon{} \textvarepsilon{} \ux{} {e } } \\
+ x03B6 \Cases{ ζ \textzeta{} \ux{} {z } } \\
+ x03B7 \Cases{ η \texteta{} \ux{} {h } } \\
+ x03B8 \Cases{ θ \texttheta{} \ux{} {j } } \\
+ x03B9 \Cases{ ι \textiota{} \ux{} {i } } \\
+ x03BA \Cases{ κ \textkappa{} \ux{} {k } } \\
+ x03BB \Cases{ λ \textlambda{} \ux{} {l } } \\
+ x03BC \Cases{ μ \textmu{} \ux{} {m } } \\
+ x03BD \Cases{ ν \textnu{} \ux{} {n } } \\
+ x03BE \Cases{ ξ \textxi{} \ux{} {x } } \\
+ x03BF \Cases{ ο \textomicron{} \ux{} {o } } \\
\\
- x03C0 \Cases{ π \textpi{} \textpi{} \ux{π} {p p } } \\
- x03C1 \Cases{ ρ \textrho{} \textrho{} \ux{ρ} {r r } } \\
- x03C2 \Cases{ ς \textfinalsigma{} \textfinalsigma{} \ux{ς} {s s } } \\
- x03C3 \Cases{ σ \textsigma{} \textsigma{} \ux{σ} {s\textcompwordmark{} sv } } \\
- x03C4 \Cases{ τ \texttau{} \texttau{} \ux{τ} {t t } } \\
- x03C5 \Cases{ υ \textupsilon{} \textupsilon{} \ux{υ} {u u } } \\
- x03C6 \Cases{ φ \textphi{} \textphi{} \ux{φ} {f f } } \\
- x03C7 \Cases{ χ \textchi{} \textchi{} \ux{χ} {q q } } \\
- x03C8 \Cases{ ψ \textpsi{} \textpsi{} \ux{ψ} {y y } } \\
- x03C9 \Cases{ ω \textomega{} \textomega{} \ux{ω} {w w } } \\
+ x03C0 \Cases{ π \textpi{} \ux{} {p } } \\
+ x03C1 \Cases{ ρ \textrho{} \ux{} {r } } \\
+ x03C2 \Cases{ ς \textfinalsigma{} \textvarsigma{} \ux{} {s } } \\
+ x03C3 \Cases{ σ \textsigma{} \textsigma{} \ux{} {s\textcompwordmark{} sv } }
+ \ux{}{sic!\footnote{transliteration \texttt{sv} fails in uppercase}} \\
+ x03C4 \Cases{ τ \texttau{} \ux{} {t } } \\
+ x03C5 \Cases{ υ \textupsilon{} \ux{} {u } } \\
+ x03C6 \Cases{ φ \textphi{} \textvarphi{} \ux{} {f } } \\
+ x03C7 \Cases{ χ \textchi{} \ux{} {q } } \\
+ x03C8 \Cases{ ψ \textpsi{} \ux{} {y } } \\
+ x03C9 \Cases{ ω \textomega{} \ux{} {w } } \\
x03CA \Cases{ ϊ \accdialytika\textiota{} \"\textiota{} \ux{\"ι} {\"i "i } } \\
x03CB \Cases{ ϋ \accdialytika\textupsilon{} \"\textupsilon{} \ux{\"υ} {\"u "u } } \\
x03CC \Cases{ ό \acctonos\textomicron{} \'\textomicron{} \ux{\'ο} {\'o 'o } } \\
x03CD \Cases{ ύ \acctonos\textupsilon{} \'\textupsilon{} \ux{\'υ} {\'u 'u } } \\
x03CE \Cases{ ώ \acctonos\textomega{} \'\textomega{} \ux{\'ω } {\'w 'w } } \\
- \\
- x03D0 \Cases{ ϐ \textbetasymbol } \\
- x03D1 \Cases{ ϑ \textthetasymbol } \\
- x03D5 \Cases{ ϕ \textphisymbol } \\
- x03D6 \Cases{ ϖ \textpisymbol } \\
+ \\
+ x03D0 \Cases{ ϐ \textbetasymbol{} \textvarbeta{} } \\
+ x03D1 \Cases{ ϑ \textthetasymbol{} \textvartheta{} } \\
+ x03D5 \Cases{ ϕ \textphisymbol{} } \\
+ x03D6 \Cases{ ϖ \textpisymbol{} \textvarpi{} } \\
x03D8 \Cases{ Ϙ \textQoppa{} } \\
x03D9 \Cases{ ϙ \textqoppa{} } \\
x03DA \Cases{ Ϛ \textStigma{} } \\
@@ -236,10 +237,10 @@ Characters from the Greek and Coptic Unicode block that are supported by
x03E0 \Cases{ Ϡ \textSampi{} } \\
x03E1 \Cases{ ϡ \textsampi{} } \\
\\
- x03F0 \Cases{ ϰ \textkappasymbol } \\
- x03F1 \Cases{ ϱ \textrhosymbol } \\
- x03F4 \Cases{ ϴ \textThetasymbol } \\
- x03F5 \Cases{ ϵ \textepsilonsymbol } \\
+ x03F0 \Cases{ ϰ \textkappasymbol{} \textvarkappa{} } \\
+ x03F1 \Cases{ ϱ \textrhosymbol{} \textvarrho{} } \\
+ x03F4 \Cases{ ϴ \textThetasymbol{} } \\
+ x03F5 \Cases{ ϵ \textepsilonsymbol{} } \\
\end{longtable}
@@ -452,36 +453,42 @@ Characters from the Greek and Coptic Unicode block that are supported by
x1FCE \Cases{ ῎ \accpsilioxia{} \>'{} \ux{\>'{} \'>{}} {\>'{} >'} } \\
x1FCF \Cases{ ῏ \accpsiliperispomeni{} \~>{} \ux{\>~{} \~>{}} {\~>{} ~>} } \\
\\
- x1FD0 \Cases{ ῐ \u\textiota{} \u\textiota{} \ux{\u{ι}} {\u{i} \u{i}} } \\
- x1FD1 \Cases{ ῑ \=\textiota{} \=\textiota{} \ux{\=ι} {\=i \=i} } \\
- x1FD2 \Cases{ ῒ \accdialytikavaria\textiota{} \`"\textiota{} \ux{\`"ι \"`ι \`\"ι \"\`ι} {\`"i `"i} } \\
- x1FD3 \Cases{ ΐ \accdialytikatonos\textiota{} \'"\textiota{} \ux{\'"ι \"'ι \'\"ι \"\'ι} {\'"i '"i} } \\
- x1FD6 \Cases{ ῖ \accperispomeni\textiota{} \~\textiota{} \ux{\~ι } {\~i ~i} } \\
- x1FD7 \Cases{ ῗ \accdialytikaperispomeni\textiota{} \~"\textiota{} \ux{\~"ι \"~ι \~\"ι \"\~ι} {\~"i ~"i} } \\
- x1FD8 \Cases{ Ῐ \u\textIota{} \u\textIota{} \ux{\u{Ι}} {\u{I} \u{I}} } \\
- x1FD9 \Cases{ Ῑ \=\textIota{} \=\textIota{} \ux{\=Ι} {\=I \=I} } \\
- x1FDA \Cases{ Ὶ \accvaria\textIota{} \`\textIota{} \ux{\`Ι} {\`I `I} } \\
- x1FDB \Cases{ Ί \accoxia\textIota{} \'\textIota{} \ux{\'Ι} {\'I 'I} } \\
- x1FDD \Cases{ ῝ \accdasiavaria{} \<`{} \ux{\<`{} \`<{}} {\<`{} <`} } \\
- x1FDE \Cases{ ῞ \accdasiaoxia{} \<'{} \ux{\<'{} \'<{}} {\<'{} <'} } \\
- x1FDF \Cases{ ῟ \accdasiaperispomeni{} \~<{} \ux{\<~{} \~<{}} {\~<{} ~<} } \\
- \\
- x1FE0 \Cases{ ῠ \u\textupsilon{} \u\textupsilon{} \ux{\u{υ}} {\u{u} } } \\
- x1FE1 \Cases{ ῡ \=\textupsilon{} \=\textupsilon{} \ux{\=υ} {\=u } } \\
- x1FE2 \Cases{ ῢ \accdialytikavaria\textupsilon{} \`"\textupsilon{} \ux{\`"υ \"`υ \`\"υ \"\`υ} {\`"u \"`u \`\"u \"\`u `"u "`u} } \\
- x1FE3 \Cases{ ΰ \accdialytikatonos\textupsilon{} \'"\textupsilon{} \ux{\'"υ \"'υ \'\"υ \"\'υ} {\'"u \"'u \'\"u \"\'u '"u "'u} } \\
- x1FE4 \Cases{ ῤ \accpsili\textrho{} \>\textrho{} \ux{\>ρ} {\>r >r } } \\
- x1FE5 \Cases{ ῥ \accdasia\textrho{} \<\textrho{} \ux{\<ρ} {\<r <r } } \\
- x1FE6 \Cases{ ῦ \accperispomeni\textupsilon{} \~\textupsilon{} \ux{\~υ} {\~u ~u } } \\
- x1FE7 \Cases{ ῧ \accdialytikaperispomeni\textupsilon{} \~"\textupsilon{} \ux{\~"υ \"~υ \~\"υ \"\~υ} {\~"u \"~u \~\"u \"\~u ~"u "~u} } \\
- x1FE8 \Cases{ Ῠ \u\textUpsilon{} \u\textUpsilon{} \ux{\u{Υ}} {\u{U} \u{U}} } \\
- x1FE9 \Cases{ Ῡ \=\textUpsilon{} \=\textUpsilon{} \ux{\=Υ} {\=U \=U} } \\
- x1FEA \Cases{ Ὺ \accvaria\textUpsilon{} \`\textUpsilon{} \ux{\`Υ} {\`U `U} } \\
- x1FEB \Cases{ Ύ \accoxia\textUpsilon{} \'\textUpsilon{} \ux{\'Υ} {\'U 'U} } \\
- x1FEC \Cases{ Ῥ \accdasia\textRho{} \<\textRho{} \ux{\<Ρ} {\<R <R} } \\
- x1FED \Cases{ ῭ \accdialytikavaria{} \`"{} \ux{\`"{} \"`{}} {\`"{} `"} } \\
- x1FEE \Cases{ ΅ \accdialytikatonos{} \'"{} \ux{\'"{} \"'{}} {\'"{} '"} } \\
- x1FEF \Cases{ ` \accvaria{} \`{} \ux{\`{}} {\`{} `} } \\
+ x1FD0 \Cases{ ῐ \u\textiota{} \u\textiota{} \ux{\u{ι}} {\u{i} \u{i}} } \\
+ x1FD1 \Cases{ ῑ \=\textiota{} \=\textiota{} \ux{\=ι} {\=i \=i} } \\
+ x1FD2 \Cases{ ῒ \accdialytikavaria\textiota{} \`"\textiota{} \`\"\textiota{}
+ \"`\textiota{} \"\`\textiota{} \ux{\`"ι \"`ι \`\"ι \"\`ι} {\`"i `"i} } \\
+ x1FD3 \Cases{ ΐ \accdialytikatonos\textiota{} \'"\textiota{} \'\"\textiota{}
+ \"'\textiota{} \"\'\textiota{} \ux{\'"ι \"'ι \'\"ι \"\'ι} {\'"i '"i} } \\
+ x1FD6 \Cases{ ῖ \accperispomeni\textiota{} \~\textiota{} \ux{\~ι } {\~i ~i} } \\
+ x1FD7 \Cases{ ῗ \accdialytikaperispomeni\textiota{} \~"\textiota{} \~\"\textiota{}
+ \"~\textiota{} \"\~\textiota{} \ux{\~"ι \"~ι \~\"ι \"\~ι} {\~"i ~"i} } \\
+ x1FD8 \Cases{ Ῐ \u\textIota{} \u\textIota{} \ux{\u{Ι}} {\u{I} \u{I}} } \\
+ x1FD9 \Cases{ Ῑ \=\textIota{} \=\textIota{} \ux{\=Ι} {\=I \=I} } \\
+ x1FDA \Cases{ Ὶ \accvaria\textIota{} \`\textIota{} \ux{\`Ι} {\`I `I} } \\
+ x1FDB \Cases{ Ί \accoxia\textIota{} \'\textIota{} \ux{\'Ι} {\'I 'I} } \\
+ x1FDD \Cases{ ῝ \accdasiavaria{} \<`{} \ux{\<`{} \`<{}} {\<`{} <`} } \\
+ x1FDE \Cases{ ῞ \accdasiaoxia{} \<'{} \ux{\<'{} \'<{}} {\<'{} <'} } \\
+ x1FDF \Cases{ ῟ \accdasiaperispomeni{} \~<{} \ux{\<~{} \~<{}} {\~<{} ~<} } \\
+ \\
+ x1FE0 \Cases{ ῠ \u\textupsilon{} \u\textupsilon{} \ux{\u{υ}} {\u{u} } } \\
+ x1FE1 \Cases{ ῡ \=\textupsilon{} \=\textupsilon{} \ux{\=υ} {\=u } } \\
+ x1FE2 \Cases{ ῢ \accdialytikavaria\textupsilon{} \`"\textupsilon{} \`\"\textupsilon{}
+ \"`\textupsilon{} \"\`\textupsilon{} \ux{\`"υ \"`υ \`\"υ \"\`υ} {\`"u \"`u \`\"u \"\`u `"u "`u} } \\
+ x1FE3 \Cases{ ΰ \accdialytikatonos\textupsilon{} \'"\textupsilon{} \'\"\textupsilon{}
+ \"'\textupsilon{} \"\'\textupsilon{} \ux{\'"υ \"'υ \'\"υ \"\'υ} {\'"u \"'u \'\"u \"\'u '"u "'u} } \\
+ x1FE4 \Cases{ ῤ \accpsili\textrho{} \>\textrho{} \ux{\>ρ} {\>r >r } } \\
+ x1FE5 \Cases{ ῥ \accdasia\textrho{} \<\textrho{} \ux{\<ρ} {\<r <r } } \\
+ x1FE6 \Cases{ ῦ \accperispomeni\textupsilon{} \~\textupsilon{} \ux{\~υ} {\~u ~u } } \\
+ x1FE7 \Cases{ ῧ \accdialytikaperispomeni\textupsilon{} \~"\textupsilon{} \~\"\textupsilon{}
+ \"~\textupsilon{} \"\~\textupsilon{} \ux{\~"υ \"~υ \~\"υ \"\~υ} {\~"u \"~u \~\"u \"\~u ~"u "~u} } \\
+ x1FE8 \Cases{ Ῠ \u\textUpsilon{} \u\textUpsilon{} \ux{\u{Υ}} {\u{U} \u{U}} } \\
+ x1FE9 \Cases{ Ῡ \=\textUpsilon{} \=\textUpsilon{} \ux{\=Υ} {\=U \=U} } \\
+ x1FEA \Cases{ Ὺ \accvaria\textUpsilon{} \`\textUpsilon{} \ux{\`Υ} {\`U `U} } \\
+ x1FEB \Cases{ Ύ \accoxia\textUpsilon{} \'\textUpsilon{} \ux{\'Υ} {\'U 'U} } \\
+ x1FEC \Cases{ Ῥ \accdasia\textRho{} \<\textRho{} \ux{\<Ρ} {\<R <R} } \\
+ x1FED \Cases{ ῭ \accdialytikavaria{} \`"{} \ux{\`"{} \"`{}} {\`"{} `"} } \\
+ x1FEE \Cases{ ΅ \accdialytikatonos{} \'"{} \ux{\'"{} \"'{}} {\'"{} '"} } \\
+ x1FEF \Cases{ ` \accvaria{} \`{} \ux{\`{}} {\`{} `} } \\
\\
x1FE3 \Cases{ ῲ \accvaria\textomega\ypogegrammeni{} \`\textomega\ypogegrammeni{} \ux{\`ω\ypogegrammeni{}} {\`w| `w|} } \\
x1FE4 \Cases{ ῳ \textomega\ypogegrammeni{} \textomega\ypogegrammeni{} \ux{ω\ypogegrammeni{}} {w| w|} } \\
@@ -500,56 +507,78 @@ Characters from the Greek and Coptic Unicode block that are supported by
\section{Discussion}
-\subsection{Differences between literal input and LICRs}
+\subsection{Pre-composed vs. combining characters}
Under pdfTeX and XeTeX, all input variants select pre-composed characters
-if possible (\href{https://www.unicode.org/reports/tr15/}{Unicode
-normalization} NFC).
-Under luaTeX, accent macros on a literal character are printed using
-combining diacritical marks. This leads to suboptimal placement of
-diacritics with many fonts, often resulting in illegible output.
-
-\subsubsection{Upcasing}
-
-Up to 2022, diacritics were dropped from Greek letters in UPPERCASE in any
-locale. The new \cs{MakeUppercase} implementation follows the Unicode
-standard, where dropping diacritics is a feature of the Greek locale (``el'').
-
-However, ``named'' accent macros with Greek names behave according to Greek
-typsetting rules in \emph{all} locales.
-The current implementation also drops diacritics input via standard accent
-macros in documents that declare the Greek language with Babel.
-
-Apart from the diacritical marks native to Greek itself, linguists also
-regularly mark vowel length with macrons (¯) and breves (˘).
-The length markers are used in dictionaries and textbooks
-but not part of the Greek orthography. There is no established praxis
-regarding their handling in uppercase. LaTeX keeps them but
-the \href{https://icu.unicode.org/design/case/greek-upper}{%
-Unicode reference implementation} drops them.
-
-Greek stand-alone diacritics are dropped by \cs{MakeUppercase} if input via
-accent macros (e.g. \cs{accdialytika} or \cs{'>}).
-
-
-\subsubsection{Sigma, final sigma, and ``autosigma''}
+if possible (using the NFC
+\href{https://www.unicode.org/reports/tr15/}{Unicode normalization}
+with XeTeX and ligature definitions in LGR fonts under pdfTeX).
+
+The default LuaTeX renderer does no NFC normalization.
+This leads to sub-optimal placement of diacritics with many fonts,
+often resulting in illegible output.
+NFC normalization for LuaTeX is provided by the \pkgref{uninormalize}
+package and, alternatively, by the \emph{Harfbuzz} renderer that can be
+selected with the \verb|[Renderer=Harfbuzz]| option of the \pkgref{fontspec}
+font selection commands. This document uses the Harfbuzz renderer with LuaTeX.
+
+
+\subsection{Case changing}
+
+\subsubsection{Diacritics}
+
+According to Greek typographical conventions, most\footnote{
+ Exceptions are the diaeresis, the sub-iota, and the
+ length markers macron (¯) and breve (˘).
+ The length markers are used in dictionaries and textbooks but not
+ part of the Greek orthography. There is no established practice
+ regarding their handling in uppercase. LaTeX keeps them but the
+ \href{https://icu.unicode.org/design/case/greek-upper}
+ {Unicode reference implementation} drops them.
+}
+diacritics are dropped in UPPERCASE. Up to 2022, \cs{MakeUppercase}
+dropped diacritics from Greek letters in any locale
+(except for standard accent macros).
+
+For \emph{literal characters}, the new \cs{MakeUppercase}
+implementation follows the Unicode standard, where dropping diacritics is a
+feature of the Greek locale (``el'').
+However, \emph{accent macros} behave according to Greek typesetting
+rules in \emph{all} locales (standard accent macros only in documents that
+declare the Greek language with Babel).
+
+\newcommand*{\sample}{\'a \`e \"i \~o \'u}%
+Since version 1.14, babel-greek maps standard accent macros
+to ``capital'' versions to fix uppercasing accented Greek letters with the new
+\cs{MakeUppercase}.
+The default expansion ensures that accents are kept on Latin letters:
+\sample{} → \MakeUppercase{\sample}.
+It also works if the Language is set to Greek:
+\TestUppercase{\ensureascii{\sample}}.
+\ifdefined \UnicodeEncodingName
+\else
+ (Mind, that with 8-bit TeX Latin letters are interpreted as transliteration
+ input and converted to Greek if not wrapped in \cs{ensureascii}:
+ \TestUppercase{\sample}.)
+\fi
-There are two variants of the lower case letter \emph{sigma}.
-The lowercasing \ensuregreek{Σ} should select a final sigma at the end of a
-word: \ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}.
+\subsubsection{Sigma, final sigma, and ``autosigma'' \label{sec:sigma}}
-Since 2022, \cs{MakeLowercase} selects the correct sigma variant for a
-literal Sigma under Xe/LuaTeX, too.
+There are two variants of the small letter \emph{sigma}.
-The \cs{textSigma} \emph{macro} is mapped to \verb|\textautosigma| which
-under 8-bit TeX prints the sigma variant according to its position but,
-unfortunately, fails with Unicode fonts:
+Lowercasing a capital \ensuregreek{Σ} at the end of a word should print a
+final sigma. This works as expected with 8-bit TeX and, since 2022, also
+with Xe/LuaTeX and a literal Sigma: \ensuregreek{ΣΣ → \MakeLowercase{ΣΣ}}.
+However, it fails with the \cs{textSigma} macro and Unicode fonts:
\ensuregreek{\textSigma\textSigma{} → \MakeLowercase{\textSigma\textSigma}}.
-In LGR, you can add a ZWNJ or use the \verb|\noboundary| macro to prevent the
-conversion to a final sigma: \ensuregreek{\MakeLowercase{ΣΣ‌}}.
-
+\ifdefined \UnicodeEncodingName
+\else
+ With 8-bit TeX, you can add a ZWNJ or use the \cs{noboundary} macro
+ to prevent the conversion to a final sigma:
+ \ensuregreek{\MakeLowercase{ΣΣ‌}}.
+\fi
\subsubsection{%
The one-letter word
@@ -561,62 +590,95 @@ conversion to a final sigma: \ensuregreek{\MakeLowercase{ΣΣ‌}}.
(or)}
For disambiguation, the Greek word \emph{or} (ή / ἢ) keeps diacritics in
-UPPERCASE:
+UPPERCASE.
+The 2022 MakeUppercase handles this for literal input.
\TestUppercase{ή Ή ἢ Ἢ ἤ Ἤ }.\footnote{
- TODO: The polytonic variant with dasia and oxia used in
+ TODO: The polytonic variant ETA WITH DASIA AND OXIA used in
ἢ … ἤ (\emph{either … or}) drops diacritics!
By mistake, omission, or intent?}
-\noindent However, eta drops diacritics if it is part of a word:
+\noindent Currently, this feature is not supported with other input methods.
+
+Diacritics are dropped from eta if it is part of a word:
\TestUppercase{ήτοι, Ήτοι, επιταγή ἤτοι, Ἤτοι}.%
\footnote{TODO: It seems the test is only for whitespace on both sides:
\TestUppercase{ή, Ή. ἢ; Ἢ}
}
-\smallskip\noindent
-TODO: The 2022 MakeUppercase handles this for literal input.
-Currently, this feature is not supported with other input methods.
-
-\subsection{Case conversion if the locale is \emph{not} Greek}
+\subsubsection{Case conversion if the locale is \emph{not} Greek}
+
+Since 2022, \cs{MakeUppercase} keeps diacritics on Greek letters and uses
+combining diacritical characters for characters that have no pre-composed
+uppercase equivalent.
+
+With Xe/LuaTeX, the result may be illegible due to overlapping diacritics.
+With pdfTeX, this led to compiling errors.
+This is fixed in \emph{greek-fontenc} 2.3. by mapping the affected
+characters to macro representations before case conversions
+(requires the 2023 LaTeX release).
+Consequently, with pdfTeX, diacritics are dropped from literal characters
+without pre-composed uppercase equivalent also if the text language is
+\emph{not} Greek.
+
+\renewcommand*{\sample}{ΐΰὐὒὔὖᾶᾷῆῇῒΐῖῗῢΰῤῦῧῶῷ}
+\sample → \MakeUppercase{\sample}
+
+
+\subsubsection{PDF strings}
+
+MakeUppercase in PDF strings led to compiling errors until 2022.
+
+\ifdefined \AddToNoCaseChangeList % introduced with 2022 \MakeUppercase
+ Check the table of contents in the side-bar of a PDF viewer.
+
+ \subsubsection{\TestUppercase{
+ ῒ \accdialytikavaria{\textiota}
+ \"`{\textiota}\"\`{\textiota}\`"{\textiota}\`\"{\textiota}
+ \ux{\accdialytikavaria ι \`"ι \"`ι \`\"ι \"\`ι}
+ {\accdialytikavaria i \`"i \"`i \`\"i \"\`i}}}
+
+ \subsubsection{\TestUppercase{
+ ῢ \accdialytikavaria{\textupsilon}
+ \"`{\textupsilon}\"\`{\textupsilon}\`"{\textupsilon}\`\"{\textupsilon}
+ \ux{\accdialytikavaria υ \`"υ \"`υ \`\"υ \"\`υ}
+ {\accdialytikavaria u \`"u \"`u \`\"u \"\`u}}}
+ \subsubsection{\TestUppercase{
+ ΐ \accdialytikaoxia\textiota{}
+ \"'{\textiota}\"\'{\textiota}\'"{\textiota}\'\"{\textiota}
+ \ux{\accdialytikaoxia ι \'"ι \"'ι \'\"ι \"\'ι}
+ {\accdialytikaoxia i \'"i \"'i \'\"i \"\'i}}}
+ \subsubsection{\TestUppercase{
+ ΰ \accdialytikaoxia\textupsilon{}
+ \"'{\textupsilon}\"\'{\textupsilon}\'"{\textupsilon}\'\"{\textupsilon}
+ \ux{\accdialytikaoxia υ \'"υ \"'υ \'\"υ \"\'υ}
+ {\accdialytikaoxia u \'"u \"'u \'\"u \"\'u}}}
+ \subsubsection{\TestUppercase{ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ}}
+\fi
-In order to fix upcasing for Greek, babel-greek maps standard accent macros
-to ``capital'' versions.\footnote{%
- In case of problems, these mappings can be disabled with the
- \texttt{local-MakeUppercase-fixes} language modifier.}
-The default expansion ensures that accents are
-kept on Latin letters: \'a \`a \~a \"a → \MakeUppercase{\'a \`a \~a \"a}.%
-\footnote{If the Language is set to Greek, this works unless the font encoding
- is 8-bit LGR (where Latin letters are interpreted as Latin transliteration
- anyway): \Greek{\'u \`u \~u \"u \ensureascii{\'u} →
- \MakeUppercase{\'u \`u \~u \"u \ensureascii{\'u}}}.}
+\ux{}{Transliteration input stays Latin in PDF strings.}
-Some characters from the “Greek and Coptic” and “Greek extended” Unicode
-blocks have no pre-composed uppercase equivalent. Since 2022, upcasing them
-led to compiling errors under pdfLaTeX.
-This is fixed in the 2023 LaTeX release by mapping the affected characters
-to macro representations before case conversions:
-with pdfLaTeX, diacritics are dropped from literal characters without
-pre-composed uppercase equivalent also if the text language is \emph{not}
-Greek, with Xe/LuaTeX, combining charactes are used (and may overlap with
-the base letter).
+Diacritics are not dropped from literal characters in text, ToC but not
+PDF sidebar ToC, if the language switch is inside the \cs{section} command.
+(It works if the language is switched before the section command.)
-ΐΰὐὒὔὖᾶᾷῆῇῒΐῖῗῢΰῤῦῧῶῷ → \MakeUppercase{ΐΰὐὒὔὖᾶᾷῆῇῒΐῖῗῢΰῤῦῧῶῷ}
+See \href{hyperref-with-greek.pdf}{hyperref-with-greek.pdf} for a
+comprehensive test.
\subsection{Symbol variants}
-Several Greek letters have alternative representations which may have a
-different semantic in a mathematical context.
-Unicode reserves code points for the alternative representations
-(naming them ``symbol'' as opposed to ``letter'').
+For several Greek letters, there are alternative glyphs which may
+have a different semantic in a mathe­matical context.
+Unicode reserves code points for the alternative glyphs
+(naming them SYMBOL as opposed to LETTER).
Some of these symbols are available as \cs{var<name>} macros in TeX's
mathematical mode.
-In text, they are considered typographical variants without special
-meaning. The 8-bit LGR font encoding does not allocate code points for them.
-\emph{Babel-greek} and the \emph{%
+In text, the alternative glyphs are considered typographical variants
+without special meaning. The 8-bit LGR font encoding does not allocate
+code points for them. \emph{Babel-greek} and the \emph{%
\href{http://mirrors.ctan.org/language/greek/greek-fontenc/textalpha-doc.pdf}
{textalpha}} package provide the \texttt{normalize-symbols} option
(ignored with Xe/LuaTeX) that is also used in this test document.
@@ -692,15 +754,15 @@ A dialytika must be placed on the second vowel if they are dropped:
} (short+LICR)
\TestUppercase{\ux{\'αι \'αυ \'ει \>'αι \>'αυ \>'ει \>αυ}
- {\'ai \'au \'ei \>'ai \>'au \>'ei \>au}
+ {\'ai \'au \'ei \>'ai \>'au \>'ei \>au}
} (short+\ux{literal}{transliteration})
- \TestUppercase{\ux{\'>αι \'>αυ \'>ει \'\>αι \'\>αυ \'\>ει}
- {\'>ai \'>au \'>ei \'\>ai \'\>au \'\>ei}
+ \TestUppercase{\ux{\'\>αι \'\>αυ \'\>ει}
+ {\'\>ai \'\>au \'\>ei}
} (short+\ux{literal}{transliteration}, reversed)
\end{quote}
The ``hiatus feature'' does not work with the LGR ``input ligatures''.
-Support for monotonic literal charactes came with the 2022
+Support for monotonic literal characters came with the 2022
\cs{MakeUppercase} implementation changes.
Since 2023 it also works with polytonic literals (\TestUppercase{ἀυπνία}).
@@ -747,8 +809,8 @@ Rows 3 \ldots 7: Look-ahead (to check for a hiatus) breaks kerning before
% \'AA \'AB \'AG \'AD \'AE \'AZ \'AH \'AJ \'AI \'AK \'AL \'AM \'AN \'AX
% \'AO \'AP \'AR \'AS \'AC \'AT \'AU \'AF \'AQ \'AY \'AW
-Downcasing should keep diacritics (of course, it cannot regenerate
-``manually" dropped ones):
+Lowercasing should keep diacritics (of course, it cannot regenerate
+``manually" drop­ped ones):
\Greek{'A \"I \"U \~<A $\mapsto$ \MakeLowercase{\'A \"I \"U \~<A}}.
@@ -786,11 +848,6 @@ Downcasing should keep diacritics (of course, it cannot regenerate
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.
-
-\item
- With the pre-2022 \cs{MakeUppercase}, the input order is important
- in combined accents involving the dialytika, e.g.,
- \verb|'"i "'i| is upcased \Greek{'"i "'i → \MakeUppercase{'"i "'i}}.
\end{itemize}
\end{document}
diff --git a/language/greek/greek-fontenc/greek-fontenc-doc.html b/language/greek/greek-fontenc/greek-fontenc-doc.html
index a4e4cb9184..d40c4985e2 100644
--- a/language/greek/greek-fontenc/greek-fontenc-doc.html
+++ b/language/greek/greek-fontenc/greek-fontenc-doc.html
@@ -794,7 +794,7 @@ mstyle.mathscr, mi.mathscr {
<p class="subtitle" id="greek-font-encoding-definition-files">Greek font encoding definition files</p>
<dl class="docinfo">
<dt class="version">Version<span class="colon">:</span></dt>
-<dd class="version">2.4 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
+<dd class="version">2.5 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
<dt class="copyright">Copyright<span class="colon">:</span></dt>
<dd class="copyright">© 2010 – 2023 Günter Milde &lt;<a class="reference external" href="mailto:milde&#64;users.sf.net">milde&#64;users.sf.net</a>&gt;</dd>
<dt class="licence">Licence<span class="colon">:</span></dt>
@@ -811,9 +811,9 @@ version 1.3 of this license or any later version.</p>
</dl>
<div class="topic abstract" role="doc-abstract">
<p class="topic-title">Abstract</p>
-<p>The <cite>greek-fontenc</cite> bundle provides LICR<a class="superscript" href="#footnote-1" id="footnote-reference-1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a> macros
-for characters from the Greek script and encoding
-definition files for <a class="reference internal" href="#greek-text-font-encodings">Greek text font encodings</a>.</p>
+<p>The <cite>greek-fontenc</cite> bundle provides encoding definition files
+for <a class="reference internal" href="#greek-text-font-encodings">Greek text font encodings</a> that define LICR<a class="superscript" href="#footnote-1" id="footnote-reference-1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a> macros
+for characters from the Greek script</p>
<p>Included are also the LaTeX packages <a class="reference internal" href="#textalpha">textalpha</a> and <a class="reference internal" href="#alphabeta">alphabeta</a>.</p>
</div>
<aside class="footnote-list superscript">
@@ -841,18 +841,18 @@ Use cases are macro definitions and generated text.</p>
<li><p><a class="reference internal" href="#usage" id="toc-entry-8">Usage</a></p></li>
<li><p><a class="reference internal" href="#greek-text-font-encodings" id="toc-entry-9">Greek text font encodings</a></p>
<ul>
-<li><p><a class="reference internal" href="#t7" id="toc-entry-10">T7</a></p></li>
-<li><p><a class="reference internal" href="#lgr" id="toc-entry-11">LGR</a></p></li>
-<li><p><a class="reference internal" href="#lgi" id="toc-entry-12">LGI</a></p></li>
-<li><p><a class="reference internal" href="#tu" id="toc-entry-13">TU</a></p></li>
-<li><p><a class="reference internal" href="#pu" id="toc-entry-14">PU</a></p></li>
+<li><p><a class="reference internal" href="#lgr" id="toc-entry-10">LGR</a></p></li>
+<li><p><a class="reference internal" href="#tu" id="toc-entry-11">TU</a></p></li>
+<li><p><a class="reference internal" href="#pu" id="toc-entry-12">PU</a></p></li>
+<li><p><a class="reference internal" href="#lgi" id="toc-entry-13">LGI</a></p></li>
+<li><p><a class="reference internal" href="#t7" id="toc-entry-14">T7</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#greek-licr-macro-names" id="toc-entry-15">Greek LICR macro names</a></p>
<ul>
-<li><p><a class="reference internal" href="#letters-and-symbols" id="toc-entry-16">letters and symbols</a></p></li>
-<li><p><a class="reference internal" href="#accent-macros" id="toc-entry-17">accent macros</a></p></li>
-<li><p><a class="reference internal" href="#symbol-variants" id="toc-entry-18">symbol variants</a></p></li>
+<li><p><a class="reference internal" href="#letters-and-symbols" id="toc-entry-16">Letters and symbols</a></p></li>
+<li><p><a class="reference internal" href="#accent-macros" id="toc-entry-17">Accent macros</a></p></li>
+<li><p><a class="reference internal" href="#symbol-variants" id="toc-entry-18">Symbol variants</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#changelog" id="toc-entry-19">Changelog</a></p></li>
@@ -863,24 +863,18 @@ Use cases are macro definitions and generated text.</p>
<h2><a class="toc-backref" href="#toc-entry-1" role="doc-backlink">TeX files and packages</a></h2>
<section id="packages">
<h3><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Packages</a></h3>
-<dl class="simple" id="textalpha">
+<dl id="textalpha">
<dt><a class="reference external" href="textalpha.sty">textalpha.sty</a>: <a class="reference external" href="textalpha.sty.html">Greek symbols in text</a></dt>
-<dd><p>Use <span class="docutils literal">\textalpha</span> … <span class="docutils literal">\textOmega</span> or Greek literal characters<a class="superscript" href="#footnote-2" id="footnote-reference-2" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>
-independent of font encoding and TeX engine.
-Documentation: <a class="reference external" href="textalpha-doc.pdf">textalpha-doc.pdf</a></p>
+<dd><p>Use <span class="docutils literal">\textalpha</span> … <span class="docutils literal">\textOmega</span> or Greek literal characters
+independent of font encoding and TeX engine.</p>
+<p>Documentation: <a class="reference external" href="textalpha-doc.pdf">textalpha-doc.pdf</a></p>
</dd>
<dt id="alphabeta"><a class="reference external" href="alphabeta.sty">alphabeta.sty</a>: <a class="reference external" href="alphabeta.sty.html">Greek symbols in text and math</a></dt>
<dd><p>Use <span class="docutils literal">\alpha</span> … <span class="docutils literal">\Omega</span> independent of text/math mode,
-font encoding, and TeX engine.
-Documentation: <a class="reference external" href="alphabeta-doc.pdf">alphabeta-doc.pdf</a></p>
+font encoding, and TeX engine.</p>
+<p>Documentation: <a class="reference external" href="alphabeta-doc.pdf">alphabeta-doc.pdf</a></p>
</dd>
</dl>
-<aside class="footnote-list superscript">
-<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-2">2</a><span class="fn-bracket">]</span></span>
-<p>requires <a class="reference external" href="https://ctan.org/pkg/greek-inputenc">greek-inputenc</a></p>
-</aside>
-</aside>
</section>
<section id="font-encoding-definitions">
<h3><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Font encoding definitions</a></h3>
@@ -902,12 +896,6 @@ Documentation: <a class="reference external" href="alphabeta-doc.pdf">alphabeta-
<section id="auxiliary-files">
<h3><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Auxiliary files</a></h3>
<dl class="simple">
-<dt><a class="reference external" href="alphabeta-lgr.def">alphabeta-lgr.def</a></dt>
-<dd><p>Composite definitions for <a class="reference internal" href="#alphabeta">alphabeta</a> with 8-bit TeX.</p>
-</dd>
-<dt><a class="reference external" href="alphabeta-tuenc.def">alphabeta-tuenc.def</a></dt>
-<dd><p>Composite definitions for <a class="reference internal" href="#alphabeta">alphabeta</a> with XeTeX/LuaTeX.</p>
-</dd>
<dt><a class="reference external" href="greek-euenc.def">greek-euenc.def</a></dt>
<dd><p>Backwards compatibility file loading <a class="reference external" href="tuenc-greek.def">tuenc-greek.def</a>.</p>
</dd>
@@ -922,27 +910,25 @@ with <a class="reference external" href="https://docutils.sourceforge.io/rst.htm
</section>
<section id="usage-examples-and-test-documents">
<h2><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Usage examples and test documents</a></h2>
-<dl>
-<dt><a class="reference external" href="test-lgrenc.tex">test-lgrenc.tex</a></dt>
-<dd><p>LGR test and usage example. [<a class="reference external" href="test-lgrenc.pdf">test-lgrenc.pdf</a>]</p>
+<dl class="simple">
+<dt><a class="reference external" href="char-list.tex">char-list.tex</a>: <a class="reference external" href="char-list.pdf">char-list.pdf</a>, <a class="reference external" href="char-list-tu.pdf">char-list-tu.pdf</a></dt>
+<dd><p>List of Greek characters supported by <cite>greek-fontenc</cite>.
+Compares input variants and tests chase changing.</p>
</dd>
-<dt><a class="reference external" href="test-tuenc-greek.tex">test-tuenc-greek.tex</a></dt>
-<dd><p>TU test and usage example. [<a class="reference external" href="test-tuenc-greek.pdf">test-tuenc-greek.pdf</a>]</p>
+<dt><a class="reference external" href="char-list-alphabeta.tex">char-list-alphabeta.tex</a>: <a class="reference external" href="char-list-alphabeta.pdf">char-list-alphabeta.pdf</a>, <a class="reference external" href="char-list-alphabeta-tu.pdf">char-list-alphabeta-tu.pdf</a></dt>
+<dd><p>List/test of Greek characters supported by <cite>alphabeta</cite>.</p>
</dd>
-<dt><a class="reference external" href="hyperref-with-greek.tex">hyperref-with-greek.tex</a></dt>
-<dd><p><a class="reference external" href="https://ctan.org/pkg/hyperref">Hyperref</a> test and usage example. [<a class="reference external" href="hyperref-with-greek.pdf">hyperref-with-greek.pdf</a>]</p>
+<dt><a class="reference external" href="hyperref-with-greek.tex">hyperref-with-greek.tex</a>: <a class="reference external" href="hyperref-with-greek.pdf">hyperref-with-greek.pdf</a></dt>
+<dd><p><a class="reference external" href="https://ctan.org/pkg/hyperref">Hyperref</a> test and usage example.</p>
</dd>
-<dt><a class="reference external" href="char-list.tex">char-list.tex</a></dt>
-<dd><p>List of Greek characters supported by <cite>greek-fontenc</cite>. [<a class="reference external" href="char-list.pdf">char-list.pdf</a>]</p>
-<p>Compares input variants and tests chase changing.</p>
+<dt><a class="reference external" href="test-lgrenc.tex">test-lgrenc.tex</a>: <a class="reference external" href="test-lgrenc.pdf">test-lgrenc.pdf</a></dt>
+<dd><p>LGR test and usage example.</p>
</dd>
-<dt><a class="reference external" href="test-licr-input.tex">test-licr-input.tex</a></dt>
-<dd><p>Test LICRs with non-Greek legacy 8-bit input encoding.
-[<a class="reference external" href="test-licr-input.pdf">test-licr-input.pdf</a>]</p>
+<dt><a class="reference external" href="test-tuenc-greek.tex">test-tuenc-greek.tex</a>: <a class="reference external" href="test-tuenc-greek.pdf">test-tuenc-greek.pdf</a></dt>
+<dd><p>TU test and usage example.</p>
</dd>
-<dt><a class="reference external" href="test-diacritics.tex">test-diacritics.tex</a></dt>
-<dd><p>Test Greek diacritics with standard accent macros.
-[<a class="reference external" href="test-diacritics.pdf">test-diacritics.pdf</a>]</p>
+<dt><a class="reference external" href="test-luainputenc.tex">test-luainputenc.tex</a>: <a class="reference external" href="test-luainputenc.pdf">test-luainputenc.pdf</a></dt>
+<dd><p>Test LICRs LuaTeX in 8-bit compatibility mode (with <a class="reference external" href="https://ctan.org/pkg/luainputenc">luainputenc</a>).</p>
</dd>
</dl>
</section>
@@ -1034,51 +1020,33 @@ is loaded after <span class="docutils literal">arabic</span>:</p>
</section>
<section id="greek-text-font-encodings">
<h2><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">Greek text font encodings</a></h2>
-<p>Greek TeX font encodings are the envisaged <a class="reference internal" href="#t7">T7</a>, <a class="reference internal" href="#lgr">LGR</a>, and <a class="reference internal" href="#lgi">LGI</a>.
-Greek letters and symbols are also defined in the Unicode-based font
-encodings <a class="reference internal" href="#tu">TU</a>, and <a class="reference internal" href="#pu">PU</a>.</p>
-<section id="t7">
-<h3><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">T7</a></h3>
-<p>The <a class="citation-reference" href="#encguide" id="citation-reference-2" role="doc-biblioref">[encguide]</a> reserves the name T7 for a Greek <cite>standard font encoding</cite>.
-However, up to now, there is no agreement on an implementation because the
-restrictions for general text encodings are too severe for typesetting
-polytonic Greek.</p>
-</section>
<section id="lgr">
-<h3><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">LGR</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">LGR</a></h3>
<p>The LGR font encoding is the de-facto standard for typesetting Greek with
-(8-bit) LaTeX. <cite>greek-fontenc</cite> provides a comprehensive <a class="reference internal" href="#lgr-font-encoding-definition-file">LGR font
+8-bit LaTeX. <cite>greek-fontenc</cite> provides a comprehensive <a class="reference internal" href="#lgr-font-encoding-definition-file">LGR font
encoding definition file</a>.</p>
<p>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), <a class="reference external" href="https://ctan.org/pkg/dejavu">DejaVu</a>, <a class="reference external" href="https://ctan.org/pkg/libertinegc">Libertine GC</a>, and
the <a class="reference external" href="https://ctan.org/pkg/gfs">GFS fonts</a>. Setup of these fonts as Greek variant to
matching Latin fonts is facilitated by the
<span class="docutils literal">\DeclareFontfamilySubstitution</span> command added to the
-LaTeX kernel in the 2020-02 release <a class="citation-reference" href="#ltnews31" id="citation-reference-3" role="doc-biblioref">[ltnews31]</a>.</p>
+LaTeX kernel in the 2020-02 release <a class="citation-reference" href="#ltnews31" id="citation-reference-2" role="doc-biblioref">[ltnews31]</a>.</p>
<p>The LGR font encoding allows to access Greek characters via an ASCII
transliteration. This enables simple input with a Latin keyboard.
Characters with diacritics can be selected by ligature definitions in the
-font (see <a class="citation-reference" href="#greek-usage" id="citation-reference-4" role="doc-biblioref">[greek-usage]</a>, <a class="citation-reference" href="#teubner-doc" id="citation-reference-5" role="doc-biblioref">[teubner-doc]</a>, <a class="citation-reference" href="#cbfonts" id="citation-reference-6" role="doc-biblioref">[cbfonts]</a>).</p>
-<p>A major drawback of the transliteration is, that you cannot access Latin
-letters if LGR is the active font encoding (e.g. in documents or parts of
-documents given the <cite>Babel</cite> language <span class="docutils literal">greek</span> or <span class="docutils literal">polutionikogreek</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 Latin and Greek like the envisaged <a class="reference internal" href="#t7">T7</a> or
-Unicode (with XeTeX or LuaTeX).</p>
-</section>
-<section id="lgi">
-<h3><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">LGI</a></h3>
-<p>The ‘Ibycus’ fonts from the package <a class="reference external" href="https://ctan.org/pkg/ibygrk">ibygrk</a> implement an alternative
-transliteration scheme (also explained in <a class="citation-reference" href="#babel-patch" id="citation-reference-7" role="doc-biblioref">[babel-patch]</a>).
-It is currently not supported by <cite>greek-fontenc</cite>.</p>
-<p>The font encoding file <span class="docutils literal">lgienc.def</span> from <a class="reference external" href="https://ctan.org/pkg/ibycus-babel">ibycus-babel</a> provides a basic
-setup (without any LICR macros or composite definitions).</p>
+font (see <a class="citation-reference" href="#greek-usage" id="citation-reference-3" role="doc-biblioref">[greek-usage]</a>, <a class="citation-reference" href="#teubner-doc" id="citation-reference-4" role="doc-biblioref">[teubner-doc]</a>, <a class="citation-reference" href="#cbfonts" id="citation-reference-5" role="doc-biblioref">[cbfonts]</a>).</p>
+<p>A major drawback of the transliteration is the fact, that you cannot
+access Latin letters 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> or
+<span class="docutils literal">polutionikogreek</span>). This means that for every Latin-written word or
+acronym an explicit language-switch is required. This problem can be
+circumvented using Unicode fonts (font encoding <a class="reference internal" href="#tu">TU</a>) with XeTeX or
+LuaTeX.</p>
</section>
<section id="tu">
-<h3><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">TU</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">TU</a></h3>
<p>Standard Unicode font encoding for XeTeX and LuaTeX loaded by <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a>
-(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 <a class="citation-reference" href="#ltnews26" id="citation-reference-8" role="doc-biblioref">[ltnews26]</a>.
+(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 <a class="citation-reference" href="#ltnews26" id="citation-reference-6" role="doc-biblioref">[ltnews26]</a>.<a class="superscript" href="#footnote-2" id="footnote-reference-2" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>
<cite>greek-fontenc</cite> adds support for the Greek script (see <a class="reference internal" href="#tuenc-greek">tuenc-greek</a>).</p>
<p>Xe/LuaTeX works with any system-wide installed <a class="reference external" href="https://ctan.org/topic/font-otf">OpenType font</a>. Suitable
fonts supporting Greek include <a class="reference external" href="https://ctan.org/pkg/cm-unicode">CM Unicode</a>, <a class="reference external" href="http://dejavu-fonts.org">Deja Vu</a>, <a class="reference external" href="https://ctan.org/pkg/ebgaramond">EB Garamond</a>,
@@ -1086,19 +1054,42 @@ the <a class="reference external" href="https://ctan.org/pkg/gfs">GFS fonts</a>,
<a class="reference external" href="https://ctan.org/pkg/tempora">Tempora</a>, and <a class="reference external" href="https://ctan.org/pkg/umtypewriter">UM Typewriter</a> (all available on CTAN) but also many commercial
fonts. Unfortunately, the <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a> default, <a class="reference external" href="http://www.gust.org.pl/projects/e-foundry/latin-modern">Latin Modern</a> misses most
Greek characters.</p>
-<p>Older versions of LuaTeX did not apply the NFC normalization. This lead to
+<p>LuaTeX does not apply the NFC normalization by default. This leads to
sub-optimal placing of some diacritics, especially the sub-iota (becoming
-unintelligible in combination with small letter eta). This issue if fixed
-since at least 2022.</p>
+unintelligible in combination with small letter eta). This issue can be fixed
+specifiying the “Harfbuzz” renderer when loading fonts with fontspec,
+e.g.</p>
+<pre class="literal-block">\setmainfont[Renderer=Harfbuzz]{FreeSerif}</pre>
+<aside class="footnote-list superscript">
+<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-2">2</a><span class="fn-bracket">]</span></span>
<p>The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX
-respectively were superseded by TU in the 2017 <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a> release.</p>
+respectively were superseded by TU in the 2017 fontspec release.</p>
+</aside>
+</aside>
</section>
<section id="pu">
-<h3><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">PU</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">PU</a></h3>
<p>The package <a class="reference external" href="https://ctan.org/pkg/hyperref">hyperref</a> defines the PU font encoding for use in PDF strings
-(ToC, bookmarks) which supports monotonic Greek. <cite>greek-fontenc</cite> adds
-support for polytonic Greek and some archaic characters also supported in
-LGR and TU (see <a class="reference external" href="hyperref-with-greek.tex">hyperref-with-greek.tex</a>, <a class="reference external" href="hyperref-with-greek.pdf">hyperref-with-greek.pdf</a>).</p>
+(ToC, bookmarks). <cite>greek-fontenc</cite> adds support for Greek LICRs
+(see <a class="reference external" href="hyperref-with-greek.tex">hyperref-with-greek.tex</a>, <a class="reference external" href="hyperref-with-greek.pdf">hyperref-with-greek.pdf</a>).</p>
+<hr class="docutils" />
+<p>The following two encodings are not supported by <cite>greek-fontenc</cite>:</p>
+</section>
+<section id="lgi">
+<h3><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">LGI</a></h3>
+<p>The ‘Ibycus’ fonts from the package <a class="reference external" href="https://ctan.org/pkg/ibygrk">ibygrk</a> implement an alternative
+transliteration scheme (also explained in <a class="citation-reference" href="#babel-patch" id="citation-reference-7" role="doc-biblioref">[babel-patch]</a>).
+It is currently not supported by <cite>greek-fontenc</cite>.</p>
+<p>The font encoding file <span class="docutils literal">lgienc.def</span> from <a class="reference external" href="https://ctan.org/pkg/ibycus-babel">ibycus-babel</a> provides a basic
+setup (without any LICR macros or composite definitions).</p>
+</section>
+<section id="t7">
+<h3><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">T7</a></h3>
+<p>The <a class="citation-reference" href="#encguide" id="citation-reference-8" role="doc-biblioref">[encguide]</a> reserves the name T7 for a Greek <cite>standard font encoding</cite>.
+However, up to now, there is no agreement on an implementation because the
+restrictions for general text encodings are too severe for typesetting
+polytonic Greek.</p>
</section>
</section>
<section id="greek-licr-macro-names">
@@ -1114,7 +1105,7 @@ punctuation may change in future versions.</p>
for Greek letters and diacritics. Macro names were selected based on the
following considerations:</p>
<section id="letters-and-symbols">
-<h3><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">letters and symbols</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">Letters and symbols</a></h3>
<ul>
<li><p>The <a class="reference internal" href="#fntguide">fntguide</a> (section 6.4 Naming conventions) recommends:</p>
<blockquote>
@@ -1148,11 +1139,8 @@ made available as <span class="docutils literal">\textvarsigma</span>.</p>
</li>
<li><p>The <a class="reference external" href="http://www.unicode.org/Public/UNIDATA/NamesList.txt">Unicode names list</a> provides standardized descriptive names for all
Unicode characters that use only capital letters of the Latin alphabet.
-While not suited for direct use in LICR macros, they can be either</p>
-<ol class="lowerroman simple">
-<li><p>used as inspiration for new LICR macro names or</p></li>
-<li><p>converted to LICR macro names via a defined set of transformation rules.</p></li>
-</ol>
+While not suited for direct use in LICR macros, they can be
+converted to LICR macro names via a defined set of transformation rules.</p>
<dl class="simple">
<dt>Example:</dt>
<dd><p><span class="docutils literal">\textfinalsigma</span> is a descriptive alias for
@@ -1192,19 +1180,20 @@ mode,</p></li>
</dl>
<p>The font encoding definition files use the <span class="docutils literal">text</span> prefix for symbols.
Aliases (short forms, compatibility defs, etc.) are defined in
-additional packages (e.g. <a class="reference external" href="alphabeta.sty">alphabeta.sty</a>, <a class="reference external" href="https://ctan.org/pkg/babel-greek">babel-greek</a>, or <a class="reference external" href="https://ctan.org/pkg/teubner">teubner</a>)</p>
+additional packages (e.g. <a class="reference external" href="alphabeta.sty">alphabeta.sty</a> and <a class="reference external" href="https://ctan.org/pkg/teubner">teubner</a>)</p>
</li>
</ul>
</section>
<section id="accent-macros">
-<h3><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">accent macros</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">Accent macros</a></h3>
<ul>
<li><p>standard accent macros (<span class="docutils literal">\DeclareTextAccent</span> definitions in
<span class="docutils literal"><span class="pre">latex/base/...</span></span>) are one-character macros (<span class="docutils literal">\' \&quot; ... \u \v ...</span>) .</p></li>
-<li><p><span class="docutils literal">tipa.sty</span>, <a class="reference external" href="https://ctan.org/pkg/xunicode">xunicode</a>, and <a class="reference external" href="https://ctan.org/pkg/unicode">ucs</a> use the “text” prefix also for accents.</p>
+<li><p><span class="docutils literal">tipa.sty</span>, <a class="reference external" href="https://ctan.org/pkg/xunicode">xunicode</a>, and <a class="reference external" href="https://ctan.org/pkg/unicode">ucs</a> use the “text” prefix also for accent
+macros.</p>
<p>However, the <a class="reference external" href="http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/aglfn.txt">Adobe Glyph List For New Fonts</a> maps, e.g., “tonos” and
-“dieresistonos” to the spacing characters GREEK TONOS and GREEK DIALYTIKA
-TONOS, hence <cite>texttonos</cite> and <cite>textdiaresistonos</cite> should be spacing
+“dieresistonos” to the spacing characters GREEK TONOS rsp. GREEK DIALYTIKA
+TONOS, hence <span class="docutils literal">\texttonos</span> and <span class="docutils literal">\textdieresistonos</span> should be spacing
characters.</p>
</li>
<li><p>textcomp (ts1enc.def) defines <span class="docutils literal"><span class="pre">\capital...</span></span> accents (i.e. without
@@ -1216,12 +1205,12 @@ characters.</p>
<li><p>the prefix <span class="docutils literal">\acc</span> to distinguish the macros as <cite>TextAaccent</cite> and
reduce the risk of name clashes with spacing characters.</p></li>
</ul>
-<p>For the end-user “symbol macros” (<span class="docutils literal">\~ \' \` \&quot; \&quot;' \&quot;` ...</span>) are
-provided. (With <a class="reference internal" href="#textalpha">textalpha</a> or <a class="reference internal" href="#alphabeta">alphabeta</a> also <span class="docutils literal">\&lt;</span> and <span class="docutils literal">\&gt;</span> for
-<span class="docutils literal">\accdasia</span> and <span class="docutils literal">\accpsili</span>.)</p>
+<p>Aliases to the “symbol macros” <span class="docutils literal">\~ \' \` \&quot; \&quot;' \&quot;` ...</span> are
+provided. With <a class="reference internal" href="#textalpha">textalpha</a> or <a class="reference internal" href="#alphabeta">alphabeta</a> also <span class="docutils literal">\&lt;</span> and <span class="docutils literal">\&gt;</span> for
+<span class="docutils literal">\accdasia</span> and <span class="docutils literal">\accpsili</span>.</p>
</section>
<section id="symbol-variants">
-<h3><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">symbol variants</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">Symbol variants</a></h3>
<p>Mathematical notation distinguishes variant shapes for beta (β|ϐ),
theta (θ|ϑ), phi (φ|ϕ), pi (π|ϖ), kappa (κ|ϰ), rho (ρ|ϱ), Theta (Θ|ϴ),
and epsilon (ε|ϵ).</p>
@@ -1421,6 +1410,31 @@ downcasing <span class="docutils literal">\textStigma</span> to <span class="doc
<li><p><a class="reference internal" href="#textalpha">textalpha</a>: Map character 00B5 MICRO SIGN to <span class="docutils literal">\textmicro</span>.</p></li>
</ul>
</dd>
+<dt>2.5 (2023-09-12)</dt>
+<dd><ul class="simple">
+<li><p><span class="docutils literal">\textvarTheta</span> is now an alias for <span class="docutils literal">\textTheta</span> (the AMS-math
+command <span class="docutils literal">\varTheta</span> sets the <em>letter</em> Theta in italic shape).</p></li>
+<li><p>Fix errors in LuaTeX’s 8-bit compatibility mode (<a class="reference external" href="https://ctan.org/pkg/luainputenc">luainputenc</a>).</p></li>
+<li><p>Fix <span class="docutils literal">\MakeUppercase</span> in PDF strings.</p></li>
+<li><p>Drop composite definitions if the pre-composed character can also be
+selected by the <a class="reference external" href="https://www.unicode.org/reports/tr15/">Unicode NFC normalization</a>.</p></li>
+<li><p>Test/fix case change commands with <a class="reference internal" href="#alphabeta">alphabeta</a>.
+Composite commands for PU.
+Inline <span class="docutils literal"><span class="pre">alphabeta-tuenc.def</span></span> and <span class="docutils literal"><span class="pre">alphabeta-lgr.def</span></span>.</p></li>
+<li><p>Update documentation, fix links.</p></li>
+</ul>
+</dd>
+<dt>TODO:</dt>
+<dd><ul class="simple">
+<li><p>Fix <span class="docutils literal">\textautosigma</span> with Unicode fonts.</p></li>
+</ul>
+<!-- report issues:
+The polytonic variant with dasia and oxia used in ἢ … ἤ (*either … or*)
+drops diacritics! By mistake, omission, or intent?
+
+Compilation error with MakeUppercase and combining ypogegrammeni in Greek
+locale: ``\foreignlanguage{greek}{Λͅ → \MakeUppercase{Λͅ}}`` -->
+</dd>
</dl>
</section>
<section id="references">
@@ -1441,13 +1455,13 @@ encoding</cite> Εὔτυπον, τεῦχος № 20, 2008.
<a class="reference external" href="http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf">http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf</a></p>
</div>
<div class="citation" id="cbfonts" role="doc-biblioentry">
-<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">cbfonts</a><span class="fn-bracket">]</span></span>
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-5">cbfonts</a><span class="fn-bracket">]</span></span>
<p>Claudio Beccari, <cite>The CB Greek fonts</cite>, Εὔτυπον, τεῦχος № 21, 2008.
<a class="reference external" href="http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf">http://www.eutypon.gr/eutypon/pdf/e2008-21/e21-a01.pdf</a></p>
</div>
<div class="citation" id="encguide" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>encguide<span class="fn-bracket">]</span></span>
-<span class="backrefs">(<a role="doc-backlink" href="#citation-reference-2">1</a>,<a role="doc-backlink" href="#citation-reference-9">2</a>)</span>
+<span class="backrefs">(<a role="doc-backlink" href="#citation-reference-8">1</a>,<a role="doc-backlink" href="#citation-reference-9">2</a>)</span>
<p>Frank Mittelbach, Robin Fairbairns, Werner Lemberg,
LaTeX3 Project Team, <cite>LaTeX font encodings</cite>.
<a class="reference external" href="https://mirrors.ctan.org/macros/latex/base/encguide.pdf">https://mirrors.ctan.org/macros/latex/base/encguide.pdf</a></p>
@@ -1458,23 +1472,23 @@ LaTeX3 Project Team, <cite>LaTeX font encodings</cite>.
<a class="reference external" href="https://mirrors.ctan.org/macros/latex/base/fntguide.pdf">https://mirrors.ctan.org/macros/latex/base/fntguide.pdf</a></p>
</div>
<div class="citation" id="greek-usage" role="doc-biblioentry">
-<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-4">greek-usage</a><span class="fn-bracket">]</span></span>
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-3">greek-usage</a><span class="fn-bracket">]</span></span>
<p>Apostolos Syropoulos, <cite>Writing Greek with the greek option
of the babel package</cite>, 1997.
<a class="reference external" href="https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf">https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf</a></p>
</div>
<div class="citation" id="ltnews26" role="doc-biblioentry">
-<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-8">ltnews26</a><span class="fn-bracket">]</span></span>
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">ltnews26</a><span class="fn-bracket">]</span></span>
<p>LaTeX Project Team, <cite>LaTeX News</cite> Issue 26, January 2017.
<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews26.pdf">https://www.latex-project.org/news/latex2e-news/ltnews26.pdf</a></p>
</div>
<div class="citation" id="ltnews31" role="doc-biblioentry">
-<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-3">ltnews31</a><span class="fn-bracket">]</span></span>
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-2">ltnews31</a><span class="fn-bracket">]</span></span>
<p><cite>LaATeX News</cite>, Issue 31, February 2020, p. 3:
<a class="reference external" href="https://www.latex-project.org/news/latex2e-news/ltnews31.pdf">https://www.latex-project.org/news/latex2e-news/ltnews31.pdf</a>.</p>
</div>
<div class="citation" id="teubner-doc" role="doc-biblioentry">
-<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-5">teubner-doc</a><span class="fn-bracket">]</span></span>
+<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-4">teubner-doc</a><span class="fn-bracket">]</span></span>
<p>Claudio Beccari, <span class="docutils literal">teubner.sty</span>
<cite>An extension to the greek option of the babel package</cite>, 2011.
<a class="reference external" href="https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf">https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf</a></p>
diff --git a/language/greek/greek-fontenc/greek-fontenc-doc.rst b/language/greek/greek-fontenc/greek-fontenc-doc.rst
index 4b25969c0d..9883989c1d 100644
--- a/language/greek/greek-fontenc/greek-fontenc-doc.rst
+++ b/language/greek/greek-fontenc/greek-fontenc-doc.rst
@@ -4,7 +4,7 @@ greek-fontenc
Greek font encoding definition files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-:Version: 2.4 (changelog_)
+:Version: 2.5 (changelog_)
:Copyright: © 2010 -- 2023 Günter Milde <milde@users.sf.net>
:Licence: This work may be distributed and/or modified under the
@@ -15,9 +15,9 @@ Greek font encoding definition files
:Latest Release: https://ctan.org/pkg/greek-fontenc
-:Abstract: The `greek-fontenc` bundle provides LICR [#]_ macros
- for characters from the Greek script and encoding
- definition files for `Greek text font encodings`_.
+:Abstract: The `greek-fontenc` bundle provides encoding definition files
+ for `Greek text font encodings`_ that define LICR [#]_ macros
+ for characters from the Greek script
Included are also the LaTeX packages textalpha_ and alphabeta_.
@@ -38,8 +38,9 @@ Packages
.. _textalpha:
`<textalpha.sty>`_: `Greek symbols in text <textalpha.sty.html>`_
- Use ``\textalpha`` ... ``\textOmega`` or Greek literal characters [#]_
+ Use ``\textalpha`` ... ``\textOmega`` or Greek literal characters
independent of font encoding and TeX engine.
+
Documentation: textalpha-doc.pdf_
.. _alphabeta:
@@ -47,9 +48,8 @@ Packages
`<alphabeta.sty>`_: `Greek symbols in text and math <alphabeta.sty.html>`_
Use ``\alpha`` ... ``\Omega`` independent of text/math mode,
font encoding, and TeX engine.
- Documentation: alphabeta-doc.pdf_
-.. [#] requires greek-inputenc_
+ Documentation: alphabeta-doc.pdf_
Font encoding definitions
-------------------------
@@ -73,10 +73,6 @@ Font encoding definitions
Auxiliary files
---------------
-`<alphabeta-lgr.def>`_
- Composite definitions for alphabeta_ with 8-bit TeX.
-`<alphabeta-tuenc.def>`_
- Composite definitions for alphabeta_ with XeTeX/LuaTeX.
`<greek-euenc.def>`_
Backwards compatibility file loading tuenc-greek.def_.
`<lgr2licr.lua>`_
@@ -90,27 +86,25 @@ with Docutils_ to the HTML documentation.
Usage examples and test documents
=================================
-`<test-lgrenc.tex>`_
- LGR test and usage example. [`<test-lgrenc.pdf>`_]
+`<char-list.tex>`_: `<char-list.pdf>`_, `<char-list-tu.pdf>`_
+ List of Greek characters supported by `greek-fontenc`.
+ Compares input variants and tests chase changing.
-`<test-tuenc-greek.tex>`_
- TU test and usage example. [`<test-tuenc-greek.pdf>`_]
+`<char-list-alphabeta.tex>`_: `<char-list-alphabeta.pdf>`_, `<char-list-alphabeta-tu.pdf>`_
+ List/test of Greek characters supported by `alphabeta`.
-`<hyperref-with-greek.tex>`_
- Hyperref_ test and usage example. [`<hyperref-with-greek.pdf>`_]
-`<char-list.tex>`_
- List of Greek characters supported by `greek-fontenc`. [`<char-list.pdf>`_]
+`<hyperref-with-greek.tex>`_: `<hyperref-with-greek.pdf>`_
+ Hyperref_ test and usage example.
- Compares input variants and tests chase changing.
+`<test-lgrenc.tex>`_: `<test-lgrenc.pdf>`_
+ LGR test and usage example.
-`<test-licr-input.tex>`_
- Test LICRs with non-Greek legacy 8-bit input encoding.
- [`<test-licr-input.pdf>`_]
+`<test-tuenc-greek.tex>`_: `<test-tuenc-greek.pdf>`_
+ TU test and usage example.
-`<test-diacritics.tex>`_
- Test Greek diacritics with standard accent macros.
- [`<test-diacritics.pdf>`_]
+`<test-luainputenc.tex>`_: `<test-luainputenc.pdf>`_
+ Test LICRs LuaTeX in 8-bit compatibility mode (with luainputenc_).
Download and Installation
@@ -239,23 +233,11 @@ More secure is an explicit reverse-definition, e.g. ::
Greek text font encodings
=========================
-Greek TeX font encodings are the envisaged T7_, LGR_, and LGI_.
-Greek letters and symbols are also defined in the Unicode-based font
-encodings TU_, and PU_.
-
-T7
---
-
-The [encguide]_ reserves the name T7 for a Greek `standard font encoding`.
-However, up to now, there is no agreement on an implementation because the
-restrictions for general text encodings are too severe for typesetting
-polytonic Greek.
-
LGR
---
The LGR font encoding is the de-facto standard for typesetting Greek with
-(8-bit) LaTeX. `greek-fontenc` provides a comprehensive `LGR font
+8-bit LaTeX. `greek-fontenc` provides a comprehensive `LGR font
encoding definition file`_.
Fonts in this encoding include the `CB fonts`_ (matching CM), grtimes_
@@ -270,29 +252,19 @@ transliteration. This enables simple input with a Latin keyboard.
Characters with diacritics can be selected by ligature definitions in the
font (see [greek-usage]_, [teubner-doc]_, [cbfonts]_).
-A major drawback of the transliteration is, that you cannot access Latin
-letters if LGR is the active font encoding (e.g. in documents or parts of
-documents given the `Babel` language ``greek`` or ``polutionikogreek``).
-This means that for every Latin-written word or acronym an explicit
-language-switch is required. This problem can only be solved via a
-font-encoding comprising Latin and Greek like the envisaged T7_ or
-Unicode (with XeTeX or LuaTeX).
-
-LGI
----
-
-The ‘Ibycus’ fonts from the package ibygrk_ implement an alternative
-transliteration scheme (also explained in [babel-patch]_).
-It is currently not supported by `greek-fontenc`.
-
-The font encoding file ``lgienc.def`` from ibycus-babel_ provides a basic
-setup (without any LICR macros or composite definitions).
+A major drawback of the transliteration is the fact, that you cannot
+access Latin letters if LGR is the active font encoding (e.g. in
+documents or parts of documents given the `Babel` language ``greek`` or
+``polutionikogreek``). This means that for every Latin-written word or
+acronym an explicit language-switch is required. This problem can be
+circumvented using Unicode fonts (font encoding TU_) with XeTeX or
+LuaTeX.
TU
--
Standard Unicode font encoding for XeTeX and LuaTeX loaded by fontspec_
-(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [ltnews26]_.
+(since v2.5a) rsp. the LaTeX kernel since 2017/01/01 [ltnews26]_. [#]_
`greek-fontenc` adds support for the Greek script (see tuenc-greek_).
Xe/LuaTeX works with any system-wide installed `OpenType font`_. Suitable
@@ -302,21 +274,45 @@ Tempora_, and `UM Typewriter`_ (all available on CTAN) but also many commercial
fonts. Unfortunately, the fontspec_ default, `Latin Modern`_ misses most
Greek characters.
-Older versions of LuaTeX did not apply the NFC normalization. This lead to
+LuaTeX does not apply the NFC normalization by default. This leads to
sub-optimal placing of some diacritics, especially the sub-iota (becoming
-unintelligible in combination with small letter eta). This issue if fixed
-since at least 2022.
+unintelligible in combination with small letter eta). This issue can be fixed
+specifiying the "Harfbuzz" renderer when loading fonts with fontspec,
+e.g. ::
+
+ \setmainfont[Renderer=Harfbuzz]{FreeSerif}
-The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX
-respectively were superseded by TU in the 2017 fontspec_ release.
+.. [#] The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX
+ respectively were superseded by TU in the 2017 fontspec release.
PU
--
The package hyperref_ defines the PU font encoding for use in PDF strings
-(ToC, bookmarks) which supports monotonic Greek. `greek-fontenc` adds
-support for polytonic Greek and some archaic characters also supported in
-LGR and TU (see `<hyperref-with-greek.tex>`_, `<hyperref-with-greek.pdf>`_).
+(ToC, bookmarks). `greek-fontenc` adds support for Greek LICRs
+(see `<hyperref-with-greek.tex>`_, `<hyperref-with-greek.pdf>`_).
+
+----------------------------------------------------------------------------
+
+The following two encodings are not supported by `greek-fontenc`:
+
+LGI
+---
+
+The ‘Ibycus’ fonts from the package ibygrk_ implement an alternative
+transliteration scheme (also explained in [babel-patch]_).
+It is currently not supported by `greek-fontenc`.
+
+The font encoding file ``lgienc.def`` from ibycus-babel_ provides a basic
+setup (without any LICR macros or composite definitions).
+
+T7
+--
+
+The [encguide]_ reserves the name T7 for a Greek `standard font encoding`.
+However, up to now, there is no agreement on an implementation because the
+restrictions for general text encodings are too severe for typesetting
+polytonic Greek.
Greek LICR macro names
@@ -332,7 +328,7 @@ This bundle provides LaTeX internal character representations (LICR macros)
for Greek letters and diacritics. Macro names were selected based on the
following considerations:
-letters and symbols
+Letters and symbols
-------------------
* The fntguide_ (section 6.4 Naming conventions) recommends:
@@ -362,10 +358,8 @@ letters and symbols
* The `Unicode names list`_ provides standardized descriptive names for all
Unicode characters that use only capital letters of the Latin alphabet.
- While not suited for direct use in LICR macros, they can be either
-
- i. used as inspiration for new LICR macro names or
- ii. converted to LICR macro names via a defined set of transformation rules.
+ While not suited for direct use in LICR macros, they can be
+ converted to LICR macro names via a defined set of transformation rules.
Example:
``\textfinalsigma`` is a descriptive alias for
@@ -397,20 +391,21 @@ letters and symbols
The font encoding definition files use the ``text`` prefix for symbols.
Aliases (short forms, compatibility defs, etc.) are defined in
- additional packages (e.g. alphabeta.sty_, `babel-greek`_, or teubner_)
+ additional packages (e.g. alphabeta.sty_ and teubner_)
-accent macros
+Accent macros
-------------
* standard accent macros (``\DeclareTextAccent`` definitions in
``latex/base/...``) are one-character macros (``\' \" ... \u \v ...``) .
-* ``tipa.sty``, xunicode_, and ucs_ use the "text" prefix also for accents.
+* ``tipa.sty``, xunicode_, and ucs_ use the "text" prefix also for accent
+ macros.
However, the `Adobe Glyph List For New Fonts`_ maps, e.g., "tonos" and
- "dieresistonos" to the spacing characters GREEK TONOS and GREEK DIALYTIKA
- TONOS, hence `\texttonos` and `\textdiaresistonos` should be spacing
+ "dieresistonos" to the spacing characters GREEK TONOS rsp. GREEK DIALYTIKA
+ TONOS, hence ``\texttonos`` and ``\textdieresistonos`` should be spacing
characters.
* textcomp (ts1enc.def) defines ``\capital...`` accents (i.e. without
@@ -423,12 +418,12 @@ Currently, `greek-fontenc` uses for diacritics:
- the prefix ``\acc`` to distinguish the macros as `TextAaccent` and
reduce the risk of name clashes with spacing characters.
-For the end-user "symbol macros" (``\~ \' \` \" \"' \"` ...``) are
-provided. (With textalpha_ or alphabeta_ also ``\<`` and ``\>`` for
-``\accdasia`` and ``\accpsili``.)
+Aliases to the "symbol macros" ``\~ \' \` \" \"' \"` ...`` are
+provided. With textalpha_ or alphabeta_ also ``\<`` and ``\>`` for
+``\accdasia`` and ``\accpsili``.
-symbol variants
+Symbol variants
---------------
Mathematical notation distinguishes variant shapes for beta (β|ϐ),
@@ -559,6 +554,28 @@ Changelog
2.4 (2023-08-15)
- Fixes for the 2022 implementation of ``\MakeUppercase``.
- textalpha_: Map character 00B5 MICRO SIGN to ``\textmicro``.
+2.5 (2023-09-12)
+ - ``\textvarTheta`` is now an alias for ``\textTheta`` (the AMS-math
+ command ``\varTheta`` sets the *letter* Theta in italic shape).
+ - Fix errors in LuaTeX's 8-bit compatibility mode (luainputenc_).
+ - Fix ``\MakeUppercase`` in PDF strings.
+ - Drop composite definitions if the pre-composed character can also be
+ selected by the `Unicode NFC normalization`_.
+ - Test/fix case change commands with alphabeta_.
+ Composite commands for PU.
+ Inline ``alphabeta-tuenc.def`` and ``alphabeta-lgr.def``.
+ - Update documentation, fix links.
+
+TODO:
+ - Fix ``\textautosigma`` with Unicode fonts.
+
+ .. report issues:
+ The polytonic variant with dasia and oxia used in ἢ … ἤ (*either … or*)
+ drops diacritics! By mistake, omission, or intent?
+
+ Compilation error with MakeUppercase and combining ypogegrammeni in Greek
+ locale: ``\foreignlanguage{greek}{Λͅ → \MakeUppercase{Λͅ}}``
+
__ http://tex.stackexchange.com/questions/281631/greek-small-rho-with-dasia-and-also-psili-problem-with-accent-and-lgr-encodin
.. _ltxbugs 4399:
@@ -610,6 +627,7 @@ from the ucs_ package.
.. _Adobe Glyph List:
http://raw.githubusercontent.com/adobe-type-tools/agl-aglfn/master/glyphlist.txt
.. _Unicode names list: http://www.unicode.org/Public/UNIDATA/NamesList.txt
+.. _Unicode NFC normalization: https://www.unicode.org/reports/tr15/
.. _XML Entity Definitions for Characters:
http://www.w3.org/TR/xml-entity-names/
.. _CB fonts: https://ctan.org/pkg/cbgreek-complete
@@ -624,6 +642,7 @@ from the ucs_ package.
.. _Libertinus: https://ctan.org/pkg/libertinus
.. _Old Standard: https://ctan.org/pkg/oldstandard
.. _OpenType Font: https://ctan.org/topic/font-otf
+.. _Tempora: https://ctan.org/pkg/tempora
.. _UM Typewriter: https://ctan.org/pkg/umtypewriter
.. _amssymb: https://ctan.org/pkg/amsfonts
.. _arabi: https://ctan.org/pkg/arabi
@@ -639,9 +658,8 @@ from the ucs_ package.
.. _ibygrk: https://ctan.org/pkg/ibygrk
.. _lgrx: https://ctan.org/pkg/lgrx
.. _libertine: https://ctan.org/pkg/libertine-legacy
-.. _lua-uni-algos: https://ctan.org/pkg/lua-uni-algos
+.. _luainputenc: https://ctan.org/pkg/luainputenc
.. _substitutefont: https://ctan.org/pkg/substitutefont
-.. _tempora: https://ctan.org/pkg/tempora
.. _teubner: https://ctan.org/pkg/teubner
.. _ucs: https://ctan.org/pkg/unicode
.. _unicode-math: https://ctan.org/pkg/unicode-math
diff --git a/language/greek/greek-fontenc/greek-fontenc.def b/language/greek/greek-fontenc/greek-fontenc.def
index b9a89af3e4..58c53111c4 100644
--- a/language/greek/greek-fontenc/greek-fontenc.def
+++ b/language/greek/greek-fontenc/greek-fontenc.def
@@ -4,7 +4,7 @@
% Common Greek font encoding definitions
% ======================================
%
-% :Version: 2.4 (changelog_)
+% :Version: 2.5 (changelog_)
%
% :Copyright: © 2013 -- 2023 Günter Milde
%
@@ -31,7 +31,7 @@
% ::
\ProvidesFile{greek-fontenc.def}
- [2023-08-15 2.4 Common Greek font encoding definitions]
+ [2023-09-12 2.5 Common Greek font encoding definitions]
% ensuregreek, greekscript
% ~~~~~~~~~~~~~~~~~~~~~~~~
@@ -68,11 +68,11 @@
% \var... matching GREEK ... SYMBOL
\DeclareTextCommand{\textvarbeta}{\LastDeclaredEncoding}{\textbetasymbol} % ϐ
\DeclareTextCommand{\textvarkappa}{\LastDeclaredEncoding}{\textkappasymbol} % ϰ
-\DeclareTextCommand{\textvarTheta}{\LastDeclaredEncoding}{\textThetasymbol} % ϴ
\DeclareTextCommand{\textvartheta}{\LastDeclaredEncoding}{\textthetasymbol} % ϑ
\DeclareTextCommand{\textvarpi}{\LastDeclaredEncoding}{\textpisymbol} % ϖ
\DeclareTextCommand{\textvarrho}{\LastDeclaredEncoding}{\textrhosymbol} % ϱ
% \var... matching GREEK LETTER ...
+\DeclareTextCommand{\textvarTheta}{\LastDeclaredEncoding}{\textTheta} % Θ
\DeclareTextCommand{\textvarepsilon}{\LastDeclaredEncoding}{\textepsilon} % ε
\DeclareTextCommand{\textvarphi}{\LastDeclaredEncoding}{\textphi} % φ
\DeclareTextCommand{\textvarsigma}{\LastDeclaredEncoding}{\textfinalsigma} % ς
@@ -103,7 +103,7 @@
% Two Unicode code points and names for one character::
\DeclareTextCommand{\accoxia}{\LastDeclaredEncoding}{\acctonos}
-\DeclareTextCommand{\accdialytikaoxia}{\LastDeclaredEncoding}{\accdialyikatonos}
+\DeclareTextCommand{\accdialytikaoxia}{\LastDeclaredEncoding}{\accdialytikatonos}
\DeclareTextCommand{\acckoronis}{\LastDeclaredEncoding}{\accpsili}
% Symbol macros for the breathings:
@@ -248,44 +248,37 @@
% Also define the combinations with "capital" accent macros::
-\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} % new in 2020
-\IfFormatAtLeastTF{2022/06/01}{
- \ProvideTextCommand{\accACUTE}{\LastDeclaredEncoding}{\@tabacckludge '}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{"}{\accdialytika}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{>}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR@hiatus}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR@accdropped}{\LGR@accdropped}
-
- \ProvideTextCommand{\accGRAVE}{\LastDeclaredEncoding}{\@tabacckludge`}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{"}{\accdialytika}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{>}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR@hiatus}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR@accdropped}{\LGR@accdropped}
-
- \ProvideTextCommand{\accTILDE}{\LastDeclaredEncoding}{\@tabacckludge~}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{"}{\accdialytika}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{>}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR@hiatus}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR@accdropped}{\LGR@accdropped}
-
- \ProvideTextCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\@tabacckludge"}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{'}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{`}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{~}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accACUTE}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accGRAVE}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accTILDE}{\accdialytika}
-
- \ProvideTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}{\@firstofone}
- \DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{'}{\LGR@accdropped}
- \DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{`}{\LGR@accdropped}
-}{} % else do nothing
+\ProvideTextCommand{\accACUTE}{\LastDeclaredEncoding}{\@tabacckludge '}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{>}{\LGR@hiatus}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{"}{\accdialytika}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR@hiatus}{\LGR@hiatus}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR@accdropped}{\LGR@accdropped}
+
+\ProvideTextCommand{\accGRAVE}{\LastDeclaredEncoding}{\@tabacckludge`}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{>}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{"}{\accdialytika}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR@hiatus}{\LGR@hiatus}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR@accdropped}{\LGR@accdropped}
+
+\ProvideTextCommand{\accTILDE}{\LastDeclaredEncoding}{\@tabacckludge~}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{>}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{<}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{"}{\accdialytika}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR@hiatus}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR@accdropped}{\LGR@accdropped}
+
+\ProvideTextCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\@tabacckludge"}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{'}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{`}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{~}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accACUTE}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accGRAVE}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accTILDE}{\accdialytika}
% .. _@uclclist:
@@ -327,9 +320,9 @@
%
% The definition of an auxiliary, self-resetting macro makes this idempotent
% (only the first use of this function will expand the ``@uclclist``).
-% The second and third lines are TeX' way of writing ``@uclclist += …``
+% The second and third lines are TeX's way of writing ``@uclclist += …``
%
-% The new ``\MakeUppercase`` expects the default for ambiguous mappings
+% Since 2022, ``\MakeUppercase`` expects the default for ambiguous mappings
% in first position, the old in last position.
%
% The ``\LGR@…`` auxiliary macros are defined below.
@@ -338,78 +331,80 @@
\providecommand*\update@uclc@with@greek{%
\expandafter\def\expandafter\@uclclist\expandafter{%
\@uclclist
- \accdasia\LGR@accdropped
- \accdasiaoxia\LGR@hiatus
- \accdasiavaria\LGR@accdropped
+ \accdasia \LGR@accdropped
+ \accdasiaoxia \LGR@hiatus
+ \accdasiavaria \LGR@accdropped
\accdasiaperispomeni\LGR@accdropped
- \accpsili\LGR@hiatus
- \accpsilioxia\LGR@hiatus
- \accpsilivaria\LGR@hiatus
+ \accpsili \LGR@hiatus
+ \accpsilioxia \LGR@hiatus
+ \accpsilivaria \LGR@hiatus
\accpsiliperispomeni\LGR@accdropped
- \acctonos\LGR@hiatus
- \accoxia\LGR@hiatus
- \accvaria\LGR@accdropped
- \accdialytikatonos\LGR@accDialytika
- \accdialytikavaria\LGR@accDialytika
+ \acctonos \LGR@hiatus
+ \accoxia \LGR@hiatus
+ \accvaria \LGR@accdropped
+ \accdialytikatonos \LGR@accDialytika
+ \accdialytikaoxia \LGR@accDialytika
+ \accdialytikavaria \LGR@accDialytika
\accdialytikaperispomeni\LGR@accDialytika
- \accperispomeni\LGR@accdropped
- \LGR@ypogegrammeni\prosgegrammeni
- \textalpha \textAlpha
- \textbeta \textBeta
+ \accperispomeni \LGR@accdropped
+ \LGR@ypogegrammeni \prosgegrammeni
+ \textalpha \textAlpha
+ \textbeta \textBeta
\textbetasymbol \textBeta
\textvarbeta \textBeta
- \textgamma \textGamma
- \textdelta \textDelta
- \textepsilon \textEpsilon
+ \textgamma \textGamma
+ \textdelta \textDelta
+ \textepsilon \textEpsilon
\textepsilonsymbol \textEpsilon
\textvarepsilon \textEpsilon
- \textzeta \textZeta
- \texteta \textEta
- \texttheta \textTheta
+ \textzeta \textZeta
+ \texteta \textEta
+ \texttheta \textTheta
\texttheta \textThetasymbol
\texttheta \textvarTheta
\textthetasymbol \textTheta
\textvartheta \textTheta
- \textiota \textIota
- \textkappa \textKappa
+ \textiota \textIota
+ \textkappa \textKappa
\textkappasymbol \textKappa
\textvarkappa \textKappa
- \textlambda \textLambda
- \textmu \textMu
- \textnu \textNu
- \textxi \textXi
- \textomicron \textOmicron
- \textpi \textPi
- \textpisymbol \textPi
- \textvarpi \textPi
- \textrho \textRho
+ \textlambda \textLambda
+ \textmu \textMu
+ \textnu \textNu
+ \textxi \textXi
+ \textomicron \textOmicron
+ \textpi \textPi
+ \textpisymbol \textPi
+ \textvarpi \textPi
+ \textrho \textRho
\textvarrho \textRho
\textrhosymbol \textRho
- \textautosigma \textSigma
- \textfinalsigma \textSigma
- \textvarsigma \textSigma
- \textsigma \textSigma
- \texttau \textTau
- \textupsilon \textUpsilon
- \textphi \textPhi
- \textphisymbol \textPhi
- \textvarphi \textPhi
- \textchi \textChi
- \textpsi \textPsi
- \textomega \textOmega
- \textkoppa \textKoppa
- \textqoppa \textQoppa
- \textvarstigma \LGR@Stigma
- \textstigma \textStigma
- \textsampi \textSampi
- \textdigamma \textDigamma
+ \textautosigma \textSigma
+ \textfinalsigma \textSigma
+ \textvarsigma \textSigma
+ \textsigma \textSigma
+ \texttau \textTau
+ \textupsilon \textUpsilon
+ \textphi \textPhi
+ \textphisymbol \textPhi
+ \textvarphi \textPhi
+ \textchi \textChi
+ \textpsi \textPsi
+ \textomega \textOmega
+ \textkoppa \textKoppa
+ \textqoppa \textQoppa
+ \textstigma \textStigma
+ \textvarstigma \textStigma
+ \textsampi \textSampi
+ \textdigamma \textDigamma
% Repeat default for ambiguous mappings for pre-2022 MakeUppercase:
- \textbeta \textBeta
- \texttheta \textTheta
- \textkappa \textKappa
- \textpi \textPi
- \textrho \textRho
- \textautosigma \textSigma
+ \textbeta \textBeta
+ \texttheta \textTheta
+ \textkappa \textKappa
+ \textpi \textPi
+ \textrho \textRho
+ \textautosigma \textSigma
+ \textstigma \textStigma
}%
\let\update@uclc@with@greek\relax
}
@@ -428,7 +423,9 @@
% where the character ``~`` maps to a no-break space.
% ::
-\DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1}
+\ProvideTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}{\@firstofone}
+\DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{'}{\LGR@accdropped}
+\DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{`}{\LGR@accdropped}
\DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{~}{\LGR@accdropped}
% Keep dialytika: Define a dummy alias so that downcasing with
@@ -439,18 +436,12 @@
\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@hiatus}{\accdialytika}
\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR@accdropped}{\accdialytika}
-% The prosgegrammeni (adscript iota) is used only with capital letters.
+% The prosgegrammeni (adscript iota) is used only with capital letters.
% We define a dummy macro to enable the conversion of ``\prosgegrammeni``
-% to ``\ypogegrammeni`` (subscript iota) but not vice versa::
+% to ``\ypogegrammeni`` (subscript iota) but not vice versa::
\DeclareTextCommand{\LGR@ypogegrammeni}{\LastDeclaredEncoding}{\ypogegrammeni}
-% Prevent downcasing ``\textStigma`` to the stigma variant ``\textvarstigma``
-% (only available in LGR). This happened sometimes with the post-2022/06
-% ``\MakeLowercase``::
-
-\DeclareTextCommand{\LGR@Stigma}{\LastDeclaredEncoding}{\textStigma}
-
% Hiatus
% """"""
@@ -520,6 +511,9 @@
% 2.3 2023-06-01 @uclclist entries for symbol variants.
% 2.4 2023-08-15 Fix @uclclist_ for ambiguous mappings.
% .. Composite commands for "captital" macros and ``~``.
+% 2.5 2023-09-12 ``\textvarTheta`` is now an alias for ``\textTheta``
+% (the math command `\varTheta` set the *letter* Theta
+% in italic shape).
% ====== ============ ========================================================
%
%
diff --git a/language/greek/greek-fontenc/greek-fontenc.def.html b/language/greek/greek-fontenc/greek-fontenc.def.html
index b9a43fd656..a4060bab54 100644
--- a/language/greek/greek-fontenc/greek-fontenc.def.html
+++ b/language/greek/greek-fontenc/greek-fontenc.def.html
@@ -794,7 +794,7 @@ mstyle.mathscr, mi.mathscr {
<p class="subtitle" id="common-greek-font-encoding-definitions">Common Greek font encoding definitions</p>
<dl class="docinfo">
<dt class="version">Version<span class="colon">:</span></dt>
-<dd class="version">2.4 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
+<dd class="version">2.5 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
<dt class="copyright">Copyright<span class="colon">:</span></dt>
<dd class="copyright">© 2013 – 2023 Günter Milde</dd>
<dt class="licence">Licence<span class="colon">:</span></dt>
@@ -842,7 +842,7 @@ font encodings providing Greek characters.</p>
<section id="identification">
<h3><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Identification</a></h3>
<pre class="literal-block">\ProvidesFile{greek-fontenc.def}
- [2023-08-15 2.4 Common Greek font encoding definitions]</pre>
+ [2023-09-12 2.5 Common Greek font encoding definitions]</pre>
</section>
<section id="ensuregreek-greekscript">
<h3><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">ensuregreek, greekscript</a></h3>
@@ -869,11 +869,11 @@ without the need for additional &#64;uclclist_ entries.</p>
<pre class="literal-block">% \var... matching GREEK ... SYMBOL
\DeclareTextCommand{\textvarbeta}{\LastDeclaredEncoding}{\textbetasymbol} % ϐ
\DeclareTextCommand{\textvarkappa}{\LastDeclaredEncoding}{\textkappasymbol} % ϰ
-\DeclareTextCommand{\textvarTheta}{\LastDeclaredEncoding}{\textThetasymbol} % ϴ
\DeclareTextCommand{\textvartheta}{\LastDeclaredEncoding}{\textthetasymbol} % ϑ
\DeclareTextCommand{\textvarpi}{\LastDeclaredEncoding}{\textpisymbol} % ϖ
\DeclareTextCommand{\textvarrho}{\LastDeclaredEncoding}{\textrhosymbol} % ϱ
% \var... matching GREEK LETTER ...
+\DeclareTextCommand{\textvarTheta}{\LastDeclaredEncoding}{\textTheta} % Θ
\DeclareTextCommand{\textvarepsilon}{\LastDeclaredEncoding}{\textepsilon} % ε
\DeclareTextCommand{\textvarphi}{\LastDeclaredEncoding}{\textphi} % φ
\DeclareTextCommand{\textvarsigma}{\LastDeclaredEncoding}{\textfinalsigma} % ς</pre>
@@ -895,7 +895,7 @@ without the need for additional &#64;uclclist_ entries.</p>
</span><span class="keyword">\DeclareTextCommand</span><span class="name builtin">{</span><span class="keyword">\katwtonos</span><span class="name builtin">}{</span><span class="keyword">\LastDeclaredEncoding</span><span class="name builtin">}{</span><span class="keyword">\textaristerikeraia</span><span class="name builtin">}</span> <span class="comment">% ͵</span></code></pre>
<p>Two Unicode code points and names for one character:</p>
<pre class="literal-block">\DeclareTextCommand{\accoxia}{\LastDeclaredEncoding}{\acctonos}
-\DeclareTextCommand{\accdialytikaoxia}{\LastDeclaredEncoding}{\accdialyikatonos}
+\DeclareTextCommand{\accdialytikaoxia}{\LastDeclaredEncoding}{\accdialytikatonos}
\DeclareTextCommand{\acckoronis}{\LastDeclaredEncoding}{\accpsili}</pre>
<p>Symbol macros for the breathings:</p>
<p>Moved to <span class="docutils literal">textalpha.sty</span> to avoid clashes with local definitions
@@ -1021,44 +1021,37 @@ composite definitions starting with standard macros are requried:</p>
\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accperispomeni}{\accdasiaperispomeni}
\DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\~}{\accdasiaperispomeni}</pre>
<p>Also define the combinations with “capital” accent macros:</p>
-<pre class="literal-block">\providecommand\IfFormatAtLeastTF{\&#64;ifl&#64;t&#64;r\fmtversion} % new in 2020
-\IfFormatAtLeastTF{2022/06/01}{
- \ProvideTextCommand{\accACUTE}{\LastDeclaredEncoding}{\&#64;tabacckludge '}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{&quot;}{\accdialytika}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\LGR&#64;hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\LGR&#64;accdropped}
-
- \ProvideTextCommand{\accGRAVE}{\LastDeclaredEncoding}{\&#64;tabacckludge`}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{&quot;}{\accdialytika}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\LGR&#64;hiatus}
- \DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\LGR&#64;accdropped}
-
- \ProvideTextCommand{\accTILDE}{\LastDeclaredEncoding}{\&#64;tabacckludge~}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{&quot;}{\accdialytika}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\LGR&#64;accdropped}
-
- \ProvideTextCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\&#64;tabacckludge&quot;}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{'}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{`}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{~}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accACUTE}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accGRAVE}{\accdialytika}
- \DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accTILDE}{\accdialytika}
-
- \ProvideTextCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{\&#64;firstofone}
- \DeclareTextCompositeCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{'}{\LGR&#64;accdropped}
- \DeclareTextCompositeCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{`}{\LGR&#64;accdropped}
-}{} % else do nothing</pre>
+<pre class="literal-block">\ProvideTextCommand{\accACUTE}{\LastDeclaredEncoding}{\&#64;tabacckludge '}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;hiatus}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{&quot;}{\accdialytika}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\LGR&#64;hiatus}
+\DeclareTextCompositeCommand{\accACUTE}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\LGR&#64;accdropped}
+
+\ProvideTextCommand{\accGRAVE}{\LastDeclaredEncoding}{\&#64;tabacckludge`}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{&quot;}{\accdialytika}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\LGR&#64;hiatus}
+\DeclareTextCompositeCommand{\accGRAVE}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\LGR&#64;accdropped}
+
+\ProvideTextCommand{\accTILDE}{\LastDeclaredEncoding}{\&#64;tabacckludge~}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{&gt;}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{&lt;}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{&quot;}{\accdialytika}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\accDIAERESIS}{\accdialytika}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\accTILDE}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\LGR&#64;accdropped}
+
+\ProvideTextCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\&#64;tabacckludge&quot;}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{'}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{`}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{~}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accACUTE}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accGRAVE}{\accdialytika}
+\DeclareTextCompositeCommand{\accDIAERESIS}{\LastDeclaredEncoding}{\accTILDE}{\accdialytika}</pre>
</section>
<section id="case-changing">
<span id="uclclist"></span><h3><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">Case changing</a></h3>
@@ -1086,85 +1079,87 @@ get the expected behaviour:</p>
<p>Based on Werner Lemberg’s 2008 <a class="reference external" href="http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf">babel patch</a> and <span class="docutils literal">fontenc.sty</span>.</p>
<p>The definition of an auxiliary, self-resetting macro makes this idempotent
(only the first use of this function will expand the <span class="docutils literal">&#64;uclclist</span>).
-The second and third lines are TeX’ way of writing <span class="docutils literal">&#64;uclclist += …</span></p>
-<p>The new <span class="docutils literal">\MakeUppercase</span> expects the default for ambiguous mappings
+The second and third lines are TeX’s way of writing <span class="docutils literal">&#64;uclclist += …</span></p>
+<p>Since 2022, <span class="docutils literal">\MakeUppercase</span> expects the default for ambiguous mappings
in first position, the old in last position.</p>
<p>The <span class="docutils literal">\LGR&#64;…</span> auxiliary macros are defined below.</p>
<pre class="literal-block">\providecommand*\update&#64;uclc&#64;with&#64;greek{%
\expandafter\def\expandafter\&#64;uclclist\expandafter{%
\&#64;uclclist
- \accdasia\LGR&#64;accdropped
- \accdasiaoxia\LGR&#64;hiatus
- \accdasiavaria\LGR&#64;accdropped
+ \accdasia \LGR&#64;accdropped
+ \accdasiaoxia \LGR&#64;hiatus
+ \accdasiavaria \LGR&#64;accdropped
\accdasiaperispomeni\LGR&#64;accdropped
- \accpsili\LGR&#64;hiatus
- \accpsilioxia\LGR&#64;hiatus
- \accpsilivaria\LGR&#64;hiatus
+ \accpsili \LGR&#64;hiatus
+ \accpsilioxia \LGR&#64;hiatus
+ \accpsilivaria \LGR&#64;hiatus
\accpsiliperispomeni\LGR&#64;accdropped
- \acctonos\LGR&#64;hiatus
- \accoxia\LGR&#64;hiatus
- \accvaria\LGR&#64;accdropped
- \accdialytikatonos\LGR&#64;accDialytika
- \accdialytikavaria\LGR&#64;accDialytika
+ \acctonos \LGR&#64;hiatus
+ \accoxia \LGR&#64;hiatus
+ \accvaria \LGR&#64;accdropped
+ \accdialytikatonos \LGR&#64;accDialytika
+ \accdialytikaoxia \LGR&#64;accDialytika
+ \accdialytikavaria \LGR&#64;accDialytika
\accdialytikaperispomeni\LGR&#64;accDialytika
- \accperispomeni\LGR&#64;accdropped
- \LGR&#64;ypogegrammeni\prosgegrammeni
- \textalpha \textAlpha
- \textbeta \textBeta
+ \accperispomeni \LGR&#64;accdropped
+ \LGR&#64;ypogegrammeni \prosgegrammeni
+ \textalpha \textAlpha
+ \textbeta \textBeta
\textbetasymbol \textBeta
\textvarbeta \textBeta
- \textgamma \textGamma
- \textdelta \textDelta
- \textepsilon \textEpsilon
+ \textgamma \textGamma
+ \textdelta \textDelta
+ \textepsilon \textEpsilon
\textepsilonsymbol \textEpsilon
\textvarepsilon \textEpsilon
- \textzeta \textZeta
- \texteta \textEta
- \texttheta \textTheta
+ \textzeta \textZeta
+ \texteta \textEta
+ \texttheta \textTheta
\texttheta \textThetasymbol
\texttheta \textvarTheta
\textthetasymbol \textTheta
\textvartheta \textTheta
- \textiota \textIota
- \textkappa \textKappa
+ \textiota \textIota
+ \textkappa \textKappa
\textkappasymbol \textKappa
\textvarkappa \textKappa
- \textlambda \textLambda
- \textmu \textMu
- \textnu \textNu
- \textxi \textXi
- \textomicron \textOmicron
- \textpi \textPi
- \textpisymbol \textPi
- \textvarpi \textPi
- \textrho \textRho
+ \textlambda \textLambda
+ \textmu \textMu
+ \textnu \textNu
+ \textxi \textXi
+ \textomicron \textOmicron
+ \textpi \textPi
+ \textpisymbol \textPi
+ \textvarpi \textPi
+ \textrho \textRho
\textvarrho \textRho
\textrhosymbol \textRho
- \textautosigma \textSigma
- \textfinalsigma \textSigma
- \textvarsigma \textSigma
- \textsigma \textSigma
- \texttau \textTau
- \textupsilon \textUpsilon
- \textphi \textPhi
- \textphisymbol \textPhi
- \textvarphi \textPhi
- \textchi \textChi
- \textpsi \textPsi
- \textomega \textOmega
- \textkoppa \textKoppa
- \textqoppa \textQoppa
- \textvarstigma \LGR&#64;Stigma
- \textstigma \textStigma
- \textsampi \textSampi
- \textdigamma \textDigamma
+ \textautosigma \textSigma
+ \textfinalsigma \textSigma
+ \textvarsigma \textSigma
+ \textsigma \textSigma
+ \texttau \textTau
+ \textupsilon \textUpsilon
+ \textphi \textPhi
+ \textphisymbol \textPhi
+ \textvarphi \textPhi
+ \textchi \textChi
+ \textpsi \textPsi
+ \textomega \textOmega
+ \textkoppa \textKoppa
+ \textqoppa \textQoppa
+ \textstigma \textStigma
+ \textvarstigma \textStigma
+ \textsampi \textSampi
+ \textdigamma \textDigamma
% Repeat default for ambiguous mappings for pre-2022 MakeUppercase:
- \textbeta \textBeta
- \texttheta \textTheta
- \textkappa \textKappa
- \textpi \textPi
- \textrho \textRho
- \textautosigma \textSigma
+ \textbeta \textBeta
+ \texttheta \textTheta
+ \textkappa \textKappa
+ \textpi \textPi
+ \textrho \textRho
+ \textautosigma \textSigma
+ \textstigma \textStigma
}%
\let\update&#64;uclc&#64;with&#64;greek\relax
}</pre>
@@ -1178,7 +1173,9 @@ The argument passing ensures that kerning is preserved and allows
definition of CompositeCommands (cf. <a class="citation-reference" href="#fntguide" id="citation-reference-4" role="doc-biblioref">[fntguide]</a>)
Composite definitions with the tilde prevent errors in monotonic Greek
where the character <span class="docutils literal">~</span> maps to a no-break space.</p>
-<pre class="literal-block">\DeclareTextCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}[1]{#1}
+<pre class="literal-block">\ProvideTextCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{\&#64;firstofone}
+\DeclareTextCompositeCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{'}{\LGR&#64;accdropped}
+\DeclareTextCompositeCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{`}{\LGR&#64;accdropped}
\DeclareTextCompositeCommand{\LGR&#64;accdropped}{\LastDeclaredEncoding}{~}{\LGR&#64;accdropped}</pre>
<p>Keep dialytika: Define a dummy alias so that downcasing with
<span class="docutils literal">\MakeLowercase</span> does not convert a simple dialytika to a composite
@@ -1186,14 +1183,10 @@ accent:</p>
<pre class="literal-block">\DeclareTextCommand{\LGR&#64;accDialytika}{\LastDeclaredEncoding}{\accdialytika}
\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR&#64;hiatus}{\accdialytika}
\DeclareTextCompositeCommand{\accdialytika}{\LastDeclaredEncoding}{\LGR&#64;accdropped}{\accdialytika}</pre>
-<p>The prosgegrammeni (adscript iota) is used only with capital letters.
+<p>The prosgegrammeni (adscript iota) is used only with capital letters.
We define a dummy macro to enable the conversion of <span class="docutils literal">\prosgegrammeni</span>
-to <span class="docutils literal">\ypogegrammeni</span> (subscript iota) but not vice versa:</p>
+to <span class="docutils literal">\ypogegrammeni</span> (subscript iota) but not vice versa:</p>
<pre class="literal-block">\DeclareTextCommand{\LGR&#64;ypogegrammeni}{\LastDeclaredEncoding}{\ypogegrammeni}</pre>
-<p>Prevent downcasing <span class="docutils literal">\textStigma</span> to the stigma variant <span class="docutils literal">\textvarstigma</span>
-(only available in LGR). This happened sometimes with the post-2022/06
-<span class="docutils literal">\MakeLowercase</span>:</p>
-<pre class="literal-block">\DeclareTextCommand{\LGR&#64;Stigma}{\LastDeclaredEncoding}{\textStigma}</pre>
</section>
<section id="hiatus">
<h4><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Hiatus</a></h4>
@@ -1294,6 +1287,12 @@ downcasing <span class="docutils literal">\textStigma</span> to <span class="doc
<td></td>
<td><p>Composite commands for “captital” macros and <span class="docutils literal">~</span>.</p></td>
</tr>
+<tr><td><p>2.5</p></td>
+<td><p>2023-09-12</p></td>
+<td><p><span class="docutils literal">\textvarTheta</span> is now an alias for <span class="docutils literal">\textTheta</span>
+(the math command <cite>varTheta</cite> set the <em>letter</em> Theta
+in italic shape).</p></td>
+</tr>
</tbody>
</table>
</section>
diff --git a/language/greek/greek-fontenc/hyperref-with-greek.pdf b/language/greek/greek-fontenc/hyperref-with-greek.pdf
index b190db75f6..05020c366c 100644
--- a/language/greek/greek-fontenc/hyperref-with-greek.pdf
+++ b/language/greek/greek-fontenc/hyperref-with-greek.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/hyperref-with-greek.tex b/language/greek/greek-fontenc/hyperref-with-greek.tex
index c8906a36d2..227807d420 100644
--- a/language/greek/greek-fontenc/hyperref-with-greek.tex
+++ b/language/greek/greek-fontenc/hyperref-with-greek.tex
@@ -1,20 +1,30 @@
\documentclass{article}
\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
-% \usepackage{bookmark}
+\usepackage{bookmark}
+% \pagestyle{headings}
-\usepackage[LGR,T1]{fontenc}
-\usepackage{lmodern}
-\usepackage[greek,english]{babel}
+\ifdefined \UnicodeEncodingName
+ \usepackage{fontspec}
+ \setmainfont[Renderer=Harfbuzz]{FreeSerif}
+ \ifdefined\luatexversion
+ \newcommand*{\texengine}{LuaTeX}
+ \else
+ \newcommand*{\texengine}{XeTeX}
+ \fi
+\else
+ \usepackage[LGR,T1]{fontenc}
+ \usepackage{lmodern}
+ \newcommand*{\texengine}{pdfTeX}
+\fi
+
+\usepackage[greek.polutoniko,english]{babel}
\usepackage[normalize-symbols]{alphabeta}
-\usepackage[utf8]{inputenc}
-
-% \pagestyle{headings}
-\IfFormatAtLeastTF{2022/06/01}
- {\newcommand*{\testnewmakeuppercase}{\MakeUppercase}}
- {\newcommand*{\testnewmakeuppercase}{\relax}}
+% auxiliary commands
+\newcommand{\cs}[1]{\texttt{\textbackslash #1}}
+\newcommand*{\TestUppercase}[1]{#1 → \MakeUppercase{#1}}
\begin{document}
@@ -23,11 +33,13 @@
\date{2020/10/30}
\maketitle
+\tableofcontents
+
\noindent
On 2010-11-05, Heiko Oberdiek wrote in comp.text.tex:
%
\begin{quote}
- \textbackslash pdfstringdef (converting TeX code to PDF strings for
+ \cs{pdfstringdef} (converting TeX code to PDF strings for
bookmarks) supports NFSS2 and needs active characters. Encoding
stuff based on the internal font machinery of TeX (letters with
catcode 11 or 12, ligatures) does not work, because the strings
@@ -49,7 +61,7 @@ explicit change of the font encoding or Babel language (with some caveats,
see textalpha-doc.pdf).
For correct hyphenation and other fixes, mark Greek text parts with the
Babel language \texttt{greek}. There should be no space around a language
-switch: |\foreignlanguage{greek}{λογος}|
+switch: |\foreignlanguage{greek}{λογος}|.
\section{Transcription: \ensuregreek{logos}, \foreignlanguage{greek}{logos}}
@@ -58,15 +70,15 @@ In the PDF-bookmark are Latin letters instead of Greek ones.
\section{Macros:
\foreignlanguage{greek}{%
- \textlambda\textomicron\textgamma\textomicron\textvarsigma},
- \textlambda\textomicron\textgamma\textomicron\textvarsigma{},
- \lambda\omicron\gamma\omicron\varsigma{},
+ \textlambda\textomicron\textgamma\textomicron\textfinalsigma},
+ \textlambda\textomicron\textgamma\textomicron\textfinalsigma{},
+ \lambda\omicron\gamma\omicron\finalsigma{},
λογος,
}
-\emph{Babel-Greek} or \emph{textalpha} package with \verb|\textalpha| \ldots
-\verb|textomega| macros; \emph{alphabeta} package with
-\verb|alpha| \ldots \verb|Omega| macros.
+\emph{Babel-Greek} or \emph{textalpha} package with \cs{textalpha} …
+\cs{textomega} macros; \emph{alphabeta} package with
+\cs{alpha} … \cs{Omega} macros.
With 8-bit TeX (pdflatex), literal Greek Unicode characters are
converted to LICR Macros, too.
@@ -82,7 +94,7 @@ to \emph{hyperref}.%
\foreignlanguage{greek}{\textAlpha\textUpsilon\textLambda}%
}
-Kerning is impossible if the font encoding is switched for every single
+Kerning is impeded if the font encoding is switched for every single
character. To fix this, wrap the Greek part in a command switching to a font
encoding supporting Greek, either \verb+\ensuregreek{...}+ (with package
\emph{textalpha} or \emph{Babel}) or \verb+\foreignlanguage{greek}{...}+
@@ -104,7 +116,7 @@ Greek and Coptic Unicode block: lowercase letters
\subsection{ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏ}
\subsection{ἐἑἒἓἔἕἘἙἚἛἜἝ}
\subsection{ἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯ}
-\subsection{ἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿ}
+\subsection{ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ}
\subsection{ὀὁὂὃὄὅὈὉὊὋὌὍ}
\subsection{ὐὑὒὓὔὕὖὗὙὛὝὟ}
\subsection{ὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯ}
@@ -114,7 +126,7 @@ Greek and Coptic Unicode block: lowercase letters
\subsection{ᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯ}
\subsection{ᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ᾽ι᾿}
\subsection{῀῁ῂῃῄῆῇῈΈῊΉῌ῍῎῏}
-\subsection{ῐῑῒΐῖῗῘῙῚΊ῝῞῟}
+\subsection{ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝῞῟}
\subsection{ῠῡῢΰῤῥῦῧῨῩῪΎῬ῭΅`}
\subsection{ῲῳῴῶῷῸΌῺΏῼ´῾}
@@ -123,9 +135,9 @@ works fine.
\section{LICR command input}
-\subsection{\ensuregreek{
- \textnumeralsigngreek
- \textnumeralsignlowergreek
+\newcommand*{\GreekAndCopticI}{\greekscript
+ \textdexiakeraia
+ \textaristerikeraia
{ }\ypogegrammeni
\texterotimatiko
\acctonos{ }
@@ -151,8 +163,9 @@ works fine.
\textKappa
\textLambda
\textMu
- \textNu}}
-\subsection{\ensuregreek{
+ \textNu
+}
+\newcommand*{\GreekAndCopticII}{\greekscript
\textXi
\textOmicron
\textPi
@@ -166,9 +179,8 @@ works fine.
\textOmega
\"\textIota
\"\textUpsilon
-}}
-
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekAndCopticIII}{\greekscript
\'\textalpha
\'\textepsilon
\'\texteta
@@ -186,13 +198,13 @@ works fine.
\textkappa
\textlambda
\textmu
- \textnu}}
-\subsection{\ensuregreek{
+ \textnu}
+\newcommand*{\GreekAndCopticIV}{\greekscript
\textxi
\textomicron
\textpi
\textrho
- \textvarsigma
+ \textfinalsigma
\textsigma
\texttau
\textupsilon
@@ -219,13 +231,12 @@ works fine.
\textkoppa
\textSampi
\textsampi
-}}
-
+}
-\emph{textalpha} load definitions for LICR input with non-standard
+\emph{textalpha} loads definitions for LICR input with non-standard
accents or combined diacritics characters also for PU (hyperref).
-\subsection{\ensuregreek{
+\newcommand*{\GreekExtendedI}{\greekscript
\>\textalpha
\<\textalpha
\>`\textalpha
@@ -233,7 +244,7 @@ accents or combined diacritics characters also for PU (hyperref).
\>'\textalpha
\<'\textalpha
\~>\textalpha
- \~<\textalpha
+ \~<\textalpha{}
\>\textAlpha
\<\textAlpha
\>`\textAlpha
@@ -242,22 +253,22 @@ accents or combined diacritics characters also for PU (hyperref).
\<'\textAlpha
\~>\textAlpha
\~<\textAlpha
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedII}{\greekscript
\>\textepsilon
\<\textepsilon
\>`\textepsilon
\<`\textepsilon
\>'\textepsilon
- \<'\textepsilon
+ \<'\textepsilon{}
\>\textEpsilon
\<\textEpsilon
\>`\textEpsilon
\<`\textEpsilon
\>'\textEpsilon
\<'\textEpsilon
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedIII}{\greekscript
\>\texteta
\<\texteta
\>`\texteta
@@ -265,7 +276,7 @@ accents or combined diacritics characters also for PU (hyperref).
\>'\texteta
\<'\texteta
\~>\texteta
- \~<\texteta
+ \~<\texteta{}
\>\textEta
\<\textEta
\>`\textEta
@@ -274,40 +285,40 @@ accents or combined diacritics characters also for PU (hyperref).
\<'\textEta
\~>\textEta
\~<\textEta
-}}
-\subsection{\ensuregreek{
- \>\textiota
- \<\textiota
- \>`\textiota
- \<`\textiota
- \>'\textiota
- \<'\textiota
- \~>\textiota
- \~<\textiota
- \>\textIota
- \<\textIota
- \>`\textIota
- \<`\textIota
- \>'\textIota
- \<'\textIota
- \~>\textIota
- \~<\textIota
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedIV}{\greekscript
+ \>\textiota{}
+ \<\textiota{}
+ \>`\textiota{}
+ \<`\textiota{}
+ \>'\textiota{}
+ \<'\textiota{}
+ \~>\textiota{}
+ \~<\textiota{}\ {}
+ \>\textIota{}
+ \<\textIota{}
+ \>`\textIota{}
+ \<`\textIota{}
+ \>'\textIota{}
+ \<'\textIota{}
+ \~>\textIota{}
+ \~<\textIota{}
+}
+\newcommand*{\GreekExtendedV}{\greekscript
\>\textomicron
\<\textomicron
\>`\textomicron
\<`\textomicron
\>'\textomicron
- \<'\textomicron
+ \<'\textomicron{}
\>\textOmicron
\<\textOmicron
\>`\textOmicron
\<`\textOmicron
\>'\textOmicron
\<'\textOmicron
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedVI}{\greekscript
\>\textupsilon
\<\textupsilon
\>`\textupsilon
@@ -315,13 +326,13 @@ accents or combined diacritics characters also for PU (hyperref).
\>'\textupsilon
\<'\textupsilon
\~>\textupsilon
- \~<\textupsilon
+ \~<\textupsilon{}
\<\textUpsilon
\<`\textUpsilon
\<'\textUpsilon
\~<\textUpsilon
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedVII}{\greekscript
\>\textomega
\<\textomega
\>`\textomega
@@ -329,7 +340,7 @@ accents or combined diacritics characters also for PU (hyperref).
\>'\textomega
\<'\textomega
\~>\textomega
- \~<\textomega
+ \~<\textomega{}
\>\textOmega
\<\textOmega
\>`\textOmega
@@ -338,8 +349,8 @@ accents or combined diacritics characters also for PU (hyperref).
\<'\textOmega
\~>\textOmega
\~<\textOmega
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedVIII}{\greekscript
\accvaria\textalpha
\accoxia\textalpha
\accvaria\textepsilon
@@ -354,8 +365,8 @@ accents or combined diacritics characters also for PU (hyperref).
\accoxia\textupsilon
\accvaria\textomega
\accoxia\textomega
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedIX}{\greekscript
\>\textalpha\ypogegrammeni
\<\textalpha\ypogegrammeni
\>`\textalpha\ypogegrammeni
@@ -372,8 +383,8 @@ accents or combined diacritics characters also for PU (hyperref).
\<'\textAlpha\ypogegrammeni
\~>\textAlpha\ypogegrammeni
\~<\textAlpha\ypogegrammeni
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedX}{\greekscript
\>\texteta\ypogegrammeni
\<\texteta\ypogegrammeni
\>`\texteta\ypogegrammeni
@@ -390,8 +401,8 @@ accents or combined diacritics characters also for PU (hyperref).
\<'\textEta\ypogegrammeni
\~>\textEta\ypogegrammeni
\~<\textEta\ypogegrammeni
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedXI}{\greekscript
\>\textomega\ypogegrammeni
\<\textomega\ypogegrammeni
\>`\textomega\ypogegrammeni
@@ -408,8 +419,8 @@ accents or combined diacritics characters also for PU (hyperref).
\<'\textOmega\ypogegrammeni
\~>\textOmega\ypogegrammeni
\~<\textOmega\ypogegrammeni
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedXII}{\greekscript
\u\textalpha
\=\textalpha
\accvaria\textalpha\ypogegrammeni
@@ -425,8 +436,8 @@ accents or combined diacritics characters also for PU (hyperref).
\>{ }
{ }\prosgegrammeni
\>{ }
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedXIII}{\greekscript
\accperispomeni\textcompwordmark
\"\~{ }
\accvaria\texteta\ypogegrammeni
@@ -442,23 +453,23 @@ accents or combined diacritics characters also for PU (hyperref).
\>`{ }
\>'{ }
\~>{ }
-}}
-\subsection{\ensuregreek{
- \u\textiota
- \=\textiota
- \`"\textiota
- \'"\textiota
- \~\textiota
- \~"\textiota
- \u\textIota
- \=\textIota
- \accvaria\textIota
- \accoxia\textIota
+}
+\newcommand*{\GreekExtendedXIV}{\greekscript
+ \u\textiota{}
+ \=\textiota{}
+ \`"\textiota{}
+ \'"\textiota{}
+ \~\textiota{}
+ \~"\textiota{}
+ \u\textIota{}
+ \=\textIota{}
+ \accvaria\textIota{}
+ \accoxia\textIota{}
\<`{ }
\>'{ }
\~<{ }
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedXV}{\greekscript
\u\textupsilon
\=\textupsilon
\`"\textupsilon
@@ -475,8 +486,8 @@ accents or combined diacritics characters also for PU (hyperref).
\`"{ }
\'"{ }
\accvaria{ }
-}}
-\subsection{\ensuregreek{
+}
+\newcommand*{\GreekExtendedXVI}{\greekscript
\accvaria\textomega\ypogegrammeni
\textomega\ypogegrammeni
\accoxia\textomega\ypogegrammeni
@@ -489,40 +500,165 @@ accents or combined diacritics characters also for PU (hyperref).
\textOmega\ypogegrammeni
\accoxia{ }
\<{ }
+}
+
+\subsection{Greek and Coptic}
+
+\subsubsection{\GreekAndCopticI}
+\subsubsection{\GreekAndCopticII}
+\subsubsection{\GreekAndCopticIII}
+\subsubsection{\GreekAndCopticIV}
+
+
+\subsection{Greek Extended}
+
+\subsubsection{\GreekExtendedI}
+\subsubsection{\GreekExtendedII}
+\subsubsection{\GreekExtendedIII}
+\subsubsection{\GreekExtendedIV}
+\subsubsection{\GreekExtendedV}
+\subsubsection{\GreekExtendedVI}
+\subsubsection{\GreekExtendedVII}
+\subsubsection{\GreekExtendedVIII}
+\subsubsection{\GreekExtendedIX}
+\subsubsection{\GreekExtendedX}
+\subsubsection{\GreekExtendedXI}
+\subsubsection{\GreekExtendedXII}
+\subsubsection{\GreekExtendedXIII}
+\subsubsection{\GreekExtendedXIV}
+\subsubsection{\GreekExtendedXV}
+\subsubsection{\GreekExtendedXVI}
+
+
+\section{Alias character names}
+
+\subsection{\ensuregreek{
+ \textvarTheta
+ \textvarepsilon
+ \textvarphi
+ \textvarsigma
+ \textvarbeta
+ \textvartheta
+ \textvarpi
+ \textvarkappa
+ \textvarrho
+ \textnumeralsigngreek
+ \textnumeralsignlowergreek
+ \textmugreek
+ \textStigmagreek
+ \textDigammagreek
+ \textdigammagreek
+ \textSampigreek
+ \textsampigreek
}}
+
\section{Makeuppercase}
According to Greek typesetting conventions,
diacritics (except the dialytika) are dropped in UPPERCASE.
-The LaTeX \verb|\Makeuppercase| implementation changed fundamentally
+The LaTeX \cs{Makeuppercase} implementation changed fundamentally
with the release in 06/2022.\footnote{%
This change cannot be reverted with the rollback mechanism
``for technical reasons''.}
-\verb|\Makeuppercase| is now supported PDF-strings.
+Since the change, \cs{Makeuppercase} is also supported in PDF-strings.
Greek typesetting rules are ony applied if the text language is
-set to \texttt{greek} with Babel's \verb|\setlanguage| or
-\verb|\foreignlanguage|.
+set to \texttt{greek} with Babel's \cs{setlanguage} or
+\cs{foreignlanguage}.
The changes broke the support for upcasing of polutonic Greek (combined
accents) with LICR input and of Greek with the LGR Latin transliteration.
-Restoring support is currently (2023/02/10) worked on.
-
-\selectlanguage{greek}
-\subsection{\testnewmakeuppercase{ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏ}}
+Support is restored as of 2023-09-07, some issues remain with PDF strings.
+
+\ifdefined \AddToNoCaseChangeList
+ % skip \MakeUppercase tests for LaTeX older than 2022/6
+
+ \subsection{Literal Unicode input}
+
+ \subsubsection{\MakeUppercase{ʹ͵ͺ; ΄ ΅ Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝ}}
+ Text language English --- diacritics not dropped.
+
+ \subsubsection{\foreignlanguage{greek}{%
+ \MakeUppercase{ʹ͵ͺ; ΄ ΅ Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝ}}}
+ Language set to Greek inside the \cs{subsection} command --
+ diacritics dropped in the text and ToC but not in the PDF sidebar (sic!).
+
+ \selectlanguage{greek}
+ \subsubsection{\MakeUppercase{ʹ͵ͺ; ΄ ΅ Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝ}}
+
+ \ensureascii{Language switched before the \cs{subsection} command --
+ diacritics dropped in text, ToC, and PDF sidebar.}
+
+ \subsubsection{\MakeUppercase{ΞΟΠΡΣΤΥΦΧΨΩΪΫϘϚϜϠ}}
+ \subsubsection{\MakeUppercase{άέήίΰαβγδεζηθικλμν}}
+ \subsubsection{\MakeUppercase{ξοπρςστυφχψωϊϋόύώϐϑϕϖϘϙϛϝϟϡ}}
+
+ \subsubsection{\MakeUppercase{ἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏ}}
+ \subsubsection{\MakeUppercase{ἐἑἒἓἔἕἘἙἚἛἜἝ}}
+ \subsubsection{\MakeUppercase{ἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯ}}
+ \subsubsection{\MakeUppercase{ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ}}
+ \subsubsection{\MakeUppercase{ὀὁὂὃὄὅὈὉὊὋὌὍ}}
+ \subsubsection{\MakeUppercase{ὐὑὒὓὔὕὖὗὙὛὝὟ}}
+ \subsubsection{\MakeUppercase{ὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯ}}
+ \subsubsection{\MakeUppercase{ὰάὲέὴήὶίὸόὺύὼώ}}
+ \subsubsection{\MakeUppercase{ᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍᾎᾏ}}
+ \subsubsection{\MakeUppercase{ᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟ}}
+ \subsubsection{\MakeUppercase{ᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯ}}
+ \subsubsection{\MakeUppercase{ᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ᾽ι᾿}}
+ \ % dummy content to allow page-break
+ \subsubsection{\MakeUppercase{῀῁ῂῃῄῆῇῈΈῊΉῌ῍ ῎ ῏}}
+ \subsubsection{\MakeUppercase{ῐ ῑ ῒ ΐ ῖ ῗ Ῐ Ῑ Ὶ Ί ῝῞῟}}
+ \subsubsection{\MakeUppercase{ῠῡῢΰῤῥῦῧῨῩῪΎῬ῭΅`}}
+ \subsubsection{\MakeUppercase{ῲῳῴῶῷῸΌῺΏῼ´῾}}
+
+ \subsection{\ensureascii{LICR input}}
+
+ \subsubsection{\MakeUppercase{\GreekAndCopticI}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticII}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticIII}}
+ \subsubsection{\MakeUppercase{\GreekAndCopticIV}}
+
+ \subsubsection{\MakeUppercase{\GreekExtendedI}}
+ \subsubsection{\MakeUppercase{\GreekExtendedII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedIII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedIV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedVI}}
+ \subsubsection{\MakeUppercase{\GreekExtendedVII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedVIII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedIX}}
+ \subsubsection{\MakeUppercase{\GreekExtendedX}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXI}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXIII}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXIV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXV}}
+ \subsubsection{\MakeUppercase{\GreekExtendedXVI}}
+
+ \subsection{Hiatus}
+ \subsubsection{\TestUppercase{άι άυ έι ἄι ἄυ ἔι ἀυ}}
+ \subsubsection{\TestUppercase{\'\textalpha\textiota{}
+ \'\textalpha\textupsilon{} \'\textepsilon\textiota{}
+ \>'\textalpha\textiota{} \>'\textalpha\textupsilon{}
+ \>'\textepsilon\textiota{} \>\textalpha\textupsilon{}
+ }}
+
+\fi
\selectlanguage{english}
-\verb|Makeuppercase| is not supported in PDF strings with LaTeX versions
-older than 06/2022.
+
+In PDF strings, the hiatus feature only works with literal input.
\section{Conclusion}
For Greek text parts in section headers use either literal Unicode characters%
- \footnote{Pre-composed Unicode characters must be used for multi-accented
- letters or non-standard accents. Combining Unicode characters do not work
- with inputenc and 8-bit LaTeX – this is a general restriction.}
+ \footnote{Combining Unicode characters do not work
+ with inputenc and 8-bit LaTeX. (This is a general restriction.)
+ Use pre-composed Unicode characters or accent macros
+ for letters with diacritics. }
or macros. For proper kerning und upcasing in the main document, set the
-language with \verb|\foreignlanguage{greek}|.
+text language of Greek text parts to \texttt{greek}. If you use polytonic
+Greek, set the \texttt{polutoniko} language attribute.
\end{document}
diff --git a/language/greek/greek-fontenc/lgr2licr.lua.html b/language/greek/greek-fontenc/lgr2licr.lua.html
index 6fc3143515..ef82483467 100644
--- a/language/greek/greek-fontenc/lgr2licr.lua.html
+++ b/language/greek/greek-fontenc/lgr2licr.lua.html
@@ -2,7 +2,7 @@
<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="generator" content="Docutils 0.21b.dev: https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="dcterms.rights" content="© 2010 Günter Milde" />
<title>LGR Transcription to Greek LICR transformation</title>
@@ -308,8 +308,8 @@ p img, p video, figure img, figure video {
/* .. _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: */
+/* Note: */
+/* This style sheet is provisional: */
/* the API is not settled and may change with any minor Docutils version. */
@@ -648,7 +648,8 @@ math .boldsymbol {
font-weight: bold;
}
mstyle.mathscr, mi.mathscr {
- font-family: STIX;
+ font-family: STIX, XITSMathJax_Script, rsfs10,
+ "Asana Math", Garamond, cursive;
}
/* Adaptive page layout */
diff --git a/language/greek/greek-fontenc/lgrenc.def b/language/greek/greek-fontenc/lgrenc.def
index 8ff80d1d1b..d0890015ce 100644
--- a/language/greek/greek-fontenc/lgrenc.def
+++ b/language/greek/greek-fontenc/lgrenc.def
@@ -63,6 +63,7 @@
% 2.3 2023-06-01 Fix Unicode errors with "new" ``\MakeUppercase``.
% 2.4 2023-08-15 Add LGR-specific definitions for "capital" accent
% for the ``\MakeUppercase`` fix in babel-greek_.
+% 2.5 2023-09-12 Small formatting and documentation fixes.
% ====== ============ ========================================================
%
% Usage
@@ -102,7 +103,7 @@
% ::
\ProvidesFile{lgrenc.def}
-[2023-08-15 2.4 LGR Greek font encoding definitions]
+[2023-09-12 2.5 LGR Greek font encoding definitions]
% Copyright © 2010 -- 2023 Günter Milde
% This file is part of the "greek-fontenc" package.
% It may be distributed and/or modified under the
@@ -260,8 +261,8 @@
\PackageError{greek-fontenc}{character \string#1 not available \MessageBreak
in 8-bit TeX}
{Use XeTeX/LuaTeX if you need to distinguish the symbol from the letter.\MessageBreak
- The package `textalpha' with `normalize-symbols' maps the GREEK SYMBOL\MessageBreak
- character to the corresponding GREEK LETTER.\MessageBreak
+ The `normalize-symbols' option of babel-greek or package `textalpha'\MessageBreak
+ maps the GREEK SYMBOL character to the corresponding GREEK LETTER.\MessageBreak
Press <return> to proceed (dropping the symbol from the document).}
}
@@ -269,8 +270,8 @@
\PackageError{greek-fontenc}{character \string#1 not available in text mode}
{Use #2 or XeTeX/LuaTeX if you need to distinguish\MessageBreak
the symbol from the letter.\MessageBreak
- The package `textalpha' with `normalize-symbols' maps the GREEK SYMBOL\MessageBreak
- character to the corresponding GREEK LETTER.\MessageBreak
+ The `normalize-symbols' option of babel-greek or package `textalpha'\MessageBreak
+ maps the GREEK SYMBOL character to the corresponding GREEK LETTER.\MessageBreak
Press <return> to proceed (dropping the symbol from the document).}
}
@@ -866,31 +867,32 @@
% letters without pre-composed uppercase version
% """"""""""""""""""""""""""""""""""""""""""""""
%
-% The default \MakeUppercase (2022-version) emits "composing" Unicode in
-% characters for letters with diacriticals but no matching pre-composed
-% capital equivalent. The fix requires a LaTeX version 2023 or later::
+% The default ``\MakeUppercase`` (2022-version) emits "composing" Unicode
+% characters for letters with diacritics but no matching pre-composed
+% capital equivalent. We drop diacritics to prevent compilation errors.
+% The ``\DeclareUppercaseMapping`` macro is new in the 2023 LaTeX release::
\ifdefined\DeclareUppercaseMapping
- \DeclareUppercaseMapping{"0390}{\accdialytikatonos{\textiota}} % ΐ
- \DeclareUppercaseMapping{"03B0}{\accdialytikatonos{\textupsilon}} % ΰ
- \DeclareUppercaseMapping{"1F50}{\accpsili{\textupsilon}} % ὐ
- \DeclareUppercaseMapping{"1F52}{\accpsilivaria{\textupsilon}} % ὒ
- \DeclareUppercaseMapping{"1F54}{\accpsilioxia{\textupsilon}} % ὔ
- \DeclareUppercaseMapping{"1F56}{\accpsiliperispomeni{\textupsilon}} % ὖ
- \DeclareUppercaseMapping{"1FB6}{\accperispomeni{\textalpha}} % ᾶ
+ \DeclareUppercaseMapping{"0390}{\accdialytikatonos{\textiota}} % ΐ
+ \DeclareUppercaseMapping{"03B0}{\accdialytikatonos{\textupsilon}} % ΰ
+ \DeclareUppercaseMapping{"1F50}{\accpsili{\textupsilon}} % ὐ
+ \DeclareUppercaseMapping{"1F52}{\accpsilivaria{\textupsilon}} % ὒ
+ \DeclareUppercaseMapping{"1F54}{\accpsilioxia{\textupsilon}} % ὔ
+ \DeclareUppercaseMapping{"1F56}{\accpsiliperispomeni{\textupsilon}} % ὖ
+ \DeclareUppercaseMapping{"1FB6}{\accperispomeni{\textalpha}} % ᾶ
\DeclareUppercaseMapping{"1FB7}{\accperispomeni{\textalpha}\ypogegrammeni} % ᾷ
- \DeclareUppercaseMapping{"1FC6}{\accperispomeni{\texteta}} % ῆ
+ \DeclareUppercaseMapping{"1FC6}{\accperispomeni{\texteta}} % ῆ
\DeclareUppercaseMapping{"1FC7}{\accperispomeni{\texteta}\ypogegrammeni} % ῇ
- \DeclareUppercaseMapping{"1FD2}{\accdialytikavaria{\textiota}} % ῒ
- \DeclareUppercaseMapping{"1FD3}{\accdialytikatonos{\textiota}} % ΐ
- \DeclareUppercaseMapping{"1FD6}{\accperispomeni{\textiota}} % ῖ
- \DeclareUppercaseMapping{"1FD7}{\accdialytikaperispomeni{\textiota}} % ῗ
- \DeclareUppercaseMapping{"1FE2}{\accdialytikavaria{\textupsilon}} % ῢ
- \DeclareUppercaseMapping{"1FE3}{\accdialytikatonos{\textupsilon}} % ΰ
- \DeclareUppercaseMapping{"1FE4}{\accpsili{\textrho}} % ῤ
- \DeclareUppercaseMapping{"1FE6}{\accperispomeni{\textupsilon}} % ῦ
- \DeclareUppercaseMapping{"1FE7}{\accdialytikaperispomeni{\textupsilon}} % ῧ
- \DeclareUppercaseMapping{"1FF6}{\accperispomeni{\textomega}} % ῶ
+ \DeclareUppercaseMapping{"1FD2}{\accdialytikavaria{\textiota}} % ῒ
+ \DeclareUppercaseMapping{"1FD3}{\accdialytikatonos{\textiota}} % ΐ
+ \DeclareUppercaseMapping{"1FD6}{\accperispomeni{\textiota}} % ῖ
+ \DeclareUppercaseMapping{"1FD7}{\accdialytikaperispomeni{\textiota}} % ῗ
+ \DeclareUppercaseMapping{"1FE2}{\accdialytikavaria{\textupsilon}} % ῢ
+ \DeclareUppercaseMapping{"1FE3}{\accdialytikatonos{\textupsilon}} % ΰ
+ \DeclareUppercaseMapping{"1FE4}{\accpsili{\textrho}} % ῤ
+ \DeclareUppercaseMapping{"1FE6}{\accperispomeni{\textupsilon}} % ῦ
+ \DeclareUppercaseMapping{"1FE7}{\accdialytikaperispomeni{\textupsilon}} % ῧ
+ \DeclareUppercaseMapping{"1FF6}{\accperispomeni{\textomega}} % ῶ
\DeclareUppercaseMapping{"1FF7}{\accperispomeni{\textomega}\ypogegrammeni} % ῷ
\fi
diff --git a/language/greek/greek-fontenc/lgrenc.def.html b/language/greek/greek-fontenc/lgrenc.def.html
index fd050004e1..ec5caeb7ee 100644
--- a/language/greek/greek-fontenc/lgrenc.def.html
+++ b/language/greek/greek-fontenc/lgrenc.def.html
@@ -1014,6 +1014,10 @@ package.</p>
<td><p>Add LGR-specific definitions for “capital” accent
for the <span class="docutils literal">\MakeUppercase</span> fix in <a class="reference external" href="https://ctan.org/pkg/babel-greek">babel-greek</a>.</p></td>
</tr>
+<tr><td><p>2.5</p></td>
+<td><p>2023-09-12</p></td>
+<td><p>Small formatting and documentation fixes.</p></td>
+</tr>
</tbody>
</table>
</section>
@@ -1052,7 +1056,7 @@ anyway.</p>
<section id="identification">
<h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Identification</a></h3>
<pre class="literal-block">\ProvidesFile{lgrenc.def}
-[2023-08-15 2.4 LGR Greek font encoding definitions]
+[2023-09-12 2.5 LGR Greek font encoding definitions]
% Copyright © 2010 -- 2023 Günter Milde
% This file is part of the &quot;greek-fontenc&quot; package.
% It may be distributed and/or modified under the
@@ -1185,8 +1189,8 @@ provide fallback LICR macros with detailed error reporting:</p>
\PackageError{greek-fontenc}{character \string#1 not available \MessageBreak
in 8-bit TeX}
{Use XeTeX/LuaTeX if you need to distinguish the symbol from the letter.\MessageBreak
- The package `textalpha' with `normalize-symbols' maps the GREEK SYMBOL\MessageBreak
- character to the corresponding GREEK LETTER.\MessageBreak
+ The `normalize-symbols' option of babel-greek or package `textalpha'\MessageBreak
+ maps the GREEK SYMBOL character to the corresponding GREEK LETTER.\MessageBreak
Press &lt;return&gt; to proceed (dropping the symbol from the document).}
}
@@ -1194,8 +1198,8 @@ provide fallback LICR macros with detailed error reporting:</p>
\PackageError{greek-fontenc}{character \string#1 not available in text mode}
{Use #2 or XeTeX/LuaTeX if you need to distinguish\MessageBreak
the symbol from the letter.\MessageBreak
- The package `textalpha' with `normalize-symbols' maps the GREEK SYMBOL\MessageBreak
- character to the corresponding GREEK LETTER.\MessageBreak
+ The `normalize-symbols' option of babel-greek or package `textalpha'\MessageBreak
+ maps the GREEK SYMBOL character to the corresponding GREEK LETTER.\MessageBreak
Press &lt;return&gt; to proceed (dropping the symbol from the document).}
}
@@ -1734,30 +1738,31 @@ in cases where they are not needed when writing in lowercase)</p>
<h3><a class="toc-backref" href="#toc-entry-25" role="doc-backlink">UPPERCASE</a></h3>
<section id="letters-without-pre-composed-uppercase-version">
<h4><a class="toc-backref" href="#toc-entry-26" role="doc-backlink">letters without pre-composed uppercase version</a></h4>
-<p>The default MakeUppercase (2022-version) emits “composing” Unicode in
-characters for letters with diacriticals but no matching pre-composed
-capital equivalent. The fix requires a LaTeX version 2023 or later:</p>
+<p>The default <span class="docutils literal">\MakeUppercase</span> (2022-version) emits “composing” Unicode
+characters for letters with diacritics but no matching pre-composed
+capital equivalent. We drop diacritics to prevent compilation errors.
+The <span class="docutils literal">\DeclareUppercaseMapping</span> macro is new in the 2023 LaTeX release:</p>
<pre class="literal-block">\ifdefined\DeclareUppercaseMapping
- \DeclareUppercaseMapping{&quot;0390}{\accdialytikatonos{\textiota}} % ΐ
- \DeclareUppercaseMapping{&quot;03B0}{\accdialytikatonos{\textupsilon}} % ΰ
- \DeclareUppercaseMapping{&quot;1F50}{\accpsili{\textupsilon}} % ὐ
- \DeclareUppercaseMapping{&quot;1F52}{\accpsilivaria{\textupsilon}} % ὒ
- \DeclareUppercaseMapping{&quot;1F54}{\accpsilioxia{\textupsilon}} % ὔ
- \DeclareUppercaseMapping{&quot;1F56}{\accpsiliperispomeni{\textupsilon}} % ὖ
- \DeclareUppercaseMapping{&quot;1FB6}{\accperispomeni{\textalpha}} % ᾶ
+ \DeclareUppercaseMapping{&quot;0390}{\accdialytikatonos{\textiota}} % ΐ
+ \DeclareUppercaseMapping{&quot;03B0}{\accdialytikatonos{\textupsilon}} % ΰ
+ \DeclareUppercaseMapping{&quot;1F50}{\accpsili{\textupsilon}} % ὐ
+ \DeclareUppercaseMapping{&quot;1F52}{\accpsilivaria{\textupsilon}} % ὒ
+ \DeclareUppercaseMapping{&quot;1F54}{\accpsilioxia{\textupsilon}} % ὔ
+ \DeclareUppercaseMapping{&quot;1F56}{\accpsiliperispomeni{\textupsilon}} % ὖ
+ \DeclareUppercaseMapping{&quot;1FB6}{\accperispomeni{\textalpha}} % ᾶ
\DeclareUppercaseMapping{&quot;1FB7}{\accperispomeni{\textalpha}\ypogegrammeni} % ᾷ
- \DeclareUppercaseMapping{&quot;1FC6}{\accperispomeni{\texteta}} % ῆ
+ \DeclareUppercaseMapping{&quot;1FC6}{\accperispomeni{\texteta}} % ῆ
\DeclareUppercaseMapping{&quot;1FC7}{\accperispomeni{\texteta}\ypogegrammeni} % ῇ
- \DeclareUppercaseMapping{&quot;1FD2}{\accdialytikavaria{\textiota}} % ῒ
- \DeclareUppercaseMapping{&quot;1FD3}{\accdialytikatonos{\textiota}} % ΐ
- \DeclareUppercaseMapping{&quot;1FD6}{\accperispomeni{\textiota}} % ῖ
- \DeclareUppercaseMapping{&quot;1FD7}{\accdialytikaperispomeni{\textiota}} % ῗ
- \DeclareUppercaseMapping{&quot;1FE2}{\accdialytikavaria{\textupsilon}} % ῢ
- \DeclareUppercaseMapping{&quot;1FE3}{\accdialytikatonos{\textupsilon}} % ΰ
- \DeclareUppercaseMapping{&quot;1FE4}{\accpsili{\textrho}} % ῤ
- \DeclareUppercaseMapping{&quot;1FE6}{\accperispomeni{\textupsilon}} % ῦ
- \DeclareUppercaseMapping{&quot;1FE7}{\accdialytikaperispomeni{\textupsilon}} % ῧ
- \DeclareUppercaseMapping{&quot;1FF6}{\accperispomeni{\textomega}} % ῶ
+ \DeclareUppercaseMapping{&quot;1FD2}{\accdialytikavaria{\textiota}} % ῒ
+ \DeclareUppercaseMapping{&quot;1FD3}{\accdialytikatonos{\textiota}} % ΐ
+ \DeclareUppercaseMapping{&quot;1FD6}{\accperispomeni{\textiota}} % ῖ
+ \DeclareUppercaseMapping{&quot;1FD7}{\accdialytikaperispomeni{\textiota}} % ῗ
+ \DeclareUppercaseMapping{&quot;1FE2}{\accdialytikavaria{\textupsilon}} % ῢ
+ \DeclareUppercaseMapping{&quot;1FE3}{\accdialytikatonos{\textupsilon}} % ΰ
+ \DeclareUppercaseMapping{&quot;1FE4}{\accpsili{\textrho}} % ῤ
+ \DeclareUppercaseMapping{&quot;1FE6}{\accperispomeni{\textupsilon}} % ῦ
+ \DeclareUppercaseMapping{&quot;1FE7}{\accdialytikaperispomeni{\textupsilon}} % ῧ
+ \DeclareUppercaseMapping{&quot;1FF6}{\accperispomeni{\textomega}} % ῶ
\DeclareUppercaseMapping{&quot;1FF7}{\accperispomeni{\textomega}\ypogegrammeni} % ῷ
\fi</pre>
</section>
diff --git a/language/greek/greek-fontenc/puenc-greek.def b/language/greek/greek-fontenc/puenc-greek.def
index 920b49ab53..d308991642 100644
--- a/language/greek/greek-fontenc/puenc-greek.def
+++ b/language/greek/greek-fontenc/puenc-greek.def
@@ -24,6 +24,8 @@
% 2.2 2023-02-28 Add compatibility definitions for hyperref.
% 2.2.1 2023-03-08 Documentation update.
% 2.4 2023-08-15 Print σ, not ς with ``textautosigma`` dummy definition.
+% 2.5 2023-09-12 Composite definitions for "capital" diacritics to fix
+% ``\MakeUppercase`` in PDF strings.
% ====== =========== =======================================================
%
% .. contents::
@@ -34,7 +36,7 @@
% ::
\ProvidesFile{puenc-greek.def}
- [2023-08-15 2.4 Greek LICRs for PDF strings]
+ [2023-09-12 2.5 Greek LICRs for PDF strings]
% Diacritics
@@ -107,7 +109,7 @@
% Without coptic and archaic letters (except the ones used in Greek numerals).
% ::
-% NR Unicode Name % PU name (alias in greek-fontenc.def)
+% NR Unicode Name % legacy PU name (alias in greek-fontenc.def)
\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164} % ʹ \textnumeralsigngreek
\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165} % ͵ \textnumeralsignlowergreek
@@ -465,6 +467,42 @@
\DeclareTextCommand{\textpentemuria}{PU}{𐅇} % "10147 GREEK ACROPHONIC ATTIC FIFTY THOUSAND
+% UPPERCASE
+% ---------
+%
+% Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.
+%
+% Babel-Greek introduces macros for "capital accents" in release 1.13.3.
+% Here, we add definitions to drop diacritics in uppercase::
+
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textEpsilon}{\textEpsilon}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textEta }{\textEta}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textIota }{\textIota}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textOmicron}{\textOmicron}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textUpsilon}{\textUpsilon}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textOmega }{\textOmega}
+
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textEpsilon}{\textEpsilon}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textEta }{\textEta}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textIota }{\textIota}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textOmicron}{\textOmicron}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textUpsilon}{\textUpsilon}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textOmega }{\textOmega}
+
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textEta }{\textEta}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textIota }{\textIota}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textUpsilon}{\textUpsilon}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textOmega }{\textOmega}
+
+% The "hiatus" feature does not work with PU (Alpha/Epsilon is dropped!)::
+
+\DeclareTextCompositeCommand{\LGR@hiatus}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\LGR@hiatus}{PU}{\textEpsilon}{\textEpsilon}
+
+
% .. References
%
% .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
diff --git a/language/greek/greek-fontenc/puenc-greek.def.html b/language/greek/greek-fontenc/puenc-greek.def.html
index 7c58aae70b..83d316e9dd 100644
--- a/language/greek/greek-fontenc/puenc-greek.def.html
+++ b/language/greek/greek-fontenc/puenc-greek.def.html
@@ -827,6 +827,11 @@ Used by <a class="reference external" href="https://ctan.org/pkg/babel-greek">ba
<td><p>2023-08-15</p></td>
<td><p>Print σ, not ς with <span class="docutils literal">textautosigma</span> dummy definition.</p></td>
</tr>
+<tr><td><p>2.5</p></td>
+<td><p>2023-09-12</p></td>
+<td><p>Composite definitions for “capital” diacritics to fix
+<span class="docutils literal">\MakeUppercase</span> in PDF strings.</p></td>
+</tr>
</tbody>
</table>
</dd>
@@ -844,6 +849,7 @@ Used by <a class="reference external" href="https://ctan.org/pkg/babel-greek">ba
<li><p><a class="reference internal" href="#greek-extended" id="toc-entry-7">Greek Extended</a></p></li>
<li><p><a class="reference internal" href="#letterlike-symbols" id="toc-entry-8">Letterlike Symbols</a></p></li>
<li><p><a class="reference internal" href="#ancient-greek-numbers" id="toc-entry-9">Ancient Greek Numbers</a></p></li>
+<li><p><a class="reference internal" href="#uppercase" id="toc-entry-10">UPPERCASE</a></p></li>
</ul>
</li>
</ul>
@@ -851,7 +857,7 @@ Used by <a class="reference external" href="https://ctan.org/pkg/babel-greek">ba
<section id="identification">
<h2><a class="toc-backref" href="#toc-entry-1" role="doc-backlink">Identification</a></h2>
<pre class="literal-block">\ProvidesFile{puenc-greek.def}
- [2023-08-15 2.4 Greek LICRs for PDF strings]</pre>
+ [2023-09-12 2.5 Greek LICRs for PDF strings]</pre>
</section>
<section id="diacritics">
<h2><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Diacritics</a></h2>
@@ -900,7 +906,7 @@ Distinguish MICRO SIGN from letter mu:</p>
<section id="greek-and-coptic">
<h3><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">Greek and Coptic</a></h3>
<p>Without coptic and archaic letters (except the ones used in Greek numerals).</p>
-<pre class="literal-block">% NR Unicode Name % PU name (alias in greek-fontenc.def)
+<pre class="literal-block">% NR Unicode Name % legacy PU name (alias in greek-fontenc.def)
\DeclareTextCommand{\textdexiakeraia}{PU}{\83\164} % ʹ \textnumeralsigngreek
\DeclareTextCommand{\textaristerikeraia}{PU}{\83\165} % ͵ \textnumeralsignlowergreek</pre>
<p>037A GREEK YPOGEGRAMMENI (use textcompwordmarkypogegrammeni) % ͺ
@@ -1237,6 +1243,36 @@ hexadecimal digits:</p>
\DeclareTextCommand{\textpentehekaton}{PU}{𐅅} % &quot;10145 GREEK ACROPHONIC ATTIC FIVE HUNDRED
\DeclareTextCommand{\textpenteqilioi}{PU}{𐅆} % &quot;10146 GREEK ACROPHONIC ATTIC FIVE THOUSAND
\DeclareTextCommand{\textpentemuria}{PU}{𐅇} % &quot;10147 GREEK ACROPHONIC ATTIC FIFTY THOUSAND</pre>
+</section>
+<section id="uppercase">
+<h3><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">UPPERCASE</a></h3>
+<p>Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.</p>
+<p>Babel-Greek introduces macros for “capital accents” in release 1.13.3.
+Here, we add definitions to drop diacritics in uppercase:</p>
+<pre class="literal-block">\DeclareTextCompositeCommand{\accACUTE}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textEpsilon}{\textEpsilon}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textEta }{\textEta}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textIota }{\textIota}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textOmicron}{\textOmicron}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textUpsilon}{\textUpsilon}
+\DeclareTextCompositeCommand{\accACUTE}{PU}{\textOmega }{\textOmega}
+
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textEpsilon}{\textEpsilon}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textEta }{\textEta}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textIota }{\textIota}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textOmicron}{\textOmicron}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textUpsilon}{\textUpsilon}
+\DeclareTextCompositeCommand{\accGRAVE}{PU}{\textOmega }{\textOmega}
+
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textEta }{\textEta}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textIota }{\textIota}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textUpsilon}{\textUpsilon}
+\DeclareTextCompositeCommand{\accTILDE}{PU}{\textOmega }{\textOmega}</pre>
+<p>The “hiatus” feature does not work with PU (Alpha/Epsilon is dropped!):</p>
+<pre class="literal-block">\DeclareTextCompositeCommand{\LGR&#64;hiatus}{PU}{\textAlpha }{\textAlpha}
+\DeclareTextCompositeCommand{\LGR&#64;hiatus}{PU}{\textEpsilon}{\textEpsilon}</pre>
<!-- References -->
</section>
</section>
diff --git a/language/greek/greek-fontenc/test-lgrenc.pdf b/language/greek/greek-fontenc/test-lgrenc.pdf
index e94fe616b9..cadfc32b4d 100644
--- a/language/greek/greek-fontenc/test-lgrenc.pdf
+++ b/language/greek/greek-fontenc/test-lgrenc.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/test-lgrenc.tex b/language/greek/greek-fontenc/test-lgrenc.tex
index 676df13100..98e43f6b8b 100644
--- a/language/greek/greek-fontenc/test-lgrenc.tex
+++ b/language/greek/greek-fontenc/test-lgrenc.tex
@@ -105,7 +105,6 @@ using the LICR macros:
\>\textepsilon\textrho\~\textomega\textnu{}
\'\textalpha\textpi\~\texteta\textlambda\texttheta\textepsilon\textfinalsigma{}
\textepsilon\>\textupsilon\texttheta\'\textupsilon\textfinalsigma\texterotimatiko{}
-
\end{quote}
\tableofcontents
@@ -405,14 +404,15 @@ This is implemented for all combinations that are used in Greek texts
e.g., \LGR\~W\Latin). Since 2022, LaTeX's \cs{MakeUppercase} uses the
Greek upcasing rules only if the text language (locale) is set to ``greek''
with Babel (i.e.\ not in this document).
-See \texttt{char-list.tex | char-list.pdf} for a comprehensive example.
+See \href{char-list.pdf}{char-list.pdf} for a comprehensive
+example using the Greek language.
Different conventions exist for the treatment of the sub-iota with uppercase
letters. The CB-Fonts use a capital Iota ``index'' (\LGR A|, H|, W|\Latin).
LaTeX standard accents%
\footnote{The ogonek (\emph{little hook}) accent \k{ } (\textbackslash k)
-is not defined in LGR.}
+does not work in LGR.}
(Latin, Greek, Greek Capitals $\mapsto$ UPPERCASE)
\begin{quote}
@@ -458,16 +458,14 @@ $\mapsto$ UPPERCASE)
}
\end{quote}
-\Latin Input variants and their conversion with MakeUppercase:
+\Latin Input variants and their conversion with \cs{MakeUppercase}:\footnote{
+ With the 2022 \cs{MakeUppercase} implementation, there are issues like
+ wrongly placed diacritics or \texttt{~} leading to a NBSP with
+ letters/diacritics that are never used in an initial position because this
+ document does not set the text language to ``greek''. However, there
+ should not be any compiling errors.}
\begin{quote}
-As this document does not set the text language to ``greek'', capital
-letters do not drop accents (since the 2022 MakeUppercase revamp).
-
-There are issues like wrongly placed diacritics or \verb|~| leading to a
-NBSP with letters/diacritics that are never used in an initial position.
-However, there should not be any compiling errors.
-
\LGR
\~>a \>\~a \~\>{a}, \~<a \<\~a \<~a \~\<a \~<a,
\>\~{h} \~>h \>~h \>\~h \~>h \~>h|, \~<h \<\~h,
diff --git a/language/greek/greek-fontenc/test-licr-input.pdf b/language/greek/greek-fontenc/test-licr-input.pdf
deleted file mode 100644
index 37e9e5148a..0000000000
--- a/language/greek/greek-fontenc/test-licr-input.pdf
+++ /dev/null
Binary files differ
diff --git a/language/greek/greek-fontenc/test-luainputenc.pdf b/language/greek/greek-fontenc/test-luainputenc.pdf
new file mode 100644
index 0000000000..cba5456a29
--- /dev/null
+++ b/language/greek/greek-fontenc/test-luainputenc.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/test-licr-input.tex b/language/greek/greek-fontenc/test-luainputenc.tex
index 79cdac3aeb..529593cc2a 100644
--- a/language/greek/greek-fontenc/test-licr-input.tex
+++ b/language/greek/greek-fontenc/test-luainputenc.tex
@@ -8,29 +8,19 @@
% the Greek font setup for TU and PU:
% test with different input encoding (before Greek font setup)
-\usepackage[latin1]{inputenc}
-% \usepackage[latin1]{luainputenc}
-% -> errors with LuaTeX:
-% ! Missing \endcsname inserted.
-% <to be read again>
-% \pm
-% l.118 ...and{\~}{\UnicodeEncodingName}{α}{ᾶ}
-% ...
-%
-% "tuenc-greek.def" uses literal Unicode characters which is incompatible
-% with legacy 8-bit encodings defined via ”luainputenc”.
-% The output seems OK, though.
-
+\usepackage[latin1]{luainputenc}
\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
% Unicode font setup:
\usepackage{fontspec}
- % \setmainfont{DejaVu Serif} # no YPOGEGRAMMENI
- % \setsansfont{DejaVu Sans}
+ % The Harfbuzz renderer provides selection of pre-composed characters
+ % (NFC normalization) with LuaTeX
+ % \setmainfont[Renderer=Harfbuzz]{DejaVu Serif} # no YPOGEGRAMMENI
+ % \setsansfont[Renderer=Harfbuzz]{DejaVu Sans}
+ % \setmainfont[Renderer=Harfbuzz]{FreeSerif}
% \setmainfont{cmunrm.otf} % CMU Serif % many missing characters :(
- % \setmainfont{FreeSerif}
- \setmainfont{Linux Libertine O}
- \setsansfont{Linux Biolinum O}
+ \setmainfont[Renderer=Harfbuzz]{Linux Libertine O}
+ \setsansfont[Renderer=Harfbuzz]{Linux Biolinum O}
\else
\usepackage[LGR,T1]{fontenc}
\usepackage{lmodern}
@@ -60,21 +50,16 @@
% characters are required:
\hypersetup{pdfauthor=\textTau\'<\textepsilon\textsigma\textthetasymbol}
-\title{Test Greek LaTeX internal character representations (LICR macros)}
+\title{Test LICR macros in LuaTeX's 8-bit compatibility mode}
\author{G\"unter Milde}
\date{2023/03/08}
\maketitle
-
This document tests the compatibility of ``luainputenc'' and the Greek font
setup for TU and PU. It uses only ASCII input.
See the source \texttt{test-inputenc.tex} for the input used in the examples.
-TODO: Compiling with LuaTeX fails: \texttt{tuenc-greek.def} uses
-literal Unicode characters which is incompatible with legacy 8-bit encodings
-defined via "luainputenc".
-
\tableofcontents
@@ -109,10 +94,11 @@ glyph if it ends a word:
\textsigma{} \verb|textsigma|\\
\textfinalsigma{} \verb|textfinalsigma| or \verb|textvarsigma|
\end{quote}
-With Unicode fonts (Xe/LuaTeX, font encoding TU), the \verb|\textautosigma|
-macro (which automatically chooses the glyph according to the position)
-does not work with LaTeX versions older than 2022/06 (requires the new
-\verb|\MakeLowercase| implementation).
+%
+The \verb|\textautosigma| macro (which automatically chooses the glyph
+according to the position) does not work with Unicode fonts (Xe/LuaTeX, font
+encoding TU).
+
\subsection{Diacritics}
@@ -129,6 +115,14 @@ Greek diacritics can be input by named macro or symbol macro:
\accdasia\textalpha \<\textalpha{} \accdasia x\<x
\end{quote}
%
+Combining diacritics were misplaced with the 2021 version of LuaTeX in 8-bit
+compatibility mode. This can be solved by selecting the "Harfbuzz" renderer
+(see the source).
+\begin{quote}
+ \accdasia`\textepsilon{} \accpsili'\textepsilon{} \~>\textupsilon{}
+ \~>\textalpha\ypogegrammeni{} \~<\textalpha\ypogegrammeni
+\end{quote}
+%
Diacritics as spacing characters:
with empty argument:
@@ -229,6 +223,7 @@ letters usually gives better results.
\subsubsection{symbols for Greek numbers}
\begin{quote}
+\raggedright
\textkoppa{} textkoppa \\ % ϟ
\textKoppa{} textKoppa \\ % Ϟ
\textqoppa{} textqoppa (archaic koppa) \\ % ϙ
@@ -248,51 +243,6 @@ letters usually gives better results.
\textaristerikeraia{} textaristerikeraia \\ % ͵
\end{quote}
-
-\begin{table}[tbp]
- \centering
- \begin{tabular}{lclc}
- \hline
- \multicolumn{2}{c}{text} & \multicolumn{2}{c}{mathematics} \\
- macro & output & macro & output \\
- \hline
- \verb$\textpi$ & \textpi & \verb$\pi$ & $\pi$ \\
- \verb$\textvarpi$ & \textvarpi & \verb$\varpi$ & $\varpi$ \\
- \verb$\textpisymbol$ & \textpisymbol & & \\
- \hline
- \verb$\textrho$ & \textrho & \verb$\rho$ & $\rho$ \\
- \verb$\textvarrho$ & \textvarrho & \verb$\varrho$ & $\varrho$ \\
- \verb$\textrhosymbol$ & \textrhosymbol & & \\
- \hline
- \verb$\texttheta$ & \texttheta & \verb$\theta$ & $\theta$ \\
- \verb$\textvartheta$ & \textvartheta & \verb$\vartheta$ & $\vartheta$ \\
- \verb$\textthetasymbol$ & \textthetasymbol & & \\
- \hline
- \verb$\textepsilon$ & \textepsilon & \verb$\epsilon$ & $\epsilon$ \\
- \verb$\textvarepsilon$ & \textvarepsilon & \verb$\varepsilon$ & $\varepsilon$ \\
- \verb$\textepsilonsymbol$ & \textepsilonsymbol & & \\
- \hline
- \verb$\textphi$ & \textphi & \verb$\phi$ & $\phi$ \\
- \verb$\textvarphi$ & \textvarphi & \verb$\varphi$ & $\varphi$ \\
- \verb$\textphisymbol$ & \textphisymbol & & \\
- \hline
- \verb$\textbeta$ & \textbeta & \verb$\beta$ & $\beta$ \\
- \verb$\textvarbeta$ & \textvarbeta & \emph{missing} & \\
- \verb$\textbetasymbol$ & \textbetasymbol & & \\
- \hline
- \verb$\textkappa$ & \textkappa & \verb$\kappa$ & $\kappa$ \\
- \verb$\textvarkappa$ & \textvarkappa & \verb$\varkappa$ & $\varkappa$ \\
- \verb$\textkappasymbol$ & \textkappasymbol & & \\
- \hline
- \verb$\textTheta$ & \textTheta & \verb$\Theta$ & $\Theta$ \\
- \verb$\textvarTheta$ & \textvarTheta & \emph{missing} & \\
- \verb$\textThetasymbol$ & \textThetasymbol & & \\
- \hline
- \end{tabular}
- \caption{Macros for Greek symbol variants}
- \label{tab:symbol-variant-macros}
-\end{table}
-
% \subsubsection{Ancient Greek Numbers}
%
% Ancient Greek Numbers are missing in most fonts (including Libertine and
@@ -327,7 +277,9 @@ The packages \emph{textalpha} and \emph{alphabeta} as well as
\emph{babel-greek}, add hyperref support for LICR input with
non-standard accents or combined diacritics.
-\subsection{0374 \ensuregreek{
+\subsection{Greek and Coptic}
+
+\subsubsection{\ensuregreek{
\textnumeralsigngreek{}
\textnumeralsignlowergreek{}
\ \ypogegrammeni{}
@@ -344,7 +296,7 @@ non-standard accents or combined diacritics.
\'\textOmega
\'"\textiota
}}
-\subsection{0391 \ensuregreek{
+\subsubsection{\ensuregreek{
\textAlpha
\textBeta
\textGamma
@@ -370,7 +322,7 @@ non-standard accents or combined diacritics.
\textPsi
\textOmega
}}
-\subsection{03AA \ensuregreek{
+\subsubsection{\ensuregreek{
\"\textIota
\"\textUpsilon
\'\textalpha
@@ -379,7 +331,7 @@ non-standard accents or combined diacritics.
\'\textiota
\"'\textupsilon
}}
-\subsection{03B1 \ensuregreek{
+\subsubsection{\ensuregreek{
\textalpha
\textbeta
\textgamma
@@ -406,7 +358,7 @@ non-standard accents or combined diacritics.
\textpsi
\textomega
}}
-\subsection{03CA \ensuregreek{
+\subsubsection{\ensuregreek{
\"\textiota
\"\textupsilon
\'\textomicron
@@ -432,8 +384,9 @@ non-standard accents or combined diacritics.
\textepsilonsymbol
}}
+\subsection{Greek Extended}
-\subsection{1F00 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textalpha
\accdasia\textalpha
\accpsili`\textalpha
@@ -451,7 +404,7 @@ non-standard accents or combined diacritics.
\~>\textAlpha
\~<\textAlpha
}}
-\subsection{1F10 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textepsilon
\accdasia\textepsilon
\accpsili`\textepsilon
@@ -465,7 +418,7 @@ non-standard accents or combined diacritics.
\accpsili'\textEpsilon
\accdasia'\textEpsilon
}}
-\subsection{1F20 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\texteta
\accdasia\texteta
\accpsili`\texteta
@@ -483,7 +436,7 @@ non-standard accents or combined diacritics.
\~>\textEta
\~<\textEta
}}
-\subsection{1F30 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textiota
\accdasia\textiota
\accpsili`\textiota
@@ -501,7 +454,7 @@ non-standard accents or combined diacritics.
\~>\textIota
\~<\textIota
}}
-\subsection{1F40 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textomicron
\accdasia\textomicron
\accpsili`\textomicron
@@ -515,7 +468,7 @@ non-standard accents or combined diacritics.
\accpsili'\textOmicron
\accdasia'\textOmicron
}}
-\subsection{1F50 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textupsilon
\accdasia\textupsilon
\accpsili`\textupsilon
@@ -529,7 +482,7 @@ non-standard accents or combined diacritics.
\accdasia'\textUpsilon
\~<\textUpsilon
}}
-\subsection{1F60 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textomega
\accdasia\textomega
\accpsili`\textomega
@@ -547,7 +500,7 @@ non-standard accents or combined diacritics.
\~>\textOmega
\~<\textOmega
}}
-\subsection{1F70 \ensuregreek{
+\subsubsection{\ensuregreek{
\accvaria\textalpha
\accoxia\textalpha
\accvaria\textepsilon
@@ -563,7 +516,7 @@ non-standard accents or combined diacritics.
\accvaria\textomega
\accoxia\textomega
}}
-\subsection{1F80 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textalpha\ypogegrammeni
\accdasia\textalpha\ypogegrammeni
\accpsili`\textalpha\ypogegrammeni
@@ -581,7 +534,7 @@ non-standard accents or combined diacritics.
\~>\textAlpha\ypogegrammeni
\~<\textAlpha\ypogegrammeni
}}
-\subsection{1F90 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\texteta\ypogegrammeni
\accdasia\texteta\ypogegrammeni
\accpsili`\texteta\ypogegrammeni
@@ -599,7 +552,7 @@ non-standard accents or combined diacritics.
\~>\textEta\ypogegrammeni
\~<\textEta\ypogegrammeni
}}
-\subsection{1FA0 \ensuregreek{
+\subsubsection{\ensuregreek{
\accpsili\textomega\ypogegrammeni
\accdasia\textomega\ypogegrammeni
\accpsili`\textomega\ypogegrammeni
@@ -617,7 +570,7 @@ non-standard accents or combined diacritics.
\~>\textOmega\ypogegrammeni
\~<\textOmega\ypogegrammeni
}}
-\subsection{1FB0 \ensuregreek{
+\subsubsection{\ensuregreek{
\u\textalpha
\=\textalpha
\accvaria\textalpha\ypogegrammeni
@@ -635,7 +588,7 @@ non-standard accents or combined diacritics.
\accpsili{ }
}}
-\subsection{1FC0 \ensuregreek{
+\subsubsection{\ensuregreek{
\accperispomeni{ }
\"\~{ }
\accvaria\texteta\ypogegrammeni
@@ -653,7 +606,7 @@ non-standard accents or combined diacritics.
\~>{ }
}}
-\subsection{1FD0 \ensuregreek{
+\subsubsection{\ensuregreek{
\u\textiota
\=\textiota
\`"\textiota
@@ -668,7 +621,7 @@ non-standard accents or combined diacritics.
\accpsili'{ }
\~<{ }
}}
-\subsection{1FE0 \ensuregreek{
+\subsubsection{\ensuregreek{
\u\textupsilon
\=\textupsilon
\`"\textupsilon
@@ -686,7 +639,7 @@ non-standard accents or combined diacritics.
\'"{ }
\accvaria{ }
}}
-\subsection{1FF0 \ensuregreek{
+\subsubsection{\ensuregreek{
\accvaria\textomega\ypogegrammeni
\textomega\ypogegrammeni
\accoxia\textomega\ypogegrammeni
@@ -701,4 +654,49 @@ non-standard accents or combined diacritics.
\accdasia{ }
}}
+
+\begin{table}[tbp]
+ \centering
+ \begin{tabular}{lclc}
+ \hline
+ \multicolumn{2}{c}{text} & \multicolumn{2}{c}{mathematics} \\
+ macro & output & macro & output \\
+ \hline
+ \verb$\textpi$ & \textpi & \verb$\pi$ & $\pi$ \\
+ \verb$\textvarpi$ & \textvarpi & \verb$\varpi$ & $\varpi$ \\
+ \verb$\textpisymbol$ & \textpisymbol & & \\
+ \hline
+ \verb$\textrho$ & \textrho & \verb$\rho$ & $\rho$ \\
+ \verb$\textvarrho$ & \textvarrho & \verb$\varrho$ & $\varrho$ \\
+ \verb$\textrhosymbol$ & \textrhosymbol & & \\
+ \hline
+ \verb$\texttheta$ & \texttheta & \verb$\theta$ & $\theta$ \\
+ \verb$\textvartheta$ & \textvartheta & \verb$\vartheta$ & $\vartheta$ \\
+ \verb$\textthetasymbol$ & \textthetasymbol & & \\
+ \hline
+ \verb$\textepsilon$ & \textepsilon & \verb$\epsilon$ & $\epsilon$ \\
+ \verb$\textvarepsilon$ & \textvarepsilon & \verb$\varepsilon$ & $\varepsilon$ \\
+ \verb$\textepsilonsymbol$ & \textepsilonsymbol & & \\
+ \hline
+ \verb$\textphi$ & \textphi & \verb$\phi$ & $\phi$ \\
+ \verb$\textvarphi$ & \textvarphi & \verb$\varphi$ & $\varphi$ \\
+ \verb$\textphisymbol$ & \textphisymbol & & \\
+ \hline
+ \verb$\textbeta$ & \textbeta & \verb$\beta$ & $\beta$ \\
+ \verb$\textvarbeta$ & \textvarbeta & \emph{missing} & \\
+ \verb$\textbetasymbol$ & \textbetasymbol & & \\
+ \hline
+ \verb$\textkappa$ & \textkappa & \verb$\kappa$ & $\kappa$ \\
+ \verb$\textvarkappa$ & \textvarkappa & \verb$\varkappa$ & $\varkappa$ \\
+ \verb$\textkappasymbol$ & \textkappasymbol & & \\
+ \hline
+ \verb$\textTheta$ & \textTheta & \verb$\Theta$ & $\Theta$ \\
+ \verb$\textvarTheta$ & \textvarTheta & \emph{missing} & \\
+ \verb$\textThetasymbol$ & \textThetasymbol & & \\
+ \hline
+ \end{tabular}
+ \caption{Macros for Greek symbol variants}
+ \label{tab:symbol-variant-macros}
+\end{table}
+
\end{document}
diff --git a/language/greek/greek-fontenc/test-tuenc-greek.pdf b/language/greek/greek-fontenc/test-tuenc-greek.pdf
index c96b551c60..bec3133ff6 100644
--- a/language/greek/greek-fontenc/test-tuenc-greek.pdf
+++ b/language/greek/greek-fontenc/test-tuenc-greek.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/test-tuenc-greek.tex b/language/greek/greek-fontenc/test-tuenc-greek.tex
index 4a72bea9c9..49b3227ef1 100644
--- a/language/greek/greek-fontenc/test-tuenc-greek.tex
+++ b/language/greek/greek-fontenc/test-tuenc-greek.tex
@@ -1,14 +1,16 @@
-\documentclass[a4paper]{article}
+\documentclass[a4paper]{scrartcl}
+
\usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref}
-% \usepackage{bookmark}
-% \usepackage{parskip}
+\usepackage{bookmark}
\usepackage{booktabs}
\usepackage{amssymb}
% It is possible to use 8-bit Greek text fonts in the LGR TeX font encoding
% also with XeTeX/LuaTeX, if the »fontenc« package is loaded before
% »fontspec« and »textalpha«:
-\usepackage[LGR]{fontenc}
+\usepackage[LGR,TU]{fontenc}
+% Prevent a font substitution warning:
+\DeclareFontFamilySubstitution{LGR}{FreeSerif(0)}{cmr}
% Unicode font setup:
\usepackage{fontspec}
@@ -16,18 +18,24 @@
% \setsansfont{DejaVu Sans}
% \usepackage{libertineotf}
% \setmainfont{Linux Libertine O}
-\setsansfont{Linux Biolinum O}
+\setsansfont[Renderer=Harfbuzz]{Linux Biolinum O}
% \setmainfont{cmunrm.otf} % CMU Serif % many missing characters :(
-\setmainfont{FreeSerif}%
+\setmainfont[Renderer=Harfbuzz]{FreeSerif}%
% \setmainfont{Droid Sans}
% Declare the font encoding and Greek LICR definitions:
\usepackage[normalize-symbols]{textalpha}
% For the new \MakeUppercase, we need to set the text language to Greek
-% with Babel or polyglossia:
+% with Babel or Polyglossia:
\usepackage[greek,english]{babel}
+\newcommand{\Greek}{
+ \ifdefined\extrasgreek
+ \selectlanguage{greek}
+ \fi
+}
+
% select the LGR font encoding and CB fonts
\providecommand*{\lgrfont}[1]{\leavevmode{%
\fontfamily{cmr}\fontencoding{LGR}\selectfont#1}%
@@ -75,18 +83,15 @@ up language-specific fonts with the \verb|\babelfont| command.
\href{alphabeta-doc.pdf}{\emph{alphabeta}}, or \pkgref{Babel} (with the
language option \href{https://ctan.org/pkg/babel-greek}{greek}) if these
packages are used with Unicode-aware TeX engines (XeTeX or LuaTeX). This
-provides support for Greek LICR input and fixes for MakeUppercase.
-The \verb|\MakeUppercase| implementation introduced in the 2022/06 LaTeX
-release uses Greek upcasing rules only for text parts with the
-\pkgref{babel} language \texttt{greek} and ignores the changes to
-\texttt{uccode} values done in this package.
+provides support for Greek LICR input and fixes for MakeUppercase
+(cf. section~\ref{sec:uppercase-and-lowercase}).
\section{LICR input%
\label{licr}}
-The LaTeX internal character representation (LICR) is a verbose,
-fail-safe 7-bit ASCII encoding that can be used unaltered under both, 8-bit
+The LaTeX internal character representation (LICR) can be used as a verbose,
+fail-safe 7-bit ASCII encoding. It works under both, 8-bit
TeX and XeTeX/LuaTeX. Use cases are macro definitions and generated text.
See the source of this document,
@@ -131,11 +136,16 @@ Greek diacritics can be input by named macro or symbol macro:
\accdasia\textalpha \<\textalpha{} \accdasia x\<x
\end{quote}
%
-XeTeX and LuaTeX (since 2022) normalise base letter and combining diacritics
-to the corresponding pre-composed character (if such character exists in the
-\emph{Greek and Coptic} or \emph{Greek Extended} Unicode Blocks).
-
-
+XeTeX and LuaTeX with the Harfbuzz renderer normalise combining diacritics
+with the base letter to the corresponding pre-composed Unicode character
+(if such a character exists).%
+\footnote{\label{fnt:overlap}
+ Composite diacritics may overlap when they are not normalised to a
+ pre-composed character.
+ However, this is no problem in normal use as there are pre-composed
+ Unicode characters for all letters/diacritic combinations that are
+ actually used in the Greek language.%
+}
\begin{quote}
% άάὰὰϊϊᾶᾶἀἀἁἁ
\acctonos α \'α
@@ -153,18 +163,23 @@ a circumflex accent. The Unicode standard provides distinct code points.
Only <Greek letter> + COMBINING GREEK PERISPOMENI is considered equivalent
to the pre-composed character <Greek letter> WITH PERISPOMENI.
-The ``named'' \verb|\accperispomeni| macro uses COMBINING GREEK PERISPOMENI,
+The \verb|\accperispomeni| macro uses COMBINING GREEK PERISPOMENI,
while the standard tilde-accent macro \verb|\~| uses the COMBINING TILDE.
Composite definitions for \verb|\~| select the pre-composed character:
\begin{quote}
- \~α = ᾶ, \~η = ῆ, \~ι = ῖ, \~υ = ῦ, \~ω = ῶ
+ accent + base char / literal:
+ \~α/ᾶ, \~η/ῆ, \~ι/ῖ, \~υ/ῦ, \~ω\ypogegrammeni{}/ῷ
+
+ There are no pre-composed capital letters with perispomeni:
+ \~Α, \~Η, \~Ι, \~Υ, \~ῼ \footref{fnt:overlap}
\end{quote}
-\subsubsection{combined diacritics}
+\subsubsection{composite diacritics}
-Combined accents are defined using combining diacritical characters.
+Composite diacritics are defined using two combining diacritical characters.%
+\footref{fnt:overlap}
\begin{quote}
\accdialytikatonos\textiota{} \"'\textiota{} \"\'\textiota{}
@@ -188,10 +203,6 @@ Combined accents are defined using combining diacritical characters.
\accpsiliperispomeni\textiota{} \~>\textiota{} \~\>\textiota{}
\accpsiliperispomeni x \~>x \~\>x
\end{quote}
-Composite diacritics overlap when they are not normalised to a pre-composed
-character. However, this is not a major problem in normal use as
-pre-composed characters exist in Unicode for all letters that are
-used with diacritics in (ancient, polytonic or monotonic) Greek.
\subsubsection{sub-iota}
@@ -204,8 +215,7 @@ The sub-iota is input after the base letter.
A Greek capital letter followed by COMBINING GREEK YPOGEGRAMMENI is
normalised to the corresponding Greek capital letter WITH [... AND]
- PROSGEGRAMMENI, if a mapping exists in the Unicode standard (by XeTeX but
- not by LuaTeX)
+ PROSGEGRAMMENI, if a mapping exists in the Unicode standard.
\item \verb|\prosgegrammeni| sets a spacing GREEK PROSGEGRAMMENI:
\textAlpha\prosgegrammeni{} K\prosgegrammeni{}.
@@ -222,28 +232,25 @@ The sub-iota is input after the base letter.
Test letters with ypogegrammeni and prosgegrammeni (literal/LICR):
\begin{quote}
- % TODO: infinite recursion with new \MakeUppercase
- % \ifdefined\extrasgreek
- % \selectlanguage{greek}
- % \fi
- \begin{tabbing}
- unchanged \quad\= make lowercase\quad\= make uppercase. \\
-
- ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni{} \>
- \MakeLowercase{ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni} \>
- \MakeUppercase{ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni} \\
-
- ᾼΑι/\textAlpha\ypogegrammeni \textAlpha\prosgegrammeni{} \>
- \MakeLowercase{ᾼΑι/\textAlpha\ypogegrammeni \textAlpha\prosgegrammeni} \>
- \MakeUppercase{ᾼΑι/\textAlpha\ypogegrammeni \textAlpha\prosgegrammeni} \\
-
- ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni{} \>
- \MakeLowercase{ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni} \>
- \MakeUppercase{ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni}
-
- \end{tabbing}
+ % \Greek % compilation error, see section TODO below
+ \begin{tabular}{lll}
+ unchanged & make lowercase & make uppercase. \\
+
+ ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni{} &
+ \MakeLowercase{ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni} &
+ \MakeUppercase{ᾳαι/\textalpha\ypogegrammeni \textalpha\prosgegrammeni} \\
+
+ ᾼΑι/\textAlpha\ypogegrammeni \textAlpha\prosgegrammeni{} &
+ \MakeLowercase{ᾼΑι/\textAlpha\ypogegrammeni \textAlpha\prosgegrammeni} &
+ \MakeUppercase{ᾼΑι/\textAlpha\ypogegrammeni \textAlpha\prosgegrammeni} \\
+
+ ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni{} &
+ \MakeLowercase{ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni} &
+ \MakeUppercase{ΛͅΛι/\textLambda\ypogegrammeni \textLambda\prosgegrammeni}
+ \end{tabular}
\end{quote}
+
\subsection{Additional Greek symbols}
\subsubsection{symbols for Greek numbers}
@@ -314,7 +321,7 @@ letters:
GREEK ... SYMBOL variant,
\verb|\textvar<name>| selects the variant
- shape according to TeX' mathematical mode
+ shape according to TeX's mathematical mode
\end{quote}
See Table \ref{tab:symbol-variant-macros} for the full list. The
\href{alphabeta-doc.pdf}{\emph{alphabeta}} package defines short macros that
@@ -390,9 +397,9 @@ defines the \verb|\lgrfont| command for this purpose in the preamble.)
\subsubsection{generic text symbols}
-There are some LICR macros for some symbols from the 8-bit font encoding LGR
-that are not confined to Greek but not defined in
-\texttt{tuenc.def} [2018/08/11 v2.0j].
+There are some LICR macros for symbols from the 8-bit font encoding LGR
+that are not confined to Greek but missing in
+\texttt{tuenc.def} [2021/04/29 v2.0v] in TeXLive 23.
\begin{quote}
\textsemicolon{} textsemicolon\\
@@ -410,8 +417,8 @@ The SI unit prefix MICRO SIGN is not upcased with MakeUppercase:
\section{Latin transliteration}
The Latin transliteration known from LGR encoded 8-bit fonts%
-\footnote{See the \pkgref{teubner} package or the file usage.pdf from
- \pkgref{babel-greek} for a description.}
+\footnote{See the \pkgref{teubner} package or \pkgref{babel-greek}
+ for a description.}
does not work with Unicode fonts.
For LuaTeX, there is a \texttt{transliteration.omega} \emph{transform} that
@@ -421,9 +428,9 @@ Omega system (cf. the Babel documentation for the
It is possible to set up LGR encoded fonts parallel to Unicode fonts (see
the preamble of the source file \url{test-tuenc-greek.tex} for an example).
-After switching the font encoding to LGR, Greek letters can be input
+After switching the font encoding to LGR, Greek text can be input
via a \emph{Latin transliteration}, e.g. «logos» becomes «\lgrfont{logos}»
-and «\verb|>aupn\'ia|» becomes «\lgrfont{>aupn\'ia}».
+and «\texttt{>aupn'ia}» becomes «\lgrfont{>aupn\'ia}».
Mark that you cannot use Unicode input with LGR encoded fonts except when
running in 8-bit compatibility mode.
@@ -434,53 +441,47 @@ LICR macros work in both, TU and LGR: compare
\textrho\acctonos\textiota\textomicron\textupsilon} (LGR).
-\section{UPPERCASE and lowercase}
+\section{UPPERCASE and lowercase \label{sec:uppercase-and-lowercase}}
According to Greek typesetting conventions, Greek diacritics (except the
dialytika and sub-iota) are placed to the left (instead of above) capital
-letters and dropped if text is set in ALL CAPS, e.g. \ensuregreek{μαΐστρος
-$\mapsto$ \MakeUppercase{μαΐστρος}}. The macron and breve accents are
-handled as in Latin texts.
-
-The new \verb|\MakeUppercase| implementation (rolled out in the
-\href{https://www.latex-project.org/news/latex2e-news/ltnews35.pdf}
-{June 2022 LaTeX release}) relies on Unicode data. It upcases according to
-the Greek conventions \textbf{if the text language is set to Greek} with
-\pkgref{babel} or \pkgref{polyglossia}.
-
-For the pre-2022/06 implementation, \texttt{tuenc-greek.def} contains code
-to get the same effect.
-The uccode/lccode corrections (taken from Apostolos Syropoulos xgreek
-package) ensure dropping of accents with \verb|\MakeUppercase| for literal
-Unicode characters.
-
-@uclclist additions ensure that upcasing also drops Greek diacritics.
-However, when the tonos, varia, and perispomeni accents
-are input using the symbol macros (\verb|\' \` \~|), this does not work, as
-they cannot be distinguished from Latin acute, grave, and tilde accents.%
-If these accents should be dropped by MakeUppercase, they must be input as
-named macro:
-
+letters and dropped if text is set in UPPERCASE, e.g. \ensuregreek{μαΐστρος
+$\mapsto$ \MakeUppercase{μαΐστρος}}.
+
+The 2022 \verb|\MakeUppercase| implementation
+(cf. \textsf{ltnews35.pdf}) relies on Unicode data.
+It upcases literal characters according to the Greek conventions
+\textbf{if the text language is set to Greek} with \pkgref{babel}
+or \pkgref{polyglossia}.
+For the pre-2022/06 implementation, \texttt{tuenc-greek.def} contains
+uccode/lccode corrections (taken from Apostolos Syropoulos \pkgref{xgreek}
+package) to get the same effect (independent of the text language).
+
+In addition, \texttt{tuenc-greek.def} contains code to drop Greek diacritics
+input as accent macros.
+However, when using the symbol macros (\verb|\' \` \~|) for tonos, varia,
+and perispomeni, special definitions from \pkgref{babel-greek} ≥ 1.13.3 are
+required to distinguish them from acute, grave, and tilde accents that must
+be kept on Latin letters.
+
+Named Greek accents and symbol accents on Greek vs. Latin letter:
\begin{quote}
- \ifdefined\extrasgreek
- \selectlanguage{greek}
- \fi
- \acctonos\textalpha\'\textalpha{} \acctonos a\'a
- \accvaria\textalpha\`\textalpha{} \accvaria a\`a
- $\mapsto$
- \MakeUppercase{
- \acctonos\textalpha\'\textalpha{} \acctonos a\'a
- \accvaria\textalpha\`\textalpha{} \accvaria a\`a
- }
+ \Greek
+ \newcommand{\sample}{
+ \acctonos\textupsilon\'\textupsilon{} \acctonos u\'u
+ \accvaria\textupsilon\`\textupsilon{} \accvaria u\`u}
+ \sample → \MakeUppercase{\sample}
\end{quote}
+Standard symbol accents on Latin letters are kept (OK). With pre-2023 LaTeX
+versions or babel-greek < 1.13.3, standard accents are also kept on Greek
+letters (sic!).
+
\subsection{hiatus}
Tonos and psili 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.
-
-The «hiatus» feature works with macro input:
+A dialytika must be placed on the second vowel if they are dropped:
\begin{quote}
% from teubner: άυλος/ΑΫΛΟΣ
\acctonos\textalpha\textupsilon λος $\mapsto$
@@ -498,31 +499,24 @@ The «hiatus» feature works with macro input:
\accpsili\textalpha\textupsilon πνία $\mapsto$
\MakeUppercase{\accpsili\textalpha\textupsilon πνία}.
\end{quote}
-
-Since the 2022/06 LaTeX release, it works with monotonic Unicode literals
-(since 2023/02/10 also some polytonic)
+%
+Since 2023/02/10, this works with all literals
\begin{quote}
- \ifdefined\extrasgreek
- \selectlanguage{greek}
- \fi
+ \Greek
\newcommand*{\hiatest}{άι, άυ, έι, ἄι, ἄυ, ἔι, ἀυ}
- \hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
+ \hiatest{} $\mapsto$ \MakeUppercase{\hiatest},
\end{quote}
-but not with the named accent-macro + Unicode literals
+with named accent-macro + Unicode literals:
\begin{quote}
- \ifdefined\extrasgreek
- \selectlanguage{greek}
- \fi
+ \Greek
\newcommand*{\hiatest}{
\acctonos αι, \acctonos αυ, \acctonos ει,
\accpsilioxia αι, \accpsilioxia αυ, \accpsilioxia ει, \accpsili αυ}
\hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
\end{quote}
-nor with short accent-macro + Unicode literals (yet?)
+and, with babel-greek 1.13.3 with short accent-macro + Unicode literals:
\begin{quote}
- \ifdefined\extrasgreek
- \selectlanguage{greek}
- \fi
+ \Greek
\newcommand*{\hiatest}{
\'αι, \'αυ, \'ει, \'>αι, \'>αυ, \'>ει, \>αυ}
\hiatest{} $\mapsto$ \MakeUppercase{\hiatest}
@@ -530,598 +524,21 @@ nor with short accent-macro + Unicode literals (yet?)
\section{Character Tables}
-The following tables list the Greek Unicode characters. In the input, the
-LICR macro is followed by the corresponding literal Unicode character.
-
-\subsection{Greek and Coptic Unicode block}
-
-Only characters that are supported by LGR encoded TeX fonts have a LICR
-definition.
-
-\newcommand{\greekandcoptic}{
-% NR Unicode Name % babel name, UCS name
-% 0370 GREEK CAPITAL LETTER HETA % Ͱ
-% 0371 GREEK SMALL LETTER HETA % ͱ
-% 0372 GREEK CAPITAL LETTER ARCHAIC SAMPI % Ͳ
-% 0373 GREEK SMALL LETTER ARCHAIC SAMPI % Ͳ
-\textnumeralsigngreek ʹ % \anwtonos, \textdexiakeraia
-\textnumeralsignlowergreek ͵ % \katwtonos, \textaristerikeraia,
-% 0376 GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA % Ͷ
-% 0377 GREEK SMALL LETTER PAMPHYLIAN DIGAMMA % ͷ
-{ }\ypogegrammeni ͺ % \textsubiota{\empty}
-% 037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL %
-% 037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL %
-% 037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL %
-\texterotimatiko ; % \textquestion
-
-\acctonos{ } ΄
-\"'{ } ΅
-\'\textAlpha Ά
-\textanoteleia · % \anoteleia, 00B7 (middle dot) is the preferred character
-\'\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 μ % \textmugreek
-\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 Ϟ % \textKoppagreek
-\textkoppa ϟ % \koppa, \textqoppa [sic!]
-
-\textSampi Ϡ
-\textsampi ϡ
-
-% Ϣ ϣ Ϥ ϥ Ϧ ϧ Ϩ ϩ Ϫ ϫ Ϭ ϭ Ϯ ϯ
-
-\textkappasymbol ϰ
-\textrhosymbol ϱ
-% ϲ
-% ϳ
-\textThetasymbol ϴ
-\textepsilonsymbol ϵ
-% ϶
-% Ϸ ϸ
-% Ϲ
-% Ϻ ϻ ϼ
-% Ͻ Ͼ Ͽ
-}
-
-\greekandcoptic
+The file \texttt{char-list.tex} contains a listing of all Greek
+Unicode characters supported by the \emph{greek-fontenc} package.
+See \texttt{char-list-tu.tex} for the output with XeTeX/LuaTeX.
-\noindent MakeUppercase (TODO: standard accents not dropped, accents from
-pre-composed characters dropped since 2022/06, if the text language is set
-to Greek):
-
-\foreignlanguage{greek}{
- \MakeUppercase{\greekandcoptic}
-}
-
-TODO: Alias \verb|\textvarsigma| not upcased with new MakeUppercase:
-\foreignlanguage{greek}{
- \textvarsigma ς → \MakeUppercase{\textvarsigma ς}
-}
+\section{TODO}
-\noindent MakeLowercase:
+Compilation error with MakeUppercase and combining ypogegrammeni in Greek
+locale.
-\foreignlanguage{greek}{
- \MakeLowercase{\greekandcoptic}
-}
-
-\noindent
-The lowercase of ΣΣ is \MakeLowercase{ΣΣ}.\footnote{%
- With LaTeX versions since 2022/06,
- the final sigma is used if the algorithm detects the end of a word.}
-
-
-\subsection{Greek Extended Unicode block}
-
-Note: There are no LICR definitions for spacing diacritical characters.
-Use the corresponding accent macro with an empty argument or a space.
-
-\medskip
-
-\newcommand{\greekextended}{
-\>\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 Ὧ
-
-\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 ώ
-
-\>\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 ᾱ
-\accvaria\textalpha\ypogegrammeni ᾲ
-\textalpha\ypogegrammeni ᾳ
-\accoxia\textalpha\ypogegrammeni ᾴ
-\~\textalpha ᾶ
-\~\textalpha\ypogegrammeni ᾷ
-\u\textAlpha Ᾰ
-\=\textAlpha Ᾱ
-\accvaria\textAlpha Ὰ
-\accoxia\textAlpha Ά
-\textAlpha\ypogegrammeni ᾼ
-\>{ } ᾽
-{ }\prosgegrammeni ι
-\>{ } ᾿
-
-\accperispomeni{ } ῀
-\"\~{ } ῁
-\accvaria\texteta\ypogegrammeni ῂ
-\texteta\ypogegrammeni ῃ
-\accoxia\texteta\ypogegrammeni ῄ
-\~\texteta ῆ
-\~\texteta\ypogegrammeni ῇ
-\accvaria\textEpsilon Ὲ
-\accoxia\textEpsilon Έ
-\accvaria\textEta Ὴ
-\accoxia\textEta Ή
-\textEta\ypogegrammeni ῌ
-\>`{ } ῍
-\>'{ } ῎
-\~>{ } ῏
-
-\u\textiota ῐ
-\=\textiota ῑ
-\`"\textiota ῒ
-\'"\textiota ΐ
-\~\textiota ῖ
-\~"\textiota ῗ
-\u\textIota Ῐ
-\=\textIota Ῑ
-\accvaria\textIota Ὶ
-\accoxia\textIota Ί
- \<`{ } ῝
-\>'{ } ῞
-\~<{ } ῟
-
-\u\textupsilon ῠ
-\=\textupsilon ῡ
-\`"\textupsilon ῢ
-\'"\textupsilon ΰ
-\>\textrho ῤ
-\<\textrho ῥ
-\~\textupsilon ῦ
-\~"\textupsilon ῧ
-\u\textUpsilon Ῠ
-\=\textUpsilon Ῡ
-\accvaria\textUpsilon Ὺ
-\accoxia\textUpsilon Ύ
-\<\textRho Ῥ
-\`"{ } ῭
-\'"{ } ΅
-\accvaria{ } `
-
-\accvaria\textomega\ypogegrammeni ῲ
-\textomega\ypogegrammeni ῳ
-\accoxia\textomega\ypogegrammeni ῴ
-\~\textomega ῶ
-\~\textomega\ypogegrammeni ῷ
-\accvaria\textOmicron Ὸ
-\accoxia\textOmicron Ό
-\accvaria\textOmega Ὼ
-\accoxia\textOmega Ώ
-\textOmega\ypogegrammeni ῼ
-\accoxia{ } ´
-\<{ } ῾
-}
-
-\greekextended
-
-\noindent MakeUppercase:
-
-\foreignlanguage{greek}{
- \MakeUppercase{\greekextended}
-}
-
-\noindent MakeLowercase:
-
-\foreignlanguage{greek}{
- \MakeLowercase{\greekextended}
-}
-
-\subsection{Character Tables: accent + literal base character}
-
-With Xe/LuaTeX and Unicode fonts, diacritics may also be input using
-accent macros on a literal Unicode base character.
-
-\subsubsection{Greek and Coptic Unicode block}
-
-\renewcommand{\greekandcoptic}{
-
-\'ΑΆ \'ΕΈ \'ΗΉ \'ΙΊ \'ΟΌ \'ΥΎ \'ΩΏ
-
-\"'ιΐ \"ΙΪ \"ΥΫ \'αά \'εέ \'ηή \'ιί
-
-\"'υΰ
-
-\"ιϊ \"υϋ \'οό \'υύ \'ωώ
-}
-
-Accented letters from the Greek and Coptic Unicode Block
-
-\greekandcoptic
-
-\noindent MakeUppercase:
-
-\foreignlanguage{greek}{
- \MakeUppercase{\greekandcoptic}
-}
-
-\noindent MakeLowercase:
-
-\foreignlanguage{greek}{
- \MakeLowercase{\greekandcoptic}
-}
-
-\subsubsection{Greek Extended Unicode block}
-
-
-\renewcommand{\greekextended}{
-\>αἀ \<αἁ \>`αἂ \<`αἃ \>'αἄ \<'αἅ \~>αἆ \~<αἇ
-\>ΑἈ \<ΑἉ \>`ΑἊ \<`ΑἋ \>'ΑἌ \<'ΑἍ \~>ΑἎ \~<ΑἏ
-
-\>εἐ \<εἑ \>`εἒ \<`εἓ \>'εἔ \<'εἕ
-\>ΕἘ \<ΕἙ \>`ΕἚ \<`ΕἛ \>'ΕἜ \<'ΕἝ
-
-\>ηἠ \<ηἡ \>`ηἢ \<`ηἣ \>'ηἤ \<'ηἥ \~>ηἦ \~<ηἧ
-\>ΗἨ \<ΗἩ \>`ΗἪ \<`ΗἫ \>'ΗἬ \<'ΗἭ \~>ΗἮ \~<ΗἯ
-
-\>ιἰ \<ιἱ \>`ιἲ \<`ιἳ \>'ιἴ \<'ιἵ \~>ιἶ \~<ιἷ
-\>ΙἸ \<ΙἹ \>`ΙἺ \<`ΙἻ \>'ΙἼ \<'ΙἽ \~>ΙἾ \~<ΙἿ
-
-\>οὀ \<οὁ \>`οὂ \<`οὃ \>'οὄ \<'οὅ
-\>ΟὈ \<ΟὉ \>`ΟὊ \<`ΟὋ \>'ΟὌ \<'ΟὍ
-
-\>υὐ \<υὑ \>`υὒ \<`υὓ \>'υὔ \<'υὕ \~>υὖ \~<υὗ
-\<ΥὙ \<`ΥὛ \<'ΥὝ \~<ΥὟ
-
-\>ωὠ \<ωὡ \>`ωὢ \<`ωὣ \>'ωὤ \<'ωὥ \~>ωὦ \~<ωὧ
-\>ΩὨ \<ΩὩ \>`ΩὪ \<`ΩὫ \>'ΩὬ \<'ΩὭ \~>ΩὮ \~<ΩὯ
-
-\`αὰ \'αά \`εὲ \'εέ \`ηὴ \'ηή \`ιὶ \'ιί \`οὸ \'οό \`υὺ \'υύ \`ωὼ \'ωώ
-
-\>α\ypogegrammeni ᾀ
-\<α\ypogegrammeni ᾁ
-\>`α\ypogegrammeni ᾂ
-\<`α\ypogegrammeni ᾃ
-\>'α\ypogegrammeni ᾄ
-\<'α\ypogegrammeni ᾅ
-\~>α\ypogegrammeni ᾆ
-\~<α\ypogegrammeni ᾇ
-\>Α\ypogegrammeni ᾈ
-\<Α\ypogegrammeni ᾉ
-\>`Α\ypogegrammeni ᾊ
-\<`Α\ypogegrammeni ᾋ
-\>'Α\ypogegrammeni ᾌ
-\<'Α\ypogegrammeni ᾍ
-\~>Α\ypogegrammeni ᾎ
-\~<Α\ypogegrammeni ᾏ
-
-\>η\ypogegrammeni ᾐ
-\<η\ypogegrammeni ᾑ
-\>`η\ypogegrammeni ᾒ
-\<`η\ypogegrammeni ᾓ
-\>'η\ypogegrammeni ᾔ
-\<'η\ypogegrammeni ᾕ
-\~>η\ypogegrammeni ᾖ
-\~<η\ypogegrammeni ᾗ
-\>Η\ypogegrammeni ᾘ
-\<Η\ypogegrammeni ᾙ
-\>`Η\ypogegrammeni ᾚ
-\<`Η\ypogegrammeni ᾛ
-\>'Η\ypogegrammeni ᾜ
-\<'Η\ypogegrammeni ᾝ
-\~>Η\ypogegrammeni ᾞ
-\~<Η\ypogegrammeni ᾟ
-
-\>ω\ypogegrammeni ᾠ
-\<ω\ypogegrammeni ᾡ
-\>`ω\ypogegrammeni ᾢ
-\<`ω\ypogegrammeni ᾣ
-\>'ω\ypogegrammeni ᾤ
-\<'ω\ypogegrammeni ᾥ
-\~>ω\ypogegrammeni ᾦ
-\~<ω\ypogegrammeni ᾧ
-\>Ω\ypogegrammeni ᾨ
-\<Ω\ypogegrammeni ᾩ
-\>`Ω\ypogegrammeni ᾪ
-\<`Ω\ypogegrammeni ᾫ
-\>'Ω\ypogegrammeni ᾬ
-\<'Ω\ypogegrammeni ᾭ
-\~>Ω\ypogegrammeni ᾮ
-\~<Ω\ypogegrammeni ᾯ
-
-\u αᾰ \= αᾱ
-\`α\ypogegrammeni ᾲ
-α\ypogegrammeni ᾳ
-\'α\ypogegrammeni ᾴ
-\~αᾶ
-\~α\ypogegrammeni ᾷ
-\u ΑᾸ \= ΑᾹ \`ΑᾺ \'ΑΆ
-Α\ypogegrammeni ᾼ
-
-\`η\ypogegrammeni ῂ
-η\ypogegrammeni ῃ
-\'η\ypogegrammeni ῄ
-\~ηῆ
-\~η\ypogegrammeni ῇ
-\`ΕῈ \'ΕΈ \`ΗῊ \'ΗΉ
-Η\ypogegrammeni ῌ
-
-\u ιῐ \=ιῑ \"`ιῒ \"'ιΐ \~ιῖ \"~ιῗ \u ΙῘ \= ΙῙ \`ΙῚ \'ΙΊ
-
-\u υῠ \=υῡ \"`υῢ \'"υΰ \>ρῤ \<ρῥ \~υῦ \~"υῧ
-\u ΥῨ \=ΥῩ \`ΥῪ \'ΥΎ \<ΡῬ
-
-\`ω\ypogegrammeni ῲ
-ω\ypogegrammeni ῳ
-\'ω\ypogegrammeni ῴ
-\~ω ῶ
-\~ω\ypogegrammeni ῷ
-\`ΟῸ \'ΟΌ \`ΩῺ \'ΩΏ
-Ω\ypogegrammeni ῼ
-}
-
-Accented letters from the Greek Extended Unicode block
-
-\greekextended
-
-
-\medskip
-\noindent MakeUppercase:
-
-\foreignlanguage{greek}{
-\MakeUppercase{\greekextended}
-}
-
-\medskip
-\noindent MakeLowercase:
+% \begin{quote}
+% \Greek
+% Λͅ → \MakeUppercase{Λͅ} % fails with new XeTeX / LuaTeX
+%
+% % \~α\ypogegrammeni{} →
+% % \MakeUppercase{\~α\ypogegrammeni{}} % fails with old LuaTeX (but not XeTeX)
+% \end{quote}
-\foreignlanguage{greek}{
-\MakeLowercase{\greekextended}
-}
\end{document}
diff --git a/language/greek/greek-fontenc/textalpha-doc-tu.pdf b/language/greek/greek-fontenc/textalpha-doc-tu.pdf
index b2eba7d76a..1e66061ca3 100644
--- a/language/greek/greek-fontenc/textalpha-doc-tu.pdf
+++ b/language/greek/greek-fontenc/textalpha-doc-tu.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/textalpha-doc.pdf b/language/greek/greek-fontenc/textalpha-doc.pdf
index 1ddc33a175..8657c89589 100644
--- a/language/greek/greek-fontenc/textalpha-doc.pdf
+++ b/language/greek/greek-fontenc/textalpha-doc.pdf
Binary files differ
diff --git a/language/greek/greek-fontenc/textalpha-doc.tex b/language/greek/greek-fontenc/textalpha-doc.tex
index da2f6725eb..ed26821c32 100644
--- a/language/greek/greek-fontenc/textalpha-doc.tex
+++ b/language/greek/greek-fontenc/textalpha-doc.tex
@@ -1,5 +1,4 @@
-\documentclass[a4paper]{article}
-\usepackage{parskip}
+\documentclass[a4paper, parskip=true]{scrartcl}
\usepackage{booktabs}
\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
@@ -19,7 +18,7 @@
\fi
\usepackage[pdfencoding=auto,colorlinks=true,linkcolor=blue]{hyperref}
-% \usepackage{bookmark}
+\usepackage{bookmark}
\makeatletter
\providecommand*{\href}{\@secondoftwo}
\providecommand*{\url}{\texttt}
@@ -29,15 +28,9 @@
keep-semicolon%
]{textalpha}
-% compatibility defs:
-\ProvideTextCommandDefault{\textvarstigma}{$\oslash$%
- \message{Character textvarstigma not defined.}}
-\ProvideTextCommand{\textvarstigma}{PU}{⌀}
-\providecommand*{\accinvertedbrevebelow}{$\oslash$%
- \message{Character accinvertedbrevebelow not defined.}}
-\providecommand*{\accbrevebelow}{$\oslash$%
- \message{Character accbrevebelow not defined.}}
-
+% auxiliary definitions:
+\ProvideTextCommandDefault{\textvarstigma}{}
+\newcommand{\cs}[1]{\texttt{\textbackslash#1}}
\begin{document}
@@ -63,11 +56,11 @@ in text independent of font encoding or TeX engine.%
\href{textalpha-tu.pdf}{textalpha-tu.pdf}.
\fi
}
-Input is possible via text commands (\verb|\textalpha| \ldots
-\verb|\textOmega|) or Unicode literals\footnote{%
-Requires \emph{\href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc}}
-or XeTeX/LuaTeX.}.
-}
+Input is possible via text commands (\cs{textalpha} \ldots \cs{textOmega})
+or Unicode literals\footnote{\label{requires-greek-inputenc}
+ Requires \emph{\href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc}}
+ or XeTeX/LuaTeX.}.
+} % end abstract
\tableofcontents
@@ -78,11 +71,14 @@ Load this package in the preamble of your document with
\begin{verbatim}
\usepackage[<options>]{textalpha}
\end{verbatim}
-See the source of this document \url{textalpha-doc.tex} for a setup and
-usage example, the literate source of the package
-\href{textalpha.sty.html}{textalpha.sty} for the implementation, and
-\href{test-tuenc-greek.pdf}{test-tuenc-greek.pdf} for Greek with
-XeTeX/LuaTeX.
+Now you are ready to use literal Unicode
+characters\footref{requires-greek-inputenc} or the \cs{textalpha} \ldots
+\cs{textOmega} macros anywhere in the text.\footnote{
+ Using the shorter \cs{alpha} \ldots \cs{Omega} macros (known from math mode)
+ is possible with the \emph{\href{alphabeta-doc.pdf}{alphabeta}} package.}
+See the source of this document \texttt{textalpha-doc.tex} for a setup and
+usage example and \href{greek-fontenc-doc.html}{greek-fontenc-doc} for
+links to additional documentation.
\subsection{Options}
@@ -110,11 +106,10 @@ errors even if it contains a GREEK SYMBOL … in place of a GREEK LETTER …
This option is ignored with Unicode fonts.
\begin{description}
- \item [Attention:] Do not use this option in cases where the distinction
-between the symbol variants may be important (e.g. in a mathematical or
-scientific context). Try the \href{alphabeta-doc.pdf}{alphabeta} package
-with the respective characters in mathematical mode or use XeTeX/LuaTeX with
-Unicode fonts in these cases.
+\item [Attention:] Do not use this option in cases where the distinction
+ between the symbol variants may be important (e.g. in a mathematical or
+ scientific context). Use the respective characters in mathematical mode
+ or XeTeX/LuaTeX with Unicode fonts.
\end{description}
\subsubsection{\texttt{keep-semicolon}}
@@ -164,9 +159,9 @@ Test whether this works as expected in math mode:
\ensuregreek{$a b; a\;b, (\mathrm{a;}\textrm{a;}2)$}.
-\subsection{Shortcuts for Breathings}
+\subsection{Symbol macros for Breathings}
-\emph{textalpha} defines the shortcut macros \verb|\<| and \verb|\>| for the
+\emph{textalpha} defines the macros \cs{<} and \cs{>} for the
\href{https://en.wikipedia.org/wiki/Rough_breathing}{dasia} (rough breathing)
and \href{https://en.wikipedia.org/wiki/Smooth_breathing}{psili} (smooth
breathing) diacritics.
@@ -174,121 +169,125 @@ breathing) diacritics.
\section{Limitations \label{sec:limitations}}
-If compiling with 8-bit TeX, the internal font encoding switches interfere
-with other work behind the scenes. Kerning, diacritics and up/down-casing
-show problems if Greek letters are used without explicit change of the font
-encoding.
-
-These problems can be avoided by use of \emph{babel} and the correct
-language setting (greek), an explicit font encoding switch (e.g.
-wrapping the Greek text in \verb|\ensuregreek|%
-\footnote{The \texttt{\textbackslash ensuregreek} macro ensures the argument
- is set in a font encoding supporting Greek.
- % This can be used to fix these
- % problems without adverse side-effects if the active font encoding is
- % already LGR or TU.
- },
-or XeTeX/LuaTeX with Unicode fonts.
-
-\subsection{Kerning}
-
-With pdfTeX and 8-bit fonts, no kerning occurs between Greek characters in
-non-Greek text due to the internal font encoding switch: compare
-\ensuregreek{\textAlpha\textUpsilon\textAlpha} (\greekfontencoding) to
-\textAlpha\textUpsilon\textAlpha{} (\latinencoding).
-
-Compiling with LuaTeX provides kerning also on font encoding boundaries.
-
-\subsection{Diacritics}
-
-Accent macros do not work with Unicode literals as base character
-under 8-bit TeX engines. Use the Latin transliteration or LICR commands.
-
-Composition of diacritics (like \verb|\accdasia\acctonos| or \verb|\<\'|)
-fails in other font encodings. Long names (like \verb|\accdasiaoxia|) work.
+If Greek letters are used while the active font encoding does not support
+Greek, the internal font encoding switches interfere with other work behind
+the scenes.
+Kerning, diacritics and up/down-casing show problems that can be avoided by
+\begin{itemize}
+ \item use of \emph{babel} and the correct language setting,
+ \item an explicit font encoding switch,
+ e.g., wrapping in \cs{ensuregreek}\footnote{
+ The \cs{ensuregreek} macro ensures the argument
+ is set in a font encoding supporting Greek
+ without adverse side-effects if the active font encoding is
+ already LGR or TU.}, or
+ \item XeTeX/LuaTeX with Unicode fonts.
+\end{itemize}
+%
+\ifdefined\UnicodeEncodingName
+ For details, see \href{textalpha-doc.pdf}{textalpha-doc.pdf}.
+\else
-With LGR and TU, pre-composed glyphs are chosen if available. In other font
-encodings, accent macros do not select pre-composed characters.
-The difference is a sub-optimal placement of the accent and becomes obvious
-if you drag-and-drop text from the PDF version of this document.:
-\begin{quote}
- \ensuregreek{\<'\textalpha
- \'<\textalpha
- \accdasia\acctonos\textalpha
- \acctonos\accdasia\textalpha
- \accdasiaoxia\textalpha{}
- \<'\textAlpha
- \'<\textAlpha
- \accdasia\acctonos\textAlpha
- \acctonos\accdasia\textAlpha
- \accdasiaoxia\textAlpha
- } (\greekfontencoding)
- vs. \accdasiaoxia\textalpha{} \accdasiaoxia\textAlpha{} (\latinencoding).
-\end{quote}
+ \subsection{Kerning}
-Greek diacritics (except the dialytika and sub-iota) are placed before
-capital letters in Titlecase (Ἀρχιμήδης) and and dropped in uppercase
-(ΑΡΧΙΜΗΔΗΣ). With the \verb|\MakeUppercase| implementation introduced
-2022/06, Greek upcasing rules are only applied to literal characters
-if the text language is set to Greek with Babel.
+ With pdfTeX and 8-bit fonts, no kerning occurs between Greek characters in
+ non-Greek text due to the internal font encoding switch:
+ \begin{quote}
+ \textAlpha\textUpsilon\textAlpha{} (\latinencoding) vs.
+ \ensuregreek{\textAlpha\textUpsilon\textAlpha} (\greekfontencoding).
+ \end{quote}
+ Compiling with LuaTeX provides kerning also on font encoding boundaries.
-With the old \verb|\MakeUppercase| implementation, the above rules are fully
-applied if the active font encoding is LGR or TU. However, accents input as
-macros are misplaced if the active font encoding does not support Greek.
-Pre-composed literal Unicode characters are handled correctly:
-\begin{quote}
- \begin{tabular}{ccc}
- & LICR & literal input \\ \hline
- \greekfontencoding & \ensuregreek{\'\textAlpha} & \ensuregreek{Ά} \\
- \latinencoding & \'\textAlpha & Ά
- \end{tabular}
-\end{quote}
-The dialytika marks a \emph{hiatus} (break-up of a diphthong). It must be
-present in UPPERCASE even where it is redundant in lowercase (the hiatus can
-also be marked by an accent or breathing on the first of two consecutive
-vowels). The auto-hiatus feature works in LGR and TU font encodings only:
-\begin{quote}
- \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{} $\mapsto$
- \MakeUppercase{\ensuregreek{
- \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{}
- }} (\greekfontencoding) vs.
- \MakeUppercase{
- \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{}%
- } (\latinencoding)
-\end{quote}
+ \subsection{Diacritics}
-With the old implementation of \verb|\MakeUppercase|, the auto-hiatus
-feature works with LICR macros but not Unicode literals.
-The new implementation works with Unicode literals, too, but only if the text
-language is Greek (i.e. not in this document that does not load Babel).
-\begin{quote}
-\ensuregreek{%
-\accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha}
-$\mapsto$ \ensuregreek{\MakeUppercase{%
-\accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha}}
-(LICR macros: OK with LGR or TU)
-
-\ensuregreek{ἀυπνία} $\mapsto$
-\ensuregreek{\MakeUppercase{ἀυπνία}} (literal characters: fails without Babel)
-\end{quote}
+ With 8-bit TeX, accent macros do not work with Unicode literals as base
+ character. Use the Latin transliteration or LICR commands.
+ \medskip\noindent
+ Composition of diacritics (like \verb|\accdasia\acctonos| or \cs{<\'})
+ fails in other font encodings. Long names (like \cs{accdasiaoxia}) work.
+ \begin{quote}
+ \<'\textalpha{} vs.
+ \ensuregreek{\<'\textalpha} (\greekfontencoding)
+ \end{quote}
+ %
+ With LGR and TU, pre-composed glyphs are chosen if available. In other font
+ encodings, accent macros do not select pre-composed characters.
+ The difference is a sub-optimal placement of the accent and becomes
+ obvious if you drag-and-drop text from the PDF version of this document.:
+ \begin{quote}
+ \accdasiaoxia\textalpha{} (\latinencoding) vs.
+ \ensuregreek{\accdasiaoxia\textalpha{}} (\greekfontencoding).
+ \end{quote}
+ %
+ In Greek typographical practice, diacritics (except the dialytika and
+ sub-iota) are placed before capital letters in Titlecase (Ἀρχιμήδης) and
+ dropped in uppercase (ΑΡΧΙΜΗΔΗΣ).
+
+ Diacritics input via standard accent macros are misplaced
+ if the active font encoding does not support Greek.
+
+ With the \cs{MakeUppercase} implementation introduced 2022/06, Greek
+ upcasing rules are only applied to literal characters if the text language
+ is set to Greek with Babel and to standard accent macros if the documents
+ loads Greek with Babel (i.e. not in this document).\footnote{
+ With the pre-2022 \cs{MakeUppercase} implementation, the above rules
+ were fully applied if the active font encoding is LGR or TU.}
+ \begin{quote}
+ \begin{tabular}{cccc}
+ & named accent & standard accent & literal \\ \midrule
+ \greekfontencoding
+ & \ensuregreek{\acctonos\textAlpha{} → \MakeUppercase{\acctonos\textAlpha}}
+ & \ensuregreek{\'\textAlpha{} → \MakeUppercase{\'\textAlpha}}
+ & \ensuregreek{Ά → \MakeUppercase{Ά}} \\
+ \latinencoding
+ & \acctonos\textAlpha{} → \MakeUppercase{\acctonos\textAlpha}
+ & \'\textAlpha{} → \MakeUppercase{\'\textAlpha}
+ & Ά → \MakeUppercase{Ά}
+ \end{tabular}
+ \end{quote}
+
+ The dialytika marks a \emph{hiatus} (break-up of a diphthong). It must be
+ present in UPPERCASE even where it is redundant in lowercase (the hiatus can
+ also be marked by an accent or breathing on the first of two consecutive
+ vowels). The auto-hiatus feature works in LGR and TU font encodings only:
+ \begin{quote}
+ \newcommand*{\sample}{%
+ \acctonos\textalpha\textupsilon{}, \acctonos\textepsilon\textiota{}}
+ \sample{} → \MakeUppercase{\sample} (\latinencoding) vs.
+ \ensuregreek{\sample{} → \MakeUppercase{\sample}} (\greekfontencoding)
+ \end{quote}
+
+ With the old implementation of \cs{MakeUppercase}, the auto-hiatus
+ feature works with LICR macros but not Unicode literals.
+ The new implementation works with Unicode literals, too, but only if the text
+ language is Greek (i.e. not in this document).
+ \begin{quote}
+ \ensuregreek{%
+ \accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha}
+ $\mapsto$ \ensuregreek{\MakeUppercase{%
+ \accpsili\textalpha\textupsilon\textpi\textnu\acctonos\textiota\textalpha}}
+ (LICR macros: OK with LGR or TU)
+
+ \ensuregreek{ἀυπνία} $\mapsto$
+ \ensuregreek{\MakeUppercase{ἀυπνία}} (literal characters: fails without Babel)
+ \end{quote}
+\fi
\section{Test and Examples}
\subsection{Greek alphabet}
-Greek letters via Latin transliteration (works only in LGR font encoding):
-
+Greek literal characters in Latin text (font encoding \latinencoding):
\begin{quote}
- \ensuregreek{a b g d e z h j i k l m n x o p r sv c t u f q y w}
+ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ ς τ υ φ χ ψ ω
- \ensuregreek{A B G D E Z H J I K L M N X O P R S T U F Q Y W}
+ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
\end{quote}
%
-Greek letters via default macros in the font for Latin script
-(here \latinencoding):
-
+Greek letters via default macros in Latin text (font encoding \latinencoding):
+%
\newcommand*{\greekAlphabetsample}{
\textAlpha{} \textBeta{} \textGamma{} \textDelta{} \textEpsilon{}
\textZeta{} \textEta{} \textTheta{} \textIota{} \textKappa{}
@@ -309,6 +308,16 @@ Greek letters via default macros in the font for Latin script
\greekAlphabetsample
\end{quote}
%
+\ifdefined\UnicodeEncodingName
+\else
+ Greek letters via Latin transliteration (works only in LGR font encoding):
+ \begin{quote}
+ \ensuregreek{a b g d e z h j i k l m n x o p r sv c t u f q y w}
+
+ \ensuregreek{A B G D E Z H J I K L M N X O P R S T U F Q Y W}
+ \end{quote}
+\fi
+%
Archaic Greek letters and Greek punctuation
\newcommand*{\archaicgreeksample}{
@@ -316,13 +325,14 @@ Archaic Greek letters and Greek punctuation
\textkoppa \textKoppa{}
\textqoppa \textQoppa{}
\textsampi \textSampi{}
- \textstigma \textvarstigma \textStigma{}
+ \textstigma
+ \textvarstigma % only in LGR
+ \textStigma{}
\textanoteleia{}
\texterotimatiko{}
\textdexiakeraia{}
\textaristerikeraia{}
}
-
\begin{quote}
\archaicgreeksample
\end{quote}
@@ -330,9 +340,8 @@ Archaic Greek letters and Greek punctuation
Diacritics
\begin{quote}
- Short macros:%
- \footnote{Composite diacritics require wrapping in
- \texttt{\textbackslash ensuregreek}.}
+ Short macros:\footnote{
+ Composite diacritics require wrapping in \cs{ensuregreek}.}
\"{} \'{} \`{} \~{} \<{} \>{} \u{} \={}
\ensuregreek{\"~{} \"'{} \"`{} \<~{} \<`{} \<'{} \>~{} \>'{} \>`{}}
@@ -355,21 +364,23 @@ Diacritics
\accpsiliperispomeni{}
\accpsilioxia{}
\accpsilivaria{}
- %
- Only in LGR:
- \accinvertedbrevebelow{} % == \textsubarch{}
- \accbrevebelow{}
+ \ifdefined\UnicodeEncodingName
+ \else
+ Only in LGR:
+ \accinvertedbrevebelow{} % == \textsubarch{}
+ \accbrevebelow{}
+ \fi
\end{quote}
\medskip\noindent
-Accent macros can start with \verb|\a| instead of \verb|\| when the
+Accent macros can start with ``\verb|\a|'' instead of ``\verb|\|'' when the
short form is redefined, e.\,g. inside a \emph{tabbing} environment.
This also works for the new-defined Dasia and Psili shortcuts:
\begin{quote}
\begin{tabbing}
- COL1\quad \= COL2\quad \= COL3\quad \= COL4\quad \\
- Viele \> Gr\a"u\ss e
+ col 1\quad \= col 2\quad \= col 3\quad \= col 4\quad \\
+ Viele \> Gr\a"u\ss e
\> \greekscript \a<\textalpha{}
\> \greekscript \a>\textomega
\end{tabbing}
@@ -384,36 +395,36 @@ used inside a word and \verb|\textfinalsigma| \textfinalsigma{} (or
In LGR, the Latin letter \verb|s| and the command \verb|\textautosigma|
print the ``normal'' sigma if followed by another letter and the final sigma
if followed by space or punctuation. This is implemented via the font
-ligature mechanism in LGR:
-\ensuregreek{\textautosigma\textautosigma} (\greekfontencoding) vs.
-\textautosigma{}\textautosigma{} (\latinencoding).%
-\footnote{TODO: Fix \texttt{\textbackslash textautosigma} with Unicode fonts.}
-
-
+ligature mechanism in LGR\footnote{
+ TODO: Fix \cs{textautosigma} with Unicode fonts.}:
+\begin{quote}
+ \ensuregreek{\textautosigma\textautosigma} (\greekfontencoding) vs.
+ \textautosigma{}\textautosigma{} (\latinencoding).
+\end{quote}
The upper case of both sigma variants is \verb|\textSigma|, the lower case
-of \verb|\textSigma| is \verb|\textautosigma|.
-
-\smallskip\noindent
-Test: Unicode literal and \verb|\text...| commands
-
-\newcommand{\sample}{σ\textsigma{}
- ς\textvarsigma \textfinalsigma \textautosigma{}
- ΣΣ \textSigma\textSigma{}}
-
-no change: \sample
-
-MakeUppercase: \MakeUppercase{\sample}
-
-MakeLowercase (\latinencoding): \MakeLowercase{\sample}
-
-MakeLowercase (\greekfontencoding): \ensuregreek{\MakeLowercase{\sample}}
+of \cs{textSigma} is \cs{textautosigma}.
+\medskip\noindent
+\begin{samepage}
+Test Unicode literal and \verb|\text...| commands:
+\begin{quote}
+ \newcommand{\sample}{σ\textsigma{}
+ ς\textvarsigma \textfinalsigma \textautosigma{}
+ ΣΣ \textSigma\textSigma{}}
+ \begin{tabular}{ll}
+ no change: & \sample \\
+ MakeUppercase: & \MakeUppercase{\sample} \\
+ MakeLowercase (\latinencoding): & \MakeLowercase{\sample} \\
+ MakeLowercase (\greekfontencoding): & \ensuregreek{\MakeLowercase{\sample}}
+ \end{tabular}
+\end{quote}
+\end{samepage}
\subsection{Greek literal characters in non-Greek text}
With the \emph{textalpha} package,
\href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc} and input
-encoding \texttt{utf8}, Greek Unicode characters can be used in text with
+encoding \texttt{utf8}, Greek Unicode literals can be used in text with
any font encoding. See Tables \ref{tab:greek-and-coptic} and
\ref{tab:greek-extended}.
@@ -482,8 +493,7 @@ Combined Diacritics work for pre-composed characters: ᾅ.
Diacritics (except diaeresis) are dropped with
MakeUppercase with LaTeX versions older than 2022/06
-For other versions, set the language of to-be-upcased Greek text with Babel.
-
+For other versions, set the language of to-be-upcased Greek text with Babel:
μαΐστρος, δύο $\mapsto$ \MakeUppercase{μαΐστρος, δύο}.
@@ -495,7 +505,7 @@ are two options to get Greek letters in PDF strings: LICR macros and literal
Unicode input.
\subsubsection{\textlambda\textomicron\textgamma\textomicron\textvarsigma{},
- λογος and \ensuregreek{logos}}
+ λογος, and \ensuregreek{logos}}
The subsection title above uses: LICR macros, Unicode input and the LGR
transliteration for the Greek word \ensuregreek{logos}.
@@ -505,7 +515,13 @@ Latin transliteration remains Latin in the PDF metadata
(sidebar table of contents in the PDF viewer) and with Xe/LuaTeX.
\subsubsection{\greekalphabetsample}
+
\subsubsection{\greekAlphabetsample}
+
\subsubsection{\archaicgreeksample}
+\ifdefined \UnicodeEncodingName
+ Archaic characters are missing in many fonts, including the ``Biolinum'' font
+ used in this document.
+\fi.
\end{document}
diff --git a/language/greek/greek-fontenc/textalpha.sty b/language/greek/greek-fontenc/textalpha.sty
index 7f09a4469d..ef70c8094a 100644
--- a/language/greek/greek-fontenc/textalpha.sty
+++ b/language/greek/greek-fontenc/textalpha.sty
@@ -3,7 +3,7 @@
% Greek symbols in text
% *********************
%
-% :Version: 2.4 (changelog_)
+% :Version: 2.5 (changelog_)
%
% :Copyright: © 2010, 2023 Günter Milde
%
@@ -113,7 +113,7 @@
% ::
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{textalpha}[2023-08-15 2.4 macros for Greek letters in text]
+\ProvidesPackage{textalpha}[2023-09-12 2.5 macros for Greek letters in text]
% Options
@@ -181,6 +181,8 @@
% Psili) are input as < and >. Provide the corresponding NFSS macro accents.
% (Used below for LGR, TU, and PU, if these font encodings are defined)::
+\providecommand*{\IfFormatAtLeastTF}[3]{#3} % new in 2020
+
\newcommand{\textalpha@define@breathings}[1]{
\DeclareTextCommand{\<}{#1}{\accdasia}
\DeclareTextCommand{\>}{#1}{\accpsili}
@@ -192,8 +194,13 @@
\DeclareTextCompositeCommand{\<}{#1}{`}{\accdasiavaria}
\DeclareTextCompositeCommand{\<}{#1}{~}{\accdasiaperispomeni}
+ \IfFormatAtLeastTF{2022/06/01}{}{% else
+ \DeclareTextCompositeCommand{\<}{#1}{^^9f}{\LGR@hiatus}
+ \DeclareTextCompositeCommand{\>}{#1}{^^9f}{\LGR@hiatus}
+ }
+
% Also define "mixed" composites (required due to the fix for
-% ``\MakeUppercse`` below::
+% ``\MakeUppercase`` below::
% \MakeUppercse: \>~a, \<~a
% \DeclareTextCompositeCommand{\accpsili}{#1}{~}{\accpsiliperispomeni}
@@ -234,8 +241,6 @@
\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
\input{tuenc-greek.def}
\textalpha@define@breathings{\UnicodeEncodingName}
- \DeclareTextCompositeCommand{\<}{\UnicodeEncodingName}{^^9f}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\>}{\UnicodeEncodingName}{^^9f}{\LGR@hiatus}
\else
\@ifl@aded{def}{lgrenc}
{}
@@ -248,11 +253,7 @@
% Add setup for breathings::
\@ifl@aded{def}{lgrenc}
- {\textalpha@define@breathings{LGR}
- % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
- \DeclareTextCompositeCommand{\<}{LGR}{^^9f}{\LGR@hiatus}
- \DeclareTextCompositeCommand{\>}{LGR}{^^9f}{\LGR@hiatus}
- }
+ {\textalpha@define@breathings{LGR}}
{}
% The package hyperref_ defines the PU font encoding and adds some
@@ -385,15 +386,15 @@
\DeclareTextSymbolDefault{\textkappa}{LGR}
\DeclareTextSymbolDefault{\textlambda}{LGR}
\DeclareTextSymbolDefault{\textmu}{LGR}
-\DeclareTextSymbolDefault{\textmugreek}{LGR} % (puenc.def)
+\DeclareTextSymbolDefault{\textmugreek}{LGR} % (puenc.def)
\DeclareTextSymbolDefault{\textnu}{LGR}
\DeclareTextSymbolDefault{\textxi}{LGR}
\DeclareTextSymbolDefault{\textomicron}{LGR}
\DeclareTextSymbolDefault{\textpi}{LGR}
\DeclareTextSymbolDefault{\textrho}{LGR}
\DeclareTextSymbolDefault{\textsigma}{LGR}
-\DeclareTextSymbolDefault{\textvarsigma}{LGR}
-\DeclareTextSymbolDefault{\textfinalsigma}{LGR} % alias for \textvarsigma
+\DeclareTextSymbolDefault{\textfinalsigma}{LGR}
+\DeclareTextSymbolDefault{\textvarsigma}{LGR} % alias for \textfinalsigma
\DeclareTextSymbolDefault{\textautosigma}{LGR} % char 115 in LGR
\DeclareTextSymbolDefault{\texttau}{LGR}
\DeclareTextSymbolDefault{\textupsilon}{LGR}
@@ -486,6 +487,7 @@
\DeclareTextAccentDefault{\accdasia}{LGR}
\DeclareTextAccentDefault{\accpsili}{LGR}
\DeclareTextAccentDefault{\acctonos}{LGR}
+\DeclareTextAccentDefault{\accoxia}{LGR}
\DeclareTextAccentDefault{\accvaria}{LGR}
\DeclareTextAccentDefault{\accperispomeni}{LGR}
\DeclareTextAccentDefault{\accdialytika}{LGR}
@@ -603,6 +605,7 @@
% 2.2.2 2023-03-17 Don't map active `;` to ``\textsemicolon`` in math mode.
% 2.4 2023-08-16 Map character 00B5 MICRO SIGN to ``\textmicro``.
% .. Fix upcasing of Greek letters with ``\<`` and ``\>``.
+% 2.5 2023-09-12 Support the ``\accoxia`` alias.
% ====== =========== ========================================================
%
%
diff --git a/language/greek/greek-fontenc/textalpha.sty.html b/language/greek/greek-fontenc/textalpha.sty.html
index f3cd385494..8f8d046012 100644
--- a/language/greek/greek-fontenc/textalpha.sty.html
+++ b/language/greek/greek-fontenc/textalpha.sty.html
@@ -794,7 +794,7 @@ mstyle.mathscr, mi.mathscr {
<p class="subtitle" id="greek-symbols-in-text">Greek symbols in text</p>
<dl class="docinfo">
<dt class="version">Version<span class="colon">:</span></dt>
-<dd class="version">2.4 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
+<dd class="version">2.5 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
<dt class="copyright">Copyright<span class="colon">:</span></dt>
<dd class="copyright">© 2010, 2023 Günter Milde</dd>
<dt class="licence">Licence<span class="colon">:</span></dt>
@@ -916,7 +916,7 @@ in the same document (see <a class="reference external" href="test-tuenc-greek.t
<section id="identification">
<h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Identification</a></h3>
<pre class="literal-block">\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{textalpha}[2023-08-15 2.4 macros for Greek letters in text]</pre>
+\ProvidesPackage{textalpha}[2023-09-12 2.5 macros for Greek letters in text]</pre>
</section>
<section id="options">
<h3><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">Options</a></h3>
@@ -967,7 +967,9 @@ With XeTeX/LuaTeX and Unicode fonts, this option is ignored.</p>
<p>In the Latin transliteration provided by LGR, breathing accents (Dasia and
Psili) are input as &lt; and &gt;. Provide the corresponding NFSS macro accents.
(Used below for LGR, TU, and PU, if these font encodings are defined):</p>
-<pre class="literal-block">\newcommand{\textalpha&#64;define&#64;breathings}[1]{
+<pre class="literal-block">\providecommand*{\IfFormatAtLeastTF}[3]{#3} % new in 2020
+
+\newcommand{\textalpha&#64;define&#64;breathings}[1]{
\DeclareTextCommand{\&lt;}{#1}{\accdasia}
\DeclareTextCommand{\&gt;}{#1}{\accpsili}
% Composite accents starting with the new-defined shortcuts:
@@ -976,9 +978,14 @@ Psili) are input as &lt; and &gt;. Provide the corresponding NFSS macro accents.
\DeclareTextCompositeCommand{\&gt;}{#1}{~}{\accpsiliperispomeni}
\DeclareTextCompositeCommand{\&lt;}{#1}{'}{\accdasiaoxia}
\DeclareTextCompositeCommand{\&lt;}{#1}{`}{\accdasiavaria}
- \DeclareTextCompositeCommand{\&lt;}{#1}{~}{\accdasiaperispomeni}</pre>
+ \DeclareTextCompositeCommand{\&lt;}{#1}{~}{\accdasiaperispomeni}
+
+ \IfFormatAtLeastTF{2022/06/01}{}{% else
+ \DeclareTextCompositeCommand{\&lt;}{#1}{^^9f}{\LGR&#64;hiatus}
+ \DeclareTextCompositeCommand{\&gt;}{#1}{^^9f}{\LGR&#64;hiatus}
+ }</pre>
<p>Also define “mixed” composites (required due to the fix for
-<span class="docutils literal">\MakeUppercse</span> below:</p>
+<span class="docutils literal">\MakeUppercase</span> below:</p>
<pre class="literal-block"> % \MakeUppercse: \&gt;~a, \&lt;~a
% \DeclareTextCompositeCommand{\accpsili}{#1}{~}{\accpsiliperispomeni}
% \DeclareTextCompositeCommand{\accdasia}{#1}{~}{\accdasiaperispomeni}
@@ -1005,8 +1012,6 @@ macros:</p>
<pre class="literal-block">\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines
\input{tuenc-greek.def}
\textalpha&#64;define&#64;breathings{\UnicodeEncodingName}
- \DeclareTextCompositeCommand{\&lt;}{\UnicodeEncodingName}{^^9f}{\LGR&#64;hiatus}
- \DeclareTextCompositeCommand{\&gt;}{\UnicodeEncodingName}{^^9f}{\LGR&#64;hiatus}
\else
\&#64;ifl&#64;aded{def}{lgrenc}
{}
@@ -1017,11 +1022,7 @@ macros:</p>
(enables use of 8-bit TeX fonts and input via the Latin transliteration).
Add setup for breathings:</p>
<pre class="literal-block">\&#64;ifl&#64;aded{def}{lgrenc}
- {\textalpha&#64;define&#64;breathings{LGR}
- % Hiatus feature (see greek-fontenc.def and babel-greek (greek.ldf))
- \DeclareTextCompositeCommand{\&lt;}{LGR}{^^9f}{\LGR&#64;hiatus}
- \DeclareTextCompositeCommand{\&gt;}{LGR}{^^9f}{\LGR&#64;hiatus}
- }
+ {\textalpha&#64;define&#64;breathings{LGR}}
{}</pre>
<p>The package <a class="reference external" href="https://ctan.org/pkg/hyperref">hyperref</a> defines the PU font encoding and adds some
LICR commands for monotonic Greek (in punenc-greekbasick.def).
@@ -1131,15 +1132,15 @@ would work also for cases like <span class="docutils literal"><span class="pre">
\DeclareTextSymbolDefault{\textkappa}{LGR}
\DeclareTextSymbolDefault{\textlambda}{LGR}
\DeclareTextSymbolDefault{\textmu}{LGR}
-\DeclareTextSymbolDefault{\textmugreek}{LGR} % (puenc.def)
+\DeclareTextSymbolDefault{\textmugreek}{LGR} % (puenc.def)
\DeclareTextSymbolDefault{\textnu}{LGR}
\DeclareTextSymbolDefault{\textxi}{LGR}
\DeclareTextSymbolDefault{\textomicron}{LGR}
\DeclareTextSymbolDefault{\textpi}{LGR}
\DeclareTextSymbolDefault{\textrho}{LGR}
\DeclareTextSymbolDefault{\textsigma}{LGR}
-\DeclareTextSymbolDefault{\textvarsigma}{LGR}
-\DeclareTextSymbolDefault{\textfinalsigma}{LGR} % alias for \textvarsigma
+\DeclareTextSymbolDefault{\textfinalsigma}{LGR}
+\DeclareTextSymbolDefault{\textvarsigma}{LGR} % alias for \textfinalsigma
\DeclareTextSymbolDefault{\textautosigma}{LGR} % char 115 in LGR
\DeclareTextSymbolDefault{\texttau}{LGR}
\DeclareTextSymbolDefault{\textupsilon}{LGR}
@@ -1216,6 +1217,7 @@ The variations have no syntactic meaning in Greek text.</p>
<pre class="literal-block">\DeclareTextAccentDefault{\accdasia}{LGR}
\DeclareTextAccentDefault{\accpsili}{LGR}
\DeclareTextAccentDefault{\acctonos}{LGR}
+\DeclareTextAccentDefault{\accoxia}{LGR}
\DeclareTextAccentDefault{\accvaria}{LGR}
\DeclareTextAccentDefault{\accperispomeni}{LGR}
\DeclareTextAccentDefault{\accdialytika}{LGR}
@@ -1384,6 +1386,10 @@ Don’t use <span class="docutils literal">\LastDeclaredEncoding</span>.</p></td
<td></td>
<td><p>Fix upcasing of Greek letters with <span class="docutils literal">\&lt;</span> and <span class="docutils literal">\&gt;</span>.</p></td>
</tr>
+<tr><td><p>2.5</p></td>
+<td><p>2023-09-12</p></td>
+<td><p>Support the <span class="docutils literal">\accoxia</span> alias.</p></td>
+</tr>
</tbody>
</table>
<!-- References
diff --git a/language/greek/greek-fontenc/tuenc-greek.def b/language/greek/greek-fontenc/tuenc-greek.def
index 1a4c8875c5..b6c784df63 100644
--- a/language/greek/greek-fontenc/tuenc-greek.def
+++ b/language/greek/greek-fontenc/tuenc-greek.def
@@ -3,7 +3,7 @@
% Greek LICR definitions for XeTeX and LuaTeX
% *******************************************
%
-% :Version: 2.4 (changelog_)
+% :Version: 2.5 (changelog_)
%
% :Copyright: © 2013 -- 2023 Günter Milde
%
@@ -51,9 +51,15 @@
% ::
\ProvidesFile{tuenc-greek.def}
- [2023-08-15 2.4 Greek LICRs for XeTeX and LuaTeX]
+ [2023-09-12 2.5 Greek LICRs for XeTeX and LuaTeX]
+% Auxiliary command (modeled after definitions in ``tuenc.def``)::
+
+\providecommand*{\DeclareUnicodeCompositeCommand}[2]{%
+ \DeclareTextCompositeCommand{#1}{\UnicodeEncodingName}{#2}
+}
+
% Greek Diacritics
% ----------------
%
@@ -165,117 +171,74 @@
% 037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
\DeclareTextSymbol{\texterotimatiko}\UnicodeEncodingName{"003B} % use SEMICOLON, not 037E GREEK QUESTION MARK
-\DeclareUnicodeComposite{\acctonos} {} {"0384} % ΄ GREEK TONOS
-\DeclareUnicodeComposite{\accdialytikatonos}{} {"0385} % ΅ GREEK DIALYTIKA TONOS
-\DeclareUnicodeComposite{\'} {\textAlpha} {"0386} % Ά
-\DeclareTextSymbol{\textanoteleia} \UnicodeEncodingName{"00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA
-\DeclareUnicodeComposite{\'} {\textEpsilon}{"0388} % Έ
-\DeclareUnicodeComposite{\'} {\textEta} {"0389} % Ή
-\DeclareUnicodeComposite{\'} {\textIota} {"038A} % Ί
-\DeclareUnicodeComposite{\'} {\textOmicron}{"038C} % Ό
-\DeclareUnicodeComposite{\'} {\textUpsilon}{"038E} % Ύ
-\DeclareUnicodeComposite{\'} {\textOmega} {"038F} % Ώ
-% repeat with named accents (LuaTeX does not normalize to pre-composed chars):
-\DeclareUnicodeComposite{\acctonos} {\textAlpha} {"0386} % Ά
-\DeclareUnicodeComposite{\acctonos} {\textEpsilon}{"0388} % Έ
-\DeclareUnicodeComposite{\acctonos} {\textEta} {"0389} % Ή
-\DeclareUnicodeComposite{\acctonos} {\textIota} {"038A} % Ί
-\DeclareUnicodeComposite{\acctonos} {\textOmicron}{"038C} % Ό
-\DeclareUnicodeComposite{\acctonos} {\textUpsilon}{"038E} % Ύ
-\DeclareUnicodeComposite{\acctonos} {\textOmega} {"038F} % Ώ
-\DeclareUnicodeComposite{\accdialytikatonos}{\textiota} {"0390} % ΐ
-
-\DeclareTextSymbol{\textAlpha }\UnicodeEncodingName{"0391} % Α
-\DeclareTextSymbol{\textBeta }\UnicodeEncodingName{"0392} % Β
-\DeclareTextSymbol{\textGamma }\UnicodeEncodingName{"0393} % Γ
-\DeclareTextSymbol{\textDelta }\UnicodeEncodingName{"0394} % Δ
-\DeclareTextSymbol{\textEpsilon}\UnicodeEncodingName{"0395} % Ε
-\DeclareTextSymbol{\textZeta }\UnicodeEncodingName{"0396} % Ζ
-\DeclareTextSymbol{\textEta }\UnicodeEncodingName{"0397} % Η
-\DeclareTextSymbol{\textTheta }\UnicodeEncodingName{"0398} % Θ
-\DeclareTextSymbol{\textIota }\UnicodeEncodingName{"0399} % Ι
-\DeclareTextSymbol{\textKappa }\UnicodeEncodingName{"039A} % Κ
-\DeclareTextSymbol{\textLambda }\UnicodeEncodingName{"039B} % Λ
-\DeclareTextSymbol{\textMu }\UnicodeEncodingName{"039C} % Μ
-\DeclareTextSymbol{\textNu }\UnicodeEncodingName{"039D} % Ν
-\DeclareTextSymbol{\textXi }\UnicodeEncodingName{"039E} % Ξ
-\DeclareTextSymbol{\textOmicron}\UnicodeEncodingName{"039F} % Ο
-\DeclareTextSymbol{\textPi }\UnicodeEncodingName{"03A0} % Π
-\DeclareTextSymbol{\textRho }\UnicodeEncodingName{"03A1} % Ρ
-\DeclareTextSymbol{\textSigma }\UnicodeEncodingName{"03A3} % Σ
-\DeclareTextSymbol{\textTau }\UnicodeEncodingName{"03A4} % Τ
-\DeclareTextSymbol{\textUpsilon}\UnicodeEncodingName{"03A5} % Υ
-\DeclareTextSymbol{\textPhi }\UnicodeEncodingName{"03A6} % Φ
-\DeclareTextSymbol{\textChi }\UnicodeEncodingName{"03A7} % Χ
-\DeclareTextSymbol{\textPsi }\UnicodeEncodingName{"03A8} % Ψ
-\DeclareTextSymbol{\textOmega }\UnicodeEncodingName{"03A9} % Ω
-
-\DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ
-\DeclareUnicodeComposite{\"} {\textIota} {"03AA} % Ϊ
-\DeclareUnicodeComposite{\"} {\textUpsilon}{"03AB} % Ϋ
-\DeclareUnicodeComposite{\'} {\textalpha} {"03AC} % ά
-\DeclareUnicodeComposite{\'} {\textepsilon}{"03AD} % έ
-\DeclareUnicodeComposite{\'} {\texteta} {"03AE} % ή
-\DeclareUnicodeComposite{\'} {\textiota} {"03AF} % ί
-% repeat with named accents (LuaTeX does not normalize to pre-composed chars):
-\DeclareUnicodeComposite{\accdialytika} {\textIota} {"03AA} % Ϊ
-\DeclareUnicodeComposite{\accdialytika} {\textIota} {"03AA} % Ϊ
-\DeclareUnicodeComposite{\accdialytika} {\textUpsilon}{"03AB} % Ϋ
-\DeclareUnicodeComposite{\acctonos} {\textalpha} {"03AC} % ά
-\DeclareUnicodeComposite{\acctonos} {\textepsilon}{"03AD} % έ
-\DeclareUnicodeComposite{\acctonos} {\texteta} {"03AE} % ή
-\DeclareUnicodeComposite{\acctonos} {\textiota} {"03AF} % ί
-\DeclareUnicodeComposite{\accdialytikatonos}{\textupsilon}{"03B0} % ΰ
-
-\DeclareTextSymbol{\textalpha }\UnicodeEncodingName{"03B1} % α
-\DeclareTextSymbol{\textbeta }\UnicodeEncodingName{"03B2} % β
-\DeclareTextSymbol{\textgamma }\UnicodeEncodingName{"03B3} % γ
-\DeclareTextSymbol{\textdelta }\UnicodeEncodingName{"03B4} % δ
-\DeclareTextSymbol{\textepsilon }\UnicodeEncodingName{"03B5} % ε
-\DeclareTextSymbol{\textzeta }\UnicodeEncodingName{"03B6} % ζ
-\DeclareTextSymbol{\texteta }\UnicodeEncodingName{"03B7} % η
-\DeclareTextSymbol{\texttheta }\UnicodeEncodingName{"03B8} % θ
-\DeclareTextSymbol{\textiota }\UnicodeEncodingName{"03B9} % ι
-\DeclareTextSymbol{\textkappa }\UnicodeEncodingName{"03BA} % κ
-\DeclareTextSymbol{\textlambda }\UnicodeEncodingName{"03BB} % λ
-\DeclareTextSymbol{\textmu }\UnicodeEncodingName{"03BC} % μ % \textmugreek
-\DeclareTextSymbol{\textnu }\UnicodeEncodingName{"03BD} % ν
-\DeclareTextSymbol{\textxi }\UnicodeEncodingName{"03BE} % ξ
-\DeclareTextSymbol{\textomicron }\UnicodeEncodingName{"03BF} % ο
-\DeclareTextSymbol{\textpi }\UnicodeEncodingName{"03C0} % π
-\DeclareTextSymbol{\textrho }\UnicodeEncodingName{"03C1} % ρ
-\DeclareTextSymbol{\textfinalsigma}\UnicodeEncodingName{"03C2} % ς % final sigma
-\DeclareTextSymbol{\textsigma }\UnicodeEncodingName{"03C3} % σ
-\DeclareTextSymbol{\texttau }\UnicodeEncodingName{"03C4} % τ
-\DeclareTextSymbol{\textupsilon }\UnicodeEncodingName{"03C5} % υ
-\DeclareTextSymbol{\textphi }\UnicodeEncodingName{"03C6} % φ
-\DeclareTextSymbol{\textchi }\UnicodeEncodingName{"03C7} % χ
-\DeclareTextSymbol{\textpsi }\UnicodeEncodingName{"03C8} % ψ
-\DeclareTextSymbol{\textomega }\UnicodeEncodingName{"03C9} % ω
-
-\DeclareUnicodeComposite{\"}{\textiota}{"03CA} % ϊ
-\DeclareUnicodeComposite{\"}{\textupsilon}{"03CB} % ϋ
-\DeclareUnicodeComposite{\'}{\textomicron}{"03CC} % ό
-\DeclareUnicodeComposite{\'}{\textupsilon}{"03CD} % ύ
-\DeclareUnicodeComposite{\'}{\textomega}{"03CE} % ώ
-\DeclareUnicodeComposite{\accdialytika}{\textiota}{"03CA} % ϊ
-\DeclareUnicodeComposite{\accdialytika}{\textupsilon}{"03CB} % ϋ
-\DeclareUnicodeComposite{\acctonos}{\textomicron}{"03CC} % ό
-\DeclareUnicodeComposite{\acctonos}{\textupsilon}{"03CD} % ύ
-\DeclareUnicodeComposite{\acctonos}{\textomega}{"03CE} % ώ
+\DeclareUnicodeComposite{\acctonos} {} {"0384} % ΄ GREEK TONOS
+\DeclareUnicodeComposite{\accdialytikatonos}{} {"0385} % ΅ GREEK DIALYTIKA TONOS
+
+\DeclareTextSymbol{\textanoteleia }\UnicodeEncodingName{"00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA
+
+\DeclareTextSymbol{\textAlpha }\UnicodeEncodingName{"0391} % Α
+\DeclareTextSymbol{\textBeta }\UnicodeEncodingName{"0392} % Β
+\DeclareTextSymbol{\textGamma }\UnicodeEncodingName{"0393} % Γ
+\DeclareTextSymbol{\textDelta }\UnicodeEncodingName{"0394} % Δ
+\DeclareTextSymbol{\textEpsilon }\UnicodeEncodingName{"0395} % Ε
+\DeclareTextSymbol{\textZeta }\UnicodeEncodingName{"0396} % Ζ
+\DeclareTextSymbol{\textEta }\UnicodeEncodingName{"0397} % Η
+\DeclareTextSymbol{\textTheta }\UnicodeEncodingName{"0398} % Θ
+\DeclareTextSymbol{\textIota }\UnicodeEncodingName{"0399} % Ι
+\DeclareTextSymbol{\textKappa }\UnicodeEncodingName{"039A} % Κ
+\DeclareTextSymbol{\textLambda }\UnicodeEncodingName{"039B} % Λ
+\DeclareTextSymbol{\textMu }\UnicodeEncodingName{"039C} % Μ
+\DeclareTextSymbol{\textNu }\UnicodeEncodingName{"039D} % Ν
+\DeclareTextSymbol{\textXi }\UnicodeEncodingName{"039E} % Ξ
+\DeclareTextSymbol{\textOmicron }\UnicodeEncodingName{"039F} % Ο
+\DeclareTextSymbol{\textPi }\UnicodeEncodingName{"03A0} % Π
+\DeclareTextSymbol{\textRho }\UnicodeEncodingName{"03A1} % Ρ
+\DeclareTextSymbol{\textSigma }\UnicodeEncodingName{"03A3} % Σ
+\DeclareTextSymbol{\textTau }\UnicodeEncodingName{"03A4} % Τ
+\DeclareTextSymbol{\textUpsilon }\UnicodeEncodingName{"03A5} % Υ
+\DeclareTextSymbol{\textPhi }\UnicodeEncodingName{"03A6} % Φ
+\DeclareTextSymbol{\textChi }\UnicodeEncodingName{"03A7} % Χ
+\DeclareTextSymbol{\textPsi }\UnicodeEncodingName{"03A8} % Ψ
+\DeclareTextSymbol{\textOmega }\UnicodeEncodingName{"03A9} % Ω
+
+\DeclareTextSymbol{\textalpha }\UnicodeEncodingName{"03B1} % α
+\DeclareTextSymbol{\textbeta }\UnicodeEncodingName{"03B2} % β
+\DeclareTextSymbol{\textgamma }\UnicodeEncodingName{"03B3} % γ
+\DeclareTextSymbol{\textdelta }\UnicodeEncodingName{"03B4} % δ
+\DeclareTextSymbol{\textepsilon }\UnicodeEncodingName{"03B5} % ε
+\DeclareTextSymbol{\textzeta }\UnicodeEncodingName{"03B6} % ζ
+\DeclareTextSymbol{\texteta }\UnicodeEncodingName{"03B7} % η
+\DeclareTextSymbol{\texttheta }\UnicodeEncodingName{"03B8} % θ
+\DeclareTextSymbol{\textiota }\UnicodeEncodingName{"03B9} % ι
+\DeclareTextSymbol{\textkappa }\UnicodeEncodingName{"03BA} % κ
+\DeclareTextSymbol{\textlambda }\UnicodeEncodingName{"03BB} % λ
+\DeclareTextSymbol{\textmu }\UnicodeEncodingName{"03BC} % μ % \textmugreek
+\DeclareTextSymbol{\textnu }\UnicodeEncodingName{"03BD} % ν
+\DeclareTextSymbol{\textxi }\UnicodeEncodingName{"03BE} % ξ
+\DeclareTextSymbol{\textomicron }\UnicodeEncodingName{"03BF} % ο
+\DeclareTextSymbol{\textpi }\UnicodeEncodingName{"03C0} % π
+\DeclareTextSymbol{\textrho }\UnicodeEncodingName{"03C1} % ρ
+\DeclareTextSymbol{\textfinalsigma }\UnicodeEncodingName{"03C2} % ς % final sigma
+\DeclareTextSymbol{\textsigma }\UnicodeEncodingName{"03C3} % σ
+\DeclareTextSymbol{\texttau }\UnicodeEncodingName{"03C4} % τ
+\DeclareTextSymbol{\textupsilon }\UnicodeEncodingName{"03C5} % υ
+\DeclareTextSymbol{\textphi }\UnicodeEncodingName{"03C6} % φ
+\DeclareTextSymbol{\textchi }\UnicodeEncodingName{"03C7} % χ
+\DeclareTextSymbol{\textpsi }\UnicodeEncodingName{"03C8} % ψ
+\DeclareTextSymbol{\textomega }\UnicodeEncodingName{"03C9} % ω
% Archaic letters (still used in Greek numerals)::
-\DeclareTextSymbol{\textQoppa }\UnicodeEncodingName{"03D8} % Ϙ
-\DeclareTextSymbol{\textqoppa }\UnicodeEncodingName{"03D9} % ϙ
-\DeclareTextSymbol{\textStigma }\UnicodeEncodingName{"03DA} % Ϛ
-\DeclareTextSymbol{\textstigma }\UnicodeEncodingName{"03DB} % ϛ
-\DeclareTextSymbol{\textDigamma }\UnicodeEncodingName{"03DC} % Ϝ
-\DeclareTextSymbol{\textdigamma }\UnicodeEncodingName{"03DD} % ϝ
-\DeclareTextSymbol{\textKoppa }\UnicodeEncodingName{"03DE} % Ϟ in LGR identic to \textkoppa
-\DeclareTextSymbol{\textkoppa }\UnicodeEncodingName{"03DF} % ϟ \koppa, \textqoppa [sic!]
-\DeclareTextSymbol{\textSampi }\UnicodeEncodingName{"03E0} % Ϡ
-\DeclareTextSymbol{\textsampi }\UnicodeEncodingName{"03E1} % ϡ
+\DeclareTextSymbol{\textQoppa }\UnicodeEncodingName{"03D8} % Ϙ
+\DeclareTextSymbol{\textqoppa }\UnicodeEncodingName{"03D9} % ϙ
+\DeclareTextSymbol{\textStigma }\UnicodeEncodingName{"03DA} % Ϛ
+\DeclareTextSymbol{\textstigma }\UnicodeEncodingName{"03DB} % ϛ
+\DeclareTextSymbol{\textDigamma }\UnicodeEncodingName{"03DC} % Ϝ
+\DeclareTextSymbol{\textdigamma }\UnicodeEncodingName{"03DD} % ϝ
+\DeclareTextSymbol{\textKoppa }\UnicodeEncodingName{"03DE} % Ϟ in LGR identic to \textkoppa
+\DeclareTextSymbol{\textkoppa }\UnicodeEncodingName{"03DF} % ϟ \koppa, \textqoppa [sic!]
+\DeclareTextSymbol{\textSampi }\UnicodeEncodingName{"03E0} % Ϡ
+\DeclareTextSymbol{\textsampi }\UnicodeEncodingName{"03E1} % ϡ
% Symbol variants::
@@ -300,262 +263,84 @@
% Greek Extended
% ~~~~~~~~~~~~~~
%
-% We skip definitions for characters "... WITH OXIA", because they would
-% overwrite the definitions for "... WITH TONOS" in the `Greek and Coptic`
-% block.
-%
+% spacing diacritics
+% """"""""""""""""""
% ::
-\DeclareUnicodeComposite{\accpsili }{\textalpha}{"1F00} % ἀ
-\DeclareUnicodeComposite{\accdasia }{\textalpha}{"1F01} % ἁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textalpha}{"1F02} % ἂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textalpha}{"1F03} % ἃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textalpha}{"1F04} % ἄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textalpha}{"1F05} % ἅ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textalpha}{"1F06} % ἆ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textalpha}{"1F07} % ἇ
-\DeclareUnicodeComposite{\accpsili }{\textAlpha}{"1F08} % Ἀ
-\DeclareUnicodeComposite{\accdasia }{\textAlpha}{"1F09} % Ἁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textAlpha}{"1F0A} % Ἂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textAlpha}{"1F0B} % Ἃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textAlpha}{"1F0C} % Ἄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textAlpha}{"1F0D} % Ἅ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textAlpha}{"1F0E} % Ἆ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textAlpha}{"1F0F} % Ἇ
-
-\DeclareUnicodeComposite{\accpsili }{\textepsilon}{"1F10} % ἐ
-\DeclareUnicodeComposite{\accdasia }{\textepsilon}{"1F11} % ἑ
-\DeclareUnicodeComposite{\accpsilivaria }{\textepsilon}{"1F12} % ἒ
-\DeclareUnicodeComposite{\accdasiavaria }{\textepsilon}{"1F13} % ἓ
-\DeclareUnicodeComposite{\accpsilioxia }{\textepsilon}{"1F14} % ἔ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textepsilon}{"1F15} % ἕ
-\DeclareUnicodeComposite{\accpsili }{\textEpsilon}{"1F18} % Ἐ
-\DeclareUnicodeComposite{\accdasia }{\textEpsilon}{"1F19} % Ἑ
-\DeclareUnicodeComposite{\accpsilivaria }{\textEpsilon}{"1F1A} % Ἒ
-\DeclareUnicodeComposite{\accdasiavaria }{\textEpsilon}{"1F1B} % Ἓ
-\DeclareUnicodeComposite{\accpsilioxia }{\textEpsilon}{"1F1C} % Ἔ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textEpsilon}{"1F1D} % Ἕ
-
-\DeclareUnicodeComposite{\accpsili }{\texteta}{"1F20} % ἠ
-\DeclareUnicodeComposite{\accdasia }{\texteta}{"1F21} % ἡ
-\DeclareUnicodeComposite{\accpsilivaria }{\texteta}{"1F22} % ἢ
-\DeclareUnicodeComposite{\accdasiavaria }{\texteta}{"1F23} % ἣ
-\DeclareUnicodeComposite{\accpsilioxia }{\texteta}{"1F24} % ἤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\texteta}{"1F25} % ἥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\texteta}{"1F26} % ἦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\texteta}{"1F27} % ἧ
-\DeclareUnicodeComposite{\accpsili }{\textEta}{"1F28} % Ἠ
-\DeclareUnicodeComposite{\accdasia }{\textEta}{"1F29} % Ἡ
-\DeclareUnicodeComposite{\accpsilivaria }{\textEta}{"1F2A} % Ἢ
-\DeclareUnicodeComposite{\accdasiavaria }{\textEta}{"1F2B} % Ἣ
-\DeclareUnicodeComposite{\accpsilioxia }{\textEta}{"1F2C} % Ἤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textEta}{"1F2D} % Ἥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textEta}{"1F2E} % Ἦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textEta}{"1F2F} % Ἧ
-
-\DeclareUnicodeComposite{\accpsili }{\textiota}{"1F30} % ἰ
-\DeclareUnicodeComposite{\accdasia }{\textiota}{"1F31} % ἱ
-\DeclareUnicodeComposite{\accpsilivaria }{\textiota}{"1F32} % ἲ
-\DeclareUnicodeComposite{\accdasiavaria }{\textiota}{"1F33} % ἳ
-\DeclareUnicodeComposite{\accpsilioxia }{\textiota}{"1F34} % ἴ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textiota}{"1F35} % ἵ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textiota}{"1F36} % ἶ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textiota}{"1F37} % ἷ
-\DeclareUnicodeComposite{\accpsili }{\textIota}{"1F38} % Ἰ
-\DeclareUnicodeComposite{\accdasia }{\textIota}{"1F39} % Ἱ
-\DeclareUnicodeComposite{\accpsilivaria }{\textIota}{"1F3A} % Ἲ
-\DeclareUnicodeComposite{\accdasiavaria }{\textIota}{"1F3B} % Ἳ
-\DeclareUnicodeComposite{\accpsilioxia }{\textIota}{"1F3C} % Ἴ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textIota}{"1F3D} % Ἵ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textIota}{"1F3E} % Ἶ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textIota}{"1F3F} % Ἷ
-
-\DeclareUnicodeComposite{\accpsili }{\textomicron}{"1F40} % ὀ
-\DeclareUnicodeComposite{\accdasia }{\textomicron}{"1F41} % ὁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textomicron}{"1F42} % ὂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textomicron}{"1F43} % ὃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textomicron}{"1F44} % ὄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textomicron}{"1F45} % ὅ
-\DeclareUnicodeComposite{\accpsili }{\textOmicron}{"1F48} % Ὀ
-\DeclareUnicodeComposite{\accdasia }{\textOmicron}{"1F49} % Ὁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textOmicron}{"1F4A} % Ὂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textOmicron}{"1F4B} % Ὃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textOmicron}{"1F4C} % Ὄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textOmicron}{"1F4D} % Ὅ
-
-\DeclareUnicodeComposite{\accpsili }{\textupsilon}{"1F50} % ὐ
-\DeclareUnicodeComposite{\accdasia }{\textupsilon}{"1F51} % ὑ
-\DeclareUnicodeComposite{\accpsilivaria }{\textupsilon}{"1F52} % ὒ
-\DeclareUnicodeComposite{\accdasiavaria }{\textupsilon}{"1F53} % ὓ
-\DeclareUnicodeComposite{\accpsilioxia }{\textupsilon}{"1F54} % ὔ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textupsilon}{"1F55} % ὕ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textupsilon}{"1F56} % ὖ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textupsilon}{"1F57} % ὗ
-\DeclareUnicodeComposite{\accdasia }{\textUpsilon}{"1F59} % Ὑ
-\DeclareUnicodeComposite{\accdasiavaria }{\textUpsilon}{"1F5B} % Ὓ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textUpsilon}{"1F5D} % Ὕ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textUpsilon}{"1F5F} % Ὗ
-
-\DeclareUnicodeComposite{\accpsili }{\textomega}{"1F60} % ὠ
-\DeclareUnicodeComposite{\accdasia }{\textomega}{"1F61} % ὡ
-\DeclareUnicodeComposite{\accpsilivaria }{\textomega}{"1F62} % ὢ
-\DeclareUnicodeComposite{\accdasiavaria }{\textomega}{"1F63} % ὣ
-\DeclareUnicodeComposite{\accpsilioxia }{\textomega}{"1F64} % ὤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textomega}{"1F65} % ὥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textomega}{"1F66} % ὦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textomega}{"1F67} % ὧ
-\DeclareUnicodeComposite{\accpsili }{\textOmega}{"1F68} % Ὠ
-\DeclareUnicodeComposite{\accdasia }{\textOmega}{"1F69} % Ὡ
-\DeclareUnicodeComposite{\accpsilivaria }{\textOmega}{"1F6A} % Ὢ
-\DeclareUnicodeComposite{\accdasiavaria }{\textOmega}{"1F6B} % Ὣ
-\DeclareUnicodeComposite{\accpsilioxia }{\textOmega}{"1F6C} % Ὤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textOmega}{"1F6D} % Ὥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textOmega}{"1F6E} % Ὦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textOmega}{"1F6F} % Ὧ
-
-\DeclareUnicodeComposite{\`} {\textalpha} {"1F70} % ὰ
-\DeclareUnicodeComposite{\`} {\textepsilon}{"1F72} % ὲ
-\DeclareUnicodeComposite{\`} {\texteta} {"1F74} % ὴ
-\DeclareUnicodeComposite{\`} {\textiota} {"1F76} % ὶ
-\DeclareUnicodeComposite{\`} {\textomicron}{"1F78} % ὸ
-\DeclareUnicodeComposite{\`} {\textupsilon}{"1F7A} % ὺ
-\DeclareUnicodeComposite{\`} {\textomega} {"1F7C} % ὼ
-% repeat with named accents (LuaTeX does not normalize to pre-composed chars):
-\DeclareUnicodeComposite{\accvaria} {\textalpha} {"1F70} % ὰ
-\DeclareUnicodeComposite{\accvaria} {\textepsilon}{"1F72} % ὲ
-\DeclareUnicodeComposite{\accvaria} {\texteta} {"1F74} % ὴ
-\DeclareUnicodeComposite{\accvaria} {\textiota} {"1F76} % ὶ
-\DeclareUnicodeComposite{\accvaria} {\textomicron}{"1F78} % ὸ
-\DeclareUnicodeComposite{\accvaria} {\textupsilon}{"1F7A} % ὺ
-\DeclareUnicodeComposite{\accvaria} {\textomega} {"1F7C} % ὼ
-
-% Skipping pre-composed characters with mute iota (misleadingly named
-% … WITH PROSGEGRAMMENI): letter + ``\ypogegrammeni`` is normalized
-% to the pre-composed character. ::
-
-\DeclareUnicodeComposite{\u} {\textalpha} {"1FB0} % ᾰ
-\DeclareUnicodeComposite{\=} {\textalpha} {"1FB1} % ᾱ
-% ᾲ
-% ᾳ
-% ᾴ
-\DeclareUnicodeComposite{\accperispomeni} {\textalpha} {"1FB6} % ᾶ
-\DeclareUnicodeComposite{\~} {\textalpha} {"1FB6} % ᾶ
-% ᾷ
-\DeclareUnicodeComposite{\u} {\textAlpha} {"1FB8} % Ᾰ
-\DeclareUnicodeComposite{\=} {\textAlpha} {"1FB9} % Ᾱ
-\DeclareUnicodeComposite{\`} {\textAlpha} {"1FBA} % Ὰ
-\DeclareUnicodeComposite{\accvaria} {\textAlpha} {"1FBA} % Ὰ
-% ᾼ
-\DeclareUnicodeComposite{\accpsili} {} {"1FBD} % ᾽
+% 1FBD GREEK KORONIS -> psili % ᾽
\DeclareTextSymbol{\prosgegrammeni}\UnicodeEncodingName {"1FBE} % ι
\DeclareUnicodeComposite{\accpsili} {} {"1FBF} % ᾿
\DeclareUnicodeComposite{\accperispomeni} {} {"1FC0} % ῀
\DeclareUnicodeComposite{\accdialytikaperispomeni}{} {"1FC1} % ῁
-% ῂ
-% ῃ
-% ῄ
-\DeclareUnicodeComposite{\accperispomeni} {\texteta} {"1FC6} % ῆ
-\DeclareUnicodeComposite{\~} {\texteta} {"1FC6} % ῆ
-% ῇ
-\DeclareUnicodeComposite{\`} {\textEpsilon}{"1FC8} % Ὲ
-\DeclareUnicodeComposite{\accvaria} {\textEpsilon}{"1FC8} % Ὲ
-\DeclareUnicodeComposite{\`} {\textEta} {"1FCA} % Ὴ
-\DeclareUnicodeComposite{\accvaria} {\textEta} {"1FCA} % Ὴ
-% ῌ
+
\DeclareUnicodeComposite{\accpsilivaria} {} {"1FCD} % ῍
\DeclareUnicodeComposite{\accpsilioxia} {} {"1FCE} % ῎
\DeclareUnicodeComposite{\accpsiliperispomeni} {} {"1FCF} % ῏
-\DeclareUnicodeComposite{\u} {\textiota} {"1FD0} % ῐ
-\DeclareUnicodeComposite{\=} {\textiota} {"1FD1} % ῑ
-\DeclareUnicodeComposite{\accdialytikavaria} {\textiota} {"1FD2} % ῒ
-\DeclareUnicodeComposite{\accdialytikaoxia} {\textiota} {"1FD3} % ΐ
-\DeclareUnicodeComposite{\accperispomeni} {\textiota} {"1FD6} % ῖ
-\DeclareUnicodeComposite{\~} {\textiota} {"1FD6} % ῖ
-\DeclareUnicodeComposite{\~} {ι} {"1FD6} % ῖ
-\DeclareUnicodeComposite{\accdialytikaperispomeni}{\textiota} {"1FD7} % ῗ
-\DeclareUnicodeComposite{\u} {\textIota} {"1FD8} % Ῐ
-\DeclareUnicodeComposite{\=} {\textIota} {"1FD9} % Ῑ
-\DeclareUnicodeComposite{\`} {\textIota} {"1FDA} % Ὶ
-\DeclareUnicodeComposite{\accvaria} {\textIota} {"1FDA} % Ὶ
\DeclareUnicodeComposite{\accdasiavaria} {} {"1FDD} % ῝
\DeclareUnicodeComposite{\accdasiaoxia} {} {"1FDE} % ῞
\DeclareUnicodeComposite{\accdasiaperispomeni} {} {"1FDF} % ῟
-\DeclareUnicodeComposite{\u} {\textupsilon}{"1FE0} % ῠ
-\DeclareUnicodeComposite{\=} {\textupsilon}{"1FE1} % ῡ
-\DeclareUnicodeComposite{\accdialytikavaria} {\textupsilon}{"1FE2} % ῢ
-\DeclareUnicodeComposite{\accdialytikaoxia} {\textupsilon}{"1FE3} % ΰ
-\DeclareUnicodeComposite{\accpsili} {\textrho} {"1FE4} % ῤ
-\DeclareUnicodeComposite{\accdasia} {\textrho} {"1FE5} % ῥ
-\DeclareUnicodeComposite{\~} {\textupsilon}{"1FE6} % ῦ
-\DeclareUnicodeComposite{\accperispomeni} {\textupsilon}{"1FE6} % ῦ
-\DeclareUnicodeComposite{\accdialytikaperispomeni}{\textupsilon}{"1FE7} % ῧ
-\DeclareUnicodeComposite{\u} {\textUpsilon}{"1FE8} % Ῠ
-\DeclareUnicodeComposite{\=} {\textUpsilon}{"1FE9} % Ῡ
-\DeclareUnicodeComposite{\`} {\textUpsilon}{"1FEA} % Ὺ
-\DeclareUnicodeComposite{\accvaria} {\textUpsilon}{"1FEA} % Ὺ
-% Ύ
-\DeclareUnicodeComposite{\accdasia} {\textRho} {"1FEC} % Ῥ
\DeclareUnicodeComposite{\accdialytikavaria} {} {"1FED} % ῭
\DeclareUnicodeComposite{\accdialytikaoxia} {} {"1FEE} % ΅
% `
-
-% ῲ
-% ῳ
-% ῴ
-\DeclareUnicodeComposite{\accperispomeni} {\textomega} {"1FF6} % ῶ
-\DeclareUnicodeComposite{\~} {\textomega} {"1FF6} % ῶ
-% ῷ
-\DeclareUnicodeComposite{\`} {\textOmicron}{"1FF8} % Ὸ
-\DeclareUnicodeComposite{\accvaria} {\textOmicron}{"1FF8} % Ὸ
-\DeclareUnicodeComposite{\`} {\textOmega} {"1FFA} % Ὼ
-\DeclareUnicodeComposite{\accvaria} {\textOmega} {"1FFA} % Ὼ
-% ῼ
\DeclareUnicodeComposite{\accoxia} {} {"1FFD} % ´
\DeclareUnicodeComposite{\accdasia} {} {"1FFE} % ῾
+
% Perispomeni and tilde accent
% """"""""""""""""""""""""""""
%
-% XeTeX and LuaTeX (since 2022) convert letters followed by combining
+% XeTeX normalizes letters followed by combining
% characters to a pre-composed character, if there is an equivalent
-% pre-composed character.
+% pre-composed character (Unicode normalization NFC).
+% With LuaTeX NFC is provided by the \emph{Harfbuzz} renderer
+% (select with the ``[Renderer=Harfbuzz]`` option of the `fontspec`_
+% font selection commands or the `uninormalize`_ package.
%
% The ``\accperispomeni`` macro expands to COMBINING GREEK PERISPOMENI
% while the standard short accent macro ``\~`` uses the COMBINING TILDE.
% Only <Greek letter> + COMBINING GREEK PERISPOMENI is considered
% equivalent to the pre-composed <Greek letter> WITH PERISPOMENI.
-% Composite definitions for ``\~`` select the pre-composed character
-%
-% TODO: don't use literal Unicode characters if ``\inputencodingname``
-% is defined and not "lutf8" to prevent errors with legacy 8-bit documents
-% read with "luainputenc.sty" (cf. test-licr-input.tex).
-% ::
-
-\DeclareUnicodeComposite{\~}{α}{"1FB6} % ᾶ
-\DeclareUnicodeComposite{\~}{η}{"1FC6} % ῆ
-\DeclareUnicodeComposite{\~}{ι}{"1FD6} % ῖ
-\DeclareUnicodeComposite{\~}{ι}{"1FD6} % ῖ
-\DeclareUnicodeComposite{\~}{υ}{"1FE6} % ῦ
-\DeclareUnicodeComposite{\~}{ω}{"1FF6} % ῶ
-
-% If there is no pre-composed Capital letter with perispomeni,
-% we want no perispomeni with ``\MakeUppercase``.
-% (These definitions may be redundant with the new (2022/06)
-% implementation of ``\MakeUppercase``.) ::
-
-\DeclareUnicodeComposite{\~}{\textAlpha} {"0391} % Α
-\DeclareUnicodeComposite{\~}{Α} {"0391} % Α
-\DeclareUnicodeComposite{\~}{\textEta} {"0397} % Η
-\DeclareUnicodeComposite{\~}{Η} {"0397} % Η
-\DeclareUnicodeComposite{\~}{\textIota} {"0399} % Ι
-\DeclareUnicodeComposite{\~}{Ι} {"0399} % Ι
-\DeclareUnicodeComposite{\~}{\textUpsilon}{"03A5} % Υ
-\DeclareUnicodeComposite{\~}{Υ} {"03A5} % Υ
-\DeclareUnicodeComposite{\~}{\textOmega} {"03A9} % Ω
-\DeclareUnicodeComposite{\~}{Ω} {"03A9} % Ω
+% Therefore, we define composite definitions for ``\~``::
+
+\DeclareUnicodeComposite{\~}{\textalpha }{"1FB6} % ᾶ
+\DeclareUnicodeComposite{\~}{\texteta }{"1FC6} % ῆ
+\DeclareUnicodeComposite{\~}{\textiota }{"1FD6} % ῖ
+\DeclareUnicodeComposite{\~}{\textupsilon}{"1FE6} % ῦ
+\DeclareUnicodeComposite{\~}{\textomega }{"1FF6} % ῶ
+
+% There are no pre-composed capital letters with perispomeni
+% (the perispomeni is not used on initial letters and normally
+% dropped in UPPERCASE_).
+% However, it is kept with the pre-2022 ``\MakeUppercase`` and in documents
+% that don't load `babel-greek`_ (or an old babel-greek or use the
+% modifier ``local-MakeUppercase-fixes``)::
+
+\DeclareUnicodeCompositeCommand{\~}{\textAlpha }{\accperispomeni\textAlpha}
+\DeclareUnicodeCompositeCommand{\~}{\textEta }{\accperispomeni\textEta}
+\DeclareUnicodeCompositeCommand{\~}{\textIota }{\accperispomeni\textIota}
+\DeclareUnicodeCompositeCommand{\~}{\textUpsilon}{\accperispomeni\textUpsilon}
+\DeclareUnicodeCompositeCommand{\~}{\textOmega }{\accperispomeni\textOmega}
+
+% Using literal Unicode chars leads to errors in LuaTeX's 8-bit compatibility
+% mode. OTOH, composite definitions do a literal check, so we cannot use
+% a replacement::
+
+\@ifl@aded{sty}{luainputenc}{}{% else
+ \DeclareUnicodeComposite{\~}{α}{"1FB6} % ᾶ
+ \DeclareUnicodeComposite{\~}{η}{"1FC6} % ῆ
+ \DeclareUnicodeComposite{\~}{ι}{"1FD6} % ῖ
+ \DeclareUnicodeComposite{\~}{υ}{"1FE6} % ῦ
+ \DeclareUnicodeComposite{\~}{ω}{"1FF6} % ῶ
+
+ \DeclareUnicodeCompositeCommand{\~}{Α}{\accperispomeni Α}
+ \DeclareUnicodeCompositeCommand{\~}{Η}{\accperispomeni Η}
+ \DeclareUnicodeCompositeCommand{\~}{Ι}{\accperispomeni Ι}
+ \DeclareUnicodeCompositeCommand{\~}{Υ}{\accperispomeni Υ}
+ \DeclareUnicodeCompositeCommand{\~}{Ω}{\accperispomeni Ω}
+}
% Letterlike Symbols
@@ -582,44 +367,60 @@
%
% Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.
%
-% Babel-Greek indroduces macros for "capital accents" in 1.13.3.
+% Babel-Greek introduces macros for "capital accents" in release 1.13.3.
% Here, we add definitions to drop diacritics in uppercase::
-\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} % new in 2020
-\IfFormatAtLeastTF{2022/06/01}{
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textAlpha }{\LGR@A@hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEpsilon}{\LGR@E@hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEta }{Η}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textIota }{Ι}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmicron}{Ο}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textUpsilon}{Υ}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmega }{Ω}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Α}{\LGR@A@hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ε}{\LGR@E@hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Η}{Η}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ι}{Ι}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ο}{Ο}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Υ}{Υ}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ω}{Ω}
-
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textAlpha }{Α}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEpsilon}{Ε}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEta }{Η}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textIota }{Ι}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmicron}{Ο}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textUpsilon}{Υ}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmega }{Ω}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Α}{Α}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ε}{Ε}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Η}{Η}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ι}{Ι}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ο}{Ο}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Υ}{Υ}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω}
-
- \DeclareTextCompositeCommand{\LGR@hiatus}{TU}{Α}{\LGR@A@hiatus}
- \DeclareTextCompositeCommand{\LGR@hiatus}{TU}{Ε}{\LGR@E@hiatus}
+\DeclareUnicodeCompositeCommand{\accACUTE}{\textAlpha }{\LGR@A@hiatus}
+\DeclareUnicodeCompositeCommand{\accACUTE}{\textEpsilon}{\LGR@E@hiatus}
+\DeclareUnicodeComposite{\accACUTE}{\textEta }{"0397} % Η
+\DeclareUnicodeComposite{\accACUTE}{\textIota }{"0399} % Ι
+\DeclareUnicodeComposite{\accACUTE}{\textOmicron}{"039F} % Ο
+\DeclareUnicodeComposite{\accACUTE}{\textUpsilon}{"03A5} % Υ
+\DeclareUnicodeComposite{\accACUTE}{\textOmega }{"03A9} % Ω
+
+\DeclareUnicodeComposite{\accGRAVE}{\textAlpha }{"0391} % Α
+\DeclareUnicodeComposite{\accGRAVE}{\textEpsilon}{"0395} % Ε
+\DeclareUnicodeComposite{\accGRAVE}{\textEta }{"0397} % Η
+\DeclareUnicodeComposite{\accGRAVE}{\textIota }{"0399} % Ι
+\DeclareUnicodeComposite{\accGRAVE}{\textOmicron}{"039F} % Ο
+\DeclareUnicodeComposite{\accGRAVE}{\textUpsilon}{"03A5} % Υ
+\DeclareUnicodeComposite{\accGRAVE}{\textOmega }{"03A9} % Ω
+
+\DeclareUnicodeComposite{\accTILDE}{\textAlpha }{"0391} % Α
+\DeclareUnicodeComposite{\accTILDE}{\textEta }{"0397} % Η
+\DeclareUnicodeComposite{\accTILDE}{\textIota }{"0399} % Ι
+\DeclareUnicodeComposite{\accTILDE}{\textUpsilon}{"03A5} % Υ
+\DeclareUnicodeComposite{\accTILDE}{\textOmega }{"03A9} % Ω
+
+% Repeat with literal Unicode as base character
+% (fails in LuaTeX's 8-bit compatibility mode)::
+
+\@ifl@aded{sty}{luainputenc}{}{% else
+ \DeclareUnicodeCompositeCommand{\accACUTE}{Α}{\LGR@A@hiatus}
+ \DeclareUnicodeCompositeCommand{\accACUTE}{Ε}{\LGR@E@hiatus}
+ \DeclareUnicodeComposite{\accACUTE}{Η}{"0397} % Η
+ \DeclareUnicodeComposite{\accACUTE}{Ι}{"0399} % Ι
+ \DeclareUnicodeComposite{\accACUTE}{Ο}{"039F} % Ο
+ \DeclareUnicodeComposite{\accACUTE}{Υ}{"03A5} % Υ
+ \DeclareUnicodeComposite{\accACUTE}{Ω}{"03A9} % Ω
+
+ \DeclareUnicodeComposite{\accGRAVE}{Α}{"0391} % Α
+ \DeclareUnicodeComposite{\accGRAVE}{Ε}{"0395} % Ε
+ \DeclareUnicodeComposite{\accGRAVE}{Η}{"0397} % Η
+ \DeclareUnicodeComposite{\accGRAVE}{Ι}{"0399} % Ι
+ \DeclareUnicodeComposite{\accGRAVE}{Ο}{"039F} % Ο
+ \DeclareUnicodeComposite{\accGRAVE}{Υ}{"03A5} % Υ
+ \DeclareUnicodeComposite{\accGRAVE}{Ω}{"03A9} % Ω
+
+ \DeclareUnicodeComposite{\accTILDE}{Α}{"0391} % Α
+ \DeclareUnicodeComposite{\accTILDE}{Η}{"0397} % Η
+ \DeclareUnicodeComposite{\accTILDE}{Ι}{"0399} % Ι
+ \DeclareUnicodeComposite{\accTILDE}{Υ}{"03A5} % Υ
+ \DeclareUnicodeComposite{\accTILDE}{Ω}{"03A9} % Ω
+
+ \DeclareUnicodeCompositeCommand{\LGR@hiatus}{Α}{\LGR@A@hiatus}
+ \DeclareUnicodeCompositeCommand{\LGR@hiatus}{Ε}{\LGR@E@hiatus}
+}
% The new (2022) implementation of ``\MakeUppercase`` drops accents from
% literal Unicode input (if the text language is set to Greek with Babel).
@@ -628,6 +429,8 @@
% ``\lccode`` and ``\uccode`` corrections from the xgreek_ package by
% Apostolos Syropoulos::
+\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} % new in 2020
+\IfFormatAtLeastTF{2022/06/01}{
}{% else
\global\lccode"0370="0371 \global\uccode"0370="0370
\global\lccode"0371="0371 \global\uccode"0371="0370
@@ -1013,6 +816,10 @@
% 2.2.1 2023-03-08 Documentation update.
% 2.4 2023-08-15 Fix behaviour of composite diacritics.
% .. Composite commands for "captital" macros.
+% 2.5 2023-09-12 Drop composite definitions duplicating the Unicode
+% NFC transformation.
+% .. Skip definitions requiring literal UTF8 chars in
+% LuaTeX's 8-bit compatibility mode.
% ====== =========== ========================================================
%
%
@@ -1027,6 +834,7 @@
% .. _grnumalt: https://ctan.org/pkg/grnumalt
% .. _inputenc: https://ctan.org/pkg/inputenc
% .. _textalpha: textalpha.sty.html
+% .. _uninormalize: https://ctan.org/pkg/uninormalize
% .. _xgreek: https://ctan.org/pkg/xgreek
% .. _xunicode: https://ctan.org/pkg/xunicode
%
diff --git a/language/greek/greek-fontenc/tuenc-greek.def.html b/language/greek/greek-fontenc/tuenc-greek.def.html
index 7a5fab007c..daa868df0b 100644
--- a/language/greek/greek-fontenc/tuenc-greek.def.html
+++ b/language/greek/greek-fontenc/tuenc-greek.def.html
@@ -794,7 +794,7 @@ mstyle.mathscr, mi.mathscr {
<p class="subtitle" id="greek-licr-definitions-for-xetex-and-luatex">Greek LICR definitions for XeTeX and LuaTeX</p>
<dl class="docinfo">
<dt class="version">Version<span class="colon">:</span></dt>
-<dd class="version">2.4 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
+<dd class="version">2.5 (<a class="reference internal" href="#changelog">changelog</a>)</dd>
<dt class="copyright">Copyright<span class="colon">:</span></dt>
<dd class="copyright">© 2013 – 2023 Günter Milde</dd>
<dt class="licence">Licence<span class="colon">:</span></dt>
@@ -827,21 +827,22 @@ Used by <a class="reference external" href="https://ctan.org/pkg/babel-greek">ba
<li><p><a class="reference internal" href="#greek-and-coptic" id="toc-entry-11">Greek and Coptic</a></p></li>
<li><p><a class="reference internal" href="#greek-extended" id="toc-entry-12">Greek Extended</a></p>
<ul>
-<li><p><a class="reference internal" href="#perispomeni-and-tilde-accent" id="toc-entry-13">Perispomeni and tilde accent</a></p></li>
+<li><p><a class="reference internal" href="#spacing-diacritics" id="toc-entry-13">spacing diacritics</a></p></li>
+<li><p><a class="reference internal" href="#perispomeni-and-tilde-accent" id="toc-entry-14">Perispomeni and tilde accent</a></p></li>
</ul>
</li>
-<li><p><a class="reference internal" href="#letterlike-symbols" id="toc-entry-14">Letterlike Symbols</a></p></li>
-<li><p><a class="reference internal" href="#ancient-greek-numbers" id="toc-entry-15">Ancient Greek Numbers</a></p></li>
+<li><p><a class="reference internal" href="#letterlike-symbols" id="toc-entry-15">Letterlike Symbols</a></p></li>
+<li><p><a class="reference internal" href="#ancient-greek-numbers" id="toc-entry-16">Ancient Greek Numbers</a></p></li>
</ul>
</li>
-<li><p><a class="reference internal" href="#uppercase" id="toc-entry-16">UPPERCASE</a></p>
+<li><p><a class="reference internal" href="#uppercase" id="toc-entry-17">UPPERCASE</a></p>
<ul>
-<li><p><a class="reference internal" href="#uclclist" id="toc-entry-17">uclclist</a></p></li>
+<li><p><a class="reference internal" href="#uclclist" id="toc-entry-18">uclclist</a></p></li>
</ul>
</li>
</ul>
</li>
-<li><p><a class="reference internal" href="#changelog" id="toc-entry-18">Changelog</a></p></li>
+<li><p><a class="reference internal" href="#changelog" id="toc-entry-19">Changelog</a></p></li>
</ul>
</nav>
<section id="motivation">
@@ -865,7 +866,11 @@ usage examples.</p>
<section id="identification">
<h3><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Identification</a></h3>
<pre class="literal-block">\ProvidesFile{tuenc-greek.def}
- [2023-08-15 2.4 Greek LICRs for XeTeX and LuaTeX]</pre>
+ [2023-09-12 2.5 Greek LICRs for XeTeX and LuaTeX]</pre>
+<p>Auxiliary command (modeled after definitions in <span class="docutils literal">tuenc.def</span>):</p>
+<pre class="literal-block">\providecommand*{\DeclareUnicodeCompositeCommand}[2]{%
+ \DeclareTextCompositeCommand{#1}{\UnicodeEncodingName}{#2}
+}</pre>
</section>
<section id="greek-diacritics">
<h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Greek Diacritics</a></h3>
@@ -950,115 +955,72 @@ character, discarded in favour of COMBINING COMMA ABOVE.</p>
% 037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
\DeclareTextSymbol{\texterotimatiko}\UnicodeEncodingName{&quot;003B} % use SEMICOLON, not 037E GREEK QUESTION MARK
-\DeclareUnicodeComposite{\acctonos} {} {&quot;0384} % ΄ GREEK TONOS
-\DeclareUnicodeComposite{\accdialytikatonos}{} {&quot;0385} % ΅ GREEK DIALYTIKA TONOS
-\DeclareUnicodeComposite{\'} {\textAlpha} {&quot;0386} % Ά
-\DeclareTextSymbol{\textanoteleia} \UnicodeEncodingName{&quot;00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA
-\DeclareUnicodeComposite{\'} {\textEpsilon}{&quot;0388} % Έ
-\DeclareUnicodeComposite{\'} {\textEta} {&quot;0389} % Ή
-\DeclareUnicodeComposite{\'} {\textIota} {&quot;038A} % Ί
-\DeclareUnicodeComposite{\'} {\textOmicron}{&quot;038C} % Ό
-\DeclareUnicodeComposite{\'} {\textUpsilon}{&quot;038E} % Ύ
-\DeclareUnicodeComposite{\'} {\textOmega} {&quot;038F} % Ώ
-% repeat with named accents (LuaTeX does not normalize to pre-composed chars):
-\DeclareUnicodeComposite{\acctonos} {\textAlpha} {&quot;0386} % Ά
-\DeclareUnicodeComposite{\acctonos} {\textEpsilon}{&quot;0388} % Έ
-\DeclareUnicodeComposite{\acctonos} {\textEta} {&quot;0389} % Ή
-\DeclareUnicodeComposite{\acctonos} {\textIota} {&quot;038A} % Ί
-\DeclareUnicodeComposite{\acctonos} {\textOmicron}{&quot;038C} % Ό
-\DeclareUnicodeComposite{\acctonos} {\textUpsilon}{&quot;038E} % Ύ
-\DeclareUnicodeComposite{\acctonos} {\textOmega} {&quot;038F} % Ώ
-\DeclareUnicodeComposite{\accdialytikatonos}{\textiota} {&quot;0390} % ΐ
-
-\DeclareTextSymbol{\textAlpha }\UnicodeEncodingName{&quot;0391} % Α
-\DeclareTextSymbol{\textBeta }\UnicodeEncodingName{&quot;0392} % Β
-\DeclareTextSymbol{\textGamma }\UnicodeEncodingName{&quot;0393} % Γ
-\DeclareTextSymbol{\textDelta }\UnicodeEncodingName{&quot;0394} % Δ
-\DeclareTextSymbol{\textEpsilon}\UnicodeEncodingName{&quot;0395} % Ε
-\DeclareTextSymbol{\textZeta }\UnicodeEncodingName{&quot;0396} % Ζ
-\DeclareTextSymbol{\textEta }\UnicodeEncodingName{&quot;0397} % Η
-\DeclareTextSymbol{\textTheta }\UnicodeEncodingName{&quot;0398} % Θ
-\DeclareTextSymbol{\textIota }\UnicodeEncodingName{&quot;0399} % Ι
-\DeclareTextSymbol{\textKappa }\UnicodeEncodingName{&quot;039A} % Κ
-\DeclareTextSymbol{\textLambda }\UnicodeEncodingName{&quot;039B} % Λ
-\DeclareTextSymbol{\textMu }\UnicodeEncodingName{&quot;039C} % Μ
-\DeclareTextSymbol{\textNu }\UnicodeEncodingName{&quot;039D} % Ν
-\DeclareTextSymbol{\textXi }\UnicodeEncodingName{&quot;039E} % Ξ
-\DeclareTextSymbol{\textOmicron}\UnicodeEncodingName{&quot;039F} % Ο
-\DeclareTextSymbol{\textPi }\UnicodeEncodingName{&quot;03A0} % Π
-\DeclareTextSymbol{\textRho }\UnicodeEncodingName{&quot;03A1} % Ρ
-\DeclareTextSymbol{\textSigma }\UnicodeEncodingName{&quot;03A3} % Σ
-\DeclareTextSymbol{\textTau }\UnicodeEncodingName{&quot;03A4} % Τ
-\DeclareTextSymbol{\textUpsilon}\UnicodeEncodingName{&quot;03A5} % Υ
-\DeclareTextSymbol{\textPhi }\UnicodeEncodingName{&quot;03A6} % Φ
-\DeclareTextSymbol{\textChi }\UnicodeEncodingName{&quot;03A7} % Χ
-\DeclareTextSymbol{\textPsi }\UnicodeEncodingName{&quot;03A8} % Ψ
-\DeclareTextSymbol{\textOmega }\UnicodeEncodingName{&quot;03A9} % Ω
-
-\DeclareUnicodeComposite{\&quot;} {\textIota} {&quot;03AA} % Ϊ
-\DeclareUnicodeComposite{\&quot;} {\textIota} {&quot;03AA} % Ϊ
-\DeclareUnicodeComposite{\&quot;} {\textUpsilon}{&quot;03AB} % Ϋ
-\DeclareUnicodeComposite{\'} {\textalpha} {&quot;03AC} % ά
-\DeclareUnicodeComposite{\'} {\textepsilon}{&quot;03AD} % έ
-\DeclareUnicodeComposite{\'} {\texteta} {&quot;03AE} % ή
-\DeclareUnicodeComposite{\'} {\textiota} {&quot;03AF} % ί
-% repeat with named accents (LuaTeX does not normalize to pre-composed chars):
-\DeclareUnicodeComposite{\accdialytika} {\textIota} {&quot;03AA} % Ϊ
-\DeclareUnicodeComposite{\accdialytika} {\textIota} {&quot;03AA} % Ϊ
-\DeclareUnicodeComposite{\accdialytika} {\textUpsilon}{&quot;03AB} % Ϋ
-\DeclareUnicodeComposite{\acctonos} {\textalpha} {&quot;03AC} % ά
-\DeclareUnicodeComposite{\acctonos} {\textepsilon}{&quot;03AD} % έ
-\DeclareUnicodeComposite{\acctonos} {\texteta} {&quot;03AE} % ή
-\DeclareUnicodeComposite{\acctonos} {\textiota} {&quot;03AF} % ί
-\DeclareUnicodeComposite{\accdialytikatonos}{\textupsilon}{&quot;03B0} % ΰ
-
-\DeclareTextSymbol{\textalpha }\UnicodeEncodingName{&quot;03B1} % α
-\DeclareTextSymbol{\textbeta }\UnicodeEncodingName{&quot;03B2} % β
-\DeclareTextSymbol{\textgamma }\UnicodeEncodingName{&quot;03B3} % γ
-\DeclareTextSymbol{\textdelta }\UnicodeEncodingName{&quot;03B4} % δ
-\DeclareTextSymbol{\textepsilon }\UnicodeEncodingName{&quot;03B5} % ε
-\DeclareTextSymbol{\textzeta }\UnicodeEncodingName{&quot;03B6} % ζ
-\DeclareTextSymbol{\texteta }\UnicodeEncodingName{&quot;03B7} % η
-\DeclareTextSymbol{\texttheta }\UnicodeEncodingName{&quot;03B8} % θ
-\DeclareTextSymbol{\textiota }\UnicodeEncodingName{&quot;03B9} % ι
-\DeclareTextSymbol{\textkappa }\UnicodeEncodingName{&quot;03BA} % κ
-\DeclareTextSymbol{\textlambda }\UnicodeEncodingName{&quot;03BB} % λ
-\DeclareTextSymbol{\textmu }\UnicodeEncodingName{&quot;03BC} % μ % \textmugreek
-\DeclareTextSymbol{\textnu }\UnicodeEncodingName{&quot;03BD} % ν
-\DeclareTextSymbol{\textxi }\UnicodeEncodingName{&quot;03BE} % ξ
-\DeclareTextSymbol{\textomicron }\UnicodeEncodingName{&quot;03BF} % ο
-\DeclareTextSymbol{\textpi }\UnicodeEncodingName{&quot;03C0} % π
-\DeclareTextSymbol{\textrho }\UnicodeEncodingName{&quot;03C1} % ρ
-\DeclareTextSymbol{\textfinalsigma}\UnicodeEncodingName{&quot;03C2} % ς % final sigma
-\DeclareTextSymbol{\textsigma }\UnicodeEncodingName{&quot;03C3} % σ
-\DeclareTextSymbol{\texttau }\UnicodeEncodingName{&quot;03C4} % τ
-\DeclareTextSymbol{\textupsilon }\UnicodeEncodingName{&quot;03C5} % υ
-\DeclareTextSymbol{\textphi }\UnicodeEncodingName{&quot;03C6} % φ
-\DeclareTextSymbol{\textchi }\UnicodeEncodingName{&quot;03C7} % χ
-\DeclareTextSymbol{\textpsi }\UnicodeEncodingName{&quot;03C8} % ψ
-\DeclareTextSymbol{\textomega }\UnicodeEncodingName{&quot;03C9} % ω
-
-\DeclareUnicodeComposite{\&quot;}{\textiota}{&quot;03CA} % ϊ
-\DeclareUnicodeComposite{\&quot;}{\textupsilon}{&quot;03CB} % ϋ
-\DeclareUnicodeComposite{\'}{\textomicron}{&quot;03CC} % ό
-\DeclareUnicodeComposite{\'}{\textupsilon}{&quot;03CD} % ύ
-\DeclareUnicodeComposite{\'}{\textomega}{&quot;03CE} % ώ
-\DeclareUnicodeComposite{\accdialytika}{\textiota}{&quot;03CA} % ϊ
-\DeclareUnicodeComposite{\accdialytika}{\textupsilon}{&quot;03CB} % ϋ
-\DeclareUnicodeComposite{\acctonos}{\textomicron}{&quot;03CC} % ό
-\DeclareUnicodeComposite{\acctonos}{\textupsilon}{&quot;03CD} % ύ
-\DeclareUnicodeComposite{\acctonos}{\textomega}{&quot;03CE} % ώ</pre>
+\DeclareUnicodeComposite{\acctonos} {} {&quot;0384} % ΄ GREEK TONOS
+\DeclareUnicodeComposite{\accdialytikatonos}{} {&quot;0385} % ΅ GREEK DIALYTIKA TONOS
+
+\DeclareTextSymbol{\textanoteleia }\UnicodeEncodingName{&quot;00B7} % use MIDDLE DOT, not 0387 GREEK ANO TELEIA
+
+\DeclareTextSymbol{\textAlpha }\UnicodeEncodingName{&quot;0391} % Α
+\DeclareTextSymbol{\textBeta }\UnicodeEncodingName{&quot;0392} % Β
+\DeclareTextSymbol{\textGamma }\UnicodeEncodingName{&quot;0393} % Γ
+\DeclareTextSymbol{\textDelta }\UnicodeEncodingName{&quot;0394} % Δ
+\DeclareTextSymbol{\textEpsilon }\UnicodeEncodingName{&quot;0395} % Ε
+\DeclareTextSymbol{\textZeta }\UnicodeEncodingName{&quot;0396} % Ζ
+\DeclareTextSymbol{\textEta }\UnicodeEncodingName{&quot;0397} % Η
+\DeclareTextSymbol{\textTheta }\UnicodeEncodingName{&quot;0398} % Θ
+\DeclareTextSymbol{\textIota }\UnicodeEncodingName{&quot;0399} % Ι
+\DeclareTextSymbol{\textKappa }\UnicodeEncodingName{&quot;039A} % Κ
+\DeclareTextSymbol{\textLambda }\UnicodeEncodingName{&quot;039B} % Λ
+\DeclareTextSymbol{\textMu }\UnicodeEncodingName{&quot;039C} % Μ
+\DeclareTextSymbol{\textNu }\UnicodeEncodingName{&quot;039D} % Ν
+\DeclareTextSymbol{\textXi }\UnicodeEncodingName{&quot;039E} % Ξ
+\DeclareTextSymbol{\textOmicron }\UnicodeEncodingName{&quot;039F} % Ο
+\DeclareTextSymbol{\textPi }\UnicodeEncodingName{&quot;03A0} % Π
+\DeclareTextSymbol{\textRho }\UnicodeEncodingName{&quot;03A1} % Ρ
+\DeclareTextSymbol{\textSigma }\UnicodeEncodingName{&quot;03A3} % Σ
+\DeclareTextSymbol{\textTau }\UnicodeEncodingName{&quot;03A4} % Τ
+\DeclareTextSymbol{\textUpsilon }\UnicodeEncodingName{&quot;03A5} % Υ
+\DeclareTextSymbol{\textPhi }\UnicodeEncodingName{&quot;03A6} % Φ
+\DeclareTextSymbol{\textChi }\UnicodeEncodingName{&quot;03A7} % Χ
+\DeclareTextSymbol{\textPsi }\UnicodeEncodingName{&quot;03A8} % Ψ
+\DeclareTextSymbol{\textOmega }\UnicodeEncodingName{&quot;03A9} % Ω
+
+\DeclareTextSymbol{\textalpha }\UnicodeEncodingName{&quot;03B1} % α
+\DeclareTextSymbol{\textbeta }\UnicodeEncodingName{&quot;03B2} % β
+\DeclareTextSymbol{\textgamma }\UnicodeEncodingName{&quot;03B3} % γ
+\DeclareTextSymbol{\textdelta }\UnicodeEncodingName{&quot;03B4} % δ
+\DeclareTextSymbol{\textepsilon }\UnicodeEncodingName{&quot;03B5} % ε
+\DeclareTextSymbol{\textzeta }\UnicodeEncodingName{&quot;03B6} % ζ
+\DeclareTextSymbol{\texteta }\UnicodeEncodingName{&quot;03B7} % η
+\DeclareTextSymbol{\texttheta }\UnicodeEncodingName{&quot;03B8} % θ
+\DeclareTextSymbol{\textiota }\UnicodeEncodingName{&quot;03B9} % ι
+\DeclareTextSymbol{\textkappa }\UnicodeEncodingName{&quot;03BA} % κ
+\DeclareTextSymbol{\textlambda }\UnicodeEncodingName{&quot;03BB} % λ
+\DeclareTextSymbol{\textmu }\UnicodeEncodingName{&quot;03BC} % μ % \textmugreek
+\DeclareTextSymbol{\textnu }\UnicodeEncodingName{&quot;03BD} % ν
+\DeclareTextSymbol{\textxi }\UnicodeEncodingName{&quot;03BE} % ξ
+\DeclareTextSymbol{\textomicron }\UnicodeEncodingName{&quot;03BF} % ο
+\DeclareTextSymbol{\textpi }\UnicodeEncodingName{&quot;03C0} % π
+\DeclareTextSymbol{\textrho }\UnicodeEncodingName{&quot;03C1} % ρ
+\DeclareTextSymbol{\textfinalsigma }\UnicodeEncodingName{&quot;03C2} % ς % final sigma
+\DeclareTextSymbol{\textsigma }\UnicodeEncodingName{&quot;03C3} % σ
+\DeclareTextSymbol{\texttau }\UnicodeEncodingName{&quot;03C4} % τ
+\DeclareTextSymbol{\textupsilon }\UnicodeEncodingName{&quot;03C5} % υ
+\DeclareTextSymbol{\textphi }\UnicodeEncodingName{&quot;03C6} % φ
+\DeclareTextSymbol{\textchi }\UnicodeEncodingName{&quot;03C7} % χ
+\DeclareTextSymbol{\textpsi }\UnicodeEncodingName{&quot;03C8} % ψ
+\DeclareTextSymbol{\textomega }\UnicodeEncodingName{&quot;03C9} % ω</pre>
<p>Archaic letters (still used in Greek numerals):</p>
-<pre class="literal-block">\DeclareTextSymbol{\textQoppa }\UnicodeEncodingName{&quot;03D8} % Ϙ
-\DeclareTextSymbol{\textqoppa }\UnicodeEncodingName{&quot;03D9} % ϙ
-\DeclareTextSymbol{\textStigma }\UnicodeEncodingName{&quot;03DA} % Ϛ
-\DeclareTextSymbol{\textstigma }\UnicodeEncodingName{&quot;03DB} % ϛ
-\DeclareTextSymbol{\textDigamma }\UnicodeEncodingName{&quot;03DC} % Ϝ
-\DeclareTextSymbol{\textdigamma }\UnicodeEncodingName{&quot;03DD} % ϝ
-\DeclareTextSymbol{\textKoppa }\UnicodeEncodingName{&quot;03DE} % Ϟ in LGR identic to \textkoppa
-\DeclareTextSymbol{\textkoppa }\UnicodeEncodingName{&quot;03DF} % ϟ \koppa, \textqoppa [sic!]
-\DeclareTextSymbol{\textSampi }\UnicodeEncodingName{&quot;03E0} % Ϡ
-\DeclareTextSymbol{\textsampi }\UnicodeEncodingName{&quot;03E1} % ϡ</pre>
+<pre class="literal-block">\DeclareTextSymbol{\textQoppa }\UnicodeEncodingName{&quot;03D8} % Ϙ
+\DeclareTextSymbol{\textqoppa }\UnicodeEncodingName{&quot;03D9} % ϙ
+\DeclareTextSymbol{\textStigma }\UnicodeEncodingName{&quot;03DA} % Ϛ
+\DeclareTextSymbol{\textstigma }\UnicodeEncodingName{&quot;03DB} % ϛ
+\DeclareTextSymbol{\textDigamma }\UnicodeEncodingName{&quot;03DC} % Ϝ
+\DeclareTextSymbol{\textdigamma }\UnicodeEncodingName{&quot;03DD} % ϝ
+\DeclareTextSymbol{\textKoppa }\UnicodeEncodingName{&quot;03DE} % Ϟ in LGR identic to \textkoppa
+\DeclareTextSymbol{\textkoppa }\UnicodeEncodingName{&quot;03DF} % ϟ \koppa, \textqoppa [sic!]
+\DeclareTextSymbol{\textSampi }\UnicodeEncodingName{&quot;03E0} % Ϡ
+\DeclareTextSymbol{\textsampi }\UnicodeEncodingName{&quot;03E1} % ϡ</pre>
<p>Symbol variants:</p>
<pre class="literal-block">\DeclareTextSymbol{\textbetasymbol }\UnicodeEncodingName{&quot;03D0} % ϐ
\DeclareTextSymbol{\textkappasymbol }\UnicodeEncodingName{&quot;03F0} % ϰ
@@ -1077,257 +1039,82 @@ TODO: Fix implementation of autosigma for TU:</p>
</section>
<section id="greek-extended">
<h4><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">Greek Extended</a></h4>
-<p>We skip definitions for characters “… WITH OXIA”, because they would
-overwrite the definitions for “… WITH TONOS” in the <cite>Greek and Coptic</cite>
-block.</p>
-<pre class="literal-block">\DeclareUnicodeComposite{\accpsili }{\textalpha}{&quot;1F00} % ἀ
-\DeclareUnicodeComposite{\accdasia }{\textalpha}{&quot;1F01} % ἁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textalpha}{&quot;1F02} % ἂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textalpha}{&quot;1F03} % ἃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textalpha}{&quot;1F04} % ἄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textalpha}{&quot;1F05} % ἅ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textalpha}{&quot;1F06} % ἆ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textalpha}{&quot;1F07} % ἇ
-\DeclareUnicodeComposite{\accpsili }{\textAlpha}{&quot;1F08} % Ἀ
-\DeclareUnicodeComposite{\accdasia }{\textAlpha}{&quot;1F09} % Ἁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textAlpha}{&quot;1F0A} % Ἂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textAlpha}{&quot;1F0B} % Ἃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textAlpha}{&quot;1F0C} % Ἄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textAlpha}{&quot;1F0D} % Ἅ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textAlpha}{&quot;1F0E} % Ἆ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textAlpha}{&quot;1F0F} % Ἇ
-
-\DeclareUnicodeComposite{\accpsili }{\textepsilon}{&quot;1F10} % ἐ
-\DeclareUnicodeComposite{\accdasia }{\textepsilon}{&quot;1F11} % ἑ
-\DeclareUnicodeComposite{\accpsilivaria }{\textepsilon}{&quot;1F12} % ἒ
-\DeclareUnicodeComposite{\accdasiavaria }{\textepsilon}{&quot;1F13} % ἓ
-\DeclareUnicodeComposite{\accpsilioxia }{\textepsilon}{&quot;1F14} % ἔ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textepsilon}{&quot;1F15} % ἕ
-\DeclareUnicodeComposite{\accpsili }{\textEpsilon}{&quot;1F18} % Ἐ
-\DeclareUnicodeComposite{\accdasia }{\textEpsilon}{&quot;1F19} % Ἑ
-\DeclareUnicodeComposite{\accpsilivaria }{\textEpsilon}{&quot;1F1A} % Ἒ
-\DeclareUnicodeComposite{\accdasiavaria }{\textEpsilon}{&quot;1F1B} % Ἓ
-\DeclareUnicodeComposite{\accpsilioxia }{\textEpsilon}{&quot;1F1C} % Ἔ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textEpsilon}{&quot;1F1D} % Ἕ
-
-\DeclareUnicodeComposite{\accpsili }{\texteta}{&quot;1F20} % ἠ
-\DeclareUnicodeComposite{\accdasia }{\texteta}{&quot;1F21} % ἡ
-\DeclareUnicodeComposite{\accpsilivaria }{\texteta}{&quot;1F22} % ἢ
-\DeclareUnicodeComposite{\accdasiavaria }{\texteta}{&quot;1F23} % ἣ
-\DeclareUnicodeComposite{\accpsilioxia }{\texteta}{&quot;1F24} % ἤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\texteta}{&quot;1F25} % ἥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\texteta}{&quot;1F26} % ἦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\texteta}{&quot;1F27} % ἧ
-\DeclareUnicodeComposite{\accpsili }{\textEta}{&quot;1F28} % Ἠ
-\DeclareUnicodeComposite{\accdasia }{\textEta}{&quot;1F29} % Ἡ
-\DeclareUnicodeComposite{\accpsilivaria }{\textEta}{&quot;1F2A} % Ἢ
-\DeclareUnicodeComposite{\accdasiavaria }{\textEta}{&quot;1F2B} % Ἣ
-\DeclareUnicodeComposite{\accpsilioxia }{\textEta}{&quot;1F2C} % Ἤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textEta}{&quot;1F2D} % Ἥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textEta}{&quot;1F2E} % Ἦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textEta}{&quot;1F2F} % Ἧ
-
-\DeclareUnicodeComposite{\accpsili }{\textiota}{&quot;1F30} % ἰ
-\DeclareUnicodeComposite{\accdasia }{\textiota}{&quot;1F31} % ἱ
-\DeclareUnicodeComposite{\accpsilivaria }{\textiota}{&quot;1F32} % ἲ
-\DeclareUnicodeComposite{\accdasiavaria }{\textiota}{&quot;1F33} % ἳ
-\DeclareUnicodeComposite{\accpsilioxia }{\textiota}{&quot;1F34} % ἴ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textiota}{&quot;1F35} % ἵ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textiota}{&quot;1F36} % ἶ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textiota}{&quot;1F37} % ἷ
-\DeclareUnicodeComposite{\accpsili }{\textIota}{&quot;1F38} % Ἰ
-\DeclareUnicodeComposite{\accdasia }{\textIota}{&quot;1F39} % Ἱ
-\DeclareUnicodeComposite{\accpsilivaria }{\textIota}{&quot;1F3A} % Ἲ
-\DeclareUnicodeComposite{\accdasiavaria }{\textIota}{&quot;1F3B} % Ἳ
-\DeclareUnicodeComposite{\accpsilioxia }{\textIota}{&quot;1F3C} % Ἴ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textIota}{&quot;1F3D} % Ἵ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textIota}{&quot;1F3E} % Ἶ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textIota}{&quot;1F3F} % Ἷ
-
-\DeclareUnicodeComposite{\accpsili }{\textomicron}{&quot;1F40} % ὀ
-\DeclareUnicodeComposite{\accdasia }{\textomicron}{&quot;1F41} % ὁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textomicron}{&quot;1F42} % ὂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textomicron}{&quot;1F43} % ὃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textomicron}{&quot;1F44} % ὄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textomicron}{&quot;1F45} % ὅ
-\DeclareUnicodeComposite{\accpsili }{\textOmicron}{&quot;1F48} % Ὀ
-\DeclareUnicodeComposite{\accdasia }{\textOmicron}{&quot;1F49} % Ὁ
-\DeclareUnicodeComposite{\accpsilivaria }{\textOmicron}{&quot;1F4A} % Ὂ
-\DeclareUnicodeComposite{\accdasiavaria }{\textOmicron}{&quot;1F4B} % Ὃ
-\DeclareUnicodeComposite{\accpsilioxia }{\textOmicron}{&quot;1F4C} % Ὄ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textOmicron}{&quot;1F4D} % Ὅ
-
-\DeclareUnicodeComposite{\accpsili }{\textupsilon}{&quot;1F50} % ὐ
-\DeclareUnicodeComposite{\accdasia }{\textupsilon}{&quot;1F51} % ὑ
-\DeclareUnicodeComposite{\accpsilivaria }{\textupsilon}{&quot;1F52} % ὒ
-\DeclareUnicodeComposite{\accdasiavaria }{\textupsilon}{&quot;1F53} % ὓ
-\DeclareUnicodeComposite{\accpsilioxia }{\textupsilon}{&quot;1F54} % ὔ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textupsilon}{&quot;1F55} % ὕ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textupsilon}{&quot;1F56} % ὖ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textupsilon}{&quot;1F57} % ὗ
-\DeclareUnicodeComposite{\accdasia }{\textUpsilon}{&quot;1F59} % Ὑ
-\DeclareUnicodeComposite{\accdasiavaria }{\textUpsilon}{&quot;1F5B} % Ὓ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textUpsilon}{&quot;1F5D} % Ὕ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textUpsilon}{&quot;1F5F} % Ὗ
-
-\DeclareUnicodeComposite{\accpsili }{\textomega}{&quot;1F60} % ὠ
-\DeclareUnicodeComposite{\accdasia }{\textomega}{&quot;1F61} % ὡ
-\DeclareUnicodeComposite{\accpsilivaria }{\textomega}{&quot;1F62} % ὢ
-\DeclareUnicodeComposite{\accdasiavaria }{\textomega}{&quot;1F63} % ὣ
-\DeclareUnicodeComposite{\accpsilioxia }{\textomega}{&quot;1F64} % ὤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textomega}{&quot;1F65} % ὥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textomega}{&quot;1F66} % ὦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textomega}{&quot;1F67} % ὧ
-\DeclareUnicodeComposite{\accpsili }{\textOmega}{&quot;1F68} % Ὠ
-\DeclareUnicodeComposite{\accdasia }{\textOmega}{&quot;1F69} % Ὡ
-\DeclareUnicodeComposite{\accpsilivaria }{\textOmega}{&quot;1F6A} % Ὢ
-\DeclareUnicodeComposite{\accdasiavaria }{\textOmega}{&quot;1F6B} % Ὣ
-\DeclareUnicodeComposite{\accpsilioxia }{\textOmega}{&quot;1F6C} % Ὤ
-\DeclareUnicodeComposite{\accdasiaoxia }{\textOmega}{&quot;1F6D} % Ὥ
-\DeclareUnicodeComposite{\accpsiliperispomeni}{\textOmega}{&quot;1F6E} % Ὦ
-\DeclareUnicodeComposite{\accdasiaperispomeni}{\textOmega}{&quot;1F6F} % Ὧ
-
-\DeclareUnicodeComposite{\`} {\textalpha} {&quot;1F70} % ὰ
-\DeclareUnicodeComposite{\`} {\textepsilon}{&quot;1F72} % ὲ
-\DeclareUnicodeComposite{\`} {\texteta} {&quot;1F74} % ὴ
-\DeclareUnicodeComposite{\`} {\textiota} {&quot;1F76} % ὶ
-\DeclareUnicodeComposite{\`} {\textomicron}{&quot;1F78} % ὸ
-\DeclareUnicodeComposite{\`} {\textupsilon}{&quot;1F7A} % ὺ
-\DeclareUnicodeComposite{\`} {\textomega} {&quot;1F7C} % ὼ
-% repeat with named accents (LuaTeX does not normalize to pre-composed chars):
-\DeclareUnicodeComposite{\accvaria} {\textalpha} {&quot;1F70} % ὰ
-\DeclareUnicodeComposite{\accvaria} {\textepsilon}{&quot;1F72} % ὲ
-\DeclareUnicodeComposite{\accvaria} {\texteta} {&quot;1F74} % ὴ
-\DeclareUnicodeComposite{\accvaria} {\textiota} {&quot;1F76} % ὶ
-\DeclareUnicodeComposite{\accvaria} {\textomicron}{&quot;1F78} % ὸ
-\DeclareUnicodeComposite{\accvaria} {\textupsilon}{&quot;1F7A} % ὺ
-\DeclareUnicodeComposite{\accvaria} {\textomega} {&quot;1F7C} % ὼ</pre>
-<p>Skipping pre-composed characters with mute iota (misleadingly named
-… WITH PROSGEGRAMMENI): letter + <span class="docutils literal">\ypogegrammeni</span> is normalized
-to the pre-composed character.</p>
-<pre class="literal-block">\DeclareUnicodeComposite{\u} {\textalpha} {&quot;1FB0} % ᾰ
-\DeclareUnicodeComposite{\=} {\textalpha} {&quot;1FB1} % ᾱ
-% ᾲ
-% ᾳ
-% ᾴ
-\DeclareUnicodeComposite{\accperispomeni} {\textalpha} {&quot;1FB6} % ᾶ
-\DeclareUnicodeComposite{\~} {\textalpha} {&quot;1FB6} % ᾶ
-% ᾷ
-\DeclareUnicodeComposite{\u} {\textAlpha} {&quot;1FB8} % Ᾰ
-\DeclareUnicodeComposite{\=} {\textAlpha} {&quot;1FB9} % Ᾱ
-\DeclareUnicodeComposite{\`} {\textAlpha} {&quot;1FBA} % Ὰ
-\DeclareUnicodeComposite{\accvaria} {\textAlpha} {&quot;1FBA} % Ὰ
-% ᾼ
-\DeclareUnicodeComposite{\accpsili} {} {&quot;1FBD} % ᾽
+<section id="spacing-diacritics">
+<h5><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">spacing diacritics</a></h5>
+<pre class="literal-block">% 1FBD GREEK KORONIS -&gt; psili % ᾽
\DeclareTextSymbol{\prosgegrammeni}\UnicodeEncodingName {&quot;1FBE} % ι
\DeclareUnicodeComposite{\accpsili} {} {&quot;1FBF} % ᾿
\DeclareUnicodeComposite{\accperispomeni} {} {&quot;1FC0} % ῀
\DeclareUnicodeComposite{\accdialytikaperispomeni}{} {&quot;1FC1} % ῁
-% ῂ
-% ῃ
-% ῄ
-\DeclareUnicodeComposite{\accperispomeni} {\texteta} {&quot;1FC6} % ῆ
-\DeclareUnicodeComposite{\~} {\texteta} {&quot;1FC6} % ῆ
-% ῇ
-\DeclareUnicodeComposite{\`} {\textEpsilon}{&quot;1FC8} % Ὲ
-\DeclareUnicodeComposite{\accvaria} {\textEpsilon}{&quot;1FC8} % Ὲ
-\DeclareUnicodeComposite{\`} {\textEta} {&quot;1FCA} % Ὴ
-\DeclareUnicodeComposite{\accvaria} {\textEta} {&quot;1FCA} % Ὴ
-% ῌ
+
\DeclareUnicodeComposite{\accpsilivaria} {} {&quot;1FCD} % ῍
\DeclareUnicodeComposite{\accpsilioxia} {} {&quot;1FCE} % ῎
\DeclareUnicodeComposite{\accpsiliperispomeni} {} {&quot;1FCF} % ῏
-\DeclareUnicodeComposite{\u} {\textiota} {&quot;1FD0} % ῐ
-\DeclareUnicodeComposite{\=} {\textiota} {&quot;1FD1} % ῑ
-\DeclareUnicodeComposite{\accdialytikavaria} {\textiota} {&quot;1FD2} % ῒ
-\DeclareUnicodeComposite{\accdialytikaoxia} {\textiota} {&quot;1FD3} % ΐ
-\DeclareUnicodeComposite{\accperispomeni} {\textiota} {&quot;1FD6} % ῖ
-\DeclareUnicodeComposite{\~} {\textiota} {&quot;1FD6} % ῖ
-\DeclareUnicodeComposite{\~} {ι} {&quot;1FD6} % ῖ
-\DeclareUnicodeComposite{\accdialytikaperispomeni}{\textiota} {&quot;1FD7} % ῗ
-\DeclareUnicodeComposite{\u} {\textIota} {&quot;1FD8} % Ῐ
-\DeclareUnicodeComposite{\=} {\textIota} {&quot;1FD9} % Ῑ
-\DeclareUnicodeComposite{\`} {\textIota} {&quot;1FDA} % Ὶ
-\DeclareUnicodeComposite{\accvaria} {\textIota} {&quot;1FDA} % Ὶ
\DeclareUnicodeComposite{\accdasiavaria} {} {&quot;1FDD} % ῝
\DeclareUnicodeComposite{\accdasiaoxia} {} {&quot;1FDE} % ῞
\DeclareUnicodeComposite{\accdasiaperispomeni} {} {&quot;1FDF} % ῟
-\DeclareUnicodeComposite{\u} {\textupsilon}{&quot;1FE0} % ῠ
-\DeclareUnicodeComposite{\=} {\textupsilon}{&quot;1FE1} % ῡ
-\DeclareUnicodeComposite{\accdialytikavaria} {\textupsilon}{&quot;1FE2} % ῢ
-\DeclareUnicodeComposite{\accdialytikaoxia} {\textupsilon}{&quot;1FE3} % ΰ
-\DeclareUnicodeComposite{\accpsili} {\textrho} {&quot;1FE4} % ῤ
-\DeclareUnicodeComposite{\accdasia} {\textrho} {&quot;1FE5} % ῥ
-\DeclareUnicodeComposite{\~} {\textupsilon}{&quot;1FE6} % ῦ
-\DeclareUnicodeComposite{\accperispomeni} {\textupsilon}{&quot;1FE6} % ῦ
-\DeclareUnicodeComposite{\accdialytikaperispomeni}{\textupsilon}{&quot;1FE7} % ῧ
-\DeclareUnicodeComposite{\u} {\textUpsilon}{&quot;1FE8} % Ῠ
-\DeclareUnicodeComposite{\=} {\textUpsilon}{&quot;1FE9} % Ῡ
-\DeclareUnicodeComposite{\`} {\textUpsilon}{&quot;1FEA} % Ὺ
-\DeclareUnicodeComposite{\accvaria} {\textUpsilon}{&quot;1FEA} % Ὺ
-% Ύ
-\DeclareUnicodeComposite{\accdasia} {\textRho} {&quot;1FEC} % Ῥ
\DeclareUnicodeComposite{\accdialytikavaria} {} {&quot;1FED} % ῭
\DeclareUnicodeComposite{\accdialytikaoxia} {} {&quot;1FEE} % ΅
% `
-
-% ῲ
-% ῳ
-% ῴ
-\DeclareUnicodeComposite{\accperispomeni} {\textomega} {&quot;1FF6} % ῶ
-\DeclareUnicodeComposite{\~} {\textomega} {&quot;1FF6} % ῶ
-% ῷ
-\DeclareUnicodeComposite{\`} {\textOmicron}{&quot;1FF8} % Ὸ
-\DeclareUnicodeComposite{\accvaria} {\textOmicron}{&quot;1FF8} % Ὸ
-\DeclareUnicodeComposite{\`} {\textOmega} {&quot;1FFA} % Ὼ
-\DeclareUnicodeComposite{\accvaria} {\textOmega} {&quot;1FFA} % Ὼ
-% ῼ
\DeclareUnicodeComposite{\accoxia} {} {&quot;1FFD} % ´
\DeclareUnicodeComposite{\accdasia} {} {&quot;1FFE} % ῾</pre>
+</section>
<section id="perispomeni-and-tilde-accent">
-<h5><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">Perispomeni and tilde accent</a></h5>
-<p>XeTeX and LuaTeX (since 2022) convert letters followed by combining
+<h5><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">Perispomeni and tilde accent</a></h5>
+<p>XeTeX normalizes letters followed by combining
characters to a pre-composed character, if there is an equivalent
-pre-composed character.</p>
+pre-composed character (Unicode normalization NFC).
+With LuaTeX NFC is provided by the emph{Harfbuzz} renderer
+(select with the <span class="docutils literal">[Renderer=Harfbuzz]</span> option of the <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a>
+font selection commands or the <a class="reference external" href="https://ctan.org/pkg/uninormalize">uninormalize</a> package.</p>
<p>The <span class="docutils literal">\accperispomeni</span> macro expands to COMBINING GREEK PERISPOMENI
while the standard short accent macro <span class="docutils literal">\~</span> uses the COMBINING TILDE.
Only &lt;Greek letter&gt; + COMBINING GREEK PERISPOMENI is considered
equivalent to the pre-composed &lt;Greek letter&gt; WITH PERISPOMENI.
-Composite definitions for <span class="docutils literal">\~</span> select the pre-composed character</p>
-<p>TODO: don’t use literal Unicode characters if <span class="docutils literal">\inputencodingname</span>
-is defined and not “lutf8” to prevent errors with legacy 8-bit documents
-read with “luainputenc.sty” (cf. test-licr-input.tex).</p>
-<pre class="literal-block">\DeclareUnicodeComposite{\~}{α}{&quot;1FB6} % ᾶ
-\DeclareUnicodeComposite{\~}{η}{&quot;1FC6} % ῆ
-\DeclareUnicodeComposite{\~}{ι}{&quot;1FD6} % ῖ
-\DeclareUnicodeComposite{\~}{ι}{&quot;1FD6} % ῖ
-\DeclareUnicodeComposite{\~}{υ}{&quot;1FE6} % ῦ
-\DeclareUnicodeComposite{\~}{ω}{&quot;1FF6} % ῶ</pre>
-<p>If there is no pre-composed Capital letter with perispomeni,
-we want no perispomeni with <span class="docutils literal">\MakeUppercase</span>.
-(These definitions may be redundant with the new (2022/06)
-implementation of <span class="docutils literal">\MakeUppercase</span>.)</p>
-<pre class="literal-block">\DeclareUnicodeComposite{\~}{\textAlpha} {&quot;0391} % Α
-\DeclareUnicodeComposite{\~}{Α} {&quot;0391} % Α
-\DeclareUnicodeComposite{\~}{\textEta} {&quot;0397} % Η
-\DeclareUnicodeComposite{\~}{Η} {&quot;0397} % Η
-\DeclareUnicodeComposite{\~}{\textIota} {&quot;0399} % Ι
-\DeclareUnicodeComposite{\~}{Ι} {&quot;0399} % Ι
-\DeclareUnicodeComposite{\~}{\textUpsilon}{&quot;03A5} % Υ
-\DeclareUnicodeComposite{\~}{Υ} {&quot;03A5} % Υ
-\DeclareUnicodeComposite{\~}{\textOmega} {&quot;03A9} % Ω
-\DeclareUnicodeComposite{\~}{Ω} {&quot;03A9} % Ω</pre>
+Therefore, we define composite definitions for <span class="docutils literal">\~</span>:</p>
+<pre class="literal-block">\DeclareUnicodeComposite{\~}{\textalpha }{&quot;1FB6} % ᾶ
+\DeclareUnicodeComposite{\~}{\texteta }{&quot;1FC6} % ῆ
+\DeclareUnicodeComposite{\~}{\textiota }{&quot;1FD6} % ῖ
+\DeclareUnicodeComposite{\~}{\textupsilon}{&quot;1FE6} % ῦ
+\DeclareUnicodeComposite{\~}{\textomega }{&quot;1FF6} % ῶ</pre>
+<p>There are no pre-composed capital letters with perispomeni
+(the perispomeni is not used on initial letters and normally
+dropped in <a class="reference internal" href="#uppercase">UPPERCASE</a>).
+However, it is kept with the pre-2022 <span class="docutils literal">\MakeUppercase</span> and in documents
+that don’t load <a class="reference external" href="https://ctan.org/pkg/babel-greek">babel-greek</a> (or an old babel-greek or use the
+modifier <span class="docutils literal"><span class="pre">local-MakeUppercase-fixes</span></span>):</p>
+<pre class="literal-block">\DeclareUnicodeCompositeCommand{\~}{\textAlpha }{\accperispomeni\textAlpha}
+\DeclareUnicodeCompositeCommand{\~}{\textEta }{\accperispomeni\textEta}
+\DeclareUnicodeCompositeCommand{\~}{\textIota }{\accperispomeni\textIota}
+\DeclareUnicodeCompositeCommand{\~}{\textUpsilon}{\accperispomeni\textUpsilon}
+\DeclareUnicodeCompositeCommand{\~}{\textOmega }{\accperispomeni\textOmega}</pre>
+<p>Using literal Unicode chars leads to errors in LuaTeX’s 8-bit compatibility
+mode. OTOH, composite definitions do a literal check, so we cannot use
+a replacement:</p>
+<pre class="literal-block">\&#64;ifl&#64;aded{sty}{luainputenc}{}{% else
+ \DeclareUnicodeComposite{\~}{α}{&quot;1FB6} % ᾶ
+ \DeclareUnicodeComposite{\~}{η}{&quot;1FC6} % ῆ
+ \DeclareUnicodeComposite{\~}{ι}{&quot;1FD6} % ῖ
+ \DeclareUnicodeComposite{\~}{υ}{&quot;1FE6} % ῦ
+ \DeclareUnicodeComposite{\~}{ω}{&quot;1FF6} % ῶ
+
+ \DeclareUnicodeCompositeCommand{\~}{Α}{\accperispomeni Α}
+ \DeclareUnicodeCompositeCommand{\~}{Η}{\accperispomeni Η}
+ \DeclareUnicodeCompositeCommand{\~}{Ι}{\accperispomeni Ι}
+ \DeclareUnicodeCompositeCommand{\~}{Υ}{\accperispomeni Υ}
+ \DeclareUnicodeCompositeCommand{\~}{Ω}{\accperispomeni Ω}
+}</pre>
</section>
</section>
<section id="letterlike-symbols">
-<h4><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">Letterlike Symbols</a></h4>
+<h4><a class="toc-backref" href="#toc-entry-15" role="doc-backlink">Letterlike Symbols</a></h4>
<pre class="literal-block">\DeclareTextSymbol{\textohm}\UnicodeEncodingName{&quot;03A9} % OHM SIGN, use 03A9 Omega</pre>
</section>
<section id="ancient-greek-numbers">
-<h4><a class="toc-backref" href="#toc-entry-15" role="doc-backlink">Ancient Greek Numbers</a></h4>
+<h4><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">Ancient Greek Numbers</a></h4>
<p>TODO: map other chars to corresponding Greek letters.
See also the <a class="reference external" href="https://ctan.org/pkg/grnumalt">grnumalt</a> package.</p>
<pre class="literal-block">\DeclareTextSymbol{\textpentedeka }\UnicodeEncodingName{&quot;10144} % GREEK ACROPHONIC ATTIC FIFTY
@@ -1337,51 +1124,67 @@ See also the <a class="reference external" href="https://ctan.org/pkg/grnumalt">
</section>
</section>
<section id="uppercase">
-<h3><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">UPPERCASE</a></h3>
+<h3><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">UPPERCASE</a></h3>
<p>Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.</p>
-<p>Babel-Greek indroduces macros for “capital accents” in 1.13.3.
+<p>Babel-Greek introduces macros for “capital accents” in release 1.13.3.
Here, we add definitions to drop diacritics in uppercase:</p>
-<pre class="literal-block">\providecommand\IfFormatAtLeastTF{\&#64;ifl&#64;t&#64;r\fmtversion} % new in 2020
-\IfFormatAtLeastTF{2022/06/01}{
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textAlpha }{\LGR&#64;A&#64;hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEpsilon}{\LGR&#64;E&#64;hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEta }{Η}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textIota }{Ι}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmicron}{Ο}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textUpsilon}{Υ}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmega }{Ω}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Α}{\LGR&#64;A&#64;hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ε}{\LGR&#64;E&#64;hiatus}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Η}{Η}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ι}{Ι}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ο}{Ο}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Υ}{Υ}
- \DeclareTextCompositeCommand{\accACUTE}{TU}{Ω}{Ω}
-
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textAlpha }{Α}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEpsilon}{Ε}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEta }{Η}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textIota }{Ι}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmicron}{Ο}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textUpsilon}{Υ}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmega }{Ω}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Α}{Α}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ε}{Ε}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Η}{Η}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ι}{Ι}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ο}{Ο}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Υ}{Υ}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω}
- \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω}
-
- \DeclareTextCompositeCommand{\LGR&#64;hiatus}{TU}{Α}{\LGR&#64;A&#64;hiatus}
- \DeclareTextCompositeCommand{\LGR&#64;hiatus}{TU}{Ε}{\LGR&#64;E&#64;hiatus}</pre>
+<pre class="literal-block">\DeclareUnicodeCompositeCommand{\accACUTE}{\textAlpha }{\LGR&#64;A&#64;hiatus}
+\DeclareUnicodeCompositeCommand{\accACUTE}{\textEpsilon}{\LGR&#64;E&#64;hiatus}
+\DeclareUnicodeComposite{\accACUTE}{\textEta }{&quot;0397} % Η
+\DeclareUnicodeComposite{\accACUTE}{\textIota }{&quot;0399} % Ι
+\DeclareUnicodeComposite{\accACUTE}{\textOmicron}{&quot;039F} % Ο
+\DeclareUnicodeComposite{\accACUTE}{\textUpsilon}{&quot;03A5} % Υ
+\DeclareUnicodeComposite{\accACUTE}{\textOmega }{&quot;03A9} % Ω
+
+\DeclareUnicodeComposite{\accGRAVE}{\textAlpha }{&quot;0391} % Α
+\DeclareUnicodeComposite{\accGRAVE}{\textEpsilon}{&quot;0395} % Ε
+\DeclareUnicodeComposite{\accGRAVE}{\textEta }{&quot;0397} % Η
+\DeclareUnicodeComposite{\accGRAVE}{\textIota }{&quot;0399} % Ι
+\DeclareUnicodeComposite{\accGRAVE}{\textOmicron}{&quot;039F} % Ο
+\DeclareUnicodeComposite{\accGRAVE}{\textUpsilon}{&quot;03A5} % Υ
+\DeclareUnicodeComposite{\accGRAVE}{\textOmega }{&quot;03A9} % Ω
+
+\DeclareUnicodeComposite{\accTILDE}{\textAlpha }{&quot;0391} % Α
+\DeclareUnicodeComposite{\accTILDE}{\textEta }{&quot;0397} % Η
+\DeclareUnicodeComposite{\accTILDE}{\textIota }{&quot;0399} % Ι
+\DeclareUnicodeComposite{\accTILDE}{\textUpsilon}{&quot;03A5} % Υ
+\DeclareUnicodeComposite{\accTILDE}{\textOmega }{&quot;03A9} % Ω</pre>
+<p>Repeat with literal Unicode as base character
+(fails in LuaTeX’s 8-bit compatibility mode):</p>
+<pre class="literal-block">\&#64;ifl&#64;aded{sty}{luainputenc}{}{% else
+ \DeclareUnicodeCompositeCommand{\accACUTE}{Α}{\LGR&#64;A&#64;hiatus}
+ \DeclareUnicodeCompositeCommand{\accACUTE}{Ε}{\LGR&#64;E&#64;hiatus}
+ \DeclareUnicodeComposite{\accACUTE}{Η}{&quot;0397} % Η
+ \DeclareUnicodeComposite{\accACUTE}{Ι}{&quot;0399} % Ι
+ \DeclareUnicodeComposite{\accACUTE}{Ο}{&quot;039F} % Ο
+ \DeclareUnicodeComposite{\accACUTE}{Υ}{&quot;03A5} % Υ
+ \DeclareUnicodeComposite{\accACUTE}{Ω}{&quot;03A9} % Ω
+
+ \DeclareUnicodeComposite{\accGRAVE}{Α}{&quot;0391} % Α
+ \DeclareUnicodeComposite{\accGRAVE}{Ε}{&quot;0395} % Ε
+ \DeclareUnicodeComposite{\accGRAVE}{Η}{&quot;0397} % Η
+ \DeclareUnicodeComposite{\accGRAVE}{Ι}{&quot;0399} % Ι
+ \DeclareUnicodeComposite{\accGRAVE}{Ο}{&quot;039F} % Ο
+ \DeclareUnicodeComposite{\accGRAVE}{Υ}{&quot;03A5} % Υ
+ \DeclareUnicodeComposite{\accGRAVE}{Ω}{&quot;03A9} % Ω
+
+ \DeclareUnicodeComposite{\accTILDE}{Α}{&quot;0391} % Α
+ \DeclareUnicodeComposite{\accTILDE}{Η}{&quot;0397} % Η
+ \DeclareUnicodeComposite{\accTILDE}{Ι}{&quot;0399} % Ι
+ \DeclareUnicodeComposite{\accTILDE}{Υ}{&quot;03A5} % Υ
+ \DeclareUnicodeComposite{\accTILDE}{Ω}{&quot;03A9} % Ω
+
+ \DeclareUnicodeCompositeCommand{\LGR&#64;hiatus}{Α}{\LGR&#64;A&#64;hiatus}
+ \DeclareUnicodeCompositeCommand{\LGR&#64;hiatus}{Ε}{\LGR&#64;E&#64;hiatus}
+}</pre>
<p>The new (2022) implementation of <span class="docutils literal">\MakeUppercase</span> drops accents from
literal Unicode input (if the text language is set to Greek with Babel).</p>
<p>With the old <span class="docutils literal">\MakeUppercase</span> implementation, we can fix this using
<span class="docutils literal">\lccode</span> and <span class="docutils literal">\uccode</span> corrections from the <a class="reference external" href="https://ctan.org/pkg/xgreek">xgreek</a> package by
Apostolos Syropoulos:</p>
-<pre class="literal-block">}{% else
+<pre class="literal-block">\providecommand\IfFormatAtLeastTF{\&#64;ifl&#64;t&#64;r\fmtversion} % new in 2020
+\IfFormatAtLeastTF{2022/06/01}{
+}{% else
\global\lccode&quot;0370=&quot;0371 \global\uccode&quot;0370=&quot;0370
\global\lccode&quot;0371=&quot;0371 \global\uccode&quot;0371=&quot;0370
\global\lccode&quot;0372=&quot;0373 \global\uccode&quot;0372=&quot;0372
@@ -1702,7 +1505,7 @@ Apostolos Syropoulos:</p>
\global\lccode&quot;1FFC=&quot;1FF3 \global\uccode&quot;1FFC=&quot;1FFC
}</pre>
<section id="uclclist">
-<h4><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">uclclist</a></h4>
+<h4><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">uclclist</a></h4>
<p>The common Greek font encoding definitions in <a class="reference external" href="greek-fontenc.def.html">greek-fontenc.def</a> extend the
<cite>uclclist</cite> with Greek LICR macros. Here, we add Unicode-specific “<a class="reference external" href="greek-fontenc.def.html#mark-hiatus">hiatus</a>”
handling (copied from <a class="reference external" href="lgrenc.def.html">lgrenc.def</a> and changed
@@ -1730,7 +1533,7 @@ Latin transliteration to Unicode literals).</p>
</section>
</section>
<section id="changelog">
-<h2><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">Changelog</a></h2>
+<h2><a class="toc-backref" href="#toc-entry-19" role="doc-backlink">Changelog</a></h2>
<table class="borderless">
<tbody>
<tr><td><p>0.1</p></td>
@@ -1847,6 +1650,17 @@ in other encodings with <cite>luainputenc</cite>).</p></td>
<td></td>
<td><p>Composite commands for “captital” macros.</p></td>
</tr>
+<tr><td><p>2.5</p></td>
+<td><p>2023-09-12</p></td>
+<td><p>Drop composite definitions duplicating the Unicode
+NFC transformation.</p></td>
+</tr>
+<tr><td><!-- -->
+</td>
+<td></td>
+<td><p>Skip definitions requiring literal UTF8 chars in
+LuaTeX’s 8-bit compatibility mode.</p></td>
+</tr>
</tbody>
</table>
<!-- References