From 53b22757814343c6071be2e64dc0639f7afc5468 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 20 Aug 2023 03:01:12 +0000 Subject: CTAN sync 202308200301 --- macros/latex/contrib/babel-contrib/greek/README.md | 2 +- .../babel-contrib/greek/babel-greek-doc.html | 33 +- .../babel-contrib/greek/babel-greek-doc.rst | 10 +- .../contrib/babel-contrib/greek/babel-greek.dtx | 257 +++-- .../contrib/babel-contrib/greek/babel-greek.pdf | Bin 549976 -> 558854 bytes .../contrib/babel-contrib/greek/test-athnum.pdf | Bin 178616 -> 189338 bytes .../babel-contrib/greek/test-case-changing.tex | 1117 -------------------- .../contrib/babel-contrib/greek/test-greek-ini.tex | 7 +- .../contrib/babel-contrib/greek/test-greek.pdf | Bin 466409 -> 495833 bytes .../contrib/babel-contrib/greek/test-greek.tex | 416 +++++--- macros/latex/contrib/readablecv/ReadableCV.cls | 50 +- macros/latex/contrib/readablecv/ReadableCV.pdf | Bin 135615 -> 135316 bytes 12 files changed, 473 insertions(+), 1419 deletions(-) delete mode 100644 macros/latex/contrib/babel-contrib/greek/test-case-changing.tex (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/babel-contrib/greek/README.md b/macros/latex/contrib/babel-contrib/greek/README.md index d98c68be1a..c4158d53c5 100644 --- a/macros/latex/contrib/babel-contrib/greek/README.md +++ b/macros/latex/contrib/babel-contrib/greek/README.md @@ -4,7 +4,7 @@ babel-greek Comprehensive support for the Greek language and script with [Babel](https://ctan.org/pkg/babel). -**Version**: 1.13.2 +**Version**: 1.14 **Copyright**: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 - 2023 Günter Milde. diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html index 2faaa5d067..49f6092ea7 100644 --- a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.html @@ -2,7 +2,7 @@ - + babel-greek @@ -794,7 +794,7 @@ mstyle.mathscr, mi.mathscr {

Babel support for the Greek language and script

Version:
-
1.13.2 (changelog)
+
1.14 (changelog)
@@ -901,11 +901,11 @@ The repository sources include a update: -

copy packages into a local TeX tree,[1]

+

copy packages into a local TeX tree,[1]

update-package:

copy documentation and sources into a local -TeX tree,[1]

+TeX tree,[1]

clean:

delete auxiliary files.

@@ -926,7 +926,7 @@ package are not removed.

To load Greek language support with Babel, use the greek document option or pass the greek option to Babel. For example,

\usepackage[greek,english]{babel}
-

activates support for Greek text parts in an English document.[2]

+

activates support for Greek text parts in an English document.[2]

For ancient Greek, set the language attribute “ancient”, either after loading Babel

\usepackage[greek,english]{babel}
@@ -948,9 +948,9 @@ case-changing and hyphenation rules.
 For details see the Babel documentation and babel-greek.pdf.

Input of Greek characters is possible

For details and caveats, see test-greek.pdf and the example files provided with greek-fontenc.

@@ -1154,7 +1154,7 @@ via the ligature definitions in the font (see

dialytika

"i

ϊ

-

ano teleia[5]

+

ano teleia[5]

;

·

@@ -1192,7 +1192,8 @@ from the city of Miletus in Ionia replacing the

Greek numerals use several now obsolete letters: -digamma ϝ or stigma ϛ, koppa ϟ or ϙ, and sampi ϡ [Nicholas-05].

+digamma ϝ or stigma ϛ, koppa ϟ or ϙ, and sampi ϡ +[Nicholas-05] [Haralambous-98].

1.9i (2020-02-28)
@@ -1364,7 +1365,7 @@ to hard-coded \latinencoding when leaving
  • Do not change the uccode values if the LaTeX version is newer than 2022/06. The new \MakeUppercase definition ignores them and fails -with the “dummy” character 0x9f (cf. [ltnews35], LaTeX issue 987).

  • +with the “dummy” character 0x9f (cf. [ltnews35], LaTeX issue 987).

  • New modifiers local-LGR-fixes and no-LGR-fixes to address indexing problmes with Roman numerals (Babel issue 170). Provisional.

  • New TextCommand \EnsureStandardFontEncoding.

  • @@ -1398,6 +1399,12 @@ Use LICR macros instead of the Latin transliteration.

    drop accents with \DeclareUppercaseMapping (new in LaTeX 2023).

+
1.14 (2023-08-18)
+
    +
  • Fix upcasing of Greek letters with standard accent macros.

  • +
  • New modifier local-MakeUppercase-fixes.

  • +
+
@@ -1409,7 +1416,7 @@ drop accents with \DeclareUppercaseMapping https://www.latex-project.org/help/documentation/fntguide.pdf

-[ltnews35] +[ltnews35]

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

@@ -1425,7 +1432,7 @@ drop accents with \DeclareUppercaseMapping https://irenevl.github.io/Polytonic-tutorial/

-[Haralambous-98] +[Haralambous-98]

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

diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst index 73f921de32..e714318919 100644 --- a/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek-doc.rst @@ -3,7 +3,7 @@ babel-greek Babel support for the Greek language and script =============================================== -:Version: 1.13.2 (changelog_) +:Version: 1.14 (changelog_) :Copyright: © 1997 Apostolos Syropoulos, Claudio Beccari, Johannes Brahms, © 2013 -- 2023 Günter Milde. @@ -261,7 +261,8 @@ They are still used in everyday life for ordinal numbers and more generally by the Orthodox church and certain scholars. Greek numerals use several now obsolete letters: -digamma_ ϝ or stigma_ ϛ, koppa_ ϟ or ϙ, and sampi_ ϡ [Nicholas-05]_. +digamma_ ϝ or stigma_ ϛ, koppa_ ϟ or ϙ, and sampi_ ϡ +[Nicholas-05]_ [Haralambous-98]_. * Standing for 6 is the digamma_ ϝ, the sixth letter of the Ionic alphabet (just as its Latin equivalent F is the sixth letter of the @@ -406,6 +407,9 @@ Changelog (code contributed by Javier Bezos). - Fix upcasing of text using the `LGR Latin transliteration`_: drop accents with ``\DeclareUppercaseMapping`` (`new in LaTeX 2023`_). +1.14 (2023-08-18) + - Fix upcasing of Greek letters with standard accent macros. + - New modifier `local-MakeUppercase-fixes`. .. _babel/4303: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4303 .. _babel/4305: http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=babel/4305 @@ -447,7 +451,7 @@ References .. _e-TeX: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=etex .. _grtimes: https://ctan.org/pkg/grtimes .. _hyperref: https://ctan.org/pkg/hyperref -.. _textalpha: +.. _textalpha: http://mirrors.ctan.org/language/greek/greek-fontenc/textalpha-doc.pdf .. _greek-fontenc: https://ctan.org/pkg/greek-fontenc .. _LGR: http://mirrors.ctan.org/language/greek/greek-fontenc/greek-fontenc-doc.html#lgr .. _greek-inputenc: https://ctan.org/pkg/greek-inputenc diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx index 7cf57237f7..bc3060207e 100644 --- a/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx +++ b/macros/latex/contrib/babel-contrib/greek/babel-greek.dtx @@ -26,7 +26,7 @@ % and covered by LPPL is defined by the unpacking script (babel-greek.ins) % which is part of the package. % \fi -% \CheckSum{1675} +% \CheckSum{1701} % % \iffalse % Tell the \LaTeX\ system who we are and write an entry on the @@ -37,7 +37,7 @@ %\ProvidesLanguage{greek} %\fi %\ProvidesFile{babel-greek.dtx} - [2023-06-01 1.13.2 Greek support for the babel system] + [2023/08/18 1.14 Greek support for the babel system] %\iffalse %% File `babel-greek.dtx' %% Greek language Definition File @@ -105,8 +105,6 @@ % \cs{textlatin} and fixed \cs{latinencoding}.} % \changes{babel-greek-1.09i}{2020/02/28}{ % Fix accent in \cs{seename} and \cs{alsoname}.} -% \changes{babel-greek-1.12}{2023/03/04}{ -% Update and restructure documentation.} % % \title{Babel support for the Greek language} % \author{Apostolos Syropoulos, Günter Milde} @@ -114,7 +112,7 @@ % % Babel-greek is a contributed package providing support for the Greek % language and script via the \pkgref{babel} system. -% See the \href{README.html}{README} file for an overwiew of the +% See \href{babel-greek-doc.html}{babel-greek-doc} for an overwiew of the % \pkg{babel-greek} package and links to requirements and related packages. % % The file \file{\filename}\footnote{ @@ -210,17 +208,17 @@ % % \subsection{Modifiers \label{sec:modifiers}} % +% \changes{babel-greek-1.12}{2023/03/04}{ +% New modifiers \Lopt{local-LGR-fixes} and \Lopt{no-LGR-fixes}.} +% \changes{babel-greek-1.14}{2023-08-18}{ +% New modifier \Lopt{local-MakeUppercase-fixes}.} +% % All language attributes may also be used as modifiers, e.g. % \begin{verbatim} % \usepackage[greek.polutoniko,english]{babel}\end{verbatim} -% In addition, there are two modifiers that cannot be set with +% In addition, there are modifiers that cannot be set with % |\languageattribute|. % -% \changes{babel-greek-1.12}{2023/03/04}{ -% New modifiers \Lopt{local-LGR-fixes} and \Lopt{no-LGR-fixes}.} -% -% Some workarounds for the non-standard LGR font encoding may have -% serious side-effects. % The \hyperref[sec:lgr-redefinitions]{\Lopt{local-LGR-fixes}} modifier % restricts the re-definitions in section~\ref{sec:lgr-redefinitions} % to text parts using the Greek language. @@ -232,8 +230,14 @@ % and using Xe/LuaTeX with Unicode fonts is not an option. % Check for problems with enumerations in Greek text parts and with % Roman and Greek numerals everywhere (especially in the ToC). +% +% The \hyperref[sec:MakeUppercase-fixes]{\Lopt{local-MakeUppercase-fixes}} +% modifier skips the mapping of standard accents to ``capital'' accents +% in section~\ref{sec:MakeUppercase-fixes}. +% % These modifiers are provisional, naming and behaviour may change. % +% % \subsection{Language hooks \label{sec:language-hooks}} % % \DescribeMacro\extrasgreek @@ -524,7 +528,11 @@ % modern Greek with ``polytonic'' spelling can also be % selected via the dummy language \Lopt{polutonikogreek}. % However, it is not possible to use both options, -% \Lopt{greek} and \Lopt{polutonikogreek} in one document. +% \Lopt{greek} and \Lopt{polutonikogreek} in one document.^^A +% \footnote{Use of more than one Greek orthograpies in one document +% is possible with \cs{babelprovide}. +% However, there are side-effects. +% See the example in \file{test-greek.tex}.} % We also define aliases to allow language switching commands using % the language name |polutonikogreek|: % \changes{greek-1.3f}{1999/09/29}{ @@ -619,8 +627,9 @@ % Test for unsupported (or misspelled) \hyperref[sec:modifiers]{modifiers} % (code contributed by Javier Bezos). % \begin{macrocode} -\def\bbl@greek@modifiers{,polutoniko,polytonic,ancient,keep-semicolon,} -\addto\bbl@greek@modifiers{local-LGR-fixes,no-LGR-fixes,} +\def\bbl@greek@modifiers{,% + polutoniko,polytonic,ancient,keep-semicolon,% + local-LGR-fixes,no-LGR-fixes,local-MakeUppercase-fixes,} \ifx\BabelModifiers\relax\else \bbl@foreach\BabelModifiers{% \@expandtwoargs\in@{,#1,}{\bbl@greek@modifiers} @@ -1228,7 +1237,7 @@ % % \begin{macro}{\dategreek} % The macro |\dategreek| redefines the command |\today| to -% produce greek dates. The name of the month is produced +% produce Greek dates. The name of the month is produced % by the macro |\gr@month| since it is also needed in the definition % of the macro |\Grtoday|. % \changes{greek-1.1a}{1997/03/03}{Fixed typo, \texttt{Oktwbr'iou} @@ -1245,9 +1254,10 @@ % % \begin{macro}{\Grtoday} % \changes{greek-1.1}{1996/10/28}{Added macro \cs{Grtoday}} -% The macro |\Grtoday| produces the current date, only that the -% month and the day are shown as greek numerals instead of arabic -% as it is usually the case. +% The macro |\Grtoday| produces the current date, only that the +% month and the day are shown as greek numerals instead of arabic +% as it is usually the case. (The \pkgref{teubner} package defines +% a matching lowercase version \cs{grtoday}.) % \begin{macrocode} \def\Grtoday{% \expandafter\Greeknumeral\expandafter{\the\day}\space @@ -1506,34 +1516,24 @@ % % \subsection{Character codes \label{sec:character-codes}} % -% Greek letters drop diacritics (eccept dialytika and sub-iota) in -% UPPERCASE. This is not cared for by the Unicode standard. -% -% Up to the June 2022 LaTeX release, this could be corrected by -% defining |\lccode| and |\uccode| values. The June 2023 release introduced -% the |\DeclareUppercaseMapping| command as a replacement configuration -% option. -% -% The file \file{tuenc-greek.def} from \pkg{greek-fontenc} -% contains the required |\lccode| and |\uccode| corrections from the -% \pkgref{xgreek} package by Apostolos Syropoulos. It is loaded if the -% Greek font encoding is TU (i.e. with XeTeX/LuaTeX), -% see section~\ref{load-greek-font-encoding-definitions}. +% \changes{greek-1.1c}{1997/04/30}{fixed two typos} +% \changes{greek-1.1e}{1997/10/12}{Added lowercase code for v} +% \changes{greek-1.2}{1997/10/28}{Definitions for ``modern'' Greek are +% now the definitions of ``polutoniko'' Greek} +% \changes{greek-1.2}{1997/10/28}{Added lowercase codes for ``modern'' +% greek} +% \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and +% \cs{extraspolutonikogreek} should be complementary} +% \changes{babel-greek-1.09}{2014/07/20}{Added lc codes for chars 128 to 255} +% \changes{babel-greek-1.09b}{2014/09/18}{Remove spurious whitespace from +% `extrasgreek' definition (report Eike Schmidt).} +% \changes{babel-greek-1.09e}{2015/11/27}{Fix bug in lccode-setting loop +% (patch by Enrico Gregorio).} +% \changes{babel-greek-1.12}{2023/03/04}{ +% Only change uc/lccodes if \cs{greekfontencoding} is LGR.} % -% If the Greek font encoding is LGR, configuration is done here because -% character code changes must be restricted to text parts using the -% LGR encoding. -% \changes{greek-1.5}{2013/06/21}{Support XeTeX/LuaTeX.} -% \changes{babel-greek-1.09d}{2015/07/06}{uc-/lccode corrections from xgreek -% are now in greek-euenc.def (the polyglossia version has bugs).} -% \changes{babel-greek-1.12}{2023/03/04}{% -% Only change uc/lccodes if \cs{greekfontencoding} is LGR.} -% \begin{macrocode} -\def\bbl@tempa{LGR} -\ifx\greekfontencoding\bbl@tempa -% \end{macrocode} % In order to get correct hyphenation we need to set the lower case -% code of a number of characters. +% code for all characters that can be part of a word. % % In LGR encoded fonts, diacritics can be obtained using Knuth's % ligature mechanism (see usage.pdf). This means that the characters @@ -1547,18 +1547,9 @@ % ligature mechanism so that it is possible to typeset an isolated $\sigma$ % without it becoming a $\varsigma$. % Because of this we make sure its lowercase code is not changed. -% \changes{greek-1.1c}{1997/04/30}{fixed two typos} -% \changes{greek-1.1e}{1997/10/12}{Added lowercase code for v} -% \changes{greek-1.2}{1997/10/28}{Definitions for ``modern'' Greek are -% now the definitions of ``polutoniko'' Greek} -% \changes{greek-1.2}{1997/10/28}{Added lowercase codes for ``modern'' -% greek} -% \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and -% \cs{extraspolutonikogreek} should be complementary} -% \changes{babel-greek-1.09}{2014/07/20}{Added lc codes for chars 128 to 255} -% \changes{babel-greek-1.09b}{2014/09/18}{Remove spurious whitespace from -% `extrasgreek' definition (report Eike Schmidt).} % \begin{macrocode} +\def\bbl@tempa{LGR} +\ifx\greekfontencoding\bbl@tempa \addto\extrasgreek{% \babel@savevariable{\lccode`v}\lccode`v=`v% \babel@savevariable{\lccode`\'}\lccode`\'=`\'% @@ -1573,15 +1564,12 @@ \babel@savevariable{\lccode`\`}\lccode`\`=`\`% } % \end{macrocode} -% In order to process the suitable characters and in such a way that -% hyphenation patterns work also with precomposed characters, it is -% necessary to declare the lc code for all characters that can be part -% of a word. We do this in |\extrasgreek| because this is a feature of +% Also set the lc code for the precomposed characters in the upper half +% of the code table. +% We do this in |\extrasgreek| because this is a feature of % the LGR font encoding (used in all language variants). % This means that multi-accented characters are regarded parts of a word -% (and not non-word characters) also in monotonic spelling. -% \changes{babel-greek-1.09e}{2015/11/27}{Fix bug in lccode-setting loop -% (patch by Enrico Gregorio).} +% also in monotonic spelling. % \begin{macrocode} \addto\extrasgreek{% % ``high bit characters'': set in a loop and correct exceptions @@ -1603,34 +1591,103 @@ \lccode223=244% GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA } % \end{macrocode} -% Drop diacritics (except dialytika and sub-iota) in UPPERCASE also with -% ``input ligatures''. (The optional ``locale'' argument |[el]| restricts -% this change to Greek text parts.) -% If LaTeX is older than 2022/06/01, set the |\uccode| of the -% relevant characters to a dummy character instead. +% +% \begin{macro}{\bbl@greek@tilde} +% \changes{greek-1.0c}{1997/02/19}{Added command} +% \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with +% \cs{catcode 12}.} +% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not +% active during the definition of \cs{greek@tilde}} +% \changes{greek-1.4}{2013/05/17}{Do not re-define the tilde accent macro: +% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.} +% \changes{babel-greek-1.13}{2023/03/15}{ +% Renamed from \cs{greek@tilde}. Simplified definition.} +% +% By default, the tilde produces an unbreakable space in text mode. +% For the variants ``polutoniko'' and ``ancient'', we change its meaning +% to allow using |~| in the Latin transliteration of characters with +% perispomeni and in composite diacritics. +% \begin{macrocode} + \DeclareTextSymbol{\bbl@greek@tilde}{LGR}{126} + \addto\bbl@greek@setup@polytonic{ + \declare@shorthand{greek}{~}{\bbl@greek@tilde} + } +\fi % End of LGR-specific code. +% \end{macrocode} +% \end{macro} +% +% +% \subsection{MakeUppercase fixes \label{sec:MakeUppercase-fixes}} +% % \changes{greek-1.1b}{1997/03/06}{Added setting of \cs{uccode}s -% (after \file{kdgreek.sty})} +% (after \file{kdgreek.sty})} % \changes{greek-1.1e}{1997/10/12}{Added uppercase code for special -% letter ``v''. Uppercase code for accents is now \texttt{9f}, -% instead of \texttt{ff}} +% letter ``v''. Uppercase code for accents is now \texttt{9f}, +% instead of \texttt{ff}} % \changes{greek-1.2}{1997/10/28}{Added uppercase codes for ``modern'' -% Greek. The old codes are now for ``Polutoniko'' Greek} +% Greek. The old codes are now for ``Polutoniko'' Greek} % \changes{greek-1.3e}{1999/09/24}{\cs{extrasgreek} and -% \cs{extraspolutonikogreek} should be complementary} +% \cs{extraspolutonikogreek} should be complementary} % {\catcode`|=12\relax\gdef\indexbar{\cs{|}}} % \changes{greek-1.3g}{1999/11/17}{uc code of \indexbar{} is now just -% \indexbar{} to reflect recent changes in the cb fonts} +% \indexbar{} to reflect recent changes in the cb fonts} % \changes{greek-1.3i}{2000/10/02}{uc code of `v' is switched to V -% so that mixed text appears correctly in headers.} +% so that mixed text appears correctly in headers.} % \changes{greek-1.3j}{2001/02/03}{Don't use the double caret notation here, -% because other languages might make the caret active.} +% because other languages might make the caret active.} +% \changes{greek-1.5}{2013/06/21}{Support XeTeX/LuaTeX.} +% \changes{babel-greek-1.09d}{2015/07/06}{uc-/lccode corrections from xgreek +% are now in greek-euenc.def (the polyglossia version has bugs).} % \changes{babel-greek-1.12}{2023/03/04}{ -% Only change uccodes if LaTeX is older than 2022/06/01.} +% Only change uccodes if LaTeX is older than 2022/06/01.} % \changes{babel-greek-1.13.2}{2023-06-01}{ -% Use \cs{DeclareUppercaseMapping} to drop diacritics.} +% \cs{MakeUppercase} fix for transliteration input.} +% \changes{babel-greek-1.14}{2023-08-18}{ +% \cs{MakeUppercase} fix for standard accent macros.} +% In Greek typographical praxis, +% letters drop accents (eccept dialytika) and breathings in +% UPPERCASE. This is not cared for by the Unicode standard. +% For Unicode literals, |\MakeUppercase| implements locale-specific +% corrections.\footnote{ +% The pre-2022 implementation is corrected by character code definitions +% in \file{tuenc-greek.def} from \pkgref{greek-fontenc}, +% cf. section~\ref{load-greek-font-encoding-definitions}.} +% +% To fix the behaviour of the 2022 |\MakeUppercase| implementation with +% standard accent macros, we define and use ``capital'' accent +% macros. +% Font-encoding specific definitions for the ``capital'' accent macros +% in \pkgref{greek-fontenc}~$\ge 2.4$ suppress them on Greek letters. +% The \Lopt{local-MakeUppercase-fixes} modifier can be used to skip this step +% (cf. section~\ref{sec:modifiers}). +% \begin{macrocode} +\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} % new in 2020 +\bbl@xin@{,local-MakeUppercase-fixes,}{,\BabelModifiers,}% +\ifin@ +\else + \IfFormatAtLeastTF{2022/06/01} + {\ProvideTextCommandDefault{\accACUTE}{\@tabacckludge'} + \ProvideTextCommandDefault{\accGRAVE}{\@tabacckludge`} + \ProvideTextCommandDefault{\accTILDE}{\@tabacckludge~} + \ProvideTextCommandDefault{\accDIAERESIS}{\@tabacckludge"} + \addto\@uclclist{\'\accACUTE \`\accGRAVE \~\accTILDE \"\accDIAERESIS}% + } + {} +\fi +% \end{macrocode} +% Drop diacritics also with ``input ligatures'' defined in LGR fonts: +% +% Since 2023/06, we can set up character mappings to be used on the argument +% of |\MakeUppercase|.\footnote{cf. +% \href{https://www.latex-project.org/news/latex2e-news/ltnews37.pdf} +% {LaTeX News~37}} +% The optional ``locale'' argument |[el]| restricts the mapping to Greek +% text parts. % \begin{macrocode} +\def\bbl@tempa{LGR} +\ifx\greekfontencoding\bbl@tempa \ifdefined\DeclareUppercaseMapping % new in 2023 - \DeclareUppercaseMapping[el]{"1FBE}{\prosgegrammeni}% + % \DeclareUppercaseMapping[el]{"1FBE}{\prosgegrammeni}% \DeclareUppercaseMapping[el]{"0027}{}% ' \addto\bbl@greek@setup@polytonic{ \DeclareUppercaseMapping[el]{"003C}{}% < @@ -1639,11 +1696,14 @@ \DeclareUppercaseMapping[el]{"007E}{}% ~ } \fi - % fallback for for LaTeX versions older than 2020-10-01 - \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} - \IfFormatAtLeastTF{2022/06/01}% - {} - {% else +% \end{macrocode} +% If LaTeX is older than 2022/06, +% we set the |\uccode| of the relevant characters to a dummy character +% (|\uccode| changes are ignored by |\MakeUppercase| since 2022). +% To minimize side-effects, the re-definition is limited to Greek text parts. +% \begin{macrocode} + \IfFormatAtLeastTF{2022/06/01}{} + {% else (LaTeX format older than 2022/06/01) \addto\extrasgreek{% \babel@savevariable{\uccode`\"}\uccode`\"=`\"% \babel@savevariable{\uccode`\'}\uccode`\'=159% 159 == ^^9f @@ -1652,7 +1712,6 @@ \babel@savevariable{\uccode`\~}\uccode`\~=159% \babel@savevariable{\uccode`\>}\uccode`\>=159% \babel@savevariable{\uccode`\<}\uccode`\<=159% - \babel@savevariable{\uccode`\|}\uccode`\|=`\|% \babel@savevariable{\uccode`\`}\uccode`\`=159% } % \end{macrocode} @@ -1685,8 +1744,8 @@ } % \end{macrocode} % Add composite commands, so that the dialytika is kept or put on the -% following character of a diphthong with |\MakeUppercase| -% (see lgrdef.enc from the the greek-fontenc package for details). +% following character of a diphthong with |\MakeUppercase| (see +% \file{lgrdef.enc} from the \pkgref{greek-fontenc} package for details). % \changes{greek-1.4}{2013/05/17}{ % Add TextCompositeCommands for ``uppercase diacritics''.} % \changes{greek-1.5}{2013/05/27}{Bugfix: @hiatus->LGR@hiatus} @@ -1708,35 +1767,9 @@ \DeclareTextCompositeCommand{\"}{TU}{^^9f}{\accdialytika} \fi }% end of the \IfFormatAtLeastTF else block -% \end{macrocode} -% -% \begin{macro}{\bbl@greek@tilde} -% By default, the tilde produces an unbreakable space in text mode. -% In polytonic and ancient Greek, we change its meaning to allow -% using |~| in the Latin transliteration of characters with perispomeni. -% As the perispomeni is not required with monotonic Greek, this is -% only done for the variants ``polutoniko'' and ``ancient''. -% \changes{greek-1.0c}{1997/02/19}{Added command} -% \changes{greek-1.1b}{1997/03/06}{Made tilde expand to a tilde with -% \cs{catcode 12}.} -% \changes{greek-1.3k}{2003/04/10}{Make sure the character `!' is not -% active during the definition of \cs{greek@tilde}} -% \changes{greek-1.4}{2013/05/17}{Do not re-define the tilde accent macro: -% it works as expected with \file{lgrenc.def} from \pkg{greek-fontenc}.} -% \changes{babel-greek-1.13}{2023/03/15}{ -% Renamed from \cs{greek@tilde}. Simplify definition.} -% \begin{macrocode} - \DeclareTextSymbol{\bbl@greek@tilde}{LGR}{126} - \addto\bbl@greek@setup@polytonic{ - \declare@shorthand{greek}{~}{\bbl@greek@tilde} - } -% \end{macrocode} -% \end{macro} -% \begin{macrocode} \fi % End of LGR-specific code. % \end{macrocode} % -% % \subsection{Symbol name aliases} % For backwards compatibility, we keep aliases for a few symbols. % \changes{greek-1.1c}{1997/03/10}{Added a couple of symbols, needed diff --git a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf index 0a2586bb5c..20ab08d842 100644 Binary files a/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf and b/macros/latex/contrib/babel-contrib/greek/babel-greek.pdf differ diff --git a/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf index badf0226a5..2f8f10102f 100644 Binary files a/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf and b/macros/latex/contrib/babel-contrib/greek/test-athnum.pdf differ diff --git a/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex b/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex deleted file mode 100644 index 50eaf650ea..0000000000 --- a/macros/latex/contrib/babel-contrib/greek/test-case-changing.tex +++ /dev/null @@ -1,1117 +0,0 @@ -% Backrolling does not work for \MakeUppercase (cf. LaTeX News 35) -% \RequirePackage{latexbug} -%\RequirePackage[2022-05-01]{latexrelease} - -\documentclass[a4paper]{article} - -\usepackage[LGR,T1]{fontenc} -\usepackage{lmodern} - -\ifdefined \UnicodeEncodingName - \usepackage{fontspec} - \setmainfont{FreeSerif} - \newcommand*{\texengine}{Xe/LuaLaTeX} -\else - \usepackage{lmodern} - \newcommand*{\texengine}{pdfLaTeX} -\fi - -% Load encoding definitions -\usepackage[normalize-symbols]{textalpha} % "Greek script everywhere" - -% With TL22, the special handling of Greek UPPERCASE is only triggered -% if the text language is set to "greek" with Babel: -% -\usepackage[greek,english]{babel} % babel-greek -% \usepackage[greek,english,provide=*]{babel} % Babel's Greek "ini" -% \languageattribute{greek}{polutoniko} % "modern" polytonic Greek -\languageattribute{greek}{ancient} - - -\usepackage[unicode,colorlinks,linkcolor=blue]{hyperref} -\usepackage{bookmark} - -% Auxiliary commands - -\newcommand{\langGreek}{\foreignlanguage{greek}} - -% print the selected language variant -\newcommand{\GreekLanguageVariant}{% - \ifx\captionsgreek\captionspolutonikogreek - \ifx\captionsgreek\captionsancientgreek - ancient% - \else - polutoniko% - \fi - \else - monotoniko% - \fi -} - -% test effect of new implementations on compilation time: -% -% pdflatex from TL22 is about 7 times slower than the version from TL21 -% (7s vs. 1s for this document with 13 pages). -% With the dummy definitons, -% \renewcommand{\MakeUppercase}{} -% \renewcommand{\MakeLowercase}{} -% pdflatex from TL22 is a bit faster than before -% (0.7s vs. 1s for this document), - -% ----------------------------------------------------------------------- - -\begin{document} - -\tableofcontents - -\section{Test case conversions of Greek letters} - -This document tests the combination of \verb|MakeUppercase| and Greek. - -\makeatletter -It is compiled with \texengine, format version \fmtversion{} patch-level -\patch@level{} and the L3 programming layer from \ExplFileDate{}. -\makeatother -The \verb|\greekfontencoding| is \greekfontencoding. - -\section{Unicode literals} - -\subsection{Greek and Coptic} - -Characters from the Greek and Coptic Unicode block that are supported by -\emph{greek-fontenc} and \emph{greek-inputenc}: - -\newcommand{\GreekAndCoptic}{ - \raggedright - ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\ - ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ - ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ - Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ - ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ - π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ - ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\ - Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ ␣ \\ - -} -\begin{quote} - \selectlanguage{greek} - \GreekAndCoptic -\end{quote} -% -MakeUppercase: -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekAndCoptic} -\end{quote} -% -MakeLowercase: -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekAndCoptic} -\end{quote} - -The lowercase of \langGreek{Σ} is the «auto-sigma» -(\verb|\textautosigma|): \langGreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. -Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to -final sigma: \langGreek{\MakeLowercase{ΣΣ‌}} (works only with "old" -(pre-2022) \verb|\MakeLowercase|). - - -\subsection{Greek extended} - -Characters of the Greek Extended Unicode block: - -\newcommand{\GreekExtended}{\raggedright - ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ - ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ - ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ - ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ - ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ - ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ - ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ - ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ - ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ - ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ - ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ - ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ - ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ - ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ - ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\ - ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ -} - -\begin{quote} - \selectlanguage{greek} - \GreekExtended -\end{quote} -% -MakeUppercase: -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekExtended} -\end{quote} - -MakeLowercase: -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekExtended} -\end{quote} - -% With TeXLive 2020 (old \verb|\Makeuppercase|), -% all accents except dialytika and prosgegrammeni are dropped in UPPERCASE -% and kept in lowercase. -% No errors. -% -% With current TeXLive: -% pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) -% LaTeX2e <2022-11-01> patch level 1 -% L3 programming layer <2023-02-22> -% -% Upcasing ``Unicode errors'' are resolved. -% -% Uppercase of character ';' 0x37E GREEK QUESTION MARK is a semicolon -% which is mapped to '·' 0x387 GREEK ANO TELEIA by LGR. :( -% -% Accents dropped with MakeUppercase (not for single letter ή) :) -% TODO: how to treat MakeUppercase of a single captial «΄Η»? -% -% Should the “educational”/“Latin” accents *macron* and *breve* (*vrachy*) -% be kept (they stay above capital letters similar to the dialytika, -% they are kept by Apostolos Syropoulos' “xgreek” package and in babel-greek -% “since ages”) or dropped (they are optional even in lowercase or titlecase -% and dropped for the entry by the English wiktionary). -% https://en.wiktionary.org/wiki/Wiktionary:About_Ancient_Greek#Diacritics_and_accentuation -% -% Spacing prosgegrammeni (ι) turned to capital Iota. (minor) -% -% Spacing single diacritics are kept. (irrelevant, OK) -% Spacing combining diacritics are mapped to single diacritics. (irrelevant) -% -% Auto-Hiatus: ἀυπνία → ΑΥΠΝΙΑ (missing dialytika on the Upsilon). - -% With pdfLaTeX and LGR, a ZWNJ or the ``\noboundary`` macro can be used to -% prevent conversion of trailing Σ to a final sigma ς by ``\MakeLowercase``. -% This does not work with Unicode fonts (XeTeX/LuaTeX). - -% With XeTeX and Unicode fonts, -\subsubsection{hiatus} - -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if placed on -the first of two consecutive vowels (άι, άυ, έι, ἀυ, ἄι, ἄυ, ἔι). -A dialytika must be placed on the second vowel if they are dropped. - -Since the 2022/06 LaTeX release, it works with monotonic Unicode literals -(since 2023/02/10] also some polytonic but fails with psili): -\begin{quote} - \selectlanguage{greek} - \newcommand*{\hiatest}{άι, άυ, έι, ἄι, ἄυ, ἔι, ἀυ} - \hiatest{} $\mapsto$ \MakeUppercase{\hiatest} -\end{quote} - -Example \foreignlanguage{greek}{ἀυπνία $\mapsto$ \MakeUppercase{ἀυπνία}} -(missing dialytika on the Upsilon). - -\section{LICR macros} - -This section compares literal Unicode Greek characters to characters input -as LICR macros - -\subsection{Greek and Coptic} - -\subsubsection{short accent macros} - -\renewcommand{\GreekAndCoptic}{% only characters supported by LGR - \raggedright - ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\ - ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{} - ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\ - - ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ - - ␣ ␣ ␣ ␣ \'{ } \"'{ } \'\textAlpha{} \textanoteleia{} - \'\textEpsilon{} \'\textEta{} \'\textIota{} - ␣ \'\textOmicron{} ␣ \'\textUpsilon{} \'\textOmega{} \\ - - ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ - \'"\textiota{} \textAlpha{} \textBeta{} \textGamma{} \textDelta{} - \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{} - \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\ - - Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ - \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{} - \textPhi{} \textChi{} \textPsi{} \textOmega{} \"\textIota{} - \"\textUpsilon{} \'\textalpha{} \'\textepsilon{} \'\texteta{} - \'\textiota{} \\ - - ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ - \"'\textupsilon{} \textalpha{} \textbeta{} \textgamma{} \textdelta{} - \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{} - \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\ - - π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ - \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{} - \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{} \"\textiota{} - \"\textupsilon{} \'\textomicron{} \'\textupsilon{} \'\textomega{} \\ - - ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\ - \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{} - \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{} - \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\ - - Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\ - \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ - \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol -} - -No case change: - -\begin{quote} - \selectlanguage{greek} - \GreekAndCoptic -\end{quote} -% -MakeUppercase: -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekAndCoptic} -\end{quote} -% -MakeLowercase: -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekAndCoptic} -\end{quote} - -\subsubsection{named accent macros} - -\renewcommand{\GreekAndCoptic}{% only characters supported by LGR - \raggedright - ␣ ␣ ␣ ␣ ʹ ͵ ␣ ␣ ␣ ␣ ͺ ␣ ␣ ␣ ; ␣ \\ - ␣ ␣ ␣ ␣ \textnumeralsigngreek{} \textnumeralsignlowergreek{} - ␣ ␣ ␣ ␣ { }\ypogegrammeni{} ␣ ␣ ␣ \texterotimatiko\\ - - ␣ ␣ ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ - ␣ ␣ ␣ ␣ \acctonos{ } \accdialytikatonos{ } \acctonos\textAlpha{} - \textanoteleia{} \acctonos\textEpsilon{} \acctonos\textEta{} - \acctonos\textIota{} ␣ \acctonos\textOmicron{} ␣ \acctonos\textUpsilon{} - \acctonos\textOmega{} \\ - - ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ - \accdialytikatonos\textiota{} \textAlpha{} \textBeta{} \textGamma{} - \textDelta{} \textEpsilon{} \textZeta{} \textEta{} \textTheta{} \textIota{} - \textKappa{} \textLambda{} \textMu{} \textNu{} \textXi{} \textOmicron{} \\ - - Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ - \textPi{} \textRho{} ␣ \textSigma{} \textTau{} \textUpsilon{} - \textPhi{} \textChi{} \textPsi{} \textOmega{} \accdialytika\textIota{} - \accdialytika\textUpsilon{} \acctonos\textalpha{} \acctonos\textepsilon{} - \acctonos\texteta{} \acctonos\textiota{} \\ - - ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ - \accdialytikatonos\textupsilon{} \textalpha{} \textbeta{} \textgamma{} - \textdelta{} \textepsilon{} \textzeta{} \texteta{} \texttheta{} \textiota{} - \textkappa{} \textlambda{} \textmu{} \textnu{} \textxi{} \textomicron{} \\ - - π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ - \textpi{} \textrho{} \textfinalsigma{} \textsigma{} \texttau{} - \textupsilon{} \textphi{} \textchi{} \textpsi{} \textomega{} - \accdialytika\textiota{} \accdialytika\textupsilon{} - \acctonos\textomicron{} \acctonos\textupsilon{} \acctonos\textomega{} ␣\\ - - ϐ ϑ ␣ ␣ ␣ ϕ ϖ ␣ Ϙ ϙ Ϛ ϛ Ϝ ϝ Ϟ ϟ \\ - \textbetasymbol{} \textthetasymbol{} ␣ ␣ ␣ \textphisymbol{} - \textpisymbol{} ␣ \textQoppa{} \textqoppa{} \textStigma{} \textstigma{} - \textDigamma{} \textdigamma{} \textKoppa{} \textkoppa{} \\ - - Ϡ ϡ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ϰ ϱ ϴ ϵ \\ - \textSampi{} \textsampi{} ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ ␣ - \textkappasymbol{} \textrhosymbol{} \textThetasymbol{} \textepsilonsymbol -} -No case change: -\begin{quote} - \selectlanguage{greek} - \GreekAndCoptic -\end{quote} -% -MakeUppercase: -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekAndCoptic} -\end{quote} -% -MakeLowercase: -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekAndCoptic} -\end{quote} - -\subsubsection{symbol variants} - -\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 ϕ -} - -No case change (letter, ``var''-letter, letter-``symbol'', literal symbol) -\begin{quote} - \selectlanguage{greek} - \symbolvariants -\end{quote} -% -MakeUppercase selects the matching capital lette -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\symbolvariants} -\end{quote} -% -MakeLowercase select the lowercase letter (not the symbol) -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\textBeta Β \textEpsilon Ε - \textTheta Θ \textThetasymbol \textvarTheta ϴ - \textKappa Κ \textPi Π \textRho Ρ \textPhi Φ} -\end{quote} - - - -\subsection{Greek extended} - -\subsubsection{short accent macros} - -\renewcommand{\GreekExtended}{\raggedright - ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ - \>\textalpha{} - \<\textalpha{} - \>`\textalpha{} - \<`\textalpha{} - \>'\textalpha{} - \<'\textalpha{} - \~>\textalpha{} - \~<\textalpha{} - \>\textAlpha{} - \<\textAlpha{} - \>`\textAlpha{} - \<`\textAlpha{} - \>'\textAlpha{} - \<'\textAlpha{} - \~>\textAlpha{} - \~<\textAlpha{} \\ - - ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ - \>\textepsilon{} - \<\textepsilon{} - \>`\textepsilon{} - \<`\textepsilon{} - \>'\textepsilon{} - \<'\textepsilon{} - ␣ ␣ \>\textEpsilon{} - \<\textEpsilon{} - \>`\textEpsilon{} - \<`\textEpsilon{} - \>'\textEpsilon{} - \<'\textEpsilon{}\\ - - ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ - \>\texteta{} - \<\texteta{} - \>`\texteta{} - \<`\texteta{} - \>'\texteta{} - \<'\texteta{} - \~>\texteta{} - \~<\texteta{} - \>\textEta{} - \<\textEta{} - \>`\textEta{} - \<`\textEta{} - \>'\textEta{} - \<'\textEta{} - \~>\textEta{} - \~<\textEta{} \\ - - ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ - \>\textiota{} - \<\textiota{} - \>`\textiota{} - \<`\textiota{} - \>'\textiota{} - \<'\textiota{} - \~>\textiota{} - \~<\textiota{} - \>\textIota{} - \<\textIota{} - \>`\textIota{} - \<`\textIota{} - \>'\textIota{} - \<'\textIota{} - \~>\textIota{} - \~<\textIota{} \\ - - ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ - \>\textomicron{} - \<\textomicron{} - \>`\textomicron{} - \<`\textomicron{} - \>'\textomicron{} - \<'\textomicron{} - ␣ ␣ \>\textOmicron{} - \<\textOmicron{} - \>`\textOmicron{} - \<`\textOmicron{} - \>'\textOmicron{} - \<'\textOmicron{} \\ - - ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ - \>\textupsilon{} - \<\textupsilon{} - \>`\textupsilon{} - \<`\textupsilon{} - \>'\textupsilon{} - \<'\textupsilon{} - \~>\textupsilon{} - \~<\textupsilon{} - ␣ \<\textUpsilon{} - ␣ \<`\textUpsilon{} - ␣ \<'\textUpsilon{} - ␣ \~<\textUpsilon{} \\ - - ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ - \>\textomega{} - \<\textomega{} - \>`\textomega{} - \<`\textomega{} - \>'\textomega{} - \<'\textomega{} - \~>\textomega{} - \~<\textomega{} - \>\textOmega{} - \<\textOmega{} - \>`\textOmega{} - \<`\textOmega{} - \>'\textOmega{} - \<'\textOmega{} - \~>\textOmega{} - \~<\textOmega{} \\ - - ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ - \`\textalpha{} - \'\textalpha{} - \`\textepsilon{} - \'\textepsilon{} - \`\texteta{} - \'\texteta{} - \`\textiota{} - \'\textiota{} - \`\textomicron{} - \'\textomicron{} - \`\textupsilon{} - \'\textupsilon{} - \`\textomega{} - \'\textomega{} \\ - - ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ - \>\textalpha\ypogegrammeni{} - \<\textalpha\ypogegrammeni{} - \>`\textalpha\ypogegrammeni{} - \<`\textalpha\ypogegrammeni{} - \>'\textalpha\ypogegrammeni{} - \<'\textalpha\ypogegrammeni{} - \~>\textalpha\ypogegrammeni{} - \~<\textalpha\ypogegrammeni{} - \>\textAlpha\ypogegrammeni{} - \<\textAlpha\ypogegrammeni{} - \>`\textAlpha\ypogegrammeni{} - \<`\textAlpha\ypogegrammeni{} - \>'\textAlpha\ypogegrammeni{} - \<'\textAlpha\ypogegrammeni{} - \~>\textAlpha\ypogegrammeni{} - \~<\textAlpha\ypogegrammeni{} \\ - - ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ - \>\texteta\ypogegrammeni{} - \<\texteta\ypogegrammeni{} - \>`\texteta\ypogegrammeni{} - \<`\texteta\ypogegrammeni{} - \>'\texteta\ypogegrammeni{} - \<'\texteta\ypogegrammeni{} - \~>\texteta\ypogegrammeni{} - \~<\texteta\ypogegrammeni{} - \>\textEta\ypogegrammeni{} - \<\textEta\ypogegrammeni{} - \>`\textEta\ypogegrammeni{} - \<`\textEta\ypogegrammeni{} - \>'\textEta\ypogegrammeni{} - \<'\textEta\ypogegrammeni{} - \~>\textEta\ypogegrammeni{} - \~<\textEta\ypogegrammeni{} \\ - - ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ - \>\textomega\ypogegrammeni{} - \<\textomega\ypogegrammeni{} - \>`\textomega\ypogegrammeni{} - \<`\textomega\ypogegrammeni{} - \>'\textomega\ypogegrammeni{} - \<'\textomega\ypogegrammeni{} - \~>\textomega\ypogegrammeni{} - \~<\textomega\ypogegrammeni{} - \>\textOmega\ypogegrammeni{} - \<\textOmega\ypogegrammeni{} - \>`\textOmega\ypogegrammeni{} - \<`\textOmega\ypogegrammeni{} - \>'\textOmega\ypogegrammeni{} - \<'\textOmega\ypogegrammeni{} - \~>\textOmega\ypogegrammeni{} - \~<\textOmega\ypogegrammeni{} \\ - - ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ - \u\textalpha{} - \=\textalpha{} - \`\textalpha\ypogegrammeni{} - \textalpha\ypogegrammeni{} - \'\textalpha\ypogegrammeni{} - ␣ \~\textalpha{} - \~\textalpha\ypogegrammeni{} - \u\textAlpha{} - \=\textAlpha{} - \`\textAlpha{} - \'\textAlpha{} - \textAlpha\ypogegrammeni{} - \>{} - \prosgegrammeni{} - \>{} \\ - - ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ - \~{} - \"\~{} - \`\texteta\ypogegrammeni{} - \texteta\ypogegrammeni{} - \'\texteta\ypogegrammeni{} - ␣ \~\texteta{} - \~\texteta\ypogegrammeni{} - \`\textEpsilon{} - \'\textEpsilon{} - \`\textEta{} - \'\textEta{} - \textEta\ypogegrammeni{} - \>`{} - \>'{} - \~>{} \\ - - ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ - \u\textiota{} - \=\textiota{} - \`"\textiota{} - \'"\textiota{} - ␣ ␣ \~\textiota{} - \~"\textiota{} - \u\textIota{} - \=\textIota{} - \`\textIota{} - \'\textIota{} - ␣ - \<`{} - \<'{} - \~<{} \\ - - ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\ - \u\textupsilon{} - \=\textupsilon{} - \`"\textupsilon{} - \'"\textupsilon{} - \>\textrho{} - \<\textrho{} - \~\textupsilon{} - \~"\textupsilon{} - \u\textUpsilon{} - \=\textUpsilon{} - \`\textUpsilon{} - \'\textUpsilon{} - \<\textRho{} - \`"{} - \'"{} - \`{} \\ - - ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\ - - ␣ ␣ \`\textomega\ypogegrammeni{} - \textomega\ypogegrammeni{} - \'\textomega\ypogegrammeni{} - ␣ \~\textomega{} - \~\textomega\ypogegrammeni{} - \`\textOmicron{} - \'\textOmicron{} - \`\textOmega{} - \'\textOmega{} - \textOmega\ypogegrammeni{} - \'{} - \<{} ␣ -} - -No case change: -\begin{quote} - \selectlanguage{greek} - \GreekExtended -\end{quote} -% -MakeUppercase: -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekExtended} -\end{quote} -% -MakeLowercase: -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekExtended} -\end{quote} - - -\subsubsection{named accent macros} - -\renewcommand{\GreekExtended}{\raggedright - ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ - \accpsili\textalpha{} - \accdasia\textalpha{} - \accpsilivaria\textalpha{} - \accdasiavaria\textalpha{} - \accpsilioxia\textalpha{} - \accdasiaoxia\textalpha{} - \accpsiliperispomeni\textalpha{} - \accdasiaperispomeni\textalpha{} - \accpsili\textAlpha{} - \accdasia\textAlpha{} - \accpsilivaria\textAlpha{} - \accdasiavaria\textAlpha{} - \accpsilioxia\textAlpha{} - \accdasiaoxia\textAlpha{} - \accpsiliperispomeni\textAlpha{} - \accdasiaperispomeni\textAlpha{} \\ - - ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ - \accpsili\textepsilon{} - \accdasia\textepsilon{} - \accpsilivaria\textepsilon{} - \accdasiavaria\textepsilon{} - \accpsilioxia\textepsilon{} - \accdasiaoxia\textepsilon{} - ␣ ␣ \accpsili\textEpsilon{} - \accdasia\textEpsilon{} - \accpsilivaria\textEpsilon{} - \accdasiavaria\textEpsilon{} - \accpsilioxia\textEpsilon{} - \accdasiaoxia\textEpsilon{}\\ - - ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ - \accpsili\texteta{} - \accdasia\texteta{} - \accpsilivaria\texteta{} - \accdasiavaria\texteta{} - \accpsilioxia\texteta{} - \accdasiaoxia\texteta{} - \accpsiliperispomeni\texteta{} - \accdasiaperispomeni\texteta{} - \accpsili\textEta{} - \accdasia\textEta{} - \accpsilivaria\textEta{} - \accdasiavaria\textEta{} - \accpsilioxia\textEta{} - \accdasiaoxia\textEta{} - \accpsiliperispomeni\textEta{} - \accdasiaperispomeni\textEta{} \\ - - ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ - \accpsili\textiota{} - \accdasia\textiota{} - \accpsilivaria\textiota{} - \accdasiavaria\textiota{} - \accpsilioxia\textiota{} - \accdasiaoxia\textiota{} - \accpsiliperispomeni\textiota{} - \accdasiaperispomeni\textiota{} - \accpsili\textIota{} - \accdasia\textIota{} - \accpsilivaria\textIota{} - \accdasiavaria\textIota{} - \accpsilioxia\textIota{} - \accdasiaoxia\textIota{} - \accpsiliperispomeni\textIota{} - \accdasiaperispomeni\textIota{} \\ - - ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ - \accpsili\textomicron{} - \accdasia\textomicron{} - \accpsilivaria\textomicron{} - \accdasiavaria\textomicron{} - \accpsilioxia\textomicron{} - \accdasiaoxia\textomicron{} - ␣ ␣ \accpsili\textOmicron{} - \accdasia\textOmicron{} - \accpsilivaria\textOmicron{} - \accdasiavaria\textOmicron{} - \accpsilioxia\textOmicron{} - \accdasiaoxia\textOmicron{} \\ - - ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ - \accpsili\textupsilon{} - \accdasia\textupsilon{} - \accpsilivaria\textupsilon{} - \accdasiavaria\textupsilon{} - \accpsilioxia\textupsilon{} - \accdasiaoxia\textupsilon{} - \accpsiliperispomeni\textupsilon{} - \accdasiaperispomeni\textupsilon{} - ␣ \accdasia\textUpsilon{} - ␣ \accdasiavaria\textUpsilon{} - ␣ \accdasiaoxia\textUpsilon{} - ␣ \accdasiaperispomeni\textUpsilon{} \\ - - ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ Ὠ Ὡ Ὢ Ὣ Ὤ Ὥ Ὦ Ὧ \\ - \accpsili\textomega{} - \accdasia\textomega{} - \accpsilivaria\textomega{} - \accdasiavaria\textomega{} - \accpsilioxia\textomega{} - \accdasiaoxia\textomega{} - \accpsiliperispomeni\textomega{} - \accdasiaperispomeni\textomega{} - \accpsili\textOmega{} - \accdasia\textOmega{} - \accpsilivaria\textOmega{} - \accdasiavaria\textOmega{} - \accpsilioxia\textOmega{} - \accdasiaoxia\textOmega{} - \accpsiliperispomeni\textOmega{} - \accdasiaperispomeni\textOmega{} \\ - - ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ - \accvaria\textalpha{} - \accoxia\textalpha{} - \accvaria\textepsilon{} - \accoxia\textepsilon{} - \accvaria\texteta{} - \accoxia\texteta{} - \accvaria\textiota{} - \accoxia\textiota{} - \accvaria\textomicron{} - \accoxia\textomicron{} - \accvaria\textupsilon{} - \accoxia\textupsilon{} - \accvaria\textomega{} - \accoxia\textomega{} \\ - - ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ - \accpsili\textalpha\ypogegrammeni{} - \accdasia\textalpha\ypogegrammeni{} - \accpsilivaria\textalpha\ypogegrammeni{} - \accdasiavaria\textalpha\ypogegrammeni{} - \accpsilioxia\textalpha\ypogegrammeni{} - \accdasiaoxia\textalpha\ypogegrammeni{} - \accpsiliperispomeni\textalpha\ypogegrammeni{} - \accdasiaperispomeni\textalpha\ypogegrammeni{} - \accpsili\textAlpha\ypogegrammeni{} - \accdasia\textAlpha\ypogegrammeni{} - \accpsilivaria\textAlpha\ypogegrammeni{} - \accdasiavaria\textAlpha\ypogegrammeni{} - \accpsilioxia\textAlpha\ypogegrammeni{} - \accdasiaoxia\textAlpha\ypogegrammeni{} - \accpsiliperispomeni\textAlpha\ypogegrammeni{} - \accdasiaperispomeni\textAlpha\ypogegrammeni{} \\ - - ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ - \accpsili\texteta\ypogegrammeni{} - \accdasia\texteta\ypogegrammeni{} - \accpsilivaria\texteta\ypogegrammeni{} - \accdasiavaria\texteta\ypogegrammeni{} - \accpsilioxia\texteta\ypogegrammeni{} - \accdasiaoxia\texteta\ypogegrammeni{} - \accpsiliperispomeni\texteta\ypogegrammeni{} - \accdasiaperispomeni\texteta\ypogegrammeni{} - \accpsili\textEta\ypogegrammeni{} - \accdasia\textEta\ypogegrammeni{} - \accpsilivaria\textEta\ypogegrammeni{} - \accdasiavaria\textEta\ypogegrammeni{} - \accpsilioxia\textEta\ypogegrammeni{} - \accdasiaoxia\textEta\ypogegrammeni{} - \accpsiliperispomeni\textEta\ypogegrammeni{} - \accdasiaperispomeni\textEta\ypogegrammeni{} \\ - - ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ - \accpsili\textomega\ypogegrammeni{} - \accdasia\textomega\ypogegrammeni{} - \accpsilivaria\textomega\ypogegrammeni{} - \accdasiavaria\textomega\ypogegrammeni{} - \accpsilioxia\textomega\ypogegrammeni{} - \accdasiaoxia\textomega\ypogegrammeni{} - \accpsiliperispomeni\textomega\ypogegrammeni{} - \accdasiaperispomeni\textomega\ypogegrammeni{} - \accpsili\textOmega\ypogegrammeni{} - \accdasia\textOmega\ypogegrammeni{} - \accpsilivaria\textOmega\ypogegrammeni{} - \accdasiavaria\textOmega\ypogegrammeni{} - \accpsilioxia\textOmega\ypogegrammeni{} - \accdasiaoxia\textOmega\ypogegrammeni{} - \accpsiliperispomeni\textOmega\ypogegrammeni{} - \accdasiaperispomeni\textOmega\ypogegrammeni{} \\ - - ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ - \u\textalpha{} - \=\textalpha{} - \accvaria\textalpha\ypogegrammeni{} - \textalpha\ypogegrammeni{} - \accoxia\textalpha\ypogegrammeni{} - ␣ \accperispomeni\textalpha{} - \accperispomeni\textalpha\ypogegrammeni{} - \u\textAlpha{} - \=\textAlpha{} - \accvaria\textAlpha{} - \accoxia\textAlpha{} - \textAlpha\ypogegrammeni{} - \accpsili{} - \prosgegrammeni{} - \accpsili{} \\ - - ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ - \accperispomeni{} - \accdialytikaperispomeni{} - \accvaria\texteta\ypogegrammeni{} - \texteta\ypogegrammeni{} - \accoxia\texteta\ypogegrammeni{} - ␣ \accperispomeni\texteta{} - \accperispomeni\texteta\ypogegrammeni{} - \accvaria\textEpsilon{} - \accoxia\textEpsilon{} - \accvaria\textEta{} - \accoxia\textEta{} - \textEta\ypogegrammeni{} - \accpsilivaria{} - \accpsilioxia{} - \accpsiliperispomeni{} \\ - - ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ - \u\textiota{} - \=\textiota{} - \accdialytikavaria\textiota{} - \accdialytikatonos\textiota{} - ␣ ␣ \accperispomeni\textiota{} - \accperispomeni"\textiota{} - \u\textIota{} - \=\textIota{} - \accvaria\textIota{} - \accoxia\textIota{} - ␣ - \accdasiavaria{} - \accdasiaoxia{} - \accdasiaperispomeni{} \\ - - ῠ ῡ ῢ ΰ ῤ ῥ ῦ ῧ Ῠ Ῡ Ὺ Ύ Ῥ ῭ ΅ ` \\ - \u\textupsilon{} - \=\textupsilon{} - \accdialytikavaria\textupsilon{} - \accdialytikatonos\textupsilon{} - \accpsili\textrho{} - \accdasia\textrho{} - \accperispomeni\textupsilon{} - \accdialytikaperispomeni\textupsilon{} - \u\textUpsilon{} - \=\textUpsilon{} - \accvaria\textUpsilon{} - \accoxia\textUpsilon{} - \accdasia\textRho{} - \accdialytikavaria{} - \accdialytikatonos{} - \accvaria{} \\ - - ␣ ␣ ῲ ῳ ῴ ␣ ῶ ῷ Ὸ Ό Ὼ Ώ ῼ ´ ῾ ␣ \\ - - ␣ ␣ \accvaria\textomega\ypogegrammeni{} - \textomega\ypogegrammeni{} - \accoxia\textomega\ypogegrammeni{} - ␣ \accperispomeni\textomega{} - \accperispomeni\textomega\ypogegrammeni{} - \accvaria\textOmicron{} - \accoxia\textOmicron{} - \accvaria\textOmega{} - \accoxia\textOmega{} - \textOmega\ypogegrammeni{} - \accoxia{} - \accdasia{} ␣ -} - -No case change: -\begin{quote} - \selectlanguage{greek} - \GreekExtended -\end{quote} -% -MakeUppercase: -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekExtended} -\end{quote} -% -MakeLowercase: -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekExtended} -\end{quote} - - -\section{Latin transliteration} - -\ifdefined \UnicodeEncodingName % set by LaTeX for Unicode-aware engines - \textbf{Warning:} - As the uc/lccode re-definitions are not performed when Unicode fonts are - used, the accents are not dropped from upcased Latin transliterations. - Accent macros work fine also in Latin transliterations with Xe/LuaTeX. -\fi - -\subsection{Greek and Coptic} - -Every second line is input as Latin transliteration: - -\let\:\textvisiblespace - -\renewcommand{\GreekAndCoptic}{% - ͺ ; ␣ ␣ ΄ ΅ Ά · Έ Ή Ί ␣ Ό ␣ Ύ Ώ \\ - \lgrfont{ | ? \: \: ' "' 'A ; 'E 'H 'I \: 'O \: 'U 'W} \\ - ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο \\ - \lgrfont{'"i A B G D E Z H J I K L M N X O} \\ - Π Ρ ␣ Σ Τ Υ Φ Χ Ψ Ω Ϊ Ϋ ά έ ή ί \\ - \lgrfont{ P R \: S T U F Q Y W "I "U 'a 'e 'h 'i} \\ - ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο \\ - \lgrfont{'"u a b g d e z h j i k l m n x o} \\ - π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ␣ \\ - \lgrfont{ p r s s\textcompwordmark{} - t u f q y w "i "u 'o 'u 'w \:} -} - -\begin{quote} - \selectlanguage{greek} - \GreekAndCoptic -\end{quote} -% -MakeUppercase: - -\begin{quote} - \selectlanguage{greek} - \MakeUppercase{\GreekAndCoptic} -\end{quote} -% -Letters upcased, dialytika and sub-iota unchanged, other diacritics dropped -(if \verb|\greekfontencoding| is LGR). - - -MakeLowercase: - -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekAndCoptic} -\end{quote} -% -With LGR, the lowercase of \ensuregreek{Σ} is the «auto-sigma» -(\verb|\textautosigma|): \ensuregreek{ΣΣ $\mapsto$ \MakeLowercase{ΣΣ}}. -Add a ZWNJ or use the \verb|\noboundary| macro to prevent conversion to -final sigma: \ensuregreek{\MakeLowercase{ΣΣ‌}}. -The lowercase of GREEK LETTER STIGMA \ensuregreek{Ϛ} is -\ensuregreek{\MakeLowercase{Ϛ}}, not \verb|\textvarstigma|% -\ifdefined \UnicodeEncodingName \else - (\ensuregreek\textvarstigma)% -\fi . - -\subsection{Greek extended} - -Every second line is input as Latin transliteration. The current language -variant is \emph\GreekLanguageVariant. - -\renewcommand{\GreekExtended}{\raggedright - ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ \\ - \lgrfont{>a `a <`a >'a <'a >~a <~a >A `A <`A >'A <'A >~A <~A } \\ - ἐ ἑ ἒ ἓ ἔ ἕ ␣ ␣ Ἐ Ἑ Ἒ Ἓ Ἔ Ἕ \\ - \lgrfont{>e `e <`e >'e <'e \: \: >E `E <`E >'E <'E } \\ - ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ Ἠ Ἡ Ἢ Ἣ Ἤ Ἥ Ἦ Ἧ \\ - \lgrfont{>h `h <`h >'h <'h >~h <~h >H `H <`H >'H <'H >~H <~H } \\ - ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ Ἰ Ἱ Ἲ Ἳ Ἴ Ἵ Ἶ Ἷ \\ - \lgrfont{>i `i <`i >'i <'i >~i <~i >I `I <`I >'I <'I >~I <~I } \\ - ὀ ὁ ὂ ὃ ὄ ὅ ␣ ␣ Ὀ Ὁ Ὂ Ὃ Ὄ Ὅ \\ - \lgrfont{>o `o <`o >'o <'o \: \: >O `O <`O >'O <'O } \\ - ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ␣ Ὑ ␣ Ὓ ␣ Ὕ ␣ Ὗ \\ - \lgrfont{>u `u <`u >'u <'u >~u <~u \: w `w <`w >'w <'w >~w <~w >W `W <`W >'W <'W >~W <~W } \\ - ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ \\ - \lgrfont{`a 'a `e 'e `h 'h `i 'i `o 'o `u 'u `w 'w } \\ - ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾈ ᾉ ᾊ ᾋ ᾌ ᾍ ᾎ ᾏ \\ - \lgrfont{>a| `a| <`a| >'a| <'a| >~a| <~a| >A| `A| <`A| >'A| <'A| >~A| <~A|} \\ - ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾘ ᾙ ᾚ ᾛ ᾜ ᾝ ᾞ ᾟ \\ - \lgrfont{>h| `h| <`h| >'h| <'h| >~h| <~h| >H| `H| <`H| >'H| <'H| >~H| <~H|} \\ - ᾠ ᾡ ᾢ ᾣ ᾤ ᾦ ᾧ ᾥ ᾨ ᾩ ᾪ ᾫ ᾬ ᾭ ᾮ ᾯ \\ - \lgrfont{>w| `w| <`w| >'w| <'w| >~w| <~w| >W| `W| <`W| >'W| <'W| >~W| <~W|} \\ - ᾰ ᾱ ᾲ ᾳ ᾴ ␣ ᾶ ᾷ Ᾰ Ᾱ Ὰ Ά ᾼ ᾽ ι ᾿ \\ -\lgrfont{\u{a} \=a `a| a| 'a| \: ~a ~a| \u{A} \=A `A 'A A| > | > } \\ - ῀ ῁ ῂ ῃ ῄ ␣ ῆ ῇ Ὲ Έ Ὴ Ή ῌ ῍ ῎ ῏ \\ - \lgrfont{~ "~ `h| h| 'h| \: ~h ~h| `E 'E `H 'H H| >` >' ~> } \\ - ῐ ῑ ῒ ΐ ␣ ␣ ῖ ῗ Ῐ Ῑ Ὶ Ί ␣ ῝ ῞ ῟ \\ -\lgrfont{\u{i} \=i `"i '"i \: \: ~i ~"i \u{I} \=I `I 'I \: <` <' ~< } \\ - ῠ ῡ ῢ ΰ ␣ ␣ ῤ ῥ ῦ ῧ Ὺ Ύ Ῥ ῭ ΅ ` \\ -\lgrfont{\u{u} \=u `"u '"u \: \: >r to the "empty" char for accent -dropping: the characters vanish if used stand-alone -(also with the ``old'' MakeUppercase): -\begin{quote} - \selectlanguage{greek} - ` ' ~ < > → \MakeUppercase{` ' ~ < >} - ``x'' <> → \MakeUppercase{``x'' <>} -\end{quote} - -Workaround: use literal typographical quote characters: -\begin{quote} - \selectlanguage{greek} - ‘x’ «y» → \MakeUppercase{‘x’ «y»} -\end{quote} - -MakeLowercase: - -\begin{quote} - \selectlanguage{greek} - \MakeLowercase{\GreekExtended} -\end{quote} - - -\end{document} diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex index 244ee3e345..fcf1f763cf 100644 --- a/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex +++ b/macros/latex/contrib/babel-contrib/greek/test-greek-ini.tex @@ -26,15 +26,16 @@ % \usepackage{textalpha} \ProvideTextCommand{\ensuregreek}{TU}[1]{##1} \ProvideTextCommand{\greekscript}{TU}{} - \ProvideTextCommand{\textalpha}{TU}{\cs{textalpha}} - \ProvideTextCommand{\textOmega}{TU}{\cs{textOmega}} + \ProvideTextCommand{\textalpha}{TU}{only with the \pkgref{textalpha} + package} + \ProvideTextCommand{\textOmega}{TU}{} \fi \usepackage{hyperref} \hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue} % fallbacks for commands defined in babel-greek: - \providecommand*\greekfontencoding{None} + \providecommand*\greekfontencoding{not set} % \providecommand*\lgrfont[1]{\cs{lgrfont} \emph{missing}} \ProvideTextCommandDefault{\textampersand}{\&} \providecommand*\greeknumeral[1]{\{##1\}} diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf index 50235b0c51..9a12610f7c 100644 Binary files a/macros/latex/contrib/babel-contrib/greek/test-greek.pdf and b/macros/latex/contrib/babel-contrib/greek/test-greek.pdf differ diff --git a/macros/latex/contrib/babel-contrib/greek/test-greek.tex b/macros/latex/contrib/babel-contrib/greek/test-greek.tex index f46b1db526..1bae1bb88d 100644 --- a/macros/latex/contrib/babel-contrib/greek/test-greek.tex +++ b/macros/latex/contrib/babel-contrib/greek/test-greek.tex @@ -39,7 +39,7 @@ % Uncomment the desired language variant % Default: modern monotonic Greek % - \languageattribute{greek}{polutoniko} % "modern" polytonic Greek + % \languageattribute{greek}{polutoniko} % "modern" polytonic Greek % \languageattribute{greek}{polytonic} % alias for polutoniko % \languageattribute{greek}{ancient} % ancient Greek % @@ -51,6 +51,12 @@ % \selectlanguage{polutonikogreek} instead of \selectlanguage{greek} etc. % if the "polutoniko" Greek language variant is selected. + % To use modern and ancient Greek in one document, load the second language + % with \babelprovide. + % Caveat: With 8-bit Greek, the font-encoding switch to LGR fails + % in the ToC: section titles with Greek come out wrong! + \babelprovide[hyphenrules=ancientgreek]{ancientgreek} + % Make ; active to prevent mapping to a middle dot: \languageattribute{greek}{keep-semicolon} } @@ -66,19 +72,18 @@ \usepackage{hyperref} \hypersetup{unicode, colorlinks=true,linkcolor=blue,urlcolor=blue} -% \usepackage{bookmark} +\usepackage{bookmark} \usepackage{parskip} -% Semantic styling: +% Auxiliary commands: + +% Semantic styling: \newcommand{\file}{\texttt} \newcommand{\cs}[1]{\texttt{\textbackslash#1}} \newcommand{\pkgref}[1]{\emph{\href{https://ctan.org/pkg/#1}{#1}}} - -% Auxiliary commands: - % print the selected language variant \newcommand{\GreekLanguageVariant}{% \ifx\captionsgreek\captionspolutonikogreek @@ -92,6 +97,17 @@ \fi } +% which engine is used? +\ifdefined \UnicodeEncodingName + \ifdefined\luatexversion + \newcommand*{\texengine}{LuaLaTeX} + \else + \newcommand*{\texengine}{XeLaTeX} + \fi +\else + \newcommand*{\texengine}{pdfLaTeX} +\fi + % The paragraph after \showhyphenpar is printed with all words % shown as hy-phen-ated. % from https://tex.stackexchange.com/questions/55282/display-hyphenation-options-for-a-specific-word/55283#55283 @@ -120,6 +136,15 @@ \SETUPDOC % print additional setup information. +\makeatletter +This document is compiled with \texengine, +format version \fmtversion{} patch-level \patch@level{}, +and the L3 programming layer from \ExplFileDate{}. +The Greek font encoding is \greekfontencoding{} +and the language variant is \GreekLanguageVariant. +\makeatother + + \tableofcontents @@ -134,6 +159,15 @@ The declaration \verb|\selectlanguage| switches between languages. ἐρῶν άπῆλθες εὐθύς; \end{quote} +The command \verb|\foreignlanguage| sets its second argument in the language +specified as first argument. This is intended for short text parts or +single words like \foreignlanguage{greek}{Βιβλιοθήκη}. + +Input may use literal Greek characters (\foreignlanguage{greek}{α \ldots Ω}), +LICR macros (\foreignlanguage{greek}{\textalpha{} \ldots{} \textOmega}), +or (if the LGR font encoding is used) the Latin transliteration +(\foreignlanguage{greek}{a \ldots{} W}). + \textbf{Warning: With 8-bit TeX, Latin letters and some symbols in the input are mapped to Greek equivalents!}. Without precautions, quotes copied from external sources (like this Wikpedia @@ -146,15 +180,6 @@ entry about the question mark) may come out simply wrong: \end{quote} See section~\ref{Latin transliteration} for remedies. -The command \verb|\foreignlanguage| sets its second argument in the language -specified as first argument. This is intended for short text parts or -single words like \foreignlanguage{greek}{Βιβλιοθήκη}. - -Input may use literal Greek characters (\foreignlanguage{greek}{α \ldots Ω}), -LICR macros (\foreignlanguage{greek}{\textalpha{} \ldots{} \textOmega}), -or the Latin transliteration (\foreignlanguage{greek}{a \ldots{} W}) defined -by the LGR font encoding (if LGR is used). - There should be no inserted space before or after the language switch (this may happen if there are unescaped linebreaks in the font or language definitions): @@ -266,30 +291,53 @@ ancient: \verb|\l@ancientgreek| = \the\l@ancientgreek current: \verb|\l@greek| = \the\l@greek \makeatletter +\newcommand*{\sample}{% + \ensureascii{monotonic:} Ευρετήριο, επίσης, Απόδειξη, Θράκη, τραγωδία\\ + \ifdefined \UnicodeEncodingName \else + \ensureascii{'' '' translit:} Euret'hrio, ep'ishs, Ap'odeixh, Jr'akh, + tragwd'ia\\ + \fi + \ensureascii{polytonic:} Εὑρετήριο, ἐπίσης, Ἀπόδειξη, Θρᾴκη, τραγῳδία\\ + \ifdefined \UnicodeEncodingName \else + \ensureascii{'' translit:} Eep'ishs, >Ap'odeixh, Jr'a|kh, + tragw|d'ia\\ + \fi + \ensureascii{ancient:} Εὑρετήριον, ὡσαύτως, Ἀπόδειξις, Θρᾴκη, τραγῳδία% +} + Greek paragraph: -\begin{quote} - \selectlanguage{greek} - \showhyphenpar - \ensureascii{monotonic:} Ευρετήριο, επίσης, Απόδειξη \\ - \ensureascii{polytonic:} Εὑρετήριο, ἐπίσης, Ἀπόδειξη \\ - \ensureascii{ancient:} Εὑρετήριον, ὡσαύτως, Ἀπόδειξις -\end{quote} + +{ + \selectlanguage{greek} + \showhyphenpar + \sample + \par % (new paragraph to end \showhyphenpar before leaving group) +} English paragraph with Greek text (\verb|\foreignlanguage{greek}|): -\begin{quote} - \showhyphenpar - monotonic: \foreignlanguage{greek}{Ευρετήριο, επίσης, Απόδειξη } \\ - polytonic: \foreignlanguage{greek}{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\ - ancient: \foreignlanguage{greek}{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις} -\end{quote} -English paragraph with Greek script (\verb|\ensuregreek|): no hypenation -\begin{quote} - \showhyphenpar - monotonic: \ensuregreek{Ευρετήριο, επίσης, Απόδειξη } \\ - polytonic: \ensuregreek{Εὑρετήριο, ἐπίσης, Ἀπόδειξη } \\ - ancient: \ensuregreek{Εὑρετήριον, ὡσαύτως, Ἀπόδειξις} -\end{quote} +\showhyphenpar +\foreignlanguage{greek}{\sample} + +English paragraph with Greek script (\verb|\ensuregreek|): + +\showhyphenpar +\ensuregreek{\sample} + +% Ancient Greek paragraph: +% +% { +% \selectlanguage{ancientgreek} +% \greekscript +% \showhyphenpar +% \sample +% } +% +% !! Warning !! +% After use of \verb|\selectlanguage{ancientgreek}| (set up with +% \cs{babelprovide} in the preamble), Greek text in section headings +% is written with the wrong font encoding in the ToC. + \section{Greek Numerals (\greeknumeral{1} \ldots{} \greeknumeral{999999})% \label{sec:greek-numerals}} @@ -467,27 +515,35 @@ the final output. With the \texttt{keep-semicolon} language attribute, 003B SEMICOLON is made active and inserts an \emph{erotimatiko} also with LGR encoded fonts, if the -text language is set to Greek: +text language is set to Greek +(in this document, the semicolon is +\ifnum\catcode59 = 13 + active). +\else + not active). +\fi -\begin{tabular}{lcccl} - Input & \latinencoding{} & \greekfontencoding & Greek \\ +\begin{tabular}{lccc} + Input & \latinencoding{} & \greekfontencoding + & Greek language \\ 003F QUESTION MARK & ? & \ensuregreek{?} - & \foreignlanguage{greek}{?} \\ - \\ - 037E GREEK QUESTION MARK & ␣ & \ensuregreek{;} - & \foreignlanguage{greek}{;} - & not defined for T1 \\ + & \foreignlanguage{greek}{?} \\ + \\ + 037E GREEK QUESTION MARK & {\footnotesize n/d} & \ensuregreek{;} + & \foreignlanguage{greek}{;} \\ 003B SEMICOLON & ; & \ensuregreek{;} - & \foreignlanguage{greek}{;} \\ + & \foreignlanguage{greek}{;} \\ 00B7 MIDDLE DOT & · & \ensuregreek{·} - & \foreignlanguage{greek}{·} \\ + & \foreignlanguage{greek}{·} \\ \end{tabular} +{\footnotesize n/d}: character not defined in T1 encoding. + This attribute is ignored with Unicode fonts (where the SEMICOLON literal always prints a semicolon character). Test in math mode: -\newcommand{\semicolontest}{ab; $a b; a\;b, (\mathrm{a;}\textrm{a;}2)$} +\newcommand{\semicolontest}{$a b; a\;b, (\mathrm{a;}\textrm{a;}2)$} English: \semicolontest, Greek: \foreignlanguage{greek}{\semicolontest}. \subsubsection{LGR-proofed macros} @@ -602,15 +658,14 @@ More test of the LGR-redefinitions are in \file{test-lgr-fixes.tex}. \end{document} \fi + \section{Up- and downcasing in Greek} Capital Greek letters have diacritics (except the dialytika and sub-iota) to the left (instead of above) and drop them in uppercase (except the dialytika), e.g., \ensuregreek{μαΐστρος $\mapsto$ \MakeUppercase{μαΐστρος}}. -For literal Greek characters and accent macros, these rules are implemented -and tested in the required package \pkgref{greek-fontenc}. -Tonos and dasia mark a \emph{hiatus} (break-up of a diphthong) if +Tonos and psili mark a \emph{hiatus} (break-up of a diphthong) if placed on the first vowel of a diphthong. A dialytika must be placed on the second vowel if they are dropped, e.g. % @@ -620,8 +675,8 @@ A dialytika must be placed on the second vowel if they are dropped, e.g. \'>\textalpha\textiota, \'>\textalpha\textupsilon, \accpsili\textalpha\textupsilon, - \accdasiaoxia\textepsilon\textiota}% -\ensuregreek{\HiatusLICR\ $\mapsto$ \MakeUppercase{\HiatusLICR}}. + \accpsilioxia\textepsilon\textiota}% +\foreignlanguage{greek}{\HiatusLICR\ $\mapsto$ \MakeUppercase{\HiatusLICR}}. Some affected words: \begin{quotation} @@ -634,9 +689,9 @@ Some affected words: \aylos{} $\mapsto$ \MakeUppercase{\aylos}, % from http://diacritics.typo.cz/index.php?id=69 - \newcommand*{\maina}{%μάινα → ΜΑΪΝΑ - \textmu\acctonos\textalpha\textiota\textnu\textalpha} - \maina{} $\mapsto$ \MakeUppercase{\maina}, + \newcommand*{\maine}{%μάινη → ΜΑΪΝΗ + \textmu\acctonos\textalpha\textiota\textnu\texteta} + \maine{} $\mapsto$ \MakeUppercase{\maine}, % from http://de.wikipedia.org/wiki/Neugriechische_Orthographie#Das_Trema \newcommand*{\keik}{% κέικ → ΚΕΪΚ @@ -651,134 +706,142 @@ Some affected words: \newcommand*{\romeika}{\textrho\textomega\textmu \acctonos\textepsilon\textiota\textkappa\textalpha} \romeika{} $\mapsto$ \MakeUppercase{\romeika}. -\end{quotation} - -With the pre-2022/06 \cs{MakeUppercase}, automatic upcasing of words with -\emph{hiatus} works correctly only if the accents are input as macro and the -letters as macro or via the Latin transliteration. -With the current (2023/02/10) \cs{MakeUppercase}, it works for literal -Unicode input and named accents. The \cs{uccode} changes are ignored. + % from Yannis Haralambous https://hal.science/hal-02101618 + \newcommand*{\aute}{% ἀυτή → ΑΫΤΗ a cry, shout, esp. battle-shout + \accpsili\textalpha\textupsilon\texttau\acctonos\texteta} + \aute{} → \MakeUppercase{\aute} +\end{quotation} +The file \file{char-list.tex} in the \pkgref{greek-fontenc} package includes +a comprehensive test of case changing for all supported Greek characters and +their various input methods. -\subsection{Iota subscript vs. iota adscript} -Pre-composed capital letters with \emph{mute iota} decompose to the base -letter and COMBINING GREEK YPOGEGRAMMENI (U+0345) even if they are named -... WITH [... AND] PROSGEGRAMMENI for ``historic reasons''.% -\footnote{cf. \href{https://opoudjis.net/unicode/unicode_adscript.html} - {Nick Nicholas `Titlecase and Adscripts'}} -Accordingly, the ``canonical'' LICR for capital letters with mute iota -is the base character LICR followed by \verb|\ypogegrammeni|. +\subsection{Problems and fixes} -Compare letters followed by \verb|\prosgegrammeni| and -\verb|\ypogegrammeni| with the pre-composed characters and with -character + literal GREEK YPOGEGRAMMENI. +\subsubsection{Input variants} -prosgegrammeni: -\begin{quotation} - \selectlanguage{greek} - \newcommand{\alphapros}{\textalpha\prosgegrammeni α\prosgegrammeni{} αι / - \textAlpha\prosgegrammeni Α\prosgegrammeni{} ᾼΑι / - \accpsili\textAlpha\prosgegrammeni Ἀ\prosgegrammeni{} ᾈἈι} +Depending on the LaTeX version and input variant, there are several +limitations and problems. - \phantom{MakeUppercase} \alphapros +With \cs{greekfontencoding} \greekfontencoding, LaTeX version \fmtversion, +and language variant ``\GreekLanguageVariant'', we get - \ensureascii{MakeUppercase} \MakeUppercase{\alphapros} +\newcommand{\precomposed}{ῶ, ή, ΐ, ᾂ, άι} +\newcommand{\translit}{{~w, 'h, '"i, >`a|, 'ai}} +\newcommand{\acconLICR}{\~\textomega, \'\texteta, \'"\textiota, + \`>\textalpha\ypogegrammeni, \'\textalpha\textiota} +\newcommand{\accontranslit}{{\~w, \'h, \'"i, \`>a|, \'ai}} +\newcommand{\acconliteral}{\~ω, \'η, \'"ι, \`>ᾳ, \'αι} - \ensureascii{MakeLowercase} \MakeLowercase{\alphapros} -\end{quotation} +pre-composed: +\foreignlanguage{greek}{\precomposed\ → \MakeUppercase{\precomposed}} -ypogegrammeni: -\begin{quotation} - \selectlanguage{greek} - \newcommand{\alphaypo}{\textalpha\ypogegrammeni α\ypogegrammeni{} ᾳ / - \textAlpha\ypogegrammeni Α\ypogegrammeni{} ᾼ / - \accpsili\textAlpha\ypogegrammeni Ἀ\ypogegrammeni{} ᾈ} +transliteration: +\foreignlanguage{greek}{\translit\ → \MakeUppercase{\translit}} - \phantom{MakeUppercase} \alphaypo +accent macro + LICR: +\foreignlanguage{greek}{\acconLICR\ → \MakeUppercase{\acconLICR}} - \ensureascii{MakeUppercase} \MakeUppercase{\alphaypo} +accent macro + transliteration: +\foreignlanguage{greek}{\accontranslit\ → \MakeUppercase{\accontranslit}} - \ensureascii{MakeLowercase} \MakeLowercase{\alphaypo} -\end{quotation} +accent macro + literal: +\ifdefined \UnicodeEncodingName + \foreignlanguage{greek}{\acconliteral\ → \MakeUppercase{\acconliteral}} +\else + → inputenc Error: Invalid UTF-8 byte sequence +\fi +\begin{itemize} +\item The implementation of \cs{MakeUppercase} + introduced in the 2022/06 LaTeX release\footnote{cf.\ + \href{https://www.latex-project.org/news/latex2e-news/ltnews35.pdf}% + {LaTeX News 35}} + works (almost) fine with pre-composed literal characters but there are + Unicode errors (unknown characters) under 8-bit TeX. + Fixed with LaTeX 2023, babel-greek 1.13 and greek-fontenc 2.3. + +\item The new \cs{MakeUppercase} did not drop + accents input as short accent macros or with the Latin transliteration. + Fixed with the 2023 LaTeX release, babel-greek~1.14, and + greek-fontenc~2.4. + +\item The \emph{hiatus} feature fails with the Latin transliteration. + Use accent macros, e.g., replace \verb|k'eik| with \verb|k\'eik|. + + It also failed with pre-composed characters and LaTeX + versions older than 2022/06.% + \footnote{Some ``pro'' Unicode fonts provide this feature on their own, + cf. \href{http://multilingualtypesetting.co.uk/blog/greek-typesetting-tips/}% + {Greek typesetting without the tears}} + +% \item With \emph{babel-greek} versions up to 1.11, using the tilde for the +% \emph{perispomeni} accent inside \verb|\MakeUppercase| led to +% \texttt{inputenc Error: Invalid UTF-8 byte "9F}.% +% \footnote{even without loading \emph{inputenc} and with +% \cs{UseRawInputEncoding}, cf. +% \href{https://www.latex-project.org/news/latex2e-news/ltnews28.pdf}% +% {LaTeX News 28}} -\subsection{Changed uccode/lccode values for LGR} +\end{itemize} -LGR encoded fonts define ligatures for characters with diacritics. To enable -correct upcasing, \emph{babel-greek} changes the uc/lccodes of some -characters. Characters used to input diacritics are mapped to the ``empty'' -character 0x9f = 159. +\subsubsection{Particuliarities of the Latin Transliteration} -To minimise side-effects (see below), uc/lccodes are only changed: +To enable correct upcasing of the ``Latin transliteration'', +\emph{babel-greek} changes the uppercase +equivalent of some characters with special meaning in LGR. +To minimise side-effects, this is done: \begin{itemize} - \item if \cs{greekfontencoding} is a ``short macro'' expanding to LGR,% - \footnote{i.e. not in documents using Unicode fonts unless - \cs{greekfontencoding} is explicitly set to \texttt{LGR} before - loading \emph{babel-greek}} - \item if the LaTeX version is older than 2022/06, as \cs{uccode}s are ignored - by the \cs{MakeUppercase} implementation introduced in this version, - \item for accents that are actually required in the selcected language - variant (i.e. only for the \emph{tonos}, if the language variant - is the default ``monotonic''. -\end{itemize} - -With \cs{greekfontencoding} \greekfontencoding, LaTeX version \fmtversion, -and language variant ``\GreekLanguageVariant'' we get for -dialytika\footnote{% - Unless followed by a to-be accented vowel, the quotation mark \texttt{"} - is converted to an upper right apostrophe by LGR.}, -sub-iota, tonos/oxia, varia, psili, and dasia: +\item only if \cs{greekfontencoding} is a ``short macro'' expanding to LGR, + i.e.\ not in documents using Unicode fonts + (unless \cs{greekfontencoding} is explicitly set to \texttt{LGR} + before loading \emph{babel-greek}), +\item only for diacritics that are actually required in the selected language + variant (i.e.\ only for the \emph{tonos} \texttt{'}, + if the language variant is the default \texttt{monotoniko}), +\item not for the characters ``v'' (zero-width space) and ``c'' (final sigma). + Use \verb|\textcompwordmark| instead of \texttt{v} and autosigma + (\texttt{s}) instead of \texttt{c} in text parts that could/should + become upcased, e.g., \lgrfont{a\textcompwordmark us $\mapsto$ + \MakeUppercase{a\textcompwordmark us}} + not \lgrfont{avuc $\mapsto$ \MakeUppercase{avuc}}. -\newcommand{\AccentCharacters}{" | ' ` > <} -\begin{quote} - \selectlanguage{greek} - \AccentCharacters{} $\mapsto$ \MakeUppercase{\AccentCharacters} -\end{quote} +\end{itemize} +Since version 1.13.2, \emph{babel-greek} utilises \cs{DeclareUppercaseMapping} +(a LaTeX kernel command, new in 2023) for the required change. +For LaTeX version older than 2022/06, the \cs{uccode} is set to +the ``empty'' character 0x9f = 159. \emph{Composite command} definitions ensure that combined accents also work for accent characters ``upcased'' to the charcter -No 159 = 0x9f): - -\newcommand{\CombinedAccentSample}{ +No 159 = 0x9f: +\newcommand{\CombinedAccentSample}{% \ifdefined \UnicodeEncodingName - % TODO: combined accents swallow whitespace after base char - % unless protected \"'υ{} \"`υ{} \`"υ{} \'"υ{} \`<α{} \'<α{} \else \"'u \"`u \`"u \'"u \` <} +With font encoding \greekfontencoding, LaTeX version \fmtversion, +and language variant ``\GreekLanguageVariant'', we get for +\texttt{\AccentCharacters} (dialytika\footnote{% + Unless followed by a to-be accented vowel, the quotation mark \texttt{"} + is converted to an upper right apostrophe by LGR.}, +sub-iota, tonos/oxia, varia, psili, and dasia): \begin{quote} \selectlanguage{greek} - \greektext - ~u \~u \accperispomeni{u} $\mapsto$ \MakeUppercase{~u \~u \accperispomeni{u}} + \AccentCharacters{} $\mapsto$ \MakeUppercase{\AccentCharacters} \end{quote} - The changed uc/lccodes have strange effects on Latin text parts in Greek paragraphs if only the encoding is switched: \begin{quote} @@ -790,14 +853,51 @@ in Greek paragraphs if only the encoding is switched: Let's see: \AccentCharacters{} $\mapsto$ \MakeUppercase{Let's see: \AccentCharacters}} \end{quote} -% -To limit the effect on, e.g., section headings (which are printed -capitalised with the ``headings'' style), uccodes for ``v'' -(zero-width space) and ``c'' (final sigma) are not changed. -Use \verb|\textcompwordmark| instead of \texttt{v} and autosigma -(\texttt{s}) instead of \texttt{c} in text parts that could/should -become upcased, e.g., \lgrfont{a\textcompwordmark us $\mapsto$ -\MakeUppercase{a\textcompwordmark us}} -not \lgrfont{avuc $\mapsto$ \MakeUppercase{avuc}}. + +\subsubsection{Iota subscript vs. iota adscript} + +Unicode decomposes letters with \emph{mute iota} +(GREEK CAPITAL LETTER ... WITH [... AND] PROSGEGRAMMENI) +to the base letter and a COMBINING GREEK YPOGEGRAMMENI (U+0345).% +\footnote{They are named ... WITH PROSGEGRAMMENI + for ``historic reasons'' + (cf. \href{https://opoudjis.net/unicode/unicode_adscript.html} + {Nick Nicholas \emph{Titlecase and Adscripts}}).} +Accordingly, the ``canonical'' LICR for all pre-composed letters with +mute iota is the base character LICR followed by \verb|\ypogegrammeni|. + +The appearance in the output and upcasing results depend on the chosen font +and LaTeX version. +Compare letters followed by \verb|\ypogegrammeni| with pre-composed +characters +\begin{quotation} + \selectlanguage{greek} + \newcommand{\alphaypo}{\textalpha\ypogegrammeni α\ypogegrammeni{} ᾳ / + \textAlpha\ypogegrammeni Α\ypogegrammeni{} ᾼ / + \accpsili\textAlpha\ypogegrammeni Ἀ\ypogegrammeni{} ᾈ} + + \phantom{MakeUppercase} \alphaypo + + \ensureascii{MakeUppercase} \MakeUppercase{\alphaypo} + + \ensureascii{MakeLowercase} \MakeLowercase{\alphaypo} +\end{quotation} + +and letters followed by \verb|\prosgegrammeni| +with literal character + literal GREEK YPOGEGRAMMENI: +\begin{quotation} + \selectlanguage{greek} + \newcommand{\alphapros}{\textalpha\prosgegrammeni α\prosgegrammeni{} αι / + \textAlpha\prosgegrammeni Α\prosgegrammeni{} Αι / + \accpsili\textAlpha\prosgegrammeni Ἀ\prosgegrammeni{} Ἀι} + + \phantom{MakeUppercase} \alphapros + + \ensureascii{MakeUppercase} \MakeUppercase{\alphapros} + + \ensureascii{MakeLowercase} \MakeLowercase{\alphapros} +\end{quotation} + +See also the \href{https://www.unicode.org/faq/greek.html#6}{Unicode FAQ}. \end{document} diff --git a/macros/latex/contrib/readablecv/ReadableCV.cls b/macros/latex/contrib/readablecv/ReadableCV.cls index a6fbe38354..8e30cb7a56 100644 --- a/macros/latex/contrib/readablecv/ReadableCV.cls +++ b/macros/latex/contrib/readablecv/ReadableCV.cls @@ -1,5 +1,5 @@ -%% ReadableCV -%% Copyright 2021 Philip Stone +%% ReadableCV 4 +%% Copyright 2023 Philip Stone % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -16,8 +16,8 @@ % This work consists of the files ReadableCV.cls and ReadableCV.tex \NeedsTeXFormat{LaTeX2e} -\def\ClassDate{2021/01/09} -\def\ClassVersion{3.0} +\def\ClassDate{2023/08/19} +\def\ClassVersion{4.0} \ProvidesClass{ReadableCV}[\ClassDate ReadableCV \ClassVersion class written by Philip Stone] \DeclareOption{twocolumn}{\OptionNotUsed} @@ -429,7 +429,7 @@ % \vspace{\baselineskip} } -\newcommand{\addSkills}[9]{ +\newcommand{\addSkills}[8]{ \def\sone{#1} \def\stwo{#2} \def\sthree{#3} @@ -438,9 +438,9 @@ \def\ssix{#6} \def\sseven{#7} \def\seight{#8} - \def\snine{#9} + %\def\snine{#9} - \begin{multicols}{3} + \begin{multicols}{2} \begin{itemize} \ifdefempty{\sone}{}{\item \sone} \ifdefempty{\stwo}{}{\item \stwo} @@ -450,7 +450,7 @@ \ifdefempty{\ssix}{}{\item \ssix} \ifdefempty{\sseven}{}{\item \sseven} \ifdefempty{\seight}{}{\item \seight} - \ifdefempty{\snine}{}{\item \snine} + % \ifdefempty{\snine}{}{\item \snine} \end{itemize} \end{multicols} } @@ -493,6 +493,30 @@ \end{samepage} } +\newcommand{\newQuickRole}[3]{ + % This displays the whole of the role information + % including dates [1], job title [2], + % company name [3] + + \vspace{0.5em} + \begin{samepage} + \iftoggle{jobfirst}{ + % Display job before company + \noindent\begin{tabular}{@{}p{3cm} l} + \textbf{#1} & \textbf{#2}\\ + & \textbf{#3}\\ + \end{tabular} + } + { + % Display company before job + \noindent\begin{tabular}{@{}p{3cm} l} + \textbf{#1} & \textbf{#3}\\ + & \textbf{#2}\\ + \end{tabular} + } + \end{samepage} +} + \newcommand{\roleResponsibilities}[5]{ % Adds up to five responsibilities in an itemized list \vspace{\baselineskip} @@ -527,7 +551,7 @@ \def\afive{#5} \def\asix{#6} -% \begin{samepage} + %\begin{samepage} \vspace{-0.5em} \noindent\sffamily{\textit{Achievements}}\rmfamily \vspace{-1em} @@ -552,13 +576,15 @@ \iftoggle{jobfirst}{ % Display job before company \begin{tabular}{@{}p{3cm} l} - \textbf{#1} & \textbf{#2} (#3)\\ + \textbf{#1} & \textbf{#2}\\ + & #3\\ \end{tabular} } { % Display company before job \begin{tabular}{@{}p{3cm} l} - \textbf{#1} & \textbf{#3} (#2)\\ + \textbf{#1} & \textbf{#3}\\ + & #2\\ \end{tabular} } } @@ -597,4 +623,4 @@ % Finish letter image of signature and your name \newcommand{\closeletter}[1]{% \includegraphics{#1}\\ \bigskip \rcvname -} \ No newline at end of file +} diff --git a/macros/latex/contrib/readablecv/ReadableCV.pdf b/macros/latex/contrib/readablecv/ReadableCV.pdf index 63c79940e7..36c7bdb252 100644 Binary files a/macros/latex/contrib/readablecv/ReadableCV.pdf and b/macros/latex/contrib/readablecv/ReadableCV.pdf differ -- cgit v1.2.3