diff options
Diffstat (limited to 'language/greek/greek-fontenc')
33 files changed, 1553 insertions, 838 deletions
diff --git a/language/greek/greek-fontenc/README.md b/language/greek/greek-fontenc/README.md index bab9a41732..da3da0ece5 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.3 +**Version**: 2.4 **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 Binary files differindex 2afee980e0..2cfe30bae8 100644 --- a/language/greek/greek-fontenc/alphabeta-doc-tu.pdf +++ b/language/greek/greek-fontenc/alphabeta-doc-tu.pdf diff --git a/language/greek/greek-fontenc/alphabeta-doc.pdf b/language/greek/greek-fontenc/alphabeta-doc.pdf Binary files differindex f26f508caa..f1b625fb99 100644 --- a/language/greek/greek-fontenc/alphabeta-doc.pdf +++ b/language/greek/greek-fontenc/alphabeta-doc.pdf diff --git a/language/greek/greek-fontenc/alphabeta-doc.tex b/language/greek/greek-fontenc/alphabeta-doc.tex index 4143da034b..35cd14c204 100644 --- a/language/greek/greek-fontenc/alphabeta-doc.tex +++ b/language/greek/greek-fontenc/alphabeta-doc.tex @@ -11,7 +11,7 @@ % As it contains tests for the different limitations, there will be warnings % in the log, which can be safely ignored. -\documentclass{article} +\documentclass{scrartcl} \usepackage[unicode,colorlinks=true,linkcolor=blue]{hyperref} % \usepackage{bookmark} @@ -94,8 +94,8 @@ 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. -\footnote{ - This document was compiled using the +\footnote{\label{compiler}% + This document was compiled with \engine{} using the \href{https://ctan.org/pkg/encguide}{font encoding} \encodingdefault{} \ifdefined \UTFencname % defined by fontspec (Unicode fonts). @@ -117,9 +117,9 @@ literal Unicode charactes can also be used in mathematical mode. The \emph{alphabeta} package depends on \emph{\href{textalpha-doc.pdf}{textalpha}} (both are part of \pkgref{greek-fontenc}). -It can be used under 8-bit TeX as well as XeTeX/LuaTeX (this document is -typeset with \engine{} and \fontset). Depending on the converter and fonts, -different \hyperref[sec:limitations]{limitations} apply. +It can be used under 8-bit TeX as well as XeTeX/LuaTeX.\footref{compiler} +Depending on the converter and fonts, different +\hyperref[sec:limitations]{limitations} apply. The package conflicts with \pkgref{unicode-math}. @@ -147,7 +147,7 @@ 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.} + for a detailled discussion of math-styles.} and upright in text: \begin{quote} @@ -267,7 +267,10 @@ 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 and dropped with MakeUppercase: +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. \begin{quote} \ensuregreek{ @@ -410,8 +413,8 @@ Certain limitations apply if Greek LICRs are used in non-Greek context with \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}.} + the Greek typesetting rules only for text parts given the + \pkgref{babel} language \texttt{greek}.} % \MakeUppercase{% % \<\alpha{} \>\epsilon{} \'\iota{} \`\eta{} \~\upsilon{} % } diff --git a/language/greek/greek-fontenc/char-list-luatex.pdf b/language/greek/greek-fontenc/char-list-luatex.pdf Binary files differnew file mode 100644 index 0000000000..fe5318ce5b --- /dev/null +++ b/language/greek/greek-fontenc/char-list-luatex.pdf diff --git a/language/greek/greek-fontenc/char-list-pdftex.pdf b/language/greek/greek-fontenc/char-list-pdftex.pdf Binary files differnew file mode 100644 index 0000000000..01fdfc5344 --- /dev/null +++ b/language/greek/greek-fontenc/char-list-pdftex.pdf diff --git a/language/greek/greek-fontenc/char-list-xetex.pdf b/language/greek/greek-fontenc/char-list-xetex.pdf Binary files differnew file mode 100644 index 0000000000..8ed6ee7210 --- /dev/null +++ b/language/greek/greek-fontenc/char-list-xetex.pdf diff --git a/language/greek/greek-fontenc/char-list.tex b/language/greek/greek-fontenc/char-list.tex new file mode 100644 index 0000000000..72b993393e --- /dev/null +++ b/language/greek/greek-fontenc/char-list.tex @@ -0,0 +1,796 @@ +\documentclass[a4paper]{article} + + +\ifdefined \UnicodeEncodingName + \usepackage{fontspec} + \setmainfont{FreeSerif} + % \setmainfont{Linux Libertine O} + \ifdefined\luatexversion + \newcommand*{\texengine}{LuaLaTeX} + \else + \newcommand*{\texengine}{XeLaTeX} + \fi + \newcommand*{\ux}[2]{#1} +\else + \usepackage[LGR,T1]{fontenc} + \usepackage{lmodern} + \newcommand*{\texengine}{pdfLaTeX} + \newcommand*{\ux}[2]{#2} +\fi + + +% Load encoding definitions +\usepackage[normalize-symbols]{textalpha} % "Greek script everywhere" + +% With TL22, the special handling of Greek UPPERCASE is only triggered +% if the text language is set to "greek" with Babel: +\usepackage[greek%.local-MakeUppercase-fixes % uncomment to test modifier + ,english]{babel} % babel-greek +\languageattribute{greek}{polutoniko} % "modern" polytonic Greek +% \languageattribute{greek}{ancient} + +% Babel's Greek "ini" doesn't drop diacritics input via standard accent macros +% \usepackage[greek,english,provide*=*]{babel} + +\usepackage[unicode,colorlinks,linkcolor=blue]{hyperref} +\usepackage{bookmark} + +\usepackage{longtable} +\setcounter{LTchunksize}{60} + +% don't lowercase the font encoding names (T1, LGR, ...) +\ifdefined \AddToNoCaseChangeList % new in 2022 + \AddToNoCaseChangeList{\fontencoding} +\fi + +% Auxiliary commands + +\ifdefined \extrasgreek % babel-greek loaded + \newcommand*{\Greek}{\foreignlanguage{greek}} +\else + \newcommand*{\Greek}{\ensuregreek} + \newcommand*{\lgrfont}{\fontencoding{LGR}\selectfont} +\fi + +\providecommand*{\greekfontencoding}{undefined} + +\newcommand{\cs}[1]{\texttt{\textbackslash#1}} + +% print the selected language variant +\newcommand*{\GreekLanguageVariant}{% + \ifx\captionsgreek\captionsancientgreek + ancient% + \else + \ifx\captionsgreek\captionspolutonikogreek + polutoniko% + \else + monotoniko% + \fi + \fi +} + +% one line in a case-change test table +\newcommand*{\Cases}[1]{% + & \Greek{#1} & \Greek{\MakeUppercase{#1}} & \Greek{\MakeLowercase{#1}} +} + +\newcommand*{\TestUppercase}[1]{% + \Greek{#1 → \MakeUppercase{#1}}% +} + +% % Test: pre-composed characters with LuaTeX +% \ifdefined\luatexversion +% \DeclareUnicodeComposite{\'}{Α} {"0386} % Ά +% \fi + +% ----------------------------------------------------------------------- + +\begin{document} + +\title{Greek characters supported by \emph{greek-fontenc}} +\author{Günter Milde} +\maketitle + +\abstract{ \noindent This document lists all Greek characters that are +supported by \emph{greek-fontenc}. It also tests the outcome of +\cs{MakeUppercase} and \cs{MakeLowercase} for different input variants +(literal input, LICR% + \footnote{LaTeX internal character representation} +macro, Latin transliteration). + +\makeatletter +The document is compiled with \texengine, +format version \fmtversion{} patch-level \patch@level{}, +and the L3 programming layer from \ExplFileDate{}. +\makeatother + +\ifdefined \extrasgreek % babel-greek loaded + The \emph{babel-greek} version is ``\csname ver@greek.ldf\endcsname''. +\fi + +The \verb|\greekfontencoding| is \greekfontencoding{} and +the current language variant is \emph\GreekLanguageVariant. + +} + +\tableofcontents + +\section{Input Variants} + +The columns represent the following input variants: + +\begin{enumerate} + \item literal character + \item named accent macro + LICR + \item short accent macro + LICR + \item short accent macro + \ux{literal character} % Xe/LuaTeX + {transliteration} % pdfTeX + \item \ux{short accent macro (reversed order) + literal character} + {accent character + transliteration} +\end{enumerate} + +For composite diacritics, there are additional columns for short macros +in reversed order and with the second diacritic as accent macro. + +\section{Greek and Coptic} + +Characters from the Greek and Coptic Unicode block that are supported by +\emph{greek-fontenc} and \emph{greek-inputenc}: + +\begin{longtable}{llll} + x0374 \Cases{ ʹ \textdexiakeraia{} } \\ + x0375 \Cases{ ͵ \textaristerikeraia{} } \\ + x037A \Cases{ ͺ { }\ypogegrammeni{} { }\ypogegrammeni{} \ux{ͺ} {| |} } \\ + 0x37E \Cases{ ; \texterotimatiko{} \texterotimatiko{} \ux{;} {? ?} } \\ + \\ + x0384 \Cases{ ΄ \acctonos{ } \'{ } \ux{΄} {\'{} '} } \\ + x0385 \Cases{ ΅ \accdialytikatonos{ } \"'{ } \ux{\"'{}} {\"'{} "'} } \\ + x0386 \Cases{ Ά \acctonos\textAlpha{} \'\textAlpha{} \ux{\'Α} {\'A 'A} } \\ + 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} } \\ + x038C \Cases{ Ό \acctonos\textOmicron{} \'\textOmicron{} \ux{\'Ο} {\'O 'O} } \\ + 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 } } \\ + \\ + 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 } } \\ + 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 } } \\ + \\ + 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 } } \\ + 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 } \\ + x03D8 \Cases{ Ϙ \textQoppa{} } \\ + x03D9 \Cases{ ϙ \textqoppa{} } \\ + x03DA \Cases{ Ϛ \textStigma{} } \\ + x03DB \Cases{ ϛ \textstigma{} } \\ + x03DC \Cases{ Ϝ \textDigamma{} } \\ + x03DD \Cases{ ϝ \textdigamma{} } \\ + x03DE \Cases{ Ϟ \textKoppa{} } \\ + x03DF \Cases{ ϟ \textkoppa{} } \\ + \\ + x03E0 \Cases{ Ϡ \textSampi{} } \\ + x03E1 \Cases{ ϡ \textsampi{} } \\ + \\ + x03F0 \Cases{ ϰ \textkappasymbol } \\ + x03F1 \Cases{ ϱ \textrhosymbol } \\ + x03F4 \Cases{ ϴ \textThetasymbol } \\ + x03F5 \Cases{ ϵ \textepsilonsymbol } \\ +\end{longtable} + + +% --------------------------------------------------------------------------------------------------------------------------------------------- +\section{Greek extended} + +\begin{longtable}{llll} + x1F00 \Cases{ ἀ \accpsili\textalpha{} \>\textalpha{} \ux{\>α }{\>a >a} } \\ + x1F01 \Cases{ ἁ \accdasia\textalpha{} \<\textalpha{} \ux{\<α }{\<a <a} } \\ + x1F02 \Cases{ ἂ \accpsilivaria\textalpha{} \>`\textalpha{} \ux{\>`α \`>α \>\`α \`\>α} {\>`a \`>a \>\`a \`\>a >`a `>a} } \\ + x1F03 \Cases{ ἃ \accdasiavaria\textalpha{} \<`\textalpha{} \ux{\<`α \`<α \<\`α \`\<α} {\<`a \`<a \<\`a \`\<a <`a `<a} } \\ + x1F04 \Cases{ ἄ \accpsilioxia\textalpha{} \>'\textalpha{} \ux{\>'α \'>α \>\'α \'\>α} {\>'a \'>a \>\'a \'\>a >'a '>a} } \\ + x1F05 \Cases{ ἅ \accdasiaoxia\textalpha{} \<'\textalpha{} \ux{\<'α \'<α \<\'α \'\<α} {\<'a \'<a \<\'a \'\<a <'a '<a} } \\ + x1F06 \Cases{ ἆ \accpsiliperispomeni\textalpha{} \~>\textalpha{} \ux{\>~α \~>α \>\~α \~\>α} {\>~a \~>a \>\~a \~\>a >~a ~>a} } \\ + x1F07 \Cases{ ἇ \accdasiaperispomeni\textalpha{} \~<\textalpha{} \ux{\<~α \~<α \<\~α \~\<α} {\<~a \~<a \<\~a \~\<a <~a ~<a} } \\ + x1F08 \Cases{ Ἀ \accpsili\textAlpha{} \>\textAlpha{} \ux{\>Α } {\>A >A} } \\ + x1F09 \Cases{ Ἁ \accdasia\textAlpha{} \<\textAlpha{} \ux{\<Α } {\<A <A} } \\ + x1F0A \Cases{ Ἂ \accpsilivaria\textAlpha{} \>`\textAlpha{} \ux{\>`Α \`>Α \>\`Α \`\>Α} {\>`A \`>A \>\`A \`\>A >`A `>A} } \\ + x1F0B \Cases{ Ἃ \accdasiavaria\textAlpha{} \<`\textAlpha{} \ux{\<`Α \`<Α \<\`Α \`\<Α} {\<`A \`<A \<\`A \`\<A <`A `<A} } \\ + x1F0C \Cases{ Ἄ \accpsilioxia\textAlpha{} \>'\textAlpha{} \ux{\>'Α \'>Α \>\'Α \'\>Α} {\>'A \'>A \>\'A \'\>A >'A '>A} } \\ + x1F0D \Cases{ Ἅ \accdasiaoxia\textAlpha{} \<'\textAlpha{} \ux{\<'Α \'<Α \<\'Α \'\<Α} {\<'A \'<A \<\'A \'\<A <'A '<A} } \\ + x1F0E \Cases{ Ἆ \accpsiliperispomeni\textAlpha{} \~>\textAlpha{} \ux{\>~Α \~>Α \>\~Α \~\>Α} {\>~A \~>A \>\~A \~\>A >~A ~>A} } \\ + x1F0F \Cases{ Ἇ \accdasiaperispomeni\textAlpha{} \~<\textAlpha{} \ux{\<~Α \~<Α \<\~Α \~\<Α} {\<~A \~<A \<\~A \~\<A <~A ~<A} } \\ + \\ + x1F10 \Cases{ ἐ \accpsili\textepsilon{} \>\textepsilon{} \ux{\>ε } {\>e >e} } \\ + x1F11 \Cases{ ἑ \accdasia\textepsilon{} \<\textepsilon{} \ux{\<ε } {\<e <e} } \\ + x1F12 \Cases{ ἒ \accpsilivaria\textepsilon{} \>`\textepsilon{} \ux{\>`ε \`>ε \>\`ε \`\>ε} {\>`e >`e} } \\ + x1F13 \Cases{ ἓ \accdasiavaria\textepsilon{} \<`\textepsilon{} \ux{\<`ε \`<ε \<\`ε \`\<ε} {\<`e <`e} } \\ + x1F14 \Cases{ ἔ \accpsilioxia\textepsilon{} \>'\textepsilon{} \ux{\>'ε \'>ε \>\'ε \'\>ε} {\>'e >'e} } \\ + x1F15 \Cases{ ἕ \accdasiaoxia\textepsilon{} \<'\textepsilon{} \ux{\<'ε \'<ε \<\'ε \'\<ε} {\<'e <'e} } \\ + x1F18 \Cases{ Ἐ \accpsili\textEpsilon{} \>\textEpsilon{} \ux{\>Ε } {\>E >E} } \\ + x1F19 \Cases{ Ἑ \accdasia\textEpsilon{} \<\textEpsilon{} \ux{\<Ε } {\<E <E} } \\ + x1F1A \Cases{ Ἒ \accpsilivaria\textEpsilon{} \>`\textEpsilon{} \ux{\>`Ε \`>Ε \>\`Ε \`\>Ε} {\>`E >`E} } \\ + x1F1B \Cases{ Ἓ \accdasiavaria\textEpsilon{} \<`\textEpsilon{} \ux{\<`Ε \`<Ε \<\`Ε \`\<Ε} {\<`E <`E} } \\ + x1F1C \Cases{ Ἔ \accpsilioxia\textEpsilon{} \>'\textEpsilon{} \ux{\>'Ε \'>Ε \>\'Ε \'\>Ε} {\>'E >'E} } \\ + x1F1D \Cases{ Ἕ \accdasiaoxia\textEpsilon{} \<'\textEpsilon{} \ux{\<'Ε \'<Ε \<\'Ε \'\<Ε} {\<'E <'E} } \\ + \\ + x1F20 \Cases{ ἠ \accpsili\texteta{} \>\texteta{} \ux{\>η } {\>h >h} } \\ + x1F21 \Cases{ ἡ \accdasia\texteta{} \<\texteta{} \ux{\<η } {\<h <h} } \\ + x1F22 \Cases{ ἢ \accpsilivaria\texteta{} \>`\texteta{} \ux{\>`η \`>η \>\`η \`\>η} {\>`h >`h} } \\ + x1F23 \Cases{ ἣ \accdasiavaria\texteta{} \<`\texteta{} \ux{\<`η \`<η \<\`η \`\<η} {\<`h <`h} } \\ + x1F24 \Cases{ ἤ \accpsilioxia\texteta{} \>'\texteta{} \ux{\>'η \'>η \>\'η \'\>η} {\>'h >'h} } \\ + x1F25 \Cases{ ἥ \accdasiaoxia\texteta{} \<'\texteta{} \ux{\<'η \'<η \<\'η \'\<η} {\<'h <'h} } \\ + x1F26 \Cases{ ἦ \accpsiliperispomeni\texteta{} \~>\texteta{} \ux{\>~η \~>η \>\~η \~\>η} {\>~h >~h} } \\ + x1F27 \Cases{ ἧ \accdasiaperispomeni\texteta{} \~<\texteta{} \ux{\<~η \~<η \<\~η \~\<η} {\<~h <~h} } \\ + x1F28 \Cases{ Ἠ \accpsili\textEta{} \>\textEta{} \ux{\>Η } {\>H >H} } \\ + x1F29 \Cases{ Ἡ \accdasia\textEta{} \<\textEta{} \ux{\<Η } {\<H <H} } \\ + x1F2A \Cases{ Ἢ \accpsilivaria\textEta{} \>`\textEta{} \ux{\>`Η \`>Η \>\`Η \`\>Η} {\>`H >`H} } \\ + x1F2B \Cases{ Ἣ \accdasiavaria\textEta{} \<`\textEta{} \ux{\<`Η \`<Η \<\`Η \`\<Η} {\<`H <`H} } \\ + x1F2C \Cases{ Ἤ \accpsilioxia\textEta{} \>'\textEta{} \ux{\'>Η \'>Η \'\>Η \'\>Η} {\>'H >'H} } \\ + x1F2D \Cases{ Ἥ \accdasiaoxia\textEta{} \<'\textEta{} \ux{\<'Η \'<Η \<\'Η \'\<Η} {\<'H <'H} } \\ + x1F2E \Cases{ Ἦ \accpsiliperispomeni\textEta{} \~>\textEta{} \ux{\>~Η \~>Η \>\~Η \~\>Η} {\>~H >~H} } \\ + x1F2F \Cases{ Ἧ \accdasiaperispomeni\textEta{} \~<\textEta{} \ux{\<~Η \~<Η \<\~Η \~\<Η} {\<~H <~H} } \\ + \\ + x1F30 \Cases{ ἰ \accpsili\textiota{} \>\textiota{} \ux{\>ι} {\>i >i} } \\ + x1F31 \Cases{ ἱ \accdasia\textiota{} \<\textiota{} \ux{\<ι} {\<i <i} } \\ + x1F32 \Cases{ ἲ \accpsilivaria\textiota{} \>`\textiota{} \ux{\>`ι \`>ι} {\>`i >`i} } \\ + x1F33 \Cases{ ἳ \accdasiavaria\textiota{} \<`\textiota{} \ux{\<`ι \`<ι} {\<`i <`i} } \\ + x1F34 \Cases{ ἴ \accpsilioxia\textiota{} \>'\textiota{} \ux{\>'ι \'>ι} {\>'i >'i} } \\ + x1F35 \Cases{ ἵ \accdasiaoxia\textiota{} \<'\textiota{} \ux{\<'ι \'<ι} {\<'i <'i} } \\ + x1F36 \Cases{ ἶ \accpsiliperispomeni\textiota{} \~>\textiota{} \ux{\>~ι \~>ι} {\>~i >~i} } \\ + x1F37 \Cases{ ἷ \accdasiaperispomeni\textiota{} \~<\textiota{} \ux{\<~ι \~<ι} {\<~i <~i} } \\ + x1F38 \Cases{ Ἰ \accpsili\textIota{} \>\textIota{} \ux{\>Ι} {\>I >I} } \\ + x1F39 \Cases{ Ἱ \accdasia\textIota{} \<\textIota{} \ux{\<Ι} {\<I <I} } \\ + x1F3A \Cases{ Ἲ \accpsilivaria\textIota{} \>`\textIota{} \ux{\>`Ι \`>Ι} {\>`I >`I} } \\ + x1F3B \Cases{ Ἳ \accdasiavaria\textIota{} \<`\textIota{} \ux{\<`Ι \`<Ι} {\<`I <`I} } \\ + x1F3C \Cases{ Ἴ \accpsilioxia\textIota{} \>'\textIota{} \ux{\>'Ι \'>Ι} {\>'I >'I} } \\ + x1F3D \Cases{ Ἵ \accdasiaoxia\textIota{} \<'\textIota{} \ux{\<'Ι \'<Ι} {\<'I <'I} } \\ + x1F3E \Cases{ Ἶ \accpsiliperispomeni\textIota{} \~>\textIota{} \ux{\>~Ι \~>Ι} {\>~I >~I} } \\ + x1F3F \Cases{ Ἷ \accdasiaperispomeni\textIota{} \~<\textIota{} \ux{\<~Ι \~<Ι} {\<~I <~I} } \\ + \\ + x1F40 \Cases{ ὀ \accpsili\textomicron{} \>\textomicron{} \ux{\>ο} {\>o >o} } \\ + x1F41 \Cases{ ὁ \accdasia\textomicron{} \<\textomicron{} \ux{\<ο} {\<o <o} } \\ + x1F42 \Cases{ ὂ \accpsilivaria\textomicron{} \>`\textomicron{} \ux{\>`ο \`>ο} {\>`o >`o} } \\ + x1F43 \Cases{ ὃ \accdasiavaria\textomicron{} \<`\textomicron{} \ux{\<`ο \`<ο} {\<`o <`o} } \\ + x1F44 \Cases{ ὄ \accpsilioxia\textomicron{} \>'\textomicron{} \ux{\>'ο \'>ο} {\>'o >'o} } \\ + x1F45 \Cases{ ὅ \accdasiaoxia\textomicron{} \<'\textomicron{} \ux{\<'ο \'<ο} {\<'o <'o} } \\ + x1F48 \Cases{ Ὀ \accpsili\textOmicron{} \>\textOmicron{} \ux{\>Ο} {\>O >O} } \\ + x1F49 \Cases{ Ὁ \accdasia\textOmicron{} \<\textOmicron{} \ux{\<Ο} {\<O <O} } \\ + x1F4A \Cases{ Ὂ \accpsilivaria\textOmicron{} \>`\textOmicron{} \ux{\>`Ο \`>Ο} {\>`O >`O} } \\ + x1F4B \Cases{ Ὃ \accdasiavaria\textOmicron{} \<`\textOmicron{} \ux{\<`Ο \`<Ο} {\<`O <`O} } \\ + x1F4C \Cases{ Ὄ \accpsilioxia\textOmicron{} \>'\textOmicron{} \ux{\>'Ο \'>Ο} {\>'O >'O} } \\ + x1F4D \Cases{ Ὅ \accdasiaoxia\textOmicron{} \<'\textOmicron{} \ux{\<'Ο \'<Ο} {\<'O <'O} } \\ + \\ + x1F50 \Cases{ ὐ \accpsili\textupsilon{} \>\textupsilon{} \ux{\>υ} {\>u >u} } \\ + x1F51 \Cases{ ὑ \accdasia\textupsilon{} \<\textupsilon{} \ux{\<υ} {\<u <u} } \\ + x1F52 \Cases{ ὒ \accpsilivaria\textupsilon{} \>`\textupsilon{} \ux{\>`υ \`>υ} {\>`u >`u} } \\ + x1F53 \Cases{ ὓ \accdasiavaria\textupsilon{} \<`\textupsilon{} \ux{\<`υ \`<υ} {\<`u <`u} } \\ + x1F54 \Cases{ ὔ \accpsilioxia\textupsilon{} \>'\textupsilon{} \ux{\>'υ \'>υ} {\>'u >'u} } \\ + x1F55 \Cases{ ὕ \accdasiaoxia\textupsilon{} \<'\textupsilon{} \ux{\<'υ \'<υ} {\<'u <'u} } \\ + x1F56 \Cases{ ὖ \accpsiliperispomeni\textupsilon{} \~>\textupsilon{} \ux{\>~υ \~>υ} {\>~u >~u} } \\ + x1F57 \Cases{ ὗ \accdasiaperispomeni\textupsilon{} \~<\textupsilon{} \ux{\<~υ \~<υ} {\<~u <~u} } \\ + x1F59 \Cases{ Ὑ \accdasia\textUpsilon{} \<\textUpsilon{} \ux{\<Υ} {\<U <U} } \\ + x1F5B \Cases{ Ὓ \accdasiavaria\textUpsilon{} \<`\textUpsilon{} \ux{\<`Υ \`<Υ} {\<`U <`U} } \\ + x1F5D \Cases{ Ὕ \accdasiaoxia\textUpsilon{} \<'\textUpsilon{} \ux{\<'Υ \'<Υ} {\<'U <'U} } \\ + x1F5F \Cases{ Ὗ \accdasiaperispomeni\textUpsilon{} \~<\textUpsilon{} \ux{\<~Υ \~<Υ} {\<~U <~U} } \\ + \\ + x1F60 \Cases{ ὠ \accpsili\textomega{} \>\textomega{} \ux{\>ω} {\>w >w} } \\ + x1F61 \Cases{ ὡ \accdasia\textomega{} \<\textomega{} \ux{\<ω} {\<w <w} } \\ + x1F62 \Cases{ ὢ \accpsilivaria\textomega{} \>`\textomega{} \ux{\>`ω \`>ω} {\>`w >`w} } \\ + x1F63 \Cases{ ὣ \accdasiavaria\textomega{} \<`\textomega{} \ux{\<`ω \`<ω} {\<`w <`w} } \\ + x1F64 \Cases{ ὤ \accpsilioxia\textomega{} \>'\textomega{} \ux{\>'ω \'>ω} {\>'w >'w} } \\ + x1F65 \Cases{ ὥ \accdasiaoxia\textomega{} \<'\textomega{} \ux{\<'ω \'<ω} {\<'w <'w} } \\ + x1F66 \Cases{ ὦ \accpsiliperispomeni\textomega{} \~>\textomega{} \ux{\>~ω \~>ω} {\>~w >~w} } \\ + x1F67 \Cases{ ὧ \accdasiaperispomeni\textomega{} \~<\textomega{} \ux{\<~ω \~<ω} {\<~w <~w} } \\ + x1F68 \Cases{ Ὠ \accpsili\textOmega{} \>\textOmega{} \ux{\>Ω} {\>W >W} } \\ + x1F69 \Cases{ Ὡ \accdasia\textOmega{} \<\textOmega{} \ux{\<Ω} {\<W <W} } \\ + x1F6A \Cases{ Ὢ \accpsilivaria\textOmega{} \>`\textOmega{} \ux{\>`Ω \`>Ω} {\>`W >`W} } \\ + x1F6B \Cases{ Ὣ \accdasiavaria\textOmega{} \<`\textOmega{} \ux{\<`Ω \`<Ω} {\<`W <`W} } \\ + x1F6C \Cases{ Ὤ \accpsilioxia\textOmega{} \>'\textOmega{} \ux{\>'Ω \'>Ω} {\>'W >'W} } \\ + x1F6D \Cases{ Ὥ \accdasiaoxia\textOmega{} \<'\textOmega{} \ux{\<'Ω \'<Ω} {\<'W <'W} } \\ + x1F6E \Cases{ Ὦ \accpsiliperispomeni\textOmega{} \~>\textOmega{} \ux{\>~Ω \~>Ω} {\>~W >~W} } \\ + x1F6F \Cases{ Ὧ \accdasiaperispomeni\textOmega{} \~<\textOmega{} \ux{\<~Ω \~<Ω} {\<~W <~W} } \\ + \\ + x1F70 \Cases{ ὰ \accvaria\textalpha{} \`\textalpha{} \ux{\`α} {\`a `a} } \\ + x1F71 \Cases{ ά \accoxia\textalpha{} \'\textalpha{} \ux{\'α} {\'a 'a} } \\ + x1F72 \Cases{ ὲ \accvaria\textepsilon{} \`\textepsilon{} \ux{\`ε} {\`e `e} } \\ + x1F73 \Cases{ έ \accoxia\textepsilon{} \'\textepsilon{} \ux{\'ε} {\'e 'e} } \\ + x1F74 \Cases{ ὴ \accvaria\texteta{} \`\texteta{} \ux{\`η} {\`h `h} } \\ + x1F75 \Cases{ ή \accoxia\texteta{} \'\texteta{} \ux{\'η} {\'h 'h} } \\ + x1F76 \Cases{ ὶ \accvaria\textiota{} \`\textiota{} \ux{\`ι} {\`i `i} } \\ + x1F77 \Cases{ ί \accoxia\textiota{} \'\textiota{} \ux{\'ι} {\'i 'i} } \\ + x1F78 \Cases{ ὸ \accvaria\textomicron{} \`\textomicron{} \ux{\`ο} {\`o `o} } \\ + x1F79 \Cases{ ό \accoxia\textomicron{} \'\textomicron{} \ux{\'ο} {\'o 'o} } \\ + x1F7A \Cases{ ὺ \accvaria\textupsilon{} \`\textupsilon{} \ux{\`υ} {\`u `u} } \\ + x1F7B \Cases{ ύ \accoxia\textupsilon{} \'\textupsilon{} \ux{\'υ} {\'u 'u} } \\ + x1F7C \Cases{ ὼ \accvaria\textomega{} \`\textomega{} \ux{\`ω} {\`w `w} } \\ + x1F7D \Cases{ ώ \accoxia\textomega{} \'\textomega{} \ux{\'ω} {\'w 'w} } \\ + \\ + x1F80 \Cases{ ᾀ \accpsili\textalpha\ypogegrammeni{} \>\textalpha\ypogegrammeni{} \ux{\>α\ypogegrammeni{}} {\>a| >a|} } \\ + x1F81 \Cases{ ᾁ \accdasia\textalpha\ypogegrammeni{} \<\textalpha\ypogegrammeni{} \ux{\<α\ypogegrammeni{}} {\<a| <a|} } \\ + x1F82 \Cases{ ᾂ \accpsilivaria\textalpha\ypogegrammeni{} \>`\textalpha\ypogegrammeni{} \ux{\>`α\ypogegrammeni{}} {\>`a| >`a|} } \\ + x1F83 \Cases{ ᾃ \accdasiavaria\textalpha\ypogegrammeni{} \<`\textalpha\ypogegrammeni{} \ux{\<`α\ypogegrammeni{}} {\<`a| <`a|} } \\ + x1F84 \Cases{ ᾄ \accpsilioxia\textalpha\ypogegrammeni{} \>'\textalpha\ypogegrammeni{} \ux{\>'α\ypogegrammeni{}} {\>'a| >'a|} } \\ + x1F85 \Cases{ ᾅ \accdasiaoxia\textalpha\ypogegrammeni{} \<'\textalpha\ypogegrammeni{} \ux{\<'α\ypogegrammeni{}} {\<'a| <'a|} } \\ + x1F86 \Cases{ ᾆ \accpsiliperispomeni\textalpha\ypogegrammeni{} \~>\textalpha\ypogegrammeni{} \ux{\~>α\ypogegrammeni{}} {\>~a| >~a|} } \\ + x1F87 \Cases{ ᾇ \accdasiaperispomeni\textalpha\ypogegrammeni{} \~<\textalpha\ypogegrammeni{} \ux{\~<α\ypogegrammeni{}} {\<~a| <~a|} } \\ + x1F88 \Cases{ ᾈ \accpsili\textAlpha\ypogegrammeni{} \>\textAlpha\ypogegrammeni{} \ux{\>Α\ypogegrammeni{}} {\>A| >A|} } \\ + x1F89 \Cases{ ᾉ \accdasia\textAlpha\ypogegrammeni{} \<\textAlpha\ypogegrammeni{} \ux{\<Α\ypogegrammeni{}} {\<A| <A|} } \\ + x1F8A \Cases{ ᾊ \accpsilivaria\textAlpha\ypogegrammeni{} \>`\textAlpha\ypogegrammeni{} \ux{\>`Α\ypogegrammeni{}} {\>`A| >`A|} } \\ + x1F8B \Cases{ ᾋ \accdasiavaria\textAlpha\ypogegrammeni{} \<`\textAlpha\ypogegrammeni{} \ux{\<`Α\ypogegrammeni{}} {\<`A| <`A|} } \\ + x1F8C \Cases{ ᾌ \accpsilioxia\textAlpha\ypogegrammeni{} \>'\textAlpha\ypogegrammeni{} \ux{\>'Α\ypogegrammeni{}} {\>'A| >'A|} } \\ + x1F8D \Cases{ ᾍ \accdasiaoxia\textAlpha\ypogegrammeni{} \<'\textAlpha\ypogegrammeni{} \ux{\<'Α\ypogegrammeni{}} {\<'A| <'A|} } \\ + x1F8E \Cases{ ᾎ \accpsiliperispomeni\textAlpha\ypogegrammeni{} \~>\textAlpha\ypogegrammeni{} \ux{\~>Α\ypogegrammeni{}} {\>~A| >~A|} } \\ + x1F8F \Cases{ ᾏ \accdasiaperispomeni\textAlpha\ypogegrammeni{} \~<\textAlpha\ypogegrammeni{} \ux{\~<Α\ypogegrammeni{}} {\<~A| <~A|} } \\ + \\ + x1F90 \Cases{ ᾐ \accpsili\texteta\ypogegrammeni{} \>\texteta\ypogegrammeni{} \ux{\>η\ypogegrammeni{}} {\>h| >h|} } \\ + x1F91 \Cases{ ᾑ \accdasia\texteta\ypogegrammeni{} \<\texteta\ypogegrammeni{} \ux{\<η\ypogegrammeni{}} {\<h| <h|} } \\ + x1F92 \Cases{ ᾒ \accpsilivaria\texteta\ypogegrammeni{} \>`\texteta\ypogegrammeni{} \ux{\>`η\ypogegrammeni{}} {\>`h| >`h|} } \\ + x1F93 \Cases{ ᾓ \accdasiavaria\texteta\ypogegrammeni{} \<`\texteta\ypogegrammeni{} \ux{\<`η\ypogegrammeni{}} {\<`h| <`h|} } \\ + x1F94 \Cases{ ᾔ \accpsilioxia\texteta\ypogegrammeni{} \>'\texteta\ypogegrammeni{} \ux{\>'η\ypogegrammeni{}} {\>'h| >'h|} } \\ + x1F95 \Cases{ ᾕ \accdasiaoxia\texteta\ypogegrammeni{} \<'\texteta\ypogegrammeni{} \ux{\<'η\ypogegrammeni{}} {\<'h| <'h|} } \\ + x1F96 \Cases{ ᾖ \accpsiliperispomeni\texteta\ypogegrammeni{} \~>\texteta\ypogegrammeni{} \ux{\~>η\ypogegrammeni{}} {\>~h| >~h|} } \\ + x1F97 \Cases{ ᾗ \accdasiaperispomeni\texteta\ypogegrammeni{} \~<\texteta\ypogegrammeni{} \ux{\~<η\ypogegrammeni{}} {\<~h| <~h|} } \\ + x1F98 \Cases{ ᾘ \accpsili\textEta\ypogegrammeni{} \>\textEta\ypogegrammeni{} \ux{\>Η\ypogegrammeni{}} {\>H| >H|} } \\ + x1F99 \Cases{ ᾙ \accdasia\textEta\ypogegrammeni{} \<\textEta\ypogegrammeni{} \ux{\<Η\ypogegrammeni{}} {\<H| <H|} } \\ + x1F9A \Cases{ ᾚ \accpsilivaria\textEta\ypogegrammeni{} \>`\textEta\ypogegrammeni{} \ux{\>`Η\ypogegrammeni{}} {\>`H| >`H|} } \\ + x1F9B \Cases{ ᾛ \accdasiavaria\textEta\ypogegrammeni{} \<`\textEta\ypogegrammeni{} \ux{\<`Η\ypogegrammeni{}} {\<`H| <`H|} } \\ + x1F9C \Cases{ ᾜ \accpsilioxia\textEta\ypogegrammeni{} \>'\textEta\ypogegrammeni{} \ux{\>'Η\ypogegrammeni{}} {\>'H| >'H|} } \\ + x1F9D \Cases{ ᾝ \accdasiaoxia\textEta\ypogegrammeni{} \<'\textEta\ypogegrammeni{} \ux{\<'Η\ypogegrammeni{}} {\<'H| <'H|} } \\ + x1F9E \Cases{ ᾞ \accpsiliperispomeni\textEta\ypogegrammeni{} \~>\textEta\ypogegrammeni{} \ux{\~>Η\ypogegrammeni{}} {\>~H| >~H|} } \\ + x1F9F \Cases{ ᾟ \accdasiaperispomeni\textEta\ypogegrammeni{} \~<\textEta\ypogegrammeni{} \ux{\~<Η\ypogegrammeni{}} {\<~H| <~H|} } \\ + \\ + x1FA0 \Cases{ ᾠ \accpsili\textomega\ypogegrammeni{} \>\textomega\ypogegrammeni{} \ux{\>ω\ypogegrammeni{}} {\>w| >w|} } \\ + x1FA1 \Cases{ ᾡ \accdasia\textomega\ypogegrammeni{} \<\textomega\ypogegrammeni{} \ux{\<ω\ypogegrammeni{}} {\<w| <w|} } \\ + x1FA2 \Cases{ ᾢ \accpsilivaria\textomega\ypogegrammeni{} \>`\textomega\ypogegrammeni{} \ux{\>`ω\ypogegrammeni{}} {\>`w| >`w|} } \\ + x1FA3 \Cases{ ᾣ \accdasiavaria\textomega\ypogegrammeni{} \<`\textomega\ypogegrammeni{} \ux{\<`ω\ypogegrammeni{}} {\<`w| <`w|} } \\ + x1FA4 \Cases{ ᾤ \accpsilioxia\textomega\ypogegrammeni{} \>'\textomega\ypogegrammeni{} \ux{\>'ω\ypogegrammeni{}} {\>'w| >'w|} } \\ + x1FA5 \Cases{ ᾦ \accdasiaoxia\textomega\ypogegrammeni{} \<'\textomega\ypogegrammeni{} \ux{\<'ω\ypogegrammeni{}} {\<'w| <'w|} } \\ + x1FA6 \Cases{ ᾧ \accpsiliperispomeni\textomega\ypogegrammeni{} \~>\textomega\ypogegrammeni{} \ux{\~>ω\ypogegrammeni{}} {\>~w| >~w|} } \\ + x1FA7 \Cases{ ᾥ \accdasiaperispomeni\textomega\ypogegrammeni{} \~<\textomega\ypogegrammeni{} \ux{\~<ω\ypogegrammeni{}} {\<~w| <~w|} } \\ + x1FA8 \Cases{ ᾨ \accpsili\textOmega\ypogegrammeni{} \>\textOmega\ypogegrammeni{} \ux{\>Ω\ypogegrammeni{}} {\>W| >W|} } \\ + x1FA9 \Cases{ ᾩ \accdasia\textOmega\ypogegrammeni{} \<\textOmega\ypogegrammeni{} \ux{\<Ω\ypogegrammeni{}} {\<W| <W|} } \\ + x1FAA \Cases{ ᾪ \accpsilivaria\textOmega\ypogegrammeni{} \>`\textOmega\ypogegrammeni{} \ux{\>`Ω\ypogegrammeni{}} {\>`W| >`W|} } \\ + x1FAB \Cases{ ᾫ \accdasiavaria\textOmega\ypogegrammeni{} \<`\textOmega\ypogegrammeni{} \ux{\<`Ω\ypogegrammeni{}} {\<`W| <`W|} } \\ + x1FAC \Cases{ ᾬ \accpsilioxia\textOmega\ypogegrammeni{} \>'\textOmega\ypogegrammeni{} \ux{\>'Ω\ypogegrammeni{}} {\>'W| >'W|} } \\ + x1FAD \Cases{ ᾭ \accdasiaoxia\textOmega\ypogegrammeni{} \<'\textOmega\ypogegrammeni{} \ux{\<'Ω\ypogegrammeni{}} {\<'W| <'W|} } \\ + x1FAE \Cases{ ᾮ \accpsiliperispomeni\textOmega\ypogegrammeni{} \~>\textOmega\ypogegrammeni{} \ux{\~>Ω\ypogegrammeni{}} {\>~W| >~W|} } \\ + x1FAF \Cases{ ᾯ \accdasiaperispomeni\textOmega\ypogegrammeni{} \~<\textOmega\ypogegrammeni{} \ux{\~<Ω\ypogegrammeni{}} {\<~W| <~W|} } \\ + \\ + x1FB0 \Cases{ ᾰ \u\textalpha{} \u\textalpha{} \ux{\u{α}} {\u{a} \u{a}} } \\ + x1FB1 \Cases{ ᾱ \=\textalpha{} \=\textalpha{} \ux{\=α} {\=a \=a} } \\ + x1FB2 \Cases{ ᾲ \accvaria\textalpha\ypogegrammeni{} \`\textalpha\ypogegrammeni{} \ux{\`α\ypogegrammeni{}} {\`a| `a|} } \\ + x1FB3 \Cases{ ᾳ \textalpha\ypogegrammeni{} \textalpha\ypogegrammeni{} \ux{α\ypogegrammeni{}} {a| a|} } \\ + x1FB4 \Cases{ ᾴ \accoxia\textalpha\ypogegrammeni{} \'\textalpha\ypogegrammeni{} \ux{\'α\ypogegrammeni{}} {\'a| 'a|} } \\ + x1FB6 \Cases{ ᾶ \accperispomeni\textalpha{} \~\textalpha{} \ux{\~α} {\~a ~a} } \\ + x1FB7 \Cases{ ᾷ \accperispomeni\textalpha\ypogegrammeni{} \~\textalpha\ypogegrammeni{} \ux{\~α\ypogegrammeni{}} {\~a| ~a|} } \\ + x1FB8 \Cases{ Ᾰ \u\textAlpha{} \u\textAlpha{} \ux{\u{Α}} {\u{A} \u{A}} } \\ + x1FB9 \Cases{ Ᾱ \=\textAlpha{} \=\textAlpha{} \ux{\=Α} {\=A \=A} } \\ + x1FBA \Cases{ Ὰ \accvaria\textAlpha{} \`\textAlpha{} \ux{\`Α} {\`A `A} } \\ + x1FBB \Cases{ Ά \accoxia\textAlpha{} \'\textAlpha{} \ux{\'Α} {\'A 'A} } \\ + x1FBC \Cases{ ᾼ \textAlpha\ypogegrammeni{} \textAlpha\ypogegrammeni{} \ux{Α\ypogegrammeni{}} {A| A|} } \\ + x1FBD \Cases{ ᾽ \accpsili{} \>{} \ux{\>{}} {\>{} >} } \\ + x1FBE \Cases{ ι \prosgegrammeni{} \prosgegrammeni{} \ux{\prosgegrammeni{}} {| |} } \\ + x1FBF \Cases{ ᾿ \accpsili{} \>{} \ux{\>{}} {\>{} >} } \\ + \\ + x1FC0 \Cases{ ῀ \accperispomeni{} \~{} \ux{\~{}} {\~{} ~} } \\ + x1FC1 \Cases{ ῁ \accdialytikaperispomeni{} \"\~{} \ux{\"\~{} \~\"{}} {\"~{} "~} } \\ + x1FC2 \Cases{ ῂ \accvaria\texteta\ypogegrammeni{} \`\texteta\ypogegrammeni{} \ux{\`η\ypogegrammeni{}} {\`h| `h|} } \\ + x1FC3 \Cases{ ῃ \texteta\ypogegrammeni{} \texteta\ypogegrammeni{} \ux{η\ypogegrammeni{}} {h| h|} } \\ + x1FC4 \Cases{ ῄ \accoxia\texteta\ypogegrammeni{} \'\texteta\ypogegrammeni{} \ux{\'η\ypogegrammeni{}} {\'h| 'h|} } \\ + x1FC6 \Cases{ ῆ \accperispomeni\texteta{} \~\texteta{} \ux{\~η} {\~h ~h} } \\ + x1FC7 \Cases{ ῇ \accperispomeni\texteta\ypogegrammeni{} \~\texteta\ypogegrammeni{} \ux{\~η\ypogegrammeni{}} {\~h| ~h|} } \\ + x1FC8 \Cases{ Ὲ \accvaria\textEpsilon{} \`\textEpsilon{} \ux{\`Ε} {\`E `E} } \\ + x1FC9 \Cases{ Έ \accoxia\textEpsilon{} \'\textEpsilon{} \ux{\'Ε} {\'E 'E} } \\ + x1FCA \Cases{ Ὴ \accvaria\textEta{} \`\textEta{} \ux{\`Η} {\`H `H} } \\ + x1FCB \Cases{ Ή \accoxia\textEta{} \'\textEta{} \ux{\'Η} {\'H 'H} } \\ + x1FCC \Cases{ ῌ \textEta\ypogegrammeni{} \textEta\ypogegrammeni{} \ux{Η\ypogegrammeni{}} {H| H|} } \\ + x1FCD \Cases{ ῍ \accpsilivaria{} \>`{} \ux{\>`{} \`>{}} {\>`{} >`} } \\ + 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{\`{}} {\`{} `} } \\ + \\ + x1FE3 \Cases{ ῲ \accvaria\textomega\ypogegrammeni{} \`\textomega\ypogegrammeni{} \ux{\`ω\ypogegrammeni{}} {\`w| `w|} } \\ + x1FE4 \Cases{ ῳ \textomega\ypogegrammeni{} \textomega\ypogegrammeni{} \ux{ω\ypogegrammeni{}} {w| w|} } \\ + x1FE5 \Cases{ ῴ \accoxia\textomega\ypogegrammeni{} \'\textomega\ypogegrammeni{} \ux{\'ω\ypogegrammeni{}} {\'w| 'w|} } \\ + x1FE6 \Cases{ ῶ \accperispomeni\textomega{} \~\textomega{} \ux{\~ω} {\~w ~w} } \\ + x1FE7 \Cases{ ῷ \accperispomeni\textomega\ypogegrammeni{} \~\textomega\ypogegrammeni{} \ux{\~ω\ypogegrammeni{}} {\~w| ~w|} } \\ + x1FE8 \Cases{ Ὸ \accvaria\textOmicron{} \`\textOmicron{} \ux{\`Ο} {\`O `O} } \\ + x1FE9 \Cases{ Ό \accoxia\textOmicron{} \'\textOmicron{} \ux{\'Ο} {\'O 'O} } \\ + x1FEA \Cases{ Ὼ \accvaria\textOmega{} \`\textOmega{} \ux{\`Ω} {\`W `W} } \\ + x1FEB \Cases{ Ώ \accoxia\textOmega{} \'\textOmega{} \ux{\'Ω} {\'W 'W} } \\ + x1FEC \Cases{ ῼ \textOmega\ypogegrammeni{} \textOmega\ypogegrammeni{} \ux{Ω\ypogegrammeni{}} {W| W|} } \\ + x1FED \Cases{ ´ \accoxia{} \'{} \ux{\'{}} {\'{} '} } \\ + x1FEE \Cases{ ῾ \accdasia{} \<{} \ux{\<{}} {\<{} <} } +\end{longtable} + + +\section{Discussion} + +\subsection{Differences between literal input and LICRs} + +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''} + +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{ΣΣ}}. + +Since 2022, \cs{MakeLowercase} selects the correct sigma variant for a +literal Sigma under Xe/LuaTeX, too. + +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: +\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{ΣΣ}}. + + +\subsubsection{% + The one-letter word + \ifx\captionsgreek\captionspolutonikogreek + \emph{ἢ} + \else + \emph{ή} + \fi + (or)} + +For disambiguation, the Greek word \emph{or} (ή / ἢ) keeps diacritics in +UPPERCASE: + +\TestUppercase{ή Ή ἢ Ἢ ἤ Ἤ }.\footnote{ + TODO: The polytonic variant 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: +\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} + +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}}}.} + +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). + +ΐΰὐὒὔὖᾶᾷῆῇῒΐῖῗῢΰῤῦῧῶῷ → \MakeUppercase{ΐΰὐὒὔὖᾶᾷῆῇῒΐῖῗῢΰῤῦῧῶῷ} + + +\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''). +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{% +\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. + +\smallskip\noindent +Test the handling of symbol variants in text + +literal letter, LICR, \cs{var<name>}, \cs{<name>symbol}, literal symbol: + +\newcommand{\symbolvariants}{ + β\textbeta \textvarbeta \textbetasymbol ϐ + ε\textepsilon \textvarepsilon \textepsilonsymbol ϵ + θ\texttheta \textvartheta \textthetasymbol ϑ + Θ\textTheta \textvarTheta \textThetasymbol ϴ + κ\textkappa \textvarkappa \textkappasymbol ϰ + π\textpi \textvarpi \textpisymbol ϖ + ρ\textrho \textvarrho \textrhosymbol ϱ + φ\textphi \textvarphi \textphisymbol ϕ +} + +\noindent +No case change +\begin{quote} + \Greek{\symbolvariants} +\end{quote} +% +MakeUppercase selects the matching capital letter: + +\begin{center} + \Greek{\MakeUppercase{\symbolvariants}} +\end{center} + +\noindent +MakeLowercase selects the lowercase letter (not the symbol): +\begin{quote} + \Greek{ + \MakeLowercase{\textBeta Β \textEpsilon Ε + \textTheta Θ \textThetasymbol \textvarTheta ϴ + \textKappa Κ \textPi Π \textRho Ρ \textPhi Φ}}. +\end{quote} +LGR provides two lowercase variants of the archaic letter \emph{stigma}. +Both map to GREEK LETTER STIGMA \ensuregreek{Ϛ}. + +The lowercase of \ensuregreek{Ϛ} is \ensuregreek{\MakeLowercase{Ϛ}} +(\verb|\textstigma|), not \verb|\textvarstigma|% +\ifdefined \UnicodeEncodingName \else + (\ensuregreek\textvarstigma)% +\fi . + + +\subsection{Hiatus} + +Tonos and psili mark a \emph{hiatus} (break-up) if placed on +the first of two vowels that would otherwise form a diphthong. +A dialytika must be placed on the second vowel if they are dropped: + +\begin{quote} + \TestUppercase{άι άυ έι ἄι ἄυ ἔι ἀυ} (literal) + + \TestUppercase{\acctonos\textalpha\textiota{} + \acctonos\textalpha\textupsilon{} + \acctonos\textepsilon\textiota{} + \accpsilioxia\textalpha\textiota{} + \accpsilioxia\textalpha\textupsilon{} + \accpsilioxia\textepsilon\textiota{} + \accpsili\textalpha\textupsilon{} + } (named+LICR) + + \TestUppercase{\'\textalpha\textiota{} \'\textalpha\textupsilon{} + \'\textepsilon\textiota{} \>'\textalpha\textiota{} + \>'\textalpha\textupsilon{} \>'\textepsilon\textiota{} + \>\textalpha\textupsilon{} + } (short+LICR) + + \TestUppercase{\ux{\'αι \'αυ \'ει \>'αι \>'αυ \>'ει \>αυ} + {\'ai \'au \'ei \>'ai \>'au \>'ei \>au} + } (short+\ux{literal}{transliteration}) + + \TestUppercase{\ux{\'>αι \'>αυ \'>ει \'\>αι \'\>αυ \'\>ει} + {\'>ai \'>au \'>ei \'\>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 +\cs{MakeUppercase} implementation changes. +Since 2023 it also works with polytonic literals (\TestUppercase{ἀυπνία}). + +% Very occasionally, one will see "internal breathings" in transliterations of +% foreign names, e.g., \TestUppercase{Ἀβραἅμ} for Abraham. + +% The remainder is only relevant with 8-bit TeX: +\ux{\end{document}}{} + +Test the auto-hiatus feature for side-effects: + +\Greek{\MakeUppercase{\'α β}} (must keep space after Α). + +Kerning (compare with source): +\newcommand*\md{\textcompwordmark} +\newcommand*\MU{\MakeUppercase} + +\begin{quote} + \selectlanguage{greek} + \raggedright + \md \MU{ AO AY AI AU RA OA UA DU} [ \\ + \<\md \MU{ \<AO \<AY \<AI \<AU \<RA \<OA U\<A D\<U} [ \\ + \>\md \MU{ \>AO \>AY \>AI \>AU \>RA \>OA U\>A D\>U} [ \\ + \>'\md\MU{ \>'AO \>'AY \>'AI \>'AU \>'RA \>'OA U\>'A D\>'U} [ \\ + \'\md \MU{ \'AO \'AY \'AI \'AU \'RA \'OA U\'A D\'U} [ \\ + \>`\md\MU{ \>`AO \>`AY \>`AI \>`AU \>`RA \>`OA U\>`A D\>`U} [ \\ + \<'\md\MU{ \<'AO \<'AY \<'AI \<'AU \<'RA \<'OA U\<'A D\<'U} [ \\ + \`\md \MU{ \`AO \`AY \`AI \`AU \`RA \`OA U\`A D\`U} [ \\ + \<`\md\MU{ \<`AO \<`AY \<`AI \<`AU \<`RA \<`OA U\<`A D\<`U} [ \\ + \~\md \MU{ \~AO \~AY \~AI \~AU \~RA \~OA U\~A D\~U} [ \\ + \~>\md\MU{ \~>AO \~>AY \~>AI \~>AU \~>RA \~>OA U\~>A D\~>U} [ \\ + \~<\md\MU{ \~<AO \~<AY \~<AI \~<AU \~<RA \~<OA U\~<A D\~<U} [ \\ + \~<\md\MU{ \~<ao \~<ay \~<ai \~<au \~<ra \~<oa u\~<a d\~<u} [ \\ + \"\md \MU{ AO AY A\"I A\"U RA OA \"UA DU} [ \\ + % Like in any font encoding, there is no kerning for + % non-defined accent-letter-combinations (dialytica on \Greek{A O D}). + % \"\md \MU{ \"AO \"AY \"AI \"AU \"RA \"OA U\"A D\"U} [ \\ + % \"~\md\MU{ \~"AO \~"AY \~"AI \~"AU \~"RA \~"OA U\~"A D\~"U} [ \\ +\end{quote} + +Rows 3 \ldots 7: Look-ahead (to check for a hiatus) breaks kerning before +`A' with tonos or psili. + +% \'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): +\Greek{'A \"I \"U \~<A $\mapsto$ \MakeLowercase{\'A \"I \"U \~<A}}. + + +\subsection{Problems with the Latin transliteration} + +\begin{itemize} +\item + With monotonic Greek or if \cs{greekfontencoding} is not LGR, the + tilde \verb|~| keeps its default expansion as no-break space (NBSP) and + transliterations involving \verb|~| fail. + If the \texttt{greek} language is loaded with Babel, the tilde accent + \verb|\~| as well as combined accents involving the tilde work in all + language variants. + +\item + In order to drop accents from input using the Latin transliteration, the + characters ', `, \~{}, <, and > are suppressed in uppercase. This affects + other uses of these characters: + \begin{quote} + \TestUppercase{\lgrfont{(( ` ' ~ < > ))}}\qquad + \TestUppercase{\lgrfont{``x''}} + \end{quote} + Workaround: use literal typographical quote characters or ``french'' quotes: + \begin{quote} + \TestUppercase{\lgrfont{‘x’}} \qquad + \TestUppercase{\lgrfont{((x))}} + \end{quote} + To keep side-effects to a minimum, breathings, combined accents and + varia are dropped only with the language variants \emph{polutoniko} + or \emph{ancient} as they are not required with monotonic Greek + (the current language variant is \GreekLanguageVariant). + +\item + The uppercase of spacing composite diacritics including + a dialytika \verb|"~ "` "'| appears as apostrophe, as a single \verb|"| + stands for an apostrophe in the LGR transliteration if followed by a + space or empty character. + +\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 36168a1204..a4e4cb9184 100644 --- a/language/greek/greek-fontenc/greek-fontenc-doc.html +++ b/language/greek/greek-fontenc/greek-fontenc-doc.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.20.2b.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 – 2023 Günter Milde <milde@users.sf.net>" /> <title>greek-fontenc</title> @@ -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.3 (<a class="reference internal" href="#changelog">changelog</a>)</dd> +<dd class="version">2.4 (<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 <<a class="reference external" href="mailto:milde@users.sf.net">milde@users.sf.net</a>></dd> <dt class="licence">Licence<span class="colon">:</span></dt> @@ -811,7 +811,7 @@ 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="footnote-reference superscript" href="#footnote-1" id="footnote-reference-1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a> macros +<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>Included are also the LaTeX packages <a class="reference internal" href="#textalpha">textalpha</a> and <a class="reference internal" href="#alphabeta">alphabeta</a>.</p> @@ -865,7 +865,7 @@ Use cases are macro definitions and generated text.</p> <h3><a class="toc-backref" href="#toc-entry-2" role="doc-backlink">Packages</a></h3> <dl class="simple" 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="footnote-reference superscript" href="#footnote-2" id="footnote-reference-2" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a> +<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> @@ -922,21 +922,27 @@ 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 class="simple"> -<dt>LGR test and usage example</dt> -<dd><p><a class="reference external" href="test-lgrenc.tex">test-lgrenc.tex</a>, <a class="reference external" href="test-lgrenc.pdf">test-lgrenc.pdf</a></p> +<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> </dd> -<dt>TU test and usage example</dt> -<dd><p><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></p> +<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> </dd> -<dt><a class="reference external" href="https://ctan.org/pkg/hyperref">Hyperref</a> test and usage example</dt> -<dd><p><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> +<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> </dd> -<dt>Test LICRs with non-Greek legacy 8-bit input encoding</dt> -<dd><p><a class="reference external" href="test-licr-input.tex">test-licr-input.tex</a>, <a class="reference external" href="test-licr-input.pdf">test-licr-input.pdf</a></p> +<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> </dd> -<dt>Test Greek diacritics with standard accent macros</dt> -<dd><p><a class="reference external" href="test-diacritics.tex">test-diacritics.tex</a>, <a class="reference external" href="test-diacritics.pdf">test-diacritics.pdf</a></p> +<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> +</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> </dd> </dl> </section> @@ -980,7 +986,7 @@ hyphenation and other localizations (see <a class="reference external" href="htt and/or the <a class="reference external" href="textalpha.sty.html#keep-semicolon">keep-semicolon</a> option to use the <a class="reference external" href="textalpha.sty.html#semicolon-as-erotimatiko">semicolon as erotimatiko</a> also in LGR</p> <pre class="literal-block">\usepackage[normalize-symbols,keep-semicolon]{textalpha}</pre> -<p>This sets up LICR macros for Greek text charactes under both, 8-bit TeX +<p>This sets up LICR macros for Greek text characters under both, 8-bit TeX and Xe-/LuaTeX. For details see <a class="reference external" href="textalpha-doc.tex">textalpha-doc.tex</a> and <a class="reference external" href="textalpha-doc.pdf">textalpha-doc.pdf</a> (8-bit TeX) as well as <a class="reference external" href="test-tuenc-greek.tex">test-tuenc-greek.tex</a> and <a class="reference external" href="test-tuenc-greek.pdf">test-tuenc-greek.pdf</a> @@ -1046,11 +1052,13 @@ 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 <a class="reference external" href="https://ctan.org/pkg/substitutefont">substitutefont</a> package.</p> +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> <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-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> +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>). @@ -1062,7 +1070,7 @@ Unicode (with XeTeX or LuaTeX).</p> <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-6" role="doc-biblioref">[babel-patch]</a>). +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> @@ -1070,7 +1078,7 @@ setup (without any LICR macros or composite definitions).</p> <section id="tu"> <h3><a class="toc-backref" href="#toc-entry-13" 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-7" 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-8" role="doc-biblioref">[ltnews26]</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>, @@ -1079,8 +1087,8 @@ the <a class="reference external" href="https://ctan.org/pkg/gfs">GFS fonts</a>, 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 -suboptimal placing of some diactritics, especially the sub-iota (becoming -unintelligable in combination with small letter eta). This issue if fixed +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> <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> @@ -1206,7 +1214,7 @@ characters.</p> <ul class="simple"> <li><p>Greek names like in Unicode, and <span class="docutils literal">ucsencs.def</span>, and</p></li> <li><p>the prefix <span class="docutils literal">\acc</span> to distinguish the macros as <cite>TextAaccent</cite> and -reduce the risc of name clashes with spacing characters.</p></li> +reduce the risk of name clashes with spacing characters.</p></li> </ul> <p>For the end-user “symbol macros” (<span class="docutils literal">\~ \' \` \" \"' \"` ...</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">\<</span> and <span class="docutils literal">\></span> for @@ -1225,7 +1233,7 @@ font encoding.</p> <span class="docutils literal">\var<lettername></span> macros (variant macros for ϴ, ϐ, and ϰ require additional packages).</p> <p>Unicode defines separate code points for the symbol variants for use in -mathematical context.<a class="footnote-reference superscript" href="#footnote-3" id="footnote-reference-3" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a> Unfortunately, the mapping between Unicode’s +mathematical context.<a class="superscript" href="#footnote-3" id="footnote-reference-3" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a> Unfortunately, the mapping between Unicode’s letter/symbol distinction and “normal”/variant in TeX is inconsistent.</p> <p><cite>greek-fontenc</cite> provides <span class="docutils literal">\text<lettername>symbol</span> LICR macros for the Greek symbol characters:</p> @@ -1295,7 +1303,7 @@ with XeTeX/LuaTeX.</p></li> <dt>0.11 (2013-11-28)</dt> <dd><ul class="simple"> <li><p>Compatibility with Xe/LuaTeX in 8-bit mode.</p></li> -<li><p><span class="docutils literal">\greekscript</span> <em>TextCommand</em> (cf. <a class="citation-reference" href="#encguide" id="citation-reference-8" role="doc-biblioref">[encguide]</a>).</p></li> +<li><p><span class="docutils literal">\greekscript</span> <em>TextCommand</em> (cf. <a class="citation-reference" href="#encguide" id="citation-reference-9" role="doc-biblioref">[encguide]</a>).</p></li> </ul> </dd> <dt>0.11.1 (2013-12-01)</dt> @@ -1407,6 +1415,12 @@ downcasing <span class="docutils literal">\textStigma</span> to <span class="doc <li><p>Upcase symbol variants also if input as LICR.</p></li> </ul> </dd> +<dt>2.4 (2023-08-15)</dt> +<dd><ul class="simple"> +<li><p>Fixes for the 2022 implementation of <span class="docutils literal">\MakeUppercase</span>.</p></li> +<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> </dl> </section> <section id="references"> @@ -1421,19 +1435,19 @@ Syropoulos and <span class="docutils literal"><span class="pre">xl-lgr.enc</span from the <a class="reference external" href="https://ctan.org/pkg/unicode">ucs</a> package.</p> <div role="list" class="citation-list"> <div class="citation" id="babel-patch" role="doc-biblioentry"> -<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">babel-patch</a><span class="fn-bracket">]</span></span> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-7">babel-patch</a><span class="fn-bracket">]</span></span> <p>Werner Lemberg, <cite>Unicode support for the Greek LGR 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-5">cbfonts</a><span class="fn-bracket">]</span></span> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-6">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-8">2</a>)</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> <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> @@ -1444,18 +1458,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-3">greek-usage</a><span class="fn-bracket">]</span></span> +<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> <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-7">ltnews26</a><span class="fn-bracket">]</span></span> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-8">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> +<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-4">teubner-doc</a><span class="fn-bracket">]</span></span> +<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> <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 fb6a647652..4b25969c0d 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.3 (changelog_) +:Version: 2.4 (changelog_) :Copyright: © 2010 -- 2023 Günter Milde <milde@users.sf.net> :Licence: This work may be distributed and/or modified under the @@ -90,20 +90,27 @@ with Docutils_ to the HTML documentation. Usage examples and test documents ================================= -LGR test and usage example - `<test-lgrenc.tex>`_, `<test-lgrenc.pdf>`_ +`<test-lgrenc.tex>`_ + LGR test and usage example. [`<test-lgrenc.pdf>`_] -TU test and usage example - `<test-tuenc-greek.tex>`_, `<test-tuenc-greek.pdf>`_ +`<test-tuenc-greek.tex>`_ + TU test and usage example. [`<test-tuenc-greek.pdf>`_] -Hyperref_ test and usage example - `<hyperref-with-greek.tex>`_, `<hyperref-with-greek.pdf>`_ +`<hyperref-with-greek.tex>`_ + Hyperref_ test and usage example. [`<hyperref-with-greek.pdf>`_] -Test LICRs with non-Greek legacy 8-bit input encoding - `<test-licr-input.tex>`_, `<test-licr-input.pdf>`_ +`<char-list.tex>`_ + List of Greek characters supported by `greek-fontenc`. [`<char-list.pdf>`_] -Test Greek diacritics with standard accent macros - `<test-diacritics.tex>`_, `<test-diacritics.pdf>`_ + Compares input variants and tests chase changing. + +`<test-licr-input.tex>`_ + Test LICRs with non-Greek legacy 8-bit input encoding. + [`<test-licr-input.pdf>`_] + +`<test-diacritics.tex>`_ + Test Greek diacritics with standard accent macros. + [`<test-diacritics.pdf>`_] Download and Installation @@ -167,7 +174,7 @@ textalpha_: \usepackage[normalize-symbols,keep-semicolon]{textalpha} - This sets up LICR macros for Greek text charactes under both, 8-bit TeX + This sets up LICR macros for Greek text characters under both, 8-bit TeX and Xe-/LuaTeX. For details see `<textalpha-doc.tex>`_ and `<textalpha-doc.pdf>`_ (8-bit TeX) as well as `<test-tuenc-greek.tex>`_ and `<test-tuenc-greek.pdf>`_ @@ -254,8 +261,9 @@ encoding definition file`_. Fonts in this encoding include the `CB fonts`_ (matching CM), grtimes_ (Greek Times), Kerkis_ (matching URW Bookman), DejaVu_, `Libertine GC`_, and the `GFS fonts`_. Setup of these fonts as Greek variant to -matching Latin fonts is facilitated by the substitutefont_ package. - +matching Latin fonts is facilitated by the +``\DeclareFontfamilySubstitution`` command added to the +LaTeX kernel in the 2020-02 release [ltnews31]_. The LGR font encoding allows to access Greek characters via an ASCII transliteration. This enables simple input with a Latin keyboard. @@ -295,8 +303,8 @@ fonts. Unfortunately, the fontspec_ default, `Latin Modern`_ misses most Greek characters. Older versions of LuaTeX did not apply the NFC normalization. This lead to -suboptimal placing of some diactritics, especially the sub-iota (becoming -unintelligable in combination with small letter eta). This issue if fixed +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. The legacy Unicode font encodings EU1 and EU2 for XeTeX and LuaTeX @@ -413,7 +421,7 @@ Currently, `greek-fontenc` uses for diacritics: - Greek names like in Unicode, and ``ucsencs.def``, and - the prefix ``\acc`` to distinguish the macros as `TextAaccent` and - reduce the risc of name clashes with spacing characters. + reduce the risk of name clashes with spacing characters. For the end-user "symbol macros" (``\~ \' \` \" \"' \"` ...``) are provided. (With textalpha_ or alphabeta_ also ``\<`` and ``\>`` for @@ -545,10 +553,12 @@ Changelog downcasing ``\textStigma`` to ``\textvarstigma``. 2.2.2 (2023-03-17) - Don't map active ``;`` to ``\textsemicolon`` in math mode. - 2.3 (2023-06-01) - Fix Unicode errors with pdfLaTeX and "new" (2023) ``\MakeUppercase``. - Upcase symbol variants also if input as LICR. +2.4 (2023-08-15) + - Fixes for the 2022 implementation of ``\MakeUppercase``. + - textalpha_: Map character 00B5 MICRO SIGN to ``\textmicro``. __ http://tex.stackexchange.com/questions/281631/greek-small-rho-with-dasia-and-also-psili-problem-with-accent-and-lgr-encodin .. _ltxbugs 4399: @@ -584,6 +594,8 @@ from the ucs_ package. https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf .. [ltnews26] LaTeX Project Team, `LaTeX News` Issue 26, January 2017. https://www.latex-project.org/news/latex2e-news/ltnews26.pdf +.. [ltnews31] `LaATeX News`, Issue 31, February 2020, p. 3: + https://www.latex-project.org/news/latex2e-news/ltnews31.pdf. .. [teubner-doc] Claudio Beccari, ``teubner.sty`` `An extension to the greek option of the babel package`, 2011. https://mirrors.ctan.org/macros/latex/contrib/teubner/teubner-doc.pdf diff --git a/language/greek/greek-fontenc/greek-fontenc.def b/language/greek/greek-fontenc/greek-fontenc.def index 23f21a9372..b9a89af3e4 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.3 (changelog_) +% :Version: 2.4 (changelog_) % % :Copyright: © 2013 -- 2023 Günter Milde % @@ -31,7 +31,7 @@ % :: \ProvidesFile{greek-fontenc.def} - [2023-06-01 2.3 Common Greek font encoding definitions] + [2023-08-15 2.4 Common Greek font encoding definitions] % ensuregreek, greekscript % ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -60,7 +60,7 @@ % ~~~~~~~ % % Aliases are defined via `DeclareTextCommand` so that up/downcasing works -% without the need for additional uclclist_ entries. +% without the need for additional @uclclist_ entries. % % % Names matching mathematical variant symbols:: @@ -141,11 +141,11 @@ % % .. code:: latex % -% \accdialyticavaria\textalpha, -% \accdialytica\accvaria\textalpha, -% \"\'\textalpha, -% \"'\textalpha, or -% \'"\textalpha. +% \accdialytikatonos\textupsilon, +% \accdialytika\acctonos\textupsilon, +% \"\'\textupsilon, +% \"'\textupsilon, or +% \'"\textupsilon. % % Separate definitions for the supported variants of the second input token % are required as composition is based on the non-expanded input @@ -246,7 +246,49 @@ \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\accperispomeni}{\accdasiaperispomeni} \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{\~}{\accdasiaperispomeni} -% .. _uclclist: +% 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 + + +% .. _@uclclist: % % Case changing % ~~~~~~~~~~~~~ @@ -285,7 +327,10 @@ % % The definition of an auxiliary, self-resetting macro makes this idempotent % (only the first use of this function will expand the ``@uclclist``). -% The second and third lines are TeX' way of writing ``uclclist += …`` +% The second and third lines are TeX' way of writing ``@uclclist += …`` +% +% The new ``\MakeUppercase`` expects the default for ambiguous mappings +% in first position, the old in last position. % % The ``\LGR@…`` auxiliary macros are defined below. % :: @@ -340,9 +385,10 @@ \textrho \textRho \textvarrho \textRho \textrhosymbol \textRho + \textautosigma \textSigma \textfinalsigma \textSigma + \textvarsigma \textSigma \textsigma \textSigma - \textautosigma \textSigma \texttau \textTau \textupsilon \textUpsilon \textphi \textPhi @@ -357,20 +403,33 @@ \textstigma \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 }% \let\update@uclc@with@greek\relax } -% Expand the uclc list using the just defined macro:: +% Expand the @uclclist using the just defined macro:: \update@uclc@with@greek % Substitution macros % """"""""""""""""""" % -% Drop diacritics (The argument passing ensures that kerning is preserved) :: +% Drop diacritics. +% The argument passing ensures that kerning is preserved and allows +% definition of CompositeCommands (cf. [fntguide]_) +% Composite definitions with the tilde prevent errors in monotonic Greek +% where the character ``~`` maps to a no-break space. +% :: \DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1} +\DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{~}{\LGR@accdropped} % Keep dialytika: Define a dummy alias so that downcasing with % ``\MakeLowercase`` does not convert a simple dialytika to a composite @@ -392,22 +451,36 @@ \DeclareTextCommand{\LGR@Stigma}{\LastDeclaredEncoding}{\textStigma} -% Mark hiatus -% """"""""""" + +% Hiatus +% """""" +% +% Tonos and psili mark a hiatus if placed on the first vowel of a diphthong +% (ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the second vowel if they are +% dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, ἀυπνία → ΑΫΠΝΙΑ). +% +% The `@uclclist extension`_ converts tonos, psili, and psili-oxia accents to +% ``\LGR@hiatus``. They should be dropped (as well as the second character of +% composite diacritics like ``\'<`` or ``\>~``). % -% Tonos and dasia mark a hiatus if placed on the -% first vowel of a diphthong (ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the -% second vowel if they are dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, -% ἀυπνία → ΑΫΠΝΙΑ):: +% If the next character is an Alpha or Epsilon, we call commands that place +% a dialytika on a subsequent Iota or Upsilon (defined in the font +% encoding files). The font encoding file must also handle the cases when +% ``\LGR@hiatus`` is followed by literal characters for Alpha or Epsilon +% (see lgrenc.def_) for an example). +% :: \DeclareTextCommand{\LGR@hiatus}{\LastDeclaredEncoding}[1]{#1} +\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{'}{\LGR@hiatus} +\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{`}{\LGR@accdropped} +\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{~}{\LGR@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{>}{\LGR@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{<}{\LGR@accdropped} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{\textAlpha}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{\textEpsilon}{\LGR@E@hiatus} -% The font encoding file must define the ``\LGR@hiatus`` TextCommand. See -% ``lgrenc.def`` for an example. +% Test next character +% """"""""""""""""""" % % The following macro can be used to test if the next character is an Alpha or % Epsilon. As ``\@ifnextchar`` gobbles spaces the lookahead macro definition @@ -415,7 +488,6 @@ % % This macro is a variant of LaTeX’s ``\@ifnextchar``, macro % that does not skip over spaces. -% % :: \providecommand*{\LGR@ifnextchar}[3]{% @@ -439,19 +511,23 @@ % 0.11 2013-11-28 ``\greekscript`` TextCommand % 0.12 2014-12-12 Remove symbol macros for breathing accents. % 0.13 2015-08-04 No @uclclist entry for ypogegrammeni/prosgegrammeni. -% 0.13.4 2019-07-10 ``@uclclist`` entry for ``\prosgegrammeni``. +% 0.13.4 2019-07-10 @uclclist entry for ``\prosgegrammeni``. % 1.0 2020-09-25 ``\textKoppagreek`` and ``\textstigmagreek`` aliases. % 2.0 2020/10/30 Alias definitions matching mathematical variant symbols. % 2.2 2023-02-28 Add missing accent composite commands. -% 2.2.1 2023-03-08 ``@uclclist`` entry for ``\accoxia``, prevent +% 2.2.1 2023-03-08 @uclclist entry for ``\accoxia``, prevent % downcasing ``\textStigma`` to ``\textvarstigma``. -% 2.3 2023-06-01 ``@uclclist`` entries for symbol variants. +% 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 ``~``. % ====== ============ ======================================================== % % % References % ---------- % +% .. [fntguide] LaTeX3 Project Team, `LaTeX2ε font selection`. +% https://mirrors.ctan.org/macros/latex/base/fntguide.pdf % .. [Haralambous-98] Yannis Haralambous % `From Unicode to Typography, a Case Study: the Greek Script`, 1998. % https://hal.science/hal-02101618 @@ -466,7 +542,6 @@ % .. _athnum: https://ctan.org/pkg/athnum % .. _Babel: https://ctan.org/pkg/babel % .. _babel patch: http://www.eutypon.gr/eutypon/pdf/e2008-20/e20-a03.pdf -% .. _fntguide: https://mirrors.ctan.org/macros/latex/base/fntguide.pdf % .. _fontenc: https://ctan.org/pkg/fontenc % .. _hyperref: https://ctan.org/pkg/hyperref % .. _ibycus: https://ctan.org/pkg/ibycus-babel @@ -478,6 +553,3 @@ % .. _textalpha: textalpha.sty.html % .. _tuenc-greek.def: tuenc-greek.def.html % .. _ucs: https://ctan.org/pkg/unicode -% -% -% diff --git a/language/greek/greek-fontenc/greek-fontenc.def.html b/language/greek/greek-fontenc/greek-fontenc.def.html index b2f5c424b7..b9a43fd656 100644 --- a/language/greek/greek-fontenc/greek-fontenc.def.html +++ b/language/greek/greek-fontenc/greek-fontenc.def.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.20.2b.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="© 2013 – 2023 Günter Milde" /> <title>greek-fontenc.def</title> @@ -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.3 (<a class="reference internal" href="#changelog">changelog</a>)</dd> +<dd class="version">2.4 (<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> @@ -822,13 +822,14 @@ font encodings providing Greek characters.</p> <ul> <li><p><a class="reference internal" href="#uclclist-extension" id="toc-entry-8">@uclclist extension</a></p></li> <li><p><a class="reference internal" href="#substitution-macros" id="toc-entry-9">Substitution macros</a></p></li> -<li><p><a class="reference internal" href="#mark-hiatus" id="toc-entry-10">Mark hiatus</a></p></li> +<li><p><a class="reference internal" href="#hiatus" id="toc-entry-10">Hiatus</a></p></li> +<li><p><a class="reference internal" href="#test-next-character" id="toc-entry-11">Test next character</a></p></li> </ul> </li> </ul> </li> -<li><p><a class="reference internal" href="#changelog" id="toc-entry-11">Changelog</a></p></li> -<li><p><a class="reference internal" href="#references" id="toc-entry-12">References</a></p></li> +<li><p><a class="reference internal" href="#changelog" id="toc-entry-12">Changelog</a></p></li> +<li><p><a class="reference internal" href="#references" id="toc-entry-13">References</a></p></li> </ul> </nav> <section id="usage"> @@ -841,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-06-01 2.3 Common Greek font encoding definitions]</pre> + [2023-08-15 2.4 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> @@ -863,7 +864,7 @@ the Greek script, if required. The following definition announces the <section id="aliases"> <h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Aliases</a></h3> <p>Aliases are defined via <cite>DeclareTextCommand</cite> so that up/downcasing works -without the need for additional <a class="reference internal" href="#uclclist">uclclist</a> entries.</p> +without the need for additional @uclclist_ entries.</p> <p>Names matching mathematical variant symbols:</p> <pre class="literal-block">% \var... matching GREEK ... SYMBOL \DeclareTextCommand{\textvarbeta}{\LastDeclaredEncoding}{\textbetasymbol} % ϐ @@ -919,11 +920,11 @@ table, LCI encoding)?</p> <p>Composite accents can be input as sequence of simple diacritics (in arbitrary order) via named macro, symbol macro and “transliteration characters”, e.g. one of</p> -<pre class="code latex literal-block"><code><span class="keyword">\accdialyticavaria\textalpha</span>, -<span class="keyword">\accdialytica\accvaria\textalpha</span>, -<span class="keyword">\"\'\textalpha</span>, -<span class="keyword">\"</span>'<span class="keyword">\textalpha</span>, or -<span class="keyword">\'</span>"<span class="keyword">\textalpha</span>.</code></pre> +<pre class="code latex literal-block"><code><span class="keyword">\accdialytikatonos\textupsilon</span>, +<span class="keyword">\accdialytika\acctonos\textupsilon</span>, +<span class="keyword">\"\'\textupsilon</span>, +<span class="keyword">\"</span>'<span class="keyword">\textupsilon</span>, or +<span class="keyword">\'</span>"<span class="keyword">\textupsilon</span>.</code></pre> <p>Separate definitions for the supported variants of the second input token are required as composition is based on the non-expanded input</p> <p>The composition with simple “transliteration characters” must also be defined @@ -1019,6 +1020,45 @@ composite definitions starting with standard macros are requried:</p> \DeclareTextCompositeCommand{\accdasia}{\LastDeclaredEncoding}{`}{\accdasiavaria} \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{\@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</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> @@ -1046,7 +1086,9 @@ 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">@uclclist</span>). -The second and third lines are TeX’ way of writing <span class="docutils literal">uclclist += …</span></p> +The second and third lines are TeX’ way of writing <span class="docutils literal">@uclclist += …</span></p> +<p>The new <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@…</span> auxiliary macros are defined below.</p> <pre class="literal-block">\providecommand*\update@uclc@with@greek{% \expandafter\def\expandafter\@uclclist\expandafter{% @@ -1098,9 +1140,10 @@ The second and third lines are TeX’ way of writing <span class="docutils liter \textrho \textRho \textvarrho \textRho \textrhosymbol \textRho + \textautosigma \textSigma \textfinalsigma \textSigma + \textvarsigma \textSigma \textsigma \textSigma - \textautosigma \textSigma \texttau \textTau \textupsilon \textUpsilon \textphi \textPhi @@ -1115,16 +1158,28 @@ The second and third lines are TeX’ way of writing <span class="docutils liter \textstigma \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 }% \let\update@uclc@with@greek\relax }</pre> -<p>Expand the uclc list using the just defined macro:</p> +<p>Expand the @uclclist using the just defined macro:</p> <pre class="literal-block">\update@uclc@with@greek</pre> </section> <section id="substitution-macros"> <h4><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">Substitution macros</a></h4> -<p>Drop diacritics (The argument passing ensures that kerning is preserved)</p> -<pre class="literal-block">\DeclareTextCommand{\LGR@accdropped}{\LastDeclaredEncoding}[1]{#1}</pre> +<p>Drop diacritics. +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@accdropped}{\LastDeclaredEncoding}[1]{#1} +\DeclareTextCompositeCommand{\LGR@accdropped}{\LastDeclaredEncoding}{~}{\LGR@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 accent:</p> @@ -1140,19 +1195,30 @@ to <span class="docutils literal">\ypogegrammeni</span> (subscript iota) but no <span class="docutils literal">\MakeLowercase</span>:</p> <pre class="literal-block">\DeclareTextCommand{\LGR@Stigma}{\LastDeclaredEncoding}{\textStigma}</pre> </section> -<section id="mark-hiatus"> -<h4><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Mark hiatus</a></h4> -<p>Tonos and dasia mark a hiatus if placed on the -first vowel of a diphthong (ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the -second vowel if they are dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, -ἀυπνία → ΑΫΠΝΙΑ):</p> +<section id="hiatus"> +<h4><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Hiatus</a></h4> +<p>Tonos and psili mark a hiatus if placed on the first vowel of a diphthong +(ΑΙ, ΑΥ, ΕΙ). A dialytika must be placed on the second vowel if they are +dropped (άυλος → ΑΫΛΟΣ, μάινα → ΜΑΪΝΑ, κέικ → ΚΕΪΚ, ἀυπνία → ΑΫΠΝΙΑ).</p> +<p>The <a class="reference internal" href="#uclclist-extension">@uclclist extension</a> converts tonos, psili, and psili-oxia accents to +<span class="docutils literal">\LGR@hiatus</span>. They should be dropped (as well as the second character of +composite diacritics like <span class="docutils literal">\'<</span> or <span class="docutils literal">\>~</span>).</p> +<p>If the next character is an Alpha or Epsilon, we call commands that place +a dialytika on a subsequent Iota or Upsilon (defined in the font +encoding files). The font encoding file must also handle the cases when +<span class="docutils literal">\LGR@hiatus</span> is followed by literal characters for Alpha or Epsilon +(see <a class="reference external" href="lgrenc.def.html">lgrenc.def</a>) for an example).</p> <pre class="literal-block">\DeclareTextCommand{\LGR@hiatus}{\LastDeclaredEncoding}[1]{#1} +\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{'}{\LGR@hiatus} +\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{`}{\LGR@accdropped} +\DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{~}{\LGR@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{>}{\LGR@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{<}{\LGR@accdropped} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{\textAlpha}{\LGR@A@hiatus} \DeclareTextCompositeCommand{\LGR@hiatus}{\LastDeclaredEncoding}{\textEpsilon}{\LGR@E@hiatus}</pre> -<p>The font encoding file must define the <span class="docutils literal">\LGR@hiatus</span> TextCommand. See -<span class="docutils literal">lgrenc.def</span> for an example.</p> +</section> +<section id="test-next-character"> +<h4><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">Test next character</a></h4> <p>The following macro can be used to test if the next character is an Alpha or Epsilon. As <span class="docutils literal">\@ifnextchar</span> gobbles spaces the lookahead macro definition from <span class="docutils literal">amsgen.sty</span> is used:</p> @@ -1171,7 +1237,7 @@ that does not skip over spaces.</p> </section> </section> <section id="changelog"> -<h2><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">Changelog</a></h2> +<h2><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">Changelog</a></h2> <table class="borderless"> <tbody> <tr><td><p>0.9</p></td> @@ -1196,7 +1262,7 @@ that does not skip over spaces.</p> </tr> <tr><td><p>0.13.4</p></td> <td><p>2019-07-10</p></td> -<td><p><span class="docutils literal">@uclclist</span> entry for <span class="docutils literal">\prosgegrammeni</span>.</p></td> +<td><p>@uclclist entry for <span class="docutils literal">\prosgegrammeni</span>.</p></td> </tr> <tr><td><p>1.0</p></td> <td><p>2020-09-25</p></td> @@ -1212,19 +1278,33 @@ that does not skip over spaces.</p> </tr> <tr><td><p>2.2.1</p></td> <td><p>2023-03-08</p></td> -<td><p><span class="docutils literal">@uclclist</span> entry for <span class="docutils literal">\accoxia</span>, prevent +<td><p>@uclclist entry for <span class="docutils literal">\accoxia</span>, prevent downcasing <span class="docutils literal">\textStigma</span> to <span class="docutils literal">\textvarstigma</span>.</p></td> </tr> <tr><td><p>2.3</p></td> <td><p>2023-06-01</p></td> -<td><p><span class="docutils literal">@uclclist</span> entries for symbol variants.</p></td> +<td><p>@uclclist entries for symbol variants.</p></td> +</tr> +<tr><td><p>2.4</p></td> +<td><p>2023-08-15</p></td> +<td><p>Fix @uclclist_ for ambiguous mappings.</p></td> +</tr> +<tr><td><!-- --> +</td> +<td></td> +<td><p>Composite commands for “captital” macros and <span class="docutils literal">~</span>.</p></td> </tr> </tbody> </table> </section> <section id="references"> -<h2><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">References</a></h2> +<h2><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">References</a></h2> <div role="list" class="citation-list"> +<div class="citation" id="fntguide" role="doc-biblioentry"> +<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-4">fntguide</a><span class="fn-bracket">]</span></span> +<p>LaTeX3 Project Team, <cite>LaTeX2ε font selection</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="haralambous-98" role="doc-biblioentry"> <span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#citation-reference-3">Haralambous-98</a><span class="fn-bracket">]</span></span> <p>Yannis Haralambous diff --git a/language/greek/greek-fontenc/hyperref-with-greek.pdf b/language/greek/greek-fontenc/hyperref-with-greek.pdf Binary files differindex 696033bfa3..b190db75f6 100644 --- a/language/greek/greek-fontenc/hyperref-with-greek.pdf +++ b/language/greek/greek-fontenc/hyperref-with-greek.pdf diff --git a/language/greek/greek-fontenc/lgrenc.def b/language/greek/greek-fontenc/lgrenc.def index 0d7ae1c705..8ff80d1d1b 100644 --- a/language/greek/greek-fontenc/lgrenc.def +++ b/language/greek/greek-fontenc/lgrenc.def @@ -60,7 +60,9 @@ % 2.1 2022-06-14 Support the correct spelling ``\guillemet…`` for « ». % 2.2 2023-02-28 Fix character used for ano ``\textanoteleia`` and % ``\textperiodcentered``. -% 2.2.1 2023-06-01 Fix Unicode errors with "new" ``\MakeUppercase``. +% 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_. % ====== ============ ======================================================== % % Usage @@ -100,7 +102,7 @@ % :: \ProvidesFile{lgrenc.def} -[2023/02/28 2.2 LGR Greek font encoding definitions] +[2023-08-15 2.4 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 @@ -472,8 +474,8 @@ \DeclareTextAccent{\u}{LGR}{30} % BREVE (Greek vrachy) \DeclareTextAccent{\=}{LGR}{31} % MACRON -% Aliases -% """"""" +% Symbol Macros +% """"""""""""" % % The standard _`symbol macros` are exclusively used for Greek diacritics % in LGR:: @@ -483,6 +485,15 @@ \DeclareTextCommand{\`}{LGR}{\accvaria} \DeclareTextCommand{\~}{LGR}{\accperispomeni} +% The ``\uclclist`` extension in `babel-greek`_ converts standard symbol +% macros to "capital accents". In Greek typographic tradition they are +% dropped:: + +\ProvideTextCommand{\accACUTE}{LGR}{\LGR@hiatus} +\ProvideTextCommand{\accGRAVE}{LGR}{\@firstofone} +\ProvideTextCommand{\accTILDE}{LGR}{\@firstofone} + + % Common Greek font encoding definitions % ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ % @@ -857,7 +868,7 @@ % % 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 >= 37 (2023):: +% capital equivalent. The fix requires a LaTeX version 2023 or later:: \ifdefined\DeclareUppercaseMapping \DeclareUppercaseMapping{"0390}{\accdialytikatonos{\textiota}} % ΐ diff --git a/language/greek/greek-fontenc/lgrenc.def.html b/language/greek/greek-fontenc/lgrenc.def.html index 53582eaac2..fd050004e1 100644 --- a/language/greek/greek-fontenc/lgrenc.def.html +++ b/language/greek/greek-fontenc/lgrenc.def.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.20.2b.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 – 2023 Günter Milde" /> <title>lgrenc.def</title> @@ -837,7 +837,7 @@ package.</p> <li><p><a class="reference internal" href="#diacritics" id="toc-entry-16">Diacritics</a></p> <ul> <li><p><a class="reference internal" href="#named-macros" id="toc-entry-17">Named macros</a></p></li> -<li><p><a class="reference internal" href="#aliases" id="toc-entry-18">Aliases</a></p></li> +<li><p><a class="reference internal" href="#symbol-macros" id="toc-entry-18">Symbol Macros</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#common-greek-font-encoding-definitions" id="toc-entry-19">Common Greek font encoding definitions</a></p></li> @@ -1005,10 +1005,15 @@ package.</p> <td><p>Fix character used for ano <span class="docutils literal">\textanoteleia</span> and <span class="docutils literal">\textperiodcentered</span>.</p></td> </tr> -<tr><td><p>2.2.1</p></td> +<tr><td><p>2.3</p></td> <td><p>2023-06-01</p></td> <td><p>Fix Unicode errors with “new” <span class="docutils literal">\MakeUppercase</span>.</p></td> </tr> +<tr><td><p>2.4</p></td> +<td><p>2023-08-15</p></td> +<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> </tbody> </table> </section> @@ -1047,7 +1052,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/02/28 2.2 LGR Greek font encoding definitions] +[2023-08-15 2.4 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 @@ -1307,7 +1312,7 @@ defined in <span class="docutils literal">babel.def</span>. They were moved to < <section id="diacritics"> <h3><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">Diacritics</a></h3> <p>This section defines <a class="reference internal" href="#named-macros">named macros</a> for Greek diacritics and standard -<a class="reference internal" href="#symbol-macros">symbol macros</a> as alias for simple diacritics. Convenient input +<a class="reference internal" href="#symbol-macros-1">symbol macros</a> as alias for simple diacritics. Convenient input conventions for <a class="reference internal" href="#composite-diacritics">composite diacritics</a> are defined as <a class="reference internal" href="#composite-definitions">composite definitions</a>.</p> <p>Advantages:</p> @@ -1363,14 +1368,20 @@ of additional diacritic symbols:</p> \DeclareTextAccent{\u}{LGR}{30} % BREVE (Greek vrachy) \DeclareTextAccent{\=}{LGR}{31} % MACRON</pre> </section> -<section id="aliases"> -<h4><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">Aliases</a></h4> -<p>The standard <span class="target" id="symbol-macros">symbol macros</span> are exclusively used for Greek diacritics +<section id="symbol-macros"> +<h4><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">Symbol Macros</a></h4> +<p>The standard <span class="target" id="symbol-macros-1">symbol macros</span> are exclusively used for Greek diacritics in LGR:</p> <pre class="literal-block">\DeclareTextCommand{\"}{LGR}{\accdialytika} \DeclareTextCommand{\'}{LGR}{\acctonos} \DeclareTextCommand{\`}{LGR}{\accvaria} \DeclareTextCommand{\~}{LGR}{\accperispomeni}</pre> +<p>The <span class="docutils literal">\uclclist</span> extension in <a class="reference external" href="https://ctan.org/pkg/babel-greek">babel-greek</a> converts standard symbol +macros to “capital accents”. In Greek typographic tradition they are +dropped:</p> +<pre class="literal-block">\ProvideTextCommand{\accACUTE}{LGR}{\LGR@hiatus} +\ProvideTextCommand{\accGRAVE}{LGR}{\@firstofone} +\ProvideTextCommand{\accTILDE}{LGR}{\@firstofone}</pre> </section> </section> <section id="common-greek-font-encoding-definitions"> @@ -1725,7 +1736,7 @@ in cases where they are not needed when writing in lowercase)</p> <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 >= 37 (2023):</p> +capital equivalent. The fix requires a LaTeX version 2023 or later:</p> <pre class="literal-block">\ifdefined\DeclareUppercaseMapping \DeclareUppercaseMapping{"0390}{\accdialytikatonos{\textiota}} % ΐ \DeclareUppercaseMapping{"03B0}{\accdialytikatonos{\textupsilon}} % ΰ diff --git a/language/greek/greek-fontenc/puenc-greek.def b/language/greek/greek-fontenc/puenc-greek.def index 915725fdbf..920b49ab53 100644 --- a/language/greek/greek-fontenc/puenc-greek.def +++ b/language/greek/greek-fontenc/puenc-greek.def @@ -23,6 +23,7 @@ % 2.0 2020-10-18 Initial version. % 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. % ====== =========== ======================================================= % % .. contents:: @@ -33,7 +34,7 @@ % :: \ProvidesFile{puenc-greek.def} - [2023/03/08 2.2.1 Greek LICRs for PDF strings] + [2023-08-15 2.4 Greek LICRs for PDF strings] % Diacritics @@ -221,10 +222,10 @@ \DeclareTextCommand{\textepsilonsymbol}{PU}{\83\365} % ϵ "03F5 \DeclareTextCommand{\textbackepsilon}{PU}{\83\366} % ϶ "03F6 # not in LGR -% ``\textautosigma`` is lowercase of \textSigma -% (since 2022/06, ``\MakeLowercase`` use a context-sensitive sigma) :: +% Dummy definition (\textautosigma is lowercase of \textSigma) +% TODO: Fix implementation of \autosigma :: -\ProvideTextCommand{\textautosigma}{PU}{\MakeLowercase{\textSigma}} +\ProvideTextCommand{\textautosigma}{PU}{\textsigma} % σ % Greek Extended diff --git a/language/greek/greek-fontenc/puenc-greek.def.html b/language/greek/greek-fontenc/puenc-greek.def.html index c2ea69705d..7c58aae70b 100644 --- a/language/greek/greek-fontenc/puenc-greek.def.html +++ b/language/greek/greek-fontenc/puenc-greek.def.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="© 2020, 2023 Günter Milde" /> <title>puenc-greek.def</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 */ @@ -822,6 +823,10 @@ Used by <a class="reference external" href="https://ctan.org/pkg/babel-greek">ba <td><p>2023-03-08</p></td> <td><p>Documentation update.</p></td> </tr> +<tr><td><p>2.4</p></td> +<td><p>2023-08-15</p></td> +<td><p>Print σ, not ς with <span class="docutils literal">textautosigma</span> dummy definition.</p></td> +</tr> </tbody> </table> </dd> @@ -846,7 +851,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/03/08 2.2.1 Greek LICRs for PDF strings]</pre> + [2023-08-15 2.4 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> @@ -1005,9 +1010,9 @@ and symbol variants:</p> \DeclareTextCommand{\textThetasymbol}{PU}{\83\364} % ϴ "03F4 \DeclareTextCommand{\textepsilonsymbol}{PU}{\83\365} % ϵ "03F5 \DeclareTextCommand{\textbackepsilon}{PU}{\83\366} % ϶ "03F6 # not in LGR</pre> -<p><span class="docutils literal">\textautosigma</span> is lowercase of textSigma -(since 2022/06, <span class="docutils literal">\MakeLowercase</span> use a context-sensitive sigma)</p> -<pre class="literal-block">\ProvideTextCommand{\textautosigma}{PU}{\MakeLowercase{\textSigma}}</pre> +<p>Dummy definition (textautosigma is lowercase of textSigma) +TODO: Fix implementation of autosigma</p> +<pre class="literal-block">\ProvideTextCommand{\textautosigma}{PU}{\textsigma} % σ</pre> </section> <section id="greek-extended"> <h3><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">Greek Extended</a></h3> diff --git a/language/greek/greek-fontenc/test-diacritics.pdf b/language/greek/greek-fontenc/test-diacritics.pdf Binary files differdeleted file mode 100644 index 029d3a5f67..0000000000 --- a/language/greek/greek-fontenc/test-diacritics.pdf +++ /dev/null diff --git a/language/greek/greek-fontenc/test-diacritics.tex b/language/greek/greek-fontenc/test-diacritics.tex deleted file mode 100644 index 7f30e23961..0000000000 --- a/language/greek/greek-fontenc/test-diacritics.tex +++ /dev/null @@ -1,350 +0,0 @@ -% Test definitions for accents and composite accents in Greek -% \RequirePackage{latexbug} -\documentclass[a4paper]{article} -\usepackage{parskip} -\ifdefined \UnicodeEncodingName - \usepackage{fontspec} - \setmainfont{FreeSerif} - \newcommand*{\texengine}{Xe/LuaLaTeX} -\else - \usepackage{lmodern} - \newcommand*{\texengine}{pdfLaTeX} -\fi - -% Load encoding definitions -% \usepackage[LGR,T1]{fontenc} -\usepackage{textalpha} % "Greek script everywhere" - - - -% With TL22, the special handling of Greek UPPERCASE is only triggered -% if the text language is set to "greek" with Babel: -% -% \usepackage[greek,english]{babel} % babel-greek -% \usepackage[greek,english,provide=*]{babel} % Babel's Greek "ini" - - -\IfFormatAtLeastTF{2022/06/01} - {\newcommand*{\uppercaseversion}{new (post-2022/06/01)}} - {\newcommand*{\uppercaseversion}{old (pre-2022/06/01)}} - -\begin{document} - -\section*{Test Greek diacritics with 8-bit TeX} - -This document tests support for the Greek non-standard LGR fonts with the -contributed packages \emph{greek-fontenc} and \emph{greek-inputenc}. -It is compiled with the \textbf{\uppercaseversion{}} \verb|\MakeUppercase| -version. - -The LGR font encoding definition file \texttt{lgrenc.def} defines LICR -macros for all non-ASCII characters in the LGR font encoding and loads -definitions shared with the TU font encoding from -\texttt{greek-fontenc.def}. - -In addition to the LICR, Greek letters can also be input via a Latin -transliteration. - -Greek accent macros have names starting with \verb|\acc| followed by the -Greek accent name as used in the Unicode standard (e.g. \verb|\acctonos|). -The standard symbol accents \verb|\' \` \~ \"| should behave according to -Greek typography if used with Greek letters. - -Apart from the diacritical marks native to Greek itself, linguists also -regularly mark vowel length with macrons (¯) and breves (˘). -There is no established praxis regarding their handling in uppercase. - -The \emph{textalpha} or \emph{alphabeta} packages define the symbol macros -\verb|\<| and \verb|\>| as alias for the breathings (Dasia and Psili). - -Diacritics can be specified as named macro, short macro, or combined accent -macros, e.\,g. -\verb| \accpsiliperispomeni{w} \accpsili\accperispomeni w| and -\verb|\>\~w \~>{w} \~\>w \>~w| all become -% -\newcommand*{\accsample}{\accpsiliperispomeni{w} \accpsili\accperispomeni w - \>\~w \~>{w} \~\>w \>~w} -\ensuregreek{\accsample}. - -The pre-June 22 version of \verb+\MakeUppercase+ works correctly, with one -exception: There is a spurious space in upcased combined accents with a -literal tilde like \verb|\>~|. This can be fixed by using a tilde accent -(\verb|\>\~| or \verb|\~>|) or loading Babel with the "greek" language option -(even in text parts only changing the font encoding without selecting the -Greek language). -\begin{quote} - \ensuregreek{\accsample\ → \MakeUppercase{\accsample}} -\end{quote} - -Test the upcasing of the different input methods: - -\subsection*{Accent macro + Latin transliteration} - -\begin{quotation} - single accent (named, [alias], short) - - \ensuregreek{\acctonos w \accoxia w \'w → - \MakeUppercase{\acctonos w \accoxia w \'w}} - - \ensuregreek{\accvaria w \`w → \MakeUppercase{\accvaria w \`w}} - - \ensuregreek{\accperispomeni w \~w → \MakeUppercase{\accperispomeni w \~w}} - - \ensuregreek{\accdasia w \<w → \MakeUppercase{\accdasia w \<w}} - - \ensuregreek{\accpsili w \>w → \MakeUppercase{\accpsili w \>w}} - - \ensuregreek{\accdialytika u \"u → \MakeUppercase{\accdialytika u \"u}} - - \ensuregreek{w\ypogegrammeni{} w| → \MakeUppercase{w\ypogegrammeni{} w|}} - - combined accents (name, name+name, short+short, short+char) - - \ensuregreek{\accdasiaperispomeni w \accdasia\accperispomeni w \<\~w \~<w - → \MakeUppercase{\accdasiaperispomeni w \accdasia\accperispomeni w \<\~w \~<w}} - - \ensuregreek{\accdasiavaria w \accdasia\accvaria w \<\`w \<`w - → \MakeUppercase{\accdasiavaria w \accdasia\accvaria w \<\`w \<`w}} - - \ensuregreek{\accdasiaoxia w \accdasia\accoxia w \<\'w \<'w - → \MakeUppercase{\accdasiaoxia w \accdasia\accoxia w \<\'w \<'w}} - - \ensuregreek{\accpsiliperispomeni w \accpsili\accperispomeni w \>\~w \~>w - → \MakeUppercase{\accpsiliperispomeni w \accpsili\accperispomeni w \>\~w \~>w}} - - \ensuregreek{\accpsilioxia w \accpsili\accoxia w \>\'w \>'w - → \MakeUppercase{\accpsilioxia w \accpsili\accoxia w \>\'w \>'w}} - - \ensuregreek{\accpsilivaria w \accpsili\accvaria w \>\`w \>`w - → \MakeUppercase{\accpsilivaria w \accpsili\accvaria w \>\`w \>`w}} - - \ensuregreek{\accdialytikaperispomeni u \accdialytika\accperispomeni u \"\~u \~"u - → \MakeUppercase{\accdialytikaperispomeni u \accdialytika\accperispomeni u \"\~u \~"u}} - - \ensuregreek{\accdialytikatonos u \accdialytika\acctonos u \"\'u \"'u - → \MakeUppercase{\accdialytikatonos u \accdialytika\acctonos u \"\'u \"'u}} - - \ensuregreek{\accdialytikavaria u \accdialytika\accvaria u \"\`u \"`u - → \MakeUppercase{\accdialytikavaria u \accdialytika\accvaria u \"\`u \"`u}} - - \ensuregreek{\accpsilivaria w\ypogegrammeni{} \accpsili\accvaria w| \>\`w| \>`w| - → \MakeUppercase{\accpsilivaria w\ypogegrammeni{} \accpsili\accvaria w| \>\`w| \>`w|}} - -\end{quotation} - -With TeXLive 2020 (Debian/stable), all accents except dialytika and -ypogegrammeni/prosgegrammeni are dropped in ALL CAPS. - -With current (2023/01/28) TeXLive, upcasing short accent macros does no -longer work as expected: accents are not dropped. - -The mute iota is kept (as expected). - -\subsection*{Accent macro + Latin transliteration} - -\begin{quotation} - single accent (named, [alias], short) - - \ensuregreek{\acctonos \textomega{} \accoxia \textomega{} \'\textomega{} - → \MakeUppercase{\acctonos \textomega{} \accoxia \textomega{} \'\textomega{}}} - - \ensuregreek{\accvaria \textomega{} \`\textomega{} → \MakeUppercase{\accvaria \textomega{} \`\textomega{}}} - - \ensuregreek{\accperispomeni \textomega{} \~\textomega{} → \MakeUppercase{\accperispomeni \textomega{} \~\textomega{}}} - - \ensuregreek{\accdasia \textomega{} \<\textomega{} → \MakeUppercase{\accdasia \textomega{} \<\textomega{}}} - - \ensuregreek{\accpsili \textomega{} \>\textomega{} → \MakeUppercase{\accpsili \textomega{} \>\textomega{}}} - - \ensuregreek{\accdialytika \textupsilon{} \"\textupsilon{} → \MakeUppercase{\accdialytika \textupsilon{} \"\textupsilon{}}} - - \ensuregreek{\textomega\ypogegrammeni{} \textomega| → \MakeUppercase{\textomega\ypogegrammeni{} \textomega|}} - - combined accents (name, name+name, short+short, short+char) - - \ensuregreek{\accdasiaperispomeni \textomega{} \accdasia\accperispomeni \textomega{} \<\~\textomega{} \~<\textomega{} - → \MakeUppercase{\accdasiaperispomeni \textomega{} \accdasia\accperispomeni \textomega{} \<\~\textomega{} \~<\textomega{}}} - - \ensuregreek{\accdasiavaria \textomega{} \accdasia\accvaria \textomega{} \<\`\textomega{} \<`\textomega{} - → \MakeUppercase{\accdasiavaria \textomega{} \accdasia\accvaria \textomega{} \<\`\textomega{} \<`\textomega{}}} - - \ensuregreek{\accdasiaoxia \textomega{} \accdasia\accoxia \textomega{} \<\'\textomega{} \<'\textomega{} - → \MakeUppercase{\accdasiaoxia \textomega{} \accdasia\accoxia \textomega{} \<\'\textomega{} \<'\textomega{}}} - - \ensuregreek{\accpsiliperispomeni \textomega{} \accpsili\accperispomeni \textomega{} \>\~\textomega{} \~>\textomega{} - → \MakeUppercase{\accpsiliperispomeni \textomega{} \accpsili\accperispomeni \textomega{} \>\~\textomega{} \~>\textomega{}}} - - \ensuregreek{\accpsilioxia \textomega{} \accpsili\accoxia \textomega{} \>\'\textomega{} \>'\textomega{} - → \MakeUppercase{\accpsilioxia \textomega{} \accpsili\accoxia \textomega{} \>\'\textomega{} \>'\textomega{}}} - - \ensuregreek{\accpsilivaria \textomega{} \accpsili\accvaria \textomega{} \>\`\textomega{} \>`\textomega{} - → \MakeUppercase{\accpsilivaria \textomega{} \accpsili\accvaria \textomega{} \>\`\textomega{} \>`\textomega{}}} - - \ensuregreek{\accdialytikaperispomeni \textupsilon{} \accdialytika\accperispomeni \textupsilon{} \"\~\textupsilon{} \~"\textupsilon{} - → \MakeUppercase{\accdialytikaperispomeni \textupsilon{} \accdialytika\accperispomeni \textupsilon{} \"\~\textupsilon{} \~"\textupsilon{}}} - - \ensuregreek{\accdialytikatonos \textupsilon{} \accdialytika\acctonos \textupsilon{} \"\'\textupsilon{} \"'\textupsilon{} - → \MakeUppercase{\accdialytikatonos \textupsilon{} \accdialytika\acctonos \textupsilon{} \"\'\textupsilon{} \"'\textupsilon{}}} - - \ensuregreek{\accdialytikavaria \textupsilon{} \accdialytika\accvaria \textupsilon{} \"\`\textupsilon{} \"`\textupsilon{} - → \MakeUppercase{\accdialytikavaria \textupsilon{} \accdialytika\accvaria \textupsilon{} \"\`\textupsilon{} \"`\textupsilon{}}} - - \ensuregreek{\accpsilivaria \textomega\ypogegrammeni{} \accpsili\accvaria \textomega| \>\`\textomega| \>`\textomega| - → \MakeUppercase{\accpsilivaria \textomega\ypogegrammeni{} \accpsili\accvaria \textomega| \>\`\textomega| \>`\textomega|}} - -\end{quotation} - -With TeXLive 2020 (Debian/stable), all Greek accents except dialytika and -prosgegrammeni are dropped in ALL CAPS. (The standard accents macron and -breve are kept as well.) - -With current (2023/01/28) TeXLive, upcasing the \verb|\~| accent macro and -combining accents with dialytika (\verb|\~" \"' \"`|) does no longer work as -expected: accents are not dropped (only the dialytika, macron and breve must -be kept). - -Upcasing keeps the mute iota (as expected). - -\subsection*{Accent macro + literal Greek character} -Accent + literal Greek (utf-8) character is not supported in 8-bit TeX. - - -\subsection*{The hiatus feature} - -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if -placed on the first vowel of a diphthong. -A dialytika must be placed on the second vowel if they are dropped: - -\newcommand{\Hiatus}{\acctonos\textalpha\textiota, - \acctonos\textalpha\textupsilon, - \acctonos\textepsilon\textiota, - \accdasiaoxia\textalpha\textiota, - \accdasiaoxia\textalpha\textupsilon, - \accdasiaoxia\textepsilon\textiota}% -Named + LICR: -\ensuregreek{\Hiatus\ → \MakeUppercase{\Hiatus}}. - -\renewcommand{\Hiatus}{\'\textalpha\textiota, - \'\textalpha\textupsilon, - \'\textepsilon\textiota, - \'>\textalpha\textiota, - \'>\textalpha\textupsilon, - \'>\textepsilon\textiota}% -Short + LICR: -\ensuregreek{\Hiatus\ → \MakeUppercase{\Hiatus}}. - -\renewcommand{\Hiatus}{\acctonos ai, - \acctonos au, - \acctonos ei, - \accdasiaoxia ai, - \accdasiaoxia au, - \accdasiaoxia ei}% -Named + transliteration: -\ensuregreek{\Hiatus\ → \MakeUppercase{\Hiatus}}. - -\renewcommand{\Hiatus}{\'ai, - \'au, - \'ei, - \'>ai, - \'>au, - \'>ei}% -Short + transliteration: -\ensuregreek{\Hiatus\ → \MakeUppercase{\Hiatus}}. - -In current TeXLive, the \emph{hiatus} feature keeps working with named -accend macros but fails with short accent macros. - - -\subsection*{Pre-composed literal Greek character} - -The Greek and Coptic Unicode Block - -\newcommand{\GreekAndCoptic}{% - ͺ ; ΄ ΅ Ά · Έ Ή Ί Ό Ύ Ώ \\ - ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ - Π Ρ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ - ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ - π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ \\ -} -\begin{quote} - \ifdefined\extrasgreek - \selectlanguage{greek} - \fi - \greekscript - \GreekAndCoptic -\end{quote} -% -MakeUppercase: -\begin{quote} - \ifdefined\extrasgreek - \selectlanguage{greek} - \fi - \greekscript - \MakeUppercase{\GreekAndCoptic} -\end{quote} -% -% MakeLowercase: -% \begin{quote} -% \greekscript -% \MakeLowercase{\GreekAndCoptic} -% \end{quote} - -Greek extended Unicode block - -\newcommand{\GreekExtended}{\raggedright - ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ - ἐ ἑ ἒ ἓ ἔ ἕ \ \ \ \ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ - ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ - ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ - ὀ ὁ ὂ ὃ ὄ ὅ \ \ \ \ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ - ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ \ \ Ὑ \ \ Ὓ \ \ Ὕ \ \ Ὗ \\ - ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ - ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ - ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ - ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ - ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ - ᾰ ᾱ ᾲ ᾳ ᾴ \ \ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ - ῀ ῁ ῂ ῃ ῄ \ \ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῏ \\ - ῐ ῑ ῒ ΐ \ \ \ \ ῖ ῗ Ῐ Ῑ Ὶ Ί \ \ ῝ ῟ \\ - ῠ ῡ ῢ ΰ \ \ \ \ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ` \\ - \ \ \ \ ῲ ῳ ῴ \ \ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ \\ -} - -\begin{quote} - \ifdefined\extrasgreek - \selectlanguage{greek} - \fi - \greekscript - \GreekExtended -\end{quote} -% -MakeUppercase: -\begin{quote} - \ifdefined\extrasgreek - \selectlanguage{greek} - \fi - \greekscript - \MakeUppercase{\GreekExtended} -\end{quote} - -% MakeLowercase: -% \begin{quote} -% % \selectlanguage{greek} -% \greekscript -% \MakeLowercase{\GreekExtended} -% \end{quote} - -With TeXLive 2020 (Debian/stable), all Greek accents except dialytika and -prosgegrammeni are dropped in UPPERCASE and kept in lowercase. No errors. - -With current (2023/01/28) TeXLive: - -Upcasing leads to ``Unicode errors'' (``combining characters not set not set -up for use with LaTeX'') although no combining characters are used in the -source. - -Accents are not dropped (with some exceptions). - -The sub-iota became a capital iota (solved by an update to MakeUppercase). - -\end{document} diff --git a/language/greek/greek-fontenc/test-lgrenc.pdf b/language/greek/greek-fontenc/test-lgrenc.pdf Binary files differindex 0a21f38ffa..e94fe616b9 100644 --- a/language/greek/greek-fontenc/test-lgrenc.pdf +++ b/language/greek/greek-fontenc/test-lgrenc.pdf diff --git a/language/greek/greek-fontenc/test-lgrenc.tex b/language/greek/greek-fontenc/test-lgrenc.tex index 17da4d353e..676df13100 100644 --- a/language/greek/greek-fontenc/test-lgrenc.tex +++ b/language/greek/greek-fontenc/test-lgrenc.tex @@ -71,6 +71,9 @@ \newcommand{\cs}[1]{\texttt{\textbackslash#1}} \newcommand{\cssample}[1]{\LGR\csname#1\endcsname{} \Latin \cs{#1}} +\IfFormatAtLeastTF{2022/06/01} + {\newcommand{\IsNewMakeUppercase}{}} + {} \begin{document} @@ -105,6 +108,8 @@ using the LICR macros: \end{quote} +\tableofcontents + \section{Symbols} See the source file \href{lgrenc-test.tex}{lgrenc-test.tex} for the macros @@ -112,34 +117,40 @@ used to access the symbols. \subsection{Generic text symbols} +Direct input: + Latin: + - = < > -- --- [ () ] -% -\textbraceleft{} -\textbraceright{} -\textbackslash{} -\textbar{} -\textperthousand{} -\textpertenthousand{} -\textvisiblespace{} LGR: \LGR -+ - = -- --- [ () ] ++ - = < > -- --- [ () ] +\Latin +Less than and greater than characters are mapped to breathing marks, use +LICRs. + +Character macros: + +\newcommand{\sample}{% + \begin{quote} + \raggedright + \cssample{textless} \\ + \cssample{textgreater} \\ + \cssample{textbraceleft} \\ + \cssample{textbraceright} \\ + % + \cssample{textbackslash} \\ + \cssample{textbar} \\ + \cssample{textperthousand} \\ + \cssample{textpertenthousand} \\ + \cssample{textvisiblespace} + \end{quote} +} +Latin: \sample +LGR: (per-tenthousand sign is missing in LGR, LaTeX selects the global default) +\LGR \sample \Latin -\begin{quote} - \raggedright - \cssample{textless} \\ - \cssample{textgreater} \\ - \cssample{textbraceleft} \\ - \cssample{textbraceright} \\ - % - \cssample{textbackslash} \\ - \cssample{textbar} \\ - \cssample{textperthousand} (Per-mille symbol is missing in LGR.) \\ - % \textpertenthousand{} - \cssample{textvisiblespace} \\ -\end{quote} + % Quotes:\footnote{% Single quotes need special attention to prevent conversion to accents. @@ -164,7 +175,7 @@ Single guillemets and base-quotes \quotesinglbase{}a\textquoteright{}) are missing in LGR. -Ligature break up with \verb|\textcompwordmark|: +Suppress ligatures and kerning with \verb|\textcompwordmark|: AY fi \LGR AU "i $\mapsto$ \Latin A\textcompwordmark Y f\textcompwordmark i \LGR A\textcompwordmark U "\textcompwordmark i @@ -202,17 +213,19 @@ other symbols are composed from Latin letters and show Greek letters in LGR. \emph{babel-greek} redefines some affected macros to use a standard font encoding, however this cannot be done in a font encoding definition file. -Beware that \texttt{" \# \& ' ; < > ? @} becomes -\LGR " \# \& ' ; < > ? @ -\Latin +Beware that " \# \& ' ; < > ? @ becomes +\LGR " \# \& ' ; < > ? @% +\Latin ! The \emph{textcomp} package\footnote{loaded by default in not too old LaTeX} provides pre-composed coyright \textcopyright{}, registered \textregistered{} and trademark \texttrademark{} symbols that work in all font encodings. -In LGR they come out as: \cssample{textcopyright}, -\cssample{textregistered}, \cssample{texttrademark}. - +Up-to-date LaTeX installations load \emph{textcomp} by default. +The legacy composite fallback definitions showed Greek letters if used in LGR: +\LGR +\cssample{textcopyright}, \cssample{textregistered}, \cssample{texttrademark}. +\Latin \emph{textcomp} also provides the upright MICRO SIGN and OHM SIGN for SI units: R = 5\,\textmu\textohm @@ -352,7 +365,7 @@ Names matching mathematical variant symbols: Compatibility aliases for hyperref’s puenc.def: \begin{quote} \raggedright - \cssample{textmugreek} = \cssample{textmu} \\ + \cssample{textmugreek} = \cssample{textmu} \\ \cssample{textkoppagreek} = \cssample{textkoppa} \\ \cssample{textKoppagreek} = \cssample{textKoppa} \\ \cssample{textStigmagreek} = \cssample{textStigma} \\ @@ -376,20 +389,23 @@ Mathematical notation distinguishes variant shapes for pi ($\pi|\varpi$), rho ($\rho|\varrho$), theta ($\theta|\vartheta$), beta ($\beta|\varbeta$), and kappa ($\kappa|\varkappa$) (characters for the last two variant symbols are not included in TeX's standard math fonts). -These variations have no syntactic meaning in Greek text and are not given -code-points in the LGR encoding. Greek text fonts use the shape variants -interchangeably. +These variations have no semantic significance in Greek text and are not +given code-points in the LGR encoding. Greek text fonts use the shape +variants interchangeably. \section{Diacritics} Capital Greek letters have breathings and accents (except dialytika) to the left (instead of above) and drop them if text is set in UPPERCASE.% -\footnote{The word \ensuregreek{Ἢ} (or), is an exception to this rule - because of the need to distinguish it from the nominative - feminine article \ensuregreek{Η}.} +\footnote{The word \ensuregreek{Ἢ} (``or'', monotonic \ensuregreek{Ή}), + is an exception to this rule because of the need to distinguish + it from the nominative feminine article \ensuregreek{Η}.} This is implemented for all combinations that are used in Greek texts (i.e. for which pre-composed Unicode character exist), but not for, -e.g., \LGR\~W\Latin). +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. 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). @@ -425,7 +441,8 @@ is not defined in LGR.} Additional Greek diacritics (Greek, Greek Capitals% -\footnote{The dialytika is not used on Initial letters.} % (\LGR \"'I \"`I \~"I) +\footnote{The dialytika is not used on initial letters.} + % (\LGR \"'I \"`I \~"I) $\mapsto$ UPPERCASE) \begin{quote} @@ -441,25 +458,31 @@ $\mapsto$ UPPERCASE) } \end{quote} -\Latin Input variants and their conversion with MakeUppercase:% +\Latin Input variants and their conversion with MakeUppercase: \begin{quote} -\LGR +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, -\>\~i \~>i, \~<i \<\~i, \~"i \"\~i \"~i,\\ -\>\~u \~>u, \~<u \<\~u, \~"u \"\~u, -\>w, \<w, \>\~w \~>w, \~<w \<\~w, -a| a\ypogegrammeni{} - +\>\~i \~>i, \~<i \<\~i, \~"i \"\~i \"~i →\\ \MakeUppercase{ \~>a \>\~a \~\>{a}, \~<a \<\~a \<~a \~\<a \~<a, \>\~{h} \~>h \>~h \>\~h \~>h \~>h|, \~<h \<\~h, -\>\~i \~>i, \~<i \<\~i, \~"i \"\~i \\ % for \"~i, see below +\>\~i \~>i, \~<i \<\~i, \~"i \"\~i % for \"~i, see below +} + \>\~u \~>u, \~<u \<\~u, \~"u \"\~u, -\>w, \<w, \>\~w \~>w, \~<w \<\~w, -a| a\ypogegrammeni{} +\>w, \<w, \>\~w \~>w, \~<w \<\~w, a| a\ypogegrammeni{} → \\ +\MakeUppercase{ +\>\~u \~>u, \~<u \<\~u, \~"u \"\~u, +\>w, \<w, \>\~w \~>w, \~<w \<\~w, a| a\ypogegrammeni{} } \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`>\texteta{} @@ -467,7 +490,7 @@ a| a\ypogegrammeni{} \'<{\textomicron} \~<{\textupsilon} \~>{\textomega} \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{} \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega}, -\textalpha| \textalpha\ypogegrammeni{} +\textalpha| \textalpha\ypogegrammeni{} → \\ \MakeUppercase{% \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`\>\texteta{} @@ -478,7 +501,7 @@ a| a\ypogegrammeni{} \textalpha| \textalpha\ypogegrammeni{} } - \<'A \<\'A \'<A \'\<A $\mapsto$ \MakeUppercase{\<'A \<\'A \'<A \'\<A}. + \<'A \<\'A \'<A \'\<A → \MakeUppercase{\<'A \<\'A \'<A \'\<A}. \end{quote} @@ -526,10 +549,9 @@ A| A\ypogegrammeni{} A\prosgegrammeni{}. \end{quote} The tilde character can be used in combined accents. -However, in documents not defining the Babel language \emph{greek} or -\emph{polutonikogreek}, better use the tilde-accent macro, as -the tilde produces a no-break space if converted with \verb|\MakeUppercase| -or \verb|\MakeLowercase|: +However, in documents not defining the Babel language \emph{greek}, +the tilde character produces a no-break space if converted +with \verb|\MakeUppercase| or \verb|\MakeLowercase|: \begin{quote} combined accent with tilde character:\\ \LGR \"~i \<~i \"~u \<~u \`>u $\mapsto$ @@ -545,7 +567,7 @@ or \verb|\MakeLowercase|: \Latin Accents input via the Latin transliteration are not dropped with MakeUppercase, unless Babel is loaded and the current language is Greek -(because the required local re-definitions of the \texttt{uccode} are done in +(because the required local re-definitions are done in \texttt{greek.ldf} from the \emph{babel-greek} package). \begin{quote} \LGR @@ -569,95 +591,8 @@ and \verb|\>|: \Latin Combinations with named accents: \LGR \accdasia'a \accdasia`a \accdasia\~a. -\Latin The dialytika must be kept in UPPERCASE, e.\,g. - -\begin{quote} - % from http://diacritics.typo.cz/index.php?id=70 μαΐστρος -> ΜΑΪΣΤΡΟΣ. - \LGR ma\"'istros $\mapsto$ \MakeUppercase{ma\"'istros} - \Latin or % from teubner εὐζωΐα -> ΕΥΖΩΪΑ. - \LGR e\>uzw\'"ia $\mapsto$ \MakeUppercase{e\>uzw\'"ia}. -\end{quote} - -This is implemented for all input variants of diacritics with -dialytika: - -\begin{quote} - \LGR \"i \"'i \"`i \"\~i \"u \"'u \"`u \"\~u $\mapsto$ - \MakeUppercase{\"i \"'i \"`i \"\~i \"u \"'u \"`u \"\~u}, -\end{quote} - -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if -placed on the first vowel of a diphthong ({\LGR \'ai, \'au, \'ei}). A -dialytika must be placed on the second vowel if they are dropped: \LGR -(\MakeUppercase{\'ai, \'au, \'ei}). - -\begin{quote} - % from teubner: άυλος/ΑΫΛΟΣ - \'aulos $\mapsto$ \MakeUppercase{\'aulos}, - \>'aulos $\mapsto$ \MakeUppercase{\>'aulos}, - % from http://diacritics.typo.cz/index.php?id=69 μάινα -> ΜΑΪΝΑ - m\'aina $\mapsto$ \MakeUppercase{m\'aina}, - % from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema - % κέικ, ἀυπνία/αϋπνία - k\'eik $\mapsto$ \MakeUppercase{k\'eik}, - \>aupn\'ia $\mapsto$ \MakeUppercase{\>aupn\'ia}, - % from http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/ - % ρωμέικα - rwm\'eika $\mapsto$ \MakeUppercase{rwm\'eika} -\end{quote} - -\newpage - -\Latin Test the auto-hiatus feature for side-effects: - -\LGR \MakeUppercase{\'a b} (\Latin must keep space after A). - -Kerning (see the input): -\LGR -\newcommand\md{\textcompwordmark} -\newcommand\MU{\MakeUppercase} - -\begin{quote} - \raggedright - \md \MU{ AO AY AI AU RA OA UA DU} [ \\ - \<\md \MU{ \<AO \<AY \<AI \<AU \<RA \<OA U\<A D\<U} [ \\ - \>\md \MU{ \>AO \>AY \>AI \>AU \>RA \>OA U\>A D\>U} [ \\ - \>'\md\MU{ \>'AO \>'AY \>'AI \>'AU \>'RA \>'OA U\>'A D\>'U} [ \\ - \'\md \MU{ \'AO \'AY \'AI \'AU \'RA \'OA U\'A D\'U} [ \\ - \>`\md\MU{ \>`AO \>`AY \>`AI \>`AU \>`RA \>`OA U\>`A D\>`U} [ \\ - \<'\md\MU{ \<'AO \<'AY \<'AI \<'AU \<'RA \<'OA U\<'A D\<'U} [ \\ - \`\md \MU{ \`AO \`AY \`AI \`AU \`RA \`OA U\`A D\`U} [ \\ - \<`\md\MU{ \<`AO \<`AY \<`AI \<`AU \<`RA \<`OA U\<`A D\<`U} [ \\ - \~\md \MU{ \~AO \~AY \~AI \~AU \~RA \~OA U\~A D\~U} [ \\ - \~>\md\MU{ \~>AO \~>AY \~>AI \~>AU \~>RA \~>OA U\~>A D\~>U} [ \\ - \~<\md\MU{ \~<AO \~<AY \~<AI \~<AU \~<RA \~<OA U\~<A D\~<U} [ \\ - \~<\md\MU{ \~<ao \~<ay \~<ai \~<au \~<ra \~<oa u\~<a d\~<u} [ \\ - \"\md \MU{ AO AY A\"I A\"U RA OA \"UA DU} [ \\ - \"\md \MU{ \"AO \"AY \"AI \"AU \"RA \"OA U\"A D\"U} [ \\ - \"~\md\MU{ \~"AO \~"AY \~"AI \~"AU \~"RA \~"OA U\~"A D\~"U} [ \\ -\end{quote} - - -\Latin -Rows 3 \ldots 7: Look-ahead (to check for a hiatus) breaks kerning before -`A' with tonos or psili. - -% \'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 - -Rows 15 and 16: Like in any font encoding, there is no kerning for -non-defined accent-letter-combinations (dialytica on \LGR A O D\Latin). - -\Latin - -Downcasing should keep diacritics (of course, it cannot regenerate -``manually" dropped ones): -\LGR 'A \"I \"U \~<A $\mapsto$ \MakeLowercase{\'A \"I \"U \~<A} - % \Latin Comprehensive error message for missing symbol variants: % \LGR \textbeta\textbetasymbol % \texttheta\textthetasymbol -\Latin - \end{document} diff --git a/language/greek/greek-fontenc/test-licr-input.pdf b/language/greek/greek-fontenc/test-licr-input.pdf Binary files differindex 84afb84825..37e9e5148a 100644 --- a/language/greek/greek-fontenc/test-licr-input.pdf +++ b/language/greek/greek-fontenc/test-licr-input.pdf diff --git a/language/greek/greek-fontenc/test-licr-input.tex b/language/greek/greek-fontenc/test-licr-input.tex index a1e6642630..79cdac3aeb 100644 --- a/language/greek/greek-fontenc/test-licr-input.tex +++ b/language/greek/greek-fontenc/test-licr-input.tex @@ -8,13 +8,18 @@ % the Greek font setup for TU and PU: % test with different input encoding (before Greek font setup) -\usepackage[latin1]{luainputenc} +\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. \ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines diff --git a/language/greek/greek-fontenc/test-tuenc-greek.pdf b/language/greek/greek-fontenc/test-tuenc-greek.pdf Binary files differindex 417bac678e..c96b551c60 100644 --- a/language/greek/greek-fontenc/test-tuenc-greek.pdf +++ b/language/greek/greek-fontenc/test-tuenc-greek.pdf diff --git a/language/greek/greek-fontenc/test-tuenc-greek.tex b/language/greek/greek-fontenc/test-tuenc-greek.tex index 93e4a11145..4a72bea9c9 100644 --- a/language/greek/greek-fontenc/test-tuenc-greek.tex +++ b/language/greek/greek-fontenc/test-tuenc-greek.tex @@ -77,7 +77,7 @@ language option \href{https://ctan.org/pkg/babel-greek}{greek}) if these packages are used with Unicode-aware TeX engines (XeTeX or LuaTeX). This provides support for Greek LICR input and fixes for MakeUppercase. The \verb|\MakeUppercase| implementation introduced in the 2022/06 LaTeX -release works uses Greek upcasing rules only for text parts with the +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. @@ -112,13 +112,11 @@ Greek letters via LICR macros: The small sigma is set with a different glyph if it ends a word: \begin{quote} - \textsigma{} \verb|textsigma|\\ - \textfinalsigma{} \verb|textfinalsigma| or \verb|textvarsigma| + \textsigma{} \verb|\textsigma|\\ + \textfinalsigma{} \verb|\textfinalsigma| or \verb|\textvarsigma| \end{quote} -The \verb|\textautosigma| macro, which automatically chooses the -glyph according to the position, relies on \verb|\makelowercase| -and only works correctly with LaTeX versions newer than 2022/06: -\textautosigma{}\textiota{} vs. \textiota\textautosigma. +The \verb|\textautosigma| currently works only with 8-bit LGR fonts: +\textautosigma\textiota{} vs. \textiota\textautosigma. \subsection{Diacritics} @@ -478,7 +476,7 @@ named macro: \subsection{hiatus} -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on +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. diff --git a/language/greek/greek-fontenc/textalpha-doc-tu.pdf b/language/greek/greek-fontenc/textalpha-doc-tu.pdf Binary files differindex 4fc938af3a..b2eba7d76a 100644 --- a/language/greek/greek-fontenc/textalpha-doc-tu.pdf +++ b/language/greek/greek-fontenc/textalpha-doc-tu.pdf diff --git a/language/greek/greek-fontenc/textalpha-doc.pdf b/language/greek/greek-fontenc/textalpha-doc.pdf Binary files differindex 6b8310e285..1ddc33a175 100644 --- a/language/greek/greek-fontenc/textalpha-doc.pdf +++ b/language/greek/greek-fontenc/textalpha-doc.pdf diff --git a/language/greek/greek-fontenc/textalpha-doc.tex b/language/greek/greek-fontenc/textalpha-doc.tex index 7d1992c346..da2f6725eb 100644 --- a/language/greek/greek-fontenc/textalpha-doc.tex +++ b/language/greek/greek-fontenc/textalpha-doc.tex @@ -1,7 +1,6 @@ \documentclass[a4paper]{article} \usepackage{parskip} \usepackage{booktabs} -\usepackage{cmap} \ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines % Setup for Unicode fonts (Xe-/LuaTeX) @@ -17,11 +16,8 @@ \usepackage[LGR,T1]{fontenc} \newcommand*{\greekfontencoding}{LGR} \newcommand*{\latinencoding}{T1} - % UTF8 input encoding for pdfTeX or LuaTeX in 8-bit compatibility mode: - \usepackage[utf8]{luainputenc} \fi - \usepackage[pdfencoding=auto,colorlinks=true,linkcolor=blue]{hyperref} % \usepackage{bookmark} \makeatletter @@ -123,11 +119,12 @@ Unicode fonts in these cases. \subsubsection{\texttt{keep-semicolon}} -LGR is no \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}{standard text font encoding}. +LGR is no \href{https://mirrors.ctan.org/macros/latex/base/encguide.pdf}% +{standard text font encoding}. Latin characters and some other ASCII symbols are mapped to Greek ``equivalents'' if LGR is the active font encoding. (See -\href{https://mirrors.ctan.org/language/babel/contrib/greek/usage.pdf}{usage.pdf} -for a description of this Latin-Greek transliteration.) +\href{https://mirrors.ctan.org/language/babel/contrib/greek/babel-greek-doc.html#lgr-latin-transliteration}% +{babel-greek} for a description of this Latin-Greek transliteration.) Special care is required with the question mark characters: The LGR font encoding uses the Latin question mark as input for the \emph{erotimatiko} @@ -167,6 +164,14 @@ Test whether this works as expected in math mode: \ensuregreek{$a b; a\;b, (\mathrm{a;}\textrm{a;}2)$}. +\subsection{Shortcuts for Breathings} + +\emph{textalpha} defines the shortcut macros \verb|\<| and \verb|\>| 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. + + \section{Limitations \label{sec:limitations}} If compiling with 8-bit TeX, the internal font encoding switches interfere @@ -211,52 +216,38 @@ if you drag-and-drop text from the PDF version of this document.: \'<\textalpha \accdasia\acctonos\textalpha \acctonos\accdasia\textalpha - \accdasiaoxia\textalpha - } (\greekfontencoding) - vs. \accdasiaoxia\textalpha{} (\latinencoding). + \accdasiaoxia\textalpha{} + \<'\textAlpha + \'<\textAlpha + \accdasia\acctonos\textAlpha + \acctonos\accdasia\textAlpha + \accdasiaoxia\textAlpha + } (\greekfontencoding) + vs. \accdasiaoxia\textalpha{} \accdasiaoxia\textAlpha{} (\latinencoding). \end{quote} -Greek diacritics (except the dialytika) are placed before capital letters in -Titlecase and dropped in UPPERCASE: -% -\begin{quote} - \ensuregreek{% - \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`>\texteta{} - \'<{\textomicron} \~<{\textupsilon} \~>{\textomega} - \quad - \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{} - \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega} - - \MakeUppercase{% - \<{\textalpha} \>{\textepsilon} \"'{\textiota} \`\>\texteta{} - \'<{\textomicron} \~<{\textupsilon} \~>{\textomega} - \quad - \<{\textAlpha} \>{\textEpsilon} \"{\textIota} \`>\textEta{} - \'<{\textOmicron} \~<{\textUpsilon} \~>{\textOmega} - } - } -\end{quote} -% -With the new \verb|\MakeUppercase| implementation (since 2022/06), -Greek upcasing rules are only applied if the text language is set to Greek -with Babel (and still need some fixes for LICR input). +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 the old \verb|\MakeUppercase| implementation, the above rules are fully applied if the active font encoding is LGR or TU. However, accents input as macros are misplaced if the active font encoding does not support Greek. Pre-composed literal Unicode characters are handled correctly: \begin{quote} - \begin{tabular}{ccc} - & LICR & Unicode \\ \hline - \greekfontencoding & \ensuregreek{\'\textAlpha} & \ensuregreek{Ά} \\ - \latinencoding & \'\textAlpha & Ά - \end{tabular} + \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 on the first of two consecutive vowels). The -auto-hiatus feature works in LGR and TU font encodings only: +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{ @@ -268,19 +259,18 @@ auto-hiatus feature works in LGR and TU font encodings only: \end{quote} With the old implementation of \verb|\MakeUppercase|, the auto-hiatus -feature works with LICR commands, not Unicode literals. -The new implementation works with Unicode literals but only if the text +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{}πνία} $\mapsto$ -\ensuregreek{\MakeUppercase{\ensuregreek{\accpsili{\textalpha}\textupsilon{}πνία}}} -(OK) - -\ensuregreek{ἀ\textupsilon{}πνία} $\mapsto$ -\ensuregreek{\MakeUppercase{ἀ\textupsilon{}πνία}} (OK with LGR) +\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 fail without Babel) +\ensuregreek{\MakeUppercase{ἀυπνία}} (literal characters: fails without Babel) \end{quote} @@ -340,7 +330,7 @@ Archaic Greek letters and Greek punctuation Diacritics \begin{quote} - Symbol macros:% + Short macros:% \footnote{Composite diacritics require wrapping in \texttt{\textbackslash ensuregreek}.} \"{} \'{} \`{} \~{} \<{} \>{} \u{} \={} @@ -379,7 +369,6 @@ This also works for the new-defined Dasia and Psili shortcuts: \begin{quote} \begin{tabbing} COL1\quad \= COL2\quad \= COL3\quad \= COL4\quad \\ - COL1 \> \> COL3 \\ Viele \> Gr\a"u\ss e \> \greekscript \a<\textalpha{} \> \greekscript \a>\textomega @@ -395,32 +384,32 @@ 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 and works only in LGR: +ligature mechanism in LGR: \ensuregreek{\textautosigma\textautosigma} (\greekfontencoding) vs. -\textautosigma{}\textautosigma{} (\latinencoding). +\textautosigma{}\textautosigma{} (\latinencoding).% +\footnote{TODO: Fix \texttt{\textbackslash textautosigma} with Unicode fonts.} + The upper case of both sigma variants is \verb|\textSigma|, the lower case -of Sigma is \verb|\textautosigma|. +of \verb|\textSigma| is \verb|\textautosigma|. + +\smallskip\noindent +Test: Unicode literal and \verb|\text...| commands -Test: (Unicode literal and \verb|\text...| commands in \greekfontencoding) +\newcommand{\sample}{σ\textsigma{} + ς\textvarsigma \textfinalsigma \textautosigma{} + ΣΣ \textSigma\textSigma{}} -original: σ\textsigma{} ς\textvarsigma \textfinalsigma \textautosigma{} - ΣΣ \textSigma\textSigma{} +no change: \sample -MakeUppercase: -\MakeUppercase{σ\textsigma{} ς\textvarsigma \textfinalsigma \textautosigma{} - ΣΣ \textSigma\textSigma{}} +MakeUppercase: \MakeUppercase{\sample} -MakeLowercase: -\MakeLowercase{σ\textsigma{} ς\textvarsigma \textfinalsigma \textautosigma{} - \ensuregreek{ΣΣ \textSigma\textSigma{}}} +MakeLowercase (\latinencoding): \MakeLowercase{\sample} -TODO: With the new MakeLowercase, a literal Σ is converted according to its -position :) but the macro \verb|\textSigma| is converted to a final sigma -also in the middle of a word (at least with language English). +MakeLowercase (\greekfontencoding): \ensuregreek{\MakeLowercase{\sample}} -\subsection{Greek Unicode characters in non-Greek text} +\subsection{Greek literal characters in non-Greek text} With the \emph{textalpha} package, \href{https://ctan.org/pkg/greek-inputenc}{greek-inputenc} and input @@ -428,10 +417,12 @@ encoding \texttt{utf8}, Greek Unicode characters can be used in text with any font encoding. See Tables \ref{tab:greek-and-coptic} and \ref{tab:greek-extended}. -Kerning is preserved if the active font encoding supports Greek: -\ensuregreek{AΫA} +Kerning is preserved if the active font encoding supports Greek. This can be +secured by wrapping the Greek text part in \verb|\ensuregreek| or setting the +text language with Babel: \ensuregreek{AΫA} \begin{table}[tbp] +\setlength{\tabcolsep}{0.45em} \centerline{ \begin{tabular}{rrrrrrrrrrrrrrrrr} \toprule @@ -457,6 +448,7 @@ Kerning is preserved if the active font encoding supports Greek: \begin{table}[tbp] +\setlength{\tabcolsep}{0.45em} \centerline{ \begin{tabular}{rrrrrrrrrrrrrrrrr} \toprule @@ -486,8 +478,13 @@ characters in \latinencoding{} font encoding.} \label{tab:greek-extended} \end{table} -Combined Diacritics work ᾅ, diacritics (except diaeresis) are dropped with -MakeUppercase (μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}). +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. + +μαΐστρος, δύο $\mapsto$ \MakeUppercase{μαΐστρος, δύο}. \subsection{PDF strings} @@ -501,9 +498,11 @@ Unicode input. λογος and \ensuregreek{logos}} The subsection title above uses: LICR macros, Unicode input and the LGR -transliteration for the Greek word \ensuregreek{logos}. Check the table of -contents in the PDF viewer: LICR macros and Unicode literals work fine, the -Latin transliteration remains Latin in the PDF metadata. +transliteration for the Greek word \ensuregreek{logos}. + +LICR macros and Unicode literals work fine everywhere, the +Latin transliteration remains Latin in the PDF metadata +(sidebar table of contents in the PDF viewer) and with Xe/LuaTeX. \subsubsection{\greekalphabetsample} \subsubsection{\greekAlphabetsample} diff --git a/language/greek/greek-fontenc/textalpha-tu.pdf b/language/greek/greek-fontenc/textalpha-tu.pdf Binary files differdeleted file mode 100644 index ac6b130fd8..0000000000 --- a/language/greek/greek-fontenc/textalpha-tu.pdf +++ /dev/null diff --git a/language/greek/greek-fontenc/textalpha.sty b/language/greek/greek-fontenc/textalpha.sty index 20e40bec2b..7f09a4469d 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.2.2 (changelog_) +% :Version: 2.4 (changelog_) % % :Copyright: © 2010, 2023 Günter Milde % @@ -11,8 +11,7 @@ % conditions of the `LaTeX Project Public License`_, either % version 1.3 of this license or any later version. % -% :Abstract: Provide a set of ``\text*`` macros for Greek characters -% in text mode. +% :Abstract: Provide a set of LICR macros for Greek characters in text mode. % % % .. contents:: @@ -33,7 +32,7 @@ % definitions. % % * Otherwise, the `LGR font encoding`_ is set as `default font encoding` -% (cf. fntguide_ section 5.3) for Greek. +% (cf. [fntguide]_ section 5.3) for Greek. % % Advantages: % @@ -63,7 +62,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 correct hyphenation of Greek text. +% to ensure correct hyphenation and upcasing of Greek text. % % % Usage @@ -91,9 +90,13 @@ % To give ``textalpha.sty`` a chance of finding out which `font encodings`_ % are used, load it after fontspec_ and/or fontenc_. % +% Documentation +% ============= % +% A HTML rendering of the literal source is available as +% `<textalpha.sty.html>`_ (you may be reading it just now). % -% For detailled examples see `<textalpha-doc.tex>`_ and `<textalpha-doc.pdf>`_ +% For detailed examples see `<textalpha-doc.tex>`_ and `<textalpha-doc.pdf>`_ % (8-bit TeX and XeTeX/LuaTeX in 8-bit compatibility mode) as well as % `<test-tuenc-greek.tex>`_ and `<test-tuenc-greek.pdf>`_ (XeTeX/LuaTeX with % Unicode fonts). @@ -110,8 +113,7 @@ % :: \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{textalpha} - [2023-03-17 2.2.2 macros for Greek letters in text] +\ProvidesPackage{textalpha}[2023-08-15 2.4 macros for Greek letters in text] % Options @@ -189,8 +191,22 @@ \DeclareTextCompositeCommand{\<}{#1}{'}{\accdasiaoxia} \DeclareTextCompositeCommand{\<}{#1}{`}{\accdasiavaria} \DeclareTextCompositeCommand{\<}{#1}{~}{\accdasiaperispomeni} + +% Also define "mixed" composites (required due to the fix for +% ``\MakeUppercse`` below:: + + % \MakeUppercse: \>~a, \<~a + % \DeclareTextCompositeCommand{\accpsili}{#1}{~}{\accpsiliperispomeni} + % \DeclareTextCompositeCommand{\accdasia}{#1}{~}{\accdasiaperispomeni} } +% Fix 2022 \MakeUppercase:: + +\ifdefined\DeclareCaseChangeEquivalent % new in 2023 + \DeclareCaseChangeEquivalent{\<}{\CaseSwitch{\<}{\LGR@accdropped}{\<}{\<}} + \DeclareCaseChangeEquivalent{\>}{\CaseSwitch{\>}{\LGR@hiatus}{\>}{\>}} +\fi + % .. _font encoding: % @@ -213,14 +229,7 @@ % .. _LGR font encoding: README.html#lgr % % Ensure a Greek-supporting font encoding exists and supports Greek LICR -% macros: -% -% * Load the Greek LICR definitions for Unicode if the font encoding TU -% is detected. -% * If none of TU or LGR is declared, load ``tuenc.def`` with -% Xe/LuaTeX and ``lgrenc.def`` else. -% -% :: +% macros:: \ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines \input{tuenc-greek.def} @@ -275,6 +284,12 @@ \DeclareTextSymbol{\textmicro}{TS1}{181} % micro sign \DeclareTextSymbolDefault{\textmicro}{TS1} +% Use it for the MICRO SIGN character:: + +\ifdefined\DeclareUnicodeCharacter + \DeclareUnicodeCharacter{00B5}{\textmicro} % micro sign +\fi + % Default declarations % -------------------- @@ -586,6 +601,8 @@ % 2.2 2023-02-28 Don't use ``\makeatother`` in ``\AtBeginDocument``. % 2.2.1 2023-03-08 Documentation update. % 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 ``\>``. % ====== =========== ======================================================== % % diff --git a/language/greek/greek-fontenc/textalpha.sty.html b/language/greek/greek-fontenc/textalpha.sty.html index 4ee5502bad..f3cd385494 100644 --- a/language/greek/greek-fontenc/textalpha.sty.html +++ b/language/greek/greek-fontenc/textalpha.sty.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.20.2b.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, 2023 Günter Milde" /> <title>textalpha.sty</title> @@ -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.2.2 (<a class="reference internal" href="#changelog">changelog</a>)</dd> +<dd class="version">2.4 (<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> @@ -805,43 +805,43 @@ 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>Provide a set of <span class="docutils literal">\text*</span> macros for Greek characters -in text mode.</p> +<p>Provide a set of LICR macros for Greek characters in text mode.</p> </div> <nav class="contents" id="contents" role="doc-toc"> <p class="topic-title">Contents</p> <ul class="simple"> <li><p><a class="reference internal" href="#motivation" id="toc-entry-1">Motivation</a></p></li> <li><p><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></p></li> -<li><p><a class="reference internal" href="#implementation" id="toc-entry-3">Implementation</a></p> +<li><p><a class="reference internal" href="#documentation" id="toc-entry-3">Documentation</a></p></li> +<li><p><a class="reference internal" href="#implementation" id="toc-entry-4">Implementation</a></p> <ul> -<li><p><a class="reference internal" href="#identification" id="toc-entry-4">Identification</a></p></li> -<li><p><a class="reference internal" href="#options" id="toc-entry-5">Options</a></p> +<li><p><a class="reference internal" href="#identification" id="toc-entry-5">Identification</a></p></li> +<li><p><a class="reference internal" href="#options" id="toc-entry-6">Options</a></p> <ul> -<li><p><a class="reference internal" href="#normalize-symbols" id="toc-entry-6">normalize-symbols</a></p></li> -<li><p><a class="reference internal" href="#keep-semicolon" id="toc-entry-7">keep-semicolon</a></p></li> +<li><p><a class="reference internal" href="#normalize-symbols" id="toc-entry-7">normalize-symbols</a></p></li> +<li><p><a class="reference internal" href="#keep-semicolon" id="toc-entry-8">keep-semicolon</a></p></li> </ul> </li> -<li><p><a class="reference internal" href="#symbol-macros-for-breathings" id="toc-entry-8">Symbol macros for breathings</a></p></li> -<li><p><a class="reference internal" href="#font-encodings" id="toc-entry-9">Font encodings</a></p></li> -<li><p><a class="reference internal" href="#default-declarations" id="toc-entry-10">Default declarations</a></p> +<li><p><a class="reference internal" href="#symbol-macros-for-breathings" id="toc-entry-9">Symbol macros for breathings</a></p></li> +<li><p><a class="reference internal" href="#font-encodings" id="toc-entry-10">Font encodings</a></p></li> +<li><p><a class="reference internal" href="#default-declarations" id="toc-entry-11">Default declarations</a></p> <ul> -<li><p><a class="reference internal" href="#greekscript-ensuregreek" id="toc-entry-11">greekscript, ensuregreek</a></p></li> -<li><p><a class="reference internal" href="#greek-alphabet" id="toc-entry-12">Greek Alphabet</a></p></li> -<li><p><a class="reference internal" href="#additional-greek-symbols" id="toc-entry-13">Additional Greek symbols</a></p> +<li><p><a class="reference internal" href="#greekscript-ensuregreek" id="toc-entry-12">greekscript, ensuregreek</a></p></li> +<li><p><a class="reference internal" href="#greek-alphabet" id="toc-entry-13">Greek Alphabet</a></p></li> +<li><p><a class="reference internal" href="#additional-greek-symbols" id="toc-entry-14">Additional Greek symbols</a></p> <ul> -<li><p><a class="reference internal" href="#variant-shape-symbols" id="toc-entry-14">variant shape symbols</a></p></li> +<li><p><a class="reference internal" href="#variant-shape-symbols" id="toc-entry-15">variant shape symbols</a></p></li> </ul> </li> -<li><p><a class="reference internal" href="#diacritics" id="toc-entry-15">Diacritics</a></p></li> -<li><p><a class="reference internal" href="#auxiliary-macros" id="toc-entry-16">Auxiliary macros</a></p></li> -<li><p><a class="reference internal" href="#semicolon-as-erotimatiko" id="toc-entry-17">semicolon as erotimatiko</a></p></li> +<li><p><a class="reference internal" href="#diacritics" id="toc-entry-16">Diacritics</a></p></li> +<li><p><a class="reference internal" href="#auxiliary-macros" id="toc-entry-17">Auxiliary macros</a></p></li> +<li><p><a class="reference internal" href="#semicolon-as-erotimatiko" id="toc-entry-18">semicolon as erotimatiko</a></p></li> </ul> </li> </ul> </li> -<li><p><a class="reference internal" href="#todo" id="toc-entry-18">TODO</a></p></li> -<li><p><a class="reference internal" href="#changelog" id="toc-entry-19">Changelog</a></p></li> +<li><p><a class="reference internal" href="#todo" id="toc-entry-19">TODO</a></p></li> +<li><p><a class="reference internal" href="#changelog" id="toc-entry-20">Changelog</a></p></li> </ul> </nav> <section id="motivation"> @@ -857,7 +857,7 @@ and does “the right thing” to set up Greek text font support:</p> <li><p>If an Unicode font encoding is declared by <span class="docutils literal">fontspec</span>, add Greek LICR definitions.</p></li> <li><p>Otherwise, the <a class="reference external" href="README.html#lgr">LGR font encoding</a> is set as <cite>default font encoding</cite> -(cf. <a class="reference external" href="https://mirrors.ctan.org/macros/latex/base/fntguide.pdf">fntguide</a> section 5.3) for Greek.</p></li> +(cf. <a class="citation-reference" href="#" id="citation-reference-1" role="doc-biblioref">[fntguide]</a> section 5.3) for Greek.</p></li> </ul> <p>Advantages:</p> <ul> @@ -886,7 +886,7 @@ of 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 correct hyphenation of Greek text.</p> +to ensure correct hyphenation and upcasing of Greek text.</p> </aside> </section> <section id="usage"> @@ -899,7 +899,12 @@ to ensure correct hyphenation of Greek text.</p> <pre class="code latex literal-block"><code><span class="keyword">\usepackage</span><span class="name attribute">[normalize-symbols,keep-semicolon]</span><span class="name builtin">{</span>textalpha<span class="name builtin">}</span></code></pre> <p>To give <span class="docutils literal">textalpha.sty</span> a chance of finding out which <a class="reference internal" href="#font-encodings">font encodings</a> are used, load it after <a class="reference external" href="https://ctan.org/pkg/fontspec">fontspec</a> and/or <a class="reference external" href="https://ctan.org/pkg/fontenc">fontenc</a>.</p> -<p>For detailled examples see <a class="reference external" href="textalpha-doc.tex">textalpha-doc.tex</a> and <a class="reference external" href="textalpha-doc.pdf">textalpha-doc.pdf</a> +</section> +<section id="documentation"> +<h2><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Documentation</a></h2> +<p>A HTML rendering of the literal source is available as +<a class="reference external" href="textalpha.sty.html">textalpha.sty.html</a> (you may be reading it just now).</p> +<p>For detailed examples see <a class="reference external" href="textalpha-doc.tex">textalpha-doc.tex</a> and <a class="reference external" href="textalpha-doc.pdf">textalpha-doc.pdf</a> (8-bit TeX and XeTeX/LuaTeX in 8-bit compatibility mode) as well as <a class="reference external" href="test-tuenc-greek.tex">test-tuenc-greek.tex</a> and <a class="reference external" href="test-tuenc-greek.pdf">test-tuenc-greek.pdf</a> (XeTeX/LuaTeX with Unicode fonts).</p> @@ -907,17 +912,16 @@ Unicode fonts).</p> in the same document (see <a class="reference external" href="test-tuenc-greek.tex">test-tuenc-greek.tex</a>).</p> </section> <section id="implementation"> -<h2><a class="toc-backref" href="#toc-entry-3" role="doc-backlink">Implementation</a></h2> +<h2><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Implementation</a></h2> <section id="identification"> -<h3><a class="toc-backref" href="#toc-entry-4" role="doc-backlink">Identification</a></h3> +<h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Identification</a></h3> <pre class="literal-block">\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{textalpha} - [2023-03-17 2.2.2 macros for Greek letters in text]</pre> +\ProvidesPackage{textalpha}[2023-08-15 2.4 macros for Greek letters in text]</pre> </section> <section id="options"> -<h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Options</a></h3> +<h3><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">Options</a></h3> <section id="normalize-symbols"> -<span id="normalize-symbols-variants"></span><h4><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">normalize-symbols</a></h4> +<span id="normalize-symbols-variants"></span><h4><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">normalize-symbols</a></h4> <p>The “variant shape” symbol characters like <span class="docutils literal">03D1 GREEK THETA SYMBOL</span> are mathematical charcters for mathematical use (similar to <span class="docutils literal">1D440 MATHEMATICAL ITALIC CAPITAL M</span>). @@ -938,7 +942,7 @@ errors to prevent information loss in cases where the distinction between \DeclareOption{normalize-symbols}{\textalpha@normalizeSymbolstrue}</pre> </section> <section id="keep-semicolon"> -<span id="use-the-semicolon-as-erotimatiko"></span><h4><a class="toc-backref" href="#toc-entry-7" role="doc-backlink">keep-semicolon</a></h4> +<span id="use-the-semicolon-as-erotimatiko"></span><h4><a class="toc-backref" href="#toc-entry-8" role="doc-backlink">keep-semicolon</a></h4> <p>The <a class="reference external" href="https://en.wikipedia.org/wiki/Question_mark#Erotimatiko">erotimatiko</a> looks like a semicolon but is a <strong>Greek question mark</strong>:</p> <ul class="simple"> @@ -959,7 +963,7 @@ With XeTeX/LuaTeX and Unicode fonts, this option is ignored.</p> </section> </section> <section id="symbol-macros-for-breathings"> -<h3><a class="toc-backref" href="#toc-entry-8" role="doc-backlink">Symbol macros for breathings</a></h3> +<h3><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">Symbol macros for breathings</a></h3> <p>In the Latin transliteration provided by LGR, breathing accents (Dasia and Psili) are input as < and >. Provide the corresponding NFSS macro accents. (Used below for LGR, TU, and PU, if these font encodings are defined):</p> @@ -972,11 +976,21 @@ Psili) are input as < and >. Provide the corresponding NFSS macro accents. \DeclareTextCompositeCommand{\>}{#1}{~}{\accpsiliperispomeni} \DeclareTextCompositeCommand{\<}{#1}{'}{\accdasiaoxia} \DeclareTextCompositeCommand{\<}{#1}{`}{\accdasiavaria} - \DeclareTextCompositeCommand{\<}{#1}{~}{\accdasiaperispomeni} + \DeclareTextCompositeCommand{\<}{#1}{~}{\accdasiaperispomeni}</pre> +<p>Also define “mixed” composites (required due to the fix for +<span class="docutils literal">\MakeUppercse</span> below:</p> +<pre class="literal-block"> % \MakeUppercse: \>~a, \<~a + % \DeclareTextCompositeCommand{\accpsili}{#1}{~}{\accpsiliperispomeni} + % \DeclareTextCompositeCommand{\accdasia}{#1}{~}{\accdasiaperispomeni} }</pre> +<p>Fix 2022 MakeUppercase:</p> +<pre class="literal-block">\ifdefined\DeclareCaseChangeEquivalent % new in 2023 + \DeclareCaseChangeEquivalent{\<}{\CaseSwitch{\<}{\LGR@accdropped}{\<}{\<}} + \DeclareCaseChangeEquivalent{\>}{\CaseSwitch{\>}{\LGR@hiatus}{\>}{\>}} +\fi</pre> </section> <section id="font-encodings"> -<span id="font-encoding"></span><h3><a class="toc-backref" href="#toc-entry-9" role="doc-backlink">Font encodings</a></h3> +<span id="font-encoding"></span><h3><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Font encodings</a></h3> <p>With 8-bit LaTeX, the <a class="reference external" href="README.html#lgr">LGR font encoding</a> is used for Greek characters. If no Greek-supporting font encoding (TU or LGR) is declared, LGR is loaded and set up as default Greek font encoding by this package.</p> @@ -988,12 +1002,6 @@ selection system, <a class="reference external" href="https://ctan.org/pkg/fonts load Greek LICR definitions for XeTeX/LuaTeX from <a class="reference external" href="tuenc-greek.def.html">tuenc-greek.def</a> which in turn includes <a class="reference external" href="greek-fontenc.def.html">greek-fontenc.def</a>.</p> <p>Ensure a Greek-supporting font encoding exists and supports Greek LICR macros:</p> -<ul class="simple"> -<li><p>Load the Greek LICR definitions for Unicode if the font encoding TU -is detected.</p></li> -<li><p>If none of TU or LGR is declared, load <span class="docutils literal">tuenc.def</span> with -Xe/LuaTeX and <span class="docutils literal">lgrenc.def</span> else.</p></li> -</ul> <pre class="literal-block">\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines \input{tuenc-greek.def} \textalpha@define@breathings{\UnicodeEncodingName} @@ -1040,9 +1048,13 @@ The new macro <span class="docutils literal">\textmicro</span> selects the chara and is not capitalised with <span class="docutils literal">\MakeUppercase</span>:</p> <pre class="literal-block">\DeclareTextSymbol{\textmicro}{TS1}{181} % micro sign \DeclareTextSymbolDefault{\textmicro}{TS1}</pre> +<p>Use it for the MICRO SIGN character:</p> +<pre class="literal-block">\ifdefined\DeclareUnicodeCharacter + \DeclareUnicodeCharacter{00B5}{\textmicro} % micro sign +\fi</pre> </section> <section id="default-declarations"> -<h3><a class="toc-backref" href="#toc-entry-10" role="doc-backlink">Default declarations</a></h3> +<h3><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">Default declarations</a></h3> <p>The following definitions ensure that the Greek LICR macros can be used anywhere in the document also with 8-bit TeX by declaring LGR as their default font encoding. Abort here, if the LGR font encoding is not defined:</p> @@ -1050,7 +1062,7 @@ default font encoding. Abort here, if the LGR font encoding is not defined:</p> \expandafter\endinput }</pre> <section id="greekscript-ensuregreek"> -<h4><a class="toc-backref" href="#toc-entry-11" role="doc-backlink">greekscript, ensuregreek</a></h4> +<h4><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">greekscript, ensuregreek</a></h4> <p>The <span class="docutils literal">\greekscript</span> declaration ensures the current font encoding supports the Greek script. <span class="docutils literal"><span class="pre">greek-fontenc.def</span></span> sets this to the empty declaration for font encodings that do so. This is currently used by <span class="docutils literal">lgrenc.def</span> @@ -1080,7 +1092,7 @@ argument unchanged. This way, kerning and selection of precomposed glyphs would work also for cases like <span class="docutils literal"><span class="pre">\ensuregreek{\'A}U</span></span>.</p> </section> <section id="greek-alphabet"> -<h4><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">Greek Alphabet</a></h4> +<h4><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">Greek Alphabet</a></h4> <p>Define the <span class="docutils literal">text*</span> marcos as default for all font encodings:</p> <pre class="literal-block">\DeclareTextSymbolDefault{\textAlpha}{LGR} \DeclareTextSymbolDefault{\textBeta}{LGR} @@ -1137,7 +1149,7 @@ would work also for cases like <span class="docutils literal"><span class="pre"> \DeclareTextSymbolDefault{\textomega}{LGR}</pre> </section> <section id="additional-greek-symbols"> -<h4><a class="toc-backref" href="#toc-entry-13" role="doc-backlink">Additional Greek symbols</a></h4> +<h4><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">Additional Greek symbols</a></h4> <p>Including alias names for compatibility with hyperref’s puenc.def.</p> <p>Ancient Greek Numbers (Athenian Numerals):</p> <pre class="literal-block">\DeclareTextSymbolDefault{\textpentedeka}{LGR} % GREEK ACROPHONIC ATTIC FIFTY @@ -1172,7 +1184,7 @@ would work also for cases like <span class="docutils literal"><span class="pre"> \DeclareTextSymbolDefault{\textaristerikeraia}{LGR} % ͵ (Aristeri keraia) \DeclareTextSymbolDefault{\textnumeralsignlowergreek}{LGR} % (puenc.def)</pre> <section id="variant-shape-symbols"> -<h5><a class="toc-backref" href="#toc-entry-14" role="doc-backlink">variant shape symbols</a></h5> +<h5><a class="toc-backref" href="#toc-entry-15" role="doc-backlink">variant shape symbols</a></h5> <p>Mathematical notation uses variant shapes of some Greek letters as additional symbols. There are separate code points for the symbol variants in Unicode but not in the LGR font encoding used for Greek in 8-bit TeX. @@ -1199,7 +1211,7 @@ The variations have no syntactic meaning in Greek text.</p> </section> </section> <section id="diacritics"> -<h4><a class="toc-backref" href="#toc-entry-15" role="doc-backlink">Diacritics</a></h4> +<h4><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">Diacritics</a></h4> <p>Greek diacritics via “named” macros:</p> <pre class="literal-block">\DeclareTextAccentDefault{\accdasia}{LGR} \DeclareTextAccentDefault{\accpsili}{LGR} @@ -1229,7 +1241,7 @@ The variations have no syntactic meaning in Greek text.</p> \DeclareTextAccentDefault{\accbrevebelow}{LGR} % BREVE BELOW</pre> </section> <section id="auxiliary-macros"> -<h4><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">Auxiliary macros</a></h4> +<h4><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">Auxiliary macros</a></h4> <p><span class="docutils literal">\MakeUppercase</span> requires four internal commands:</p> <pre class="literal-block">\DeclareTextAccentDefault{\LGR@accdropped}{LGR} \DeclareTextAccentDefault{\LGR@accDialytika}{LGR} @@ -1237,7 +1249,7 @@ The variations have no syntactic meaning in Greek text.</p> \DeclareTextSymbolDefault{\LGR@ypogegrammeni}{LGR}</pre> </section> <section id="semicolon-as-erotimatiko"> -<h4><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">semicolon as erotimatiko</a></h4> +<h4><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">semicolon as erotimatiko</a></h4> <p>The text command <span class="docutils literal">\textsemicolon</span> inserts <span class="docutils literal">\texterotimatiko</span> in LGR font encoding and a “normal” semicolon else. In math mode, it inserts the “normal” semicolon also if the text font @@ -1255,7 +1267,7 @@ encoding is LGR:</p> </section> </section> <section id="todo"> -<h2><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">TODO</a></h2> +<h2><a class="toc-backref" href="#toc-entry-19" role="doc-backlink">TODO</a></h2> <ul> <li><p>Load <span class="docutils literal">lgrenc.def</span> rsp. <span class="docutils literal"><span class="pre">tuenc-greek.def</span></span> after the common definitions and after <span class="docutils literal"><span class="pre">puenc-greek.def</span></span>?</p> @@ -1276,7 +1288,7 @@ subsection “The order of declarations”.</p> </ul> </section> <section id="changelog"> -<h2><a class="toc-backref" href="#toc-entry-19" role="doc-backlink">Changelog</a></h2> +<h2><a class="toc-backref" href="#toc-entry-20" role="doc-backlink">Changelog</a></h2> <table class="borderless"> <tbody> <tr><td><p>0.1</p></td> @@ -1363,6 +1375,15 @@ Don’t use <span class="docutils literal">\LastDeclaredEncoding</span>.</p></td <td><p>2023-03-17</p></td> <td><p>Don’t map active <cite>;</cite> to <span class="docutils literal">\textsemicolon</span> in math mode.</p></td> </tr> +<tr><td><p>2.4</p></td> +<td><p>2023-08-16</p></td> +<td><p>Map character 00B5 MICRO SIGN to <span class="docutils literal">\textmicro</span>.</p></td> +</tr> +<tr><td><!-- --> +</td> +<td></td> +<td><p>Fix upcasing of Greek letters with <span class="docutils literal">\<</span> and <span class="docutils literal">\></span>.</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 fc91f22b49..1a4c8875c5 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.2.1 (changelog_) +% :Version: 2.4 (changelog_) % % :Copyright: © 2013 -- 2023 Günter Milde % @@ -51,7 +51,7 @@ % :: \ProvidesFile{tuenc-greek.def} - [2023/03/08 2.2.1 Greek LICRs for XeTeX and LuaTeX] + [2023-08-15 2.4 Greek LICRs for XeTeX and LuaTeX] % Greek Diacritics @@ -98,17 +98,17 @@ % ``\DeclareUnicodeAccent`` does not work with more than one argument:: % The COMBINING DIALYTIKA TONOS is discarded and not well supported by fonts: -\DeclareTextCommand{\accdialytikatonos}{\UnicodeEncodingName}[1]{#1\char"0308\char"0301} -\DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\char"0300} -\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\char"0342} +\DeclareTextCommand{\accdialytikatonos}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0301\relax} +\DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0300\relax} +\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0342\relax} -\DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\char"0301} -\DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\char"0300} -\DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\char"0342} +\DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0301\relax} +\DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0300\relax} +\DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0342\relax} -\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\char"0301} -\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\char"0300} -\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\char"0342} +\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0301\relax} +\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0300\relax} +\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0342\relax} % Common Definitions @@ -290,9 +290,11 @@ \DeclareTextSymbol{\textbackepsilon }\UnicodeEncodingName{"03F6} % ϶ not in LGR % Dummy definition (\textautosigma is lowercase of \textSigma) -% TODO: implement autosigma for TU:: +% TODO: Fix implementation of autosigma for TU:: -\ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}} +\ProvideTextCommand{\textautosigma}\UnicodeEncodingName{\textsigma} % σ +% The following definition always prints a final sigma :( +% \ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}} % Greek Extended @@ -580,14 +582,52 @@ % % Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE. % -% uc/lc values -% ~~~~~~~~~~~~ +% Babel-Greek indroduces macros for "capital accents" in 1.13.3. +% Here, we add definitions to drop diacritics in uppercase:: + +\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} % new in 2020 +\IfFormatAtLeastTF{2022/06/01}{ + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textAlpha }{\LGR@A@hiatus} + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEpsilon}{\LGR@E@hiatus} + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textEta }{Η} + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textIota }{Ι} + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmicron}{Ο} + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textUpsilon}{Υ} + \DeclareTextCompositeCommand{\accACUTE}{TU}{\textOmega }{Ω} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Α}{\LGR@A@hiatus} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Ε}{\LGR@E@hiatus} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Η}{Η} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Ι}{Ι} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Ο}{Ο} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Υ}{Υ} + \DeclareTextCompositeCommand{\accACUTE}{TU}{Ω}{Ω} + + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textAlpha }{Α} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEpsilon}{Ε} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textEta }{Η} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textIota }{Ι} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmicron}{Ο} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textUpsilon}{Υ} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{\textOmega }{Ω} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Α}{Α} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ε}{Ε} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Η}{Η} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ι}{Ι} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ο}{Ο} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Υ}{Υ} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω} + \DeclareTextCompositeCommand{\accGRAVE}{TU}{Ω}{Ω} + + \DeclareTextCompositeCommand{\LGR@hiatus}{TU}{Α}{\LGR@A@hiatus} + \DeclareTextCompositeCommand{\LGR@hiatus}{TU}{Ε}{\LGR@E@hiatus} + +% The new (2022) implementation of ``\MakeUppercase`` drops accents from +% literal Unicode input (if the text language is set to Greek with Babel). % % With the old ``\MakeUppercase`` implementation, we can fix this using % ``\lccode`` and ``\uccode`` corrections from the xgreek_ package by % Apostolos Syropoulos:: -\IfFormatAtLeastTF{2022/06/01}{ }{% else \global\lccode"0370="0371 \global\uccode"0370="0370 \global\lccode"0371="0371 \global\uccode"0371="0370 @@ -968,11 +1008,11 @@ % in other encodings with `luainputenc`). % 2.2 2023-02-28 Add composite definitions for ``\~`` + literal char. % .. Fix order in expansion of combined accent macros. -% .. Let ``\textautosigma`` select sigma/finalsigma -% depending on context (with LaTeX >= 2022/06/01). % .. Skip `uccode` fixes when ignored by ``\MakeUppercase``. % .. Add ``\textbackepsilon`` (defined by hyperref for PU). % 2.2.1 2023-03-08 Documentation update. +% 2.4 2023-08-15 Fix behaviour of composite diacritics. +% .. Composite commands for "captital" macros. % ====== =========== ======================================================== % % diff --git a/language/greek/greek-fontenc/tuenc-greek.def.html b/language/greek/greek-fontenc/tuenc-greek.def.html index 6edad88706..7a5fab007c 100644 --- a/language/greek/greek-fontenc/tuenc-greek.def.html +++ b/language/greek/greek-fontenc/tuenc-greek.def.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="© 2013 – 2023 Günter Milde" /> <title>tuenc-greek.def</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 */ @@ -793,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.2.1 (<a class="reference internal" href="#changelog">changelog</a>)</dd> +<dd class="version">2.4 (<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> @@ -835,13 +836,12 @@ Used by <a class="reference external" href="https://ctan.org/pkg/babel-greek">ba </li> <li><p><a class="reference internal" href="#uppercase" id="toc-entry-16">UPPERCASE</a></p> <ul> -<li><p><a class="reference internal" href="#uc-lc-values" id="toc-entry-17">uc/lc values</a></p></li> -<li><p><a class="reference internal" href="#uclclist" id="toc-entry-18">uclclist</a></p></li> +<li><p><a class="reference internal" href="#uclclist" id="toc-entry-17">uclclist</a></p></li> </ul> </li> </ul> </li> -<li><p><a class="reference internal" href="#changelog" id="toc-entry-19">Changelog</a></p></li> +<li><p><a class="reference internal" href="#changelog" id="toc-entry-18">Changelog</a></p></li> </ul> </nav> <section id="motivation"> @@ -865,7 +865,7 @@ 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/03/08 2.2.1 Greek LICRs for XeTeX and LuaTeX]</pre> + [2023-08-15 2.4 Greek LICRs for XeTeX and LuaTeX]</pre> </section> <section id="greek-diacritics"> <h3><a class="toc-backref" href="#toc-entry-5" role="doc-backlink">Greek Diacritics</a></h3> @@ -897,17 +897,17 @@ character, discarded in favour of COMBINING COMMA ABOVE.</p> <p>Combined diacritics:</p> <p><span class="docutils literal">\DeclareUnicodeAccent</span> does not work with more than one argument:</p> <pre class="literal-block">% The COMBINING DIALYTIKA TONOS is discarded and not well supported by fonts: -\DeclareTextCommand{\accdialytikatonos}{\UnicodeEncodingName}[1]{#1\char"0308\char"0301} -\DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\char"0300} -\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\char"0342} +\DeclareTextCommand{\accdialytikatonos}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0301\relax} +\DeclareTextCommand{\accdialytikavaria}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0300\relax} +\DeclareTextCommand{\accdialytikaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0308\relax\char"0342\relax} -\DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\char"0301} -\DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\char"0300} -\DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\char"0342} +\DeclareTextCommand{\accdasiaoxia}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0301\relax} +\DeclareTextCommand{\accdasiavaria}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0300\relax} +\DeclareTextCommand{\accdasiaperispomeni}{\UnicodeEncodingName}[1]{#1\char"0314\relax\char"0342\relax} -\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\char"0301} -\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\char"0300} -\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\char"0342}</pre> +\DeclareTextCommand{\accpsilioxia}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0301\relax} +\DeclareTextCommand{\accpsilivaria}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0300\relax} +\DeclareTextCommand{\accpsiliperispomeni}{\UnicodeEncodingName}[1]{#1\char"0313\relax\char"0342\relax}</pre> </section> <section id="common-definitions"> <h3><a class="toc-backref" href="#toc-entry-6" role="doc-backlink">Common Definitions</a></h3> @@ -1070,8 +1070,10 @@ character, discarded in favour of COMBINING COMMA ABOVE.</p> \DeclareTextSymbol{\textepsilonsymbol}\UnicodeEncodingName{"03F5} % ϵ \DeclareTextSymbol{\textbackepsilon }\UnicodeEncodingName{"03F6} % ϶ not in LGR</pre> <p>Dummy definition (textautosigma is lowercase of textSigma) -TODO: implement autosigma for TU:</p> -<pre class="literal-block">\ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}}</pre> +TODO: Fix implementation of autosigma for TU:</p> +<pre class="literal-block">\ProvideTextCommand{\textautosigma}\UnicodeEncodingName{\textsigma} % σ +% The following definition always prints a final sigma :( +% \ProvideTextCommand{\textautosigma}{\UnicodeEncodingName}{\MakeLowercase{Σ}}</pre> </section> <section id="greek-extended"> <h4><a class="toc-backref" href="#toc-entry-12" role="doc-backlink">Greek Extended</a></h4> @@ -1337,13 +1339,49 @@ See also the <a class="reference external" href="https://ctan.org/pkg/grnumalt"> <section id="uppercase"> <h3><a class="toc-backref" href="#toc-entry-16" role="doc-backlink">UPPERCASE</a></h3> <p>Greek letters drop diacritics (eccept dialytika and sub-iota) in UPPERCASE.</p> -<section id="uc-lc-values"> -<h4><a class="toc-backref" href="#toc-entry-17" role="doc-backlink">uc/lc values</a></h4> +<p>Babel-Greek indroduces macros for “capital accents” in 1.13.3. +Here, we add definitions to drop diacritics in uppercase:</p> +<pre class="literal-block">\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}</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">\IfFormatAtLeastTF{2022/06/01}{ -}{% else +<pre class="literal-block">}{% else \global\lccode"0370="0371 \global\uccode"0370="0370 \global\lccode"0371="0371 \global\uccode"0371="0370 \global\lccode"0372="0373 \global\uccode"0372="0372 @@ -1663,9 +1701,8 @@ Apostolos Syropoulos:</p> \global\lccode"1FFB="1F7D \global\uccode"1FFB="03A9 \global\lccode"1FFC="1FF3 \global\uccode"1FFC="1FFC }</pre> -</section> <section id="uclclist"> -<h4><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">uclclist</a></h4> +<h4><a class="toc-backref" href="#toc-entry-17" 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 @@ -1693,7 +1730,7 @@ Latin transliteration to Unicode literals).</p> </section> </section> <section id="changelog"> -<h2><a class="toc-backref" href="#toc-entry-19" role="doc-backlink">Changelog</a></h2> +<h2><a class="toc-backref" href="#toc-entry-18" role="doc-backlink">Changelog</a></h2> <table class="borderless"> <tbody> <tr><td><p>0.1</p></td> @@ -1790,12 +1827,6 @@ in other encodings with <cite>luainputenc</cite>).</p></td> <tr><td><!-- --> </td> <td></td> -<td><p>Let <span class="docutils literal">\textautosigma</span> select sigma/finalsigma -depending on context (with LaTeX >= 2022/06/01).</p></td> -</tr> -<tr><td><!-- --> -</td> -<td></td> <td><p>Skip <cite>uccode</cite> fixes when ignored by <span class="docutils literal">\MakeUppercase</span>.</p></td> </tr> <tr><td><!-- --> @@ -1807,6 +1838,15 @@ depending on context (with LaTeX >= 2022/06/01).</p></td> <td><p>2023-03-08</p></td> <td><p>Documentation update.</p></td> </tr> +<tr><td><p>2.4</p></td> +<td><p>2023-08-15</p></td> +<td><p>Fix behaviour of composite diacritics.</p></td> +</tr> +<tr><td><!-- --> +</td> +<td></td> +<td><p>Composite commands for “captital” macros.</p></td> +</tr> </tbody> </table> <!-- References |