From 2b515a7d84c09167cb70bedb643c75426d4be4b1 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 11 Jun 2023 03:00:53 +0000 Subject: CTAN sync 202306110300 --- macros/unicodetex/latex/polyglossia/README.md | 2 +- .../unicodetex/latex/polyglossia/polyglossia.dtx | 2419 ++++++++++++++------ .../unicodetex/latex/polyglossia/polyglossia.pdf | Bin 356878 -> 370655 bytes 3 files changed, 1658 insertions(+), 763 deletions(-) (limited to 'macros/unicodetex') diff --git a/macros/unicodetex/latex/polyglossia/README.md b/macros/unicodetex/latex/polyglossia/README.md index 9bad724cf1..a8d5787522 100644 --- a/macros/unicodetex/latex/polyglossia/README.md +++ b/macros/unicodetex/latex/polyglossia/README.md @@ -1,4 +1,4 @@ -# THE POLYGLOSSIA PACKAGE v1.62 +# THE POLYGLOSSIA PACKAGE v1.63 ## Multilingual typesetting with XeLaTeX and LuaLaTeX This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX. diff --git a/macros/unicodetex/latex/polyglossia/polyglossia.dtx b/macros/unicodetex/latex/polyglossia/polyglossia.dtx index eed7ace603..b10936fd84 100644 --- a/macros/unicodetex/latex/polyglossia/polyglossia.dtx +++ b/macros/unicodetex/latex/polyglossia/polyglossia.dtx @@ -8,7 +8,7 @@ \iffalse % %<*README> -# THE POLYGLOSSIA PACKAGE v1.62 +# THE POLYGLOSSIA PACKAGE v1.63 ## Multilingual typesetting with XeLaTeX and LuaLaTeX This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX. @@ -218,6 +218,7 @@ to track the issues and follow progress. \generate{\file{gloss-farsi.ldf}{\from{polyglossia.dtx}{gloss-farsi.ldf}}} \generate{\file{gloss-fi.ldf}{\from{polyglossia.dtx}{gloss-fi.ldf}}} \generate{\file{gloss-finnish.ldf}{\from{polyglossia.dtx}{gloss-finnish.ldf}}} +\generate{\file{gloss-fr-CA-u-sd-canb.ldf}{\from{polyglossia.dtx}{gloss-fr-CA-u-sd-canb.ldf}}} \generate{\file{gloss-fr-CA.ldf}{\from{polyglossia.dtx}{gloss-fr-CA.ldf}}} \generate{\file{gloss-fr-CH.ldf}{\from{polyglossia.dtx}{gloss-fr-CH.ldf}}} \generate{\file{gloss-fr-FR.ldf}{\from{polyglossia.dtx}{gloss-fr-FR.ldf}}} @@ -545,7 +546,7 @@ to track the issues and follow progress. % \hyphenation{Kha-li-ghi Reu-ten-auer new-zea-land} % \GetFileInfo{polyglossia.sty} % -% \title{{\textgreek{\xpgtitlefont\color{lightblue}\MakeUppercase[lang=el]{Πολυγλωσσία}}} +% \title{{\textgreek{\xpgtitlefont\color{lightblue}\MakeUppercase{Πολυγλωσσία}}} % \\[16pt] % \color{xpgblue}Polyglossia: Modern multilingual typesetting with \XeLaTeX\ and \LuaLaTeX} % \author{\TA{François Charette} \and \TA{Arthur Reutenauer}\thanks{Current maintainer} @@ -657,7 +658,7 @@ to track the issues and follow progress. % \TX{belarusian} & \TX{french} & \TX{kurdish} & \TX{punjabi} & turkish \\ % \TX{bengali} & friulian & \TX{lao} & romanian & turkmen \\ % bosnian & \TX{gaelic} & \TX{latin} & romansh & \TX{ukrainian}\\ -% breton & galician & latvian & \TX{russian} & urdu \\ +% breton & galician & latvian & \TX{russian} & \TX{urdu} \\ % bulgarian & \TX{georgian} & lithuanian & \TX{sami} & \TX{uyghur} \\ % \TX{catalan} & \TX{german} & macedonian & \TX{sanskrit} & vietnamese \\ % \TX{chinese} & \TX{greek} & \TX{malay} & \TX{serbian} & \TX{welsh} \\ @@ -713,7 +714,7 @@ to track the issues and follow progress. % \toprule % \textbf{Babel name} & \textbf{Polyglossia name} & \textbf{Polyglossia options}\tabularnewline % \midrule -% acadien & french & variant=acadian \\ +% acadian & french & variant=acadian \\ % american & english & variant=american [\emph{default}] \\ % australian & english & variant=australian \\ % austrian & german & variant=austrian, spelling=old \\ @@ -861,6 +862,7 @@ to track the issues and follow progress. % fi & finnish & \tabularnewline % fr & french & \tabularnewline % fr-CA & french & variant=canadian \tabularnewline +% fr-CA-u-sd-canb & french & variant=acadian \tabularnewline % fr-CH & french & variant=swiss \tabularnewline % fr-FR & french & variant=french [\emph{default}] \tabularnewline % fur & friulian & \tabularnewline @@ -1235,19 +1237,35 @@ to track the issues and follow progress. % \paragraph*{Options:} % \begin{itemize} % \item \xpgchoicekey{calendar}{\xpgpresetvalue{gregorian} or \xpgvalue{islamic} (= \xpgvalue{hijri})} +% \item \xpgoptkey{hijricorrection}{integer}[0] +% If \xpgvalue{calendar=hijri} or \xpgvalue{calendar=islamic} is selected, \cmd{\today} will output the date +% according to the lunar Islamic (Hijra) calendar. This option allows to shift the day of the output with respect +% to the current date. Both positive and negative integer values are allowed (negative decrease the day value). +% This corresponds to the optional argument of the \cmd{\Hijritoday} command which can be used to output Hijri +% dates irrespective of the \xpgvalue{calendar} option (see sec.~\ref{sec:hijrical}). % \item \xpgchoicekey{locale}{\xpgpresetvalue{default}, \xpgvalue{mashriq}, \xpgvalue{libya}, % \xpgvalue{algeria}, \xpgvalue{tunisia}, \xpgvalue{morocco}, \xpgvalue{mauritania}} % This setting influences the spelling of the month names for the Gregorian calendar, % as well as the form of the numerals (unless overridden by the following option). Recommended settings are % \xpgvalue{default} for Egypt, Sudan, Yemen and the Gulf states, and \xpgvalue{mashriq} for Iraq, Syria, % Jordan, Lebanon and Palestine. -% \item \xpgchoicekey{numerals}{\xpgpresetvalue{mashriq} or \xpgvalue{maghrib}} -% The latter is the default when \xpgvalue{locale=algeria}, \xpgvalue{tunisia}, or \xpgvalue{morocco}. +% \item \xpgchoicekey{numerals}{\xpgpresetvalue{mashriq} (=~\xpgvalue{eastern}\new{1.63}) or \xpgvalue{maghrib} +% (=~\xpgvalue{western}\new{1.63})} +% Use Eastern Arabic (a.k.a.\ Indic-Arabic) numerals (\xpgvalue{mashriq} or \xpgvalue{eastern}) or Western numerals +% (\xpgvalue{maghrib} or \xpgvalue{western}). +% The latter is the default when \xpgvalue{locale=algeria}, \xpgvalue{tunisia}, or \xpgvalue{morocco}, the former +% is the default with all other Arabic locales. +% \item \xpgcodekey[1.63]{sectionsep}¦.¦ +% This option allows to customize the separator between chapters, sections, and subsections (a dot by default), +% \eg \xpgoption{sectionsep=-}. +% This might be useful particularly with \xpgoption{numerals=mashriq} or \xpgoption{eastern}, as the dot looks +% too similar to the zero in many fonts. % \item \xpgboolkeyfalse[1.50]{abjadalph} % Set this to true if you want the alphabetic counters to be output using \cmd\abjadalph\ rather than \cmd\abjad. % Note that this limits the counter scope to 28 (see \cmd\abjadalph\ below). % \item \xpgboolkeyfalse[1.0.3]{abjadjimnotail} -% Set this to true if you want the \textit{abjad} form of the number three to be \textarabic{ج‍} – as in the manuscript tradition – instead of the modern usage \textarabic{ج}. +% Set this to true if you want the \textit{abjad} form of the number three to be \textarabic{ج‍} – as in the manuscript +% tradition – instead of the modern usage \textarabic{ج}. % \end{itemize} % \paragraph*{Commands:} % \begin{itemize} @@ -1265,8 +1283,14 @@ to track the issues and follow progress. % \subsection{armenian}\label{armenian} % \paragraph*{Options:} % \begin{itemize} -% \item \xpgchoicekey[1.45]{variant}{\xpgvalue{eastern} or \xpgpresetvalue{western}} +% \item \xpgchoicekey[1.45]{variant}{\xpgvalue{eastern} or \xpgpresetvalue{western}} % \item \xpgchoicekey[1.45]{numerals}{\xpgvalue{armenian} or \xpgpresetvalue{arabic}} +% \item \xpgboolkeyfalse[1.63]{capitalyiwn} +% If this is set to true, \cmd{\MakeUppercase} will upcase the ligature of letters ech and yiwn to capital +% ech and yiwn. This conforms to the output outside Armenian language selection. +% By default (and with this option set to \xpgvalue{false}), \cmd{\MakeUppercase} upcases the ech and yiwn +% ligature to capital ech and \emph{vew}, adhering to Armenian reformed spelling regulations. +% Note that this feature requires \LaTeX\ kernel 2023/06 at least. % \end{itemize} % % \subsection[belarusian]{belarusian\new{1.46}}\label{belarusian} @@ -1453,10 +1477,19 @@ to track the issues and follow progress. % \subsection{dutch}\label{dutch} % \paragraph*{Options:} % \begin{itemize} +% \item \xpgboolkeytrue[1.63]{tremahyphenation} +% Following Dutch orthography, words with tremata (such as \emph{geëxecuteerd}) lose the trema on hyphenation +% before the trematized letter (\emph{ge-executeerd}). This is achieved by \pkg{polyglossia} by making those +% letters active. If you set this option to false, this mechanism is deactivated (and the hyphenation wrong, +% but you can still use the babelshorthands mentioned below). % \item \xpgboolkeyfalse[1.1.1]{babelshorthands} % If this is turned on, the following shorthands defined for fine-tuning hyphenation and % micro-typography of Dutch words are activated: % \begin{shorthands} +% \item[¦"a¦]\new{1.63} an \meta{ä} (a with trema) which is hyphenated as \meta{-a} as required by the Dutch standards. +% Also implemented for the other vowels (e, i, o, u), both lower and uppercase. +% \item[¦"y¦]\new{1.63} the \ij\ ligature. +% \item[¦"Y¦]\new{1.63} the \IJ\ ligature. % \item[¦"-¦] adds a hyphenation point that does still allow for hyphenation at the points preset % in the hyphenation patterns (as opposed to \cmd\- in default \TeX). % \item[\texttt{"\textasciitilde}] for a hyphen sign without a breakpoint. Useful for @@ -1515,7 +1548,7 @@ to track the issues and follow progress. % \subsection{french}\label{french} % \paragraph*{Options:} % \begin{itemize} -% \item \xpgchoicekey{variant}{\xpgpresetvalue{french} or \xpgvalue{canadian} (=~\xpgvalue{acadian})\new{1.45}, \xpgvalue{swiss}\new{1.47}} +% \item \xpgchoicekey{variant}{\xpgpresetvalue{french}, \xpgvalue{canadian}, \xpgvalue{acadian}\new{1.45} or \xpgvalue{swiss}\new{1.47}} % Currently, the only difference between the four variants is that \xpgvalue{swiss} % uses \xpgvalue{thincolonspace=true} by default since this conforms to the Swiss % conventions. @@ -1641,6 +1674,14 @@ to track the issues and follow progress. % \item \xpgchoicekey{spelling}{\xpgpresetvalue{new} (= \xpgvalue{1996}) or \xpgvalue{old} (= \xpgvalue{1901})} % Indicates whether hyphenation patterns for traditional (1901) or reformed % (1996) orthography should be used. The latter is the default. +% \item \xpgboolkeyfalse[1.63]{capitaleszett} +% If this is set to true, \cmd{\MakeUppercase} will upcase the eszett character ⟨ß⟩ to the +% capital counterpart ⟨\charifavailable{1E9E}{SS}⟩ that has been introduced to Unicode in 2008 and +% standardized in German regulations in 2017, rather than ⟨SS⟩. Note that this feature requires +% \LaTeX\ kernel 2023/06 at least and a font that contains the respective glyph. +% \item \xpgchoicekey[1.2.0]{script}{\xpgpresetvalue{latin} or \xpgvalue{blackletter}\new{1.46} (= \xpgvalue{fraktur})} +% Setting ¦script=blackletter¦ adapts the captions for typesetting German in blackletter type, using the `long s' ⟨ſ\kern1.5pt⟩ +% where appropriate. % \item \xpgboolkeyfalse[1.0.3]{babelshorthands} % If this is turned on, all shorthands defined in \pkg{babel} % for fine-tuning hyphenation and micro-typography of German words are activated. @@ -1668,9 +1709,6 @@ to track the issues and follow progress. % \item[¦"<¦] for French-style left double quotes («) % \item[¦">¦] for French-style right double quotes (»). % \end{shorthands} -% \item \xpgchoicekey[1.2.0]{script}{\xpgpresetvalue{latin} or \xpgvalue{blackletter}\new{1.46} (= \xpgvalue{fraktur})} -% Setting ¦script=blackletter¦ adapts the captions for typesetting German in blackletter type (using the long s (ſ) -% where appropriate). % \end{itemize} % % \subsection{greek}\label{greek} @@ -1678,7 +1716,10 @@ to track the issues and follow progress. % \begin{itemize} % \item \xpgchoicekey{variant}{\xpgpresetvalue{monotonic} (= \xpgvalue{mono}), \xpgvalue{polytonic} (= \xpgvalue{poly}), or \xpgvalue{ancient}} % \item \xpgchoicekey{numerals}{\xpgpresetvalue{greek} or \xpgvalue{arabic}} -% \item \xpgboolkeyfalse{attic} +% \item \xpgboolkeyfalse[1.63]{capitaliota} +% If this is set to true, \cmd{\MakeUppercase} will upcase the \emph{ypogegrammeni} (subscript muted iota) to capital iota. +% By default (and with this option set to \xpgvalue{false}), \cmd{\MakeUppercase} retains the subscript versions. +% Note that this feature requires \LaTeX\ kernel 2023/06 at least. % \end{itemize} % \paragraph*{Commands:} % \begin{itemize} @@ -1804,11 +1845,16 @@ to track the issues and follow progress. % \paragraph*{Options:} % \begin{itemize} % \item \xpgchoicekey{variant}{\xpgvalue{kurmanji} or \xpgpresetvalue{sorani}} -% \item \xpgchoicekey{script}{\xpgvalue{Arabic} or \xpgvalue{Latin}} -% Defaults are \xpgvalue{Arabic} for Sorani and \xpgvalue{Latin} for Kurmanji. +% \item \xpgchoicekey{script}{\xpgvalue{arabic} or \xpgvalue{latin}} +% Defaults are \xpgvalue{arabic} for Sorani and \xpgvalue{latin} for Kurmanji. % \item \xpgchoicekey{numerals}{\xpgvalue{western} or \xpgvalue{eastern}} % Defaults are \xpgvalue{western} for Latin and \xpgvalue{eastern} for Arabic script, depending % on the selection above. +% \item \xpgcodekey[1.63]{sectionsep}¦.¦ +% This option allows to customize the separator between chapters, sections, and subsections (a dot by default), +% \eg \xpgoption{sectionsep=-}. +% This might be useful particularly with \xpgoption{numerals=eastern}, as the dot looks too similar to the zero +% in many fonts. % \item \xpgboolkeyfalse{abjadjimnotail} % Set this to true if you want the \textit{abjad} form of the number three to % be \textarabic{ج‍} – as in the manuscript tradition – instead of the @@ -2057,6 +2103,11 @@ to track the issues and follow progress. % \paragraph*{Options:} % \begin{itemize} % \item \xpgchoicekey{numerals}{\xpgvalue{western} or \xpgpresetvalue{eastern}} +% \item \xpgcodekey[1.63]{sectionsep}¦.¦ +% This option allows to customize the separator between chapters, sections, and subsections (a dot by default), +% \eg \xpgoption{sectionsep=-}. +% This might be useful particularly with \xpgoption{numerals=eastern}, as the dot looks too similar to the zero +% in many fonts. % \item \xpgboolkeyfalse[1.0.3]{abjadjimnotail} % Set this to \xpgvalue{true} if you want the \textit{abjad} form of the number three to % be \textarabic{ج‍} – as in the manuscript tradition – instead of the @@ -2230,18 +2281,24 @@ to track the issues and follow progress. % \subsection{sanskrit}\label{sanskrit} % \paragraph*{Options:} % \begin{itemize} -% \item \xpgchoicekey[1.0.2]{script}{\xpgpresetvalue{Devanagari}, \xpgvalue{Gujarati}, -% \xpgvalue{Malayalam}, \xpgvalue{Bengali}, \xpgvalue{Kannada}, \xpgvalue{Telugu}, \xpgvalue{Latin}} +% \item \xpgchoicekey[1.0.2]{script}{\xpgpresetvalue{devanagari}, \xpgvalue{gujarati}, +% \xpgvalue{malayalam}, \xpgvalue{bengali}, \xpgvalue{kannada}, \xpgvalue{telugu}, \xpgvalue{latin}} % The value is passed to \pkg{fontspec} should the respective % \cmd{\⟨script⟩font} not be defined. This can be useful if you typeset Sanskrit % texts in scripts other than Devanagari. -% \item \xpgchoicekey[1.45]{numerals}{\xpgpresetvalue{Devanagari} or \xpgvalue{Western}} +% \item \xpgchoicekey[1.45]{numerals}{\xpgpresetvalue{devanagari} or \xpgvalue{western}} % \end{itemize} % % \subsection{serbian}\label{serbian} % \paragraph*{Options:} % \begin{itemize} -% \item \xpgchoicekey{script}{\xpgpresetvalue{Cyrillic} or \xpgvalue{Latin}} +% \item \xpgchoicekey[1.63]{variant}{\xpgpresetvalue{ekavian} or \xpgvalue{ijekavian}} +% With \xpgvalue{ijekavian}, the different spelling is reflected in some caption strings. +% \item \xpgchoicekey{script}{\xpgpresetvalue{cyrillic} or \xpgvalue{latin}} +% \item \xpgboolkeyfalse[1.63]{datei} +% If this is \xpgvalue{true}, the sixth and seventh month of the year are written in the date +% with the trailing \meta{i} or \meta{и} (\ie \emph{juni}, \emph{juli} or \emph{јуни}, \emph{јули} +% rather than \emph{jun}, \emph{jul} or \emph{јун}, \emph{јул}). % \item \xpgboolkeytrue[1.54]{splithyphens} % According to Serbian typesetting conventions, if a word with a hard hyphen (such as % \emph{калцијум-карбонат}) is hyphenated at this hyphen, a second hyphenation character is to be @@ -2269,6 +2326,14 @@ to track the issues and follow progress. % numbers up to 999\,999.\\ % \Eg ¦\textserbian{\AsbukTrad{page}}¦ produces \textrussian{\AsbukTrad{page}}. % \item \Cmd\asbukTrad: same as \cmd\AsbukTrad\ but in lowercase. +% \item \Cmd{\today*}: as opposed to the unstarred counterpart, this does not end the date with a punctuation. +% \item \Cmd{\todayGen}: outputs the date with months in genitive inflection. This form is suggested when the date +% is integrated into a sentence (as opposed to a standalone date statement). The starred form \Cmd{\todayGen*} +% omits the trailing punctuation. +% \item \Cmd{\todayArabic}: outputs the date with months in Arabic number. The starred form \Cmd{\todayArabic*} omits +% the trailing punctuation. +% \item \Cmd{\todayRoman}: outputs the date with months in Roman number. The starred form \Cmd{\todayRoman*} omits +% the trailing punctuation. % \end{itemize} % % @@ -2370,6 +2435,11 @@ to track the issues and follow progress. % \item \xpgchoicekey[1.0.1]{numerals}{\xpgpresetvalue{western} (\ie 1234567890), \xpgvalue{eastern} % (for which the Oriental Arabic numerals are used: \textarabic{١٢٣٤٥٦٧٨٩٠}), or % \xpgvalue{abjad}} +% \item \xpgcodekey[1.63]{sectionsep}¦.¦ +% This option allows to customize the separator between chapters, sections, and subsections (a dot by default), +% \eg \xpgoption{sectionsep=-}. +% This might be useful particularly with \xpgoption{numerals=eastern}, as the dot looks too similar to the zero +% in many fonts. % \end{itemize} % \paragraph*{Commands:} % \begin{itemize} @@ -2463,6 +2533,27 @@ to track the issues and follow progress. % \cmd\nsk , \cmd\Proj\ print some rare % Ukrainian mathematical symbols. % +% \subsection{urdu}\label{urdu} +% \paragraph*{Options:} +% \begin{itemize} +% \item \xpgchoicekey{calendar}{\xpgpresetvalue{gregorian} or \xpgvalue{hijri}} +% \item \xpgoptkey{hijricorrection}{integer}[0] +% If \xpgvalue{calendar=hijri} is selected, \cmd{\today} will output the date +% according to the lunar Islamic (Hijra) calendar. This option allows to shift the day of the output with respect +% to the current date. Both positive and negative integer values are allowed (negative decrease the day value). +% This corresponds to the optional argument of the \cmd{\Hijritoday} command which can be used to output Hijri +% dates irrespective of the \xpgvalue{calendar} option (see sec.~\ref{sec:hijrical}). +% \item \xpgchoicekey{numerals}{\xpgvalue{western} or \xpgpresetvalue{eastern}} +% \item \xpgcodekey[1.63]{sectionsep}¦.¦ +% This option allows to customize the separator between chapters, sections, and subsections (a dot by default), +% \eg \xpgoption{sectionsep=-}. +% This might be useful particularly with \xpgoption{numerals=eastern}, as the dot looks too similar to the zero +% in many fonts. +% \item \xpgboolkeyfalse{abjadjimnotail} +% Set this to \xpgvalue{true} if you want the \textit{abjad} form of the number three to +% be \textarabic{ج‍} – as in the manuscript tradition – instead of the +% modern usage \textarabic{ج}. +% \end{itemize} % % \subsection{uyghur}\label{uyghur} % \paragraph*{Options:} @@ -2787,7 +2878,7 @@ to track the issues and follow progress. % (depending of the current writing direction this will automatically set either % in Hebrew script or in roman transliteration). % -% \subsection{Islamic calendar (hijrical.sty)} +% \subsection{Islamic calendar (hijrical.sty)}\label{sec:hijrical} % This package computes dates in the lunar Islamic (Hijra) calendar.\footnote{ % % It makes use of the arithmetical algorithm in chapter 6 of % Reingold \& Gershowitz, \textit{Calendrical calculation: the Millenium edition} @@ -2919,6 +3010,58 @@ to track the issues and follow progress. % \section{Revision history} % % \bgroup\footnotesize +% \subsection*{1.63 (2023/06/10)} +% +% \subsubsection*{Bug fixes} +% \begin{itemize} +% \item Language options are now lowercased before they are handled. This fixes errors when +% using the options in \cmd{\MakeUppercase} context (\eg in headings). +% \item Fix casing value for medieval Latin (this concerns ⟨u⟩ and ⟨V⟩ casing). +% \item Remove hacks in some gloss files where \cmd\MakeUppercase\ has been redefined to a no-op +% since the respective scripts do not have uppercasing. As \cmd\MakeUppercase\ is now locale-aware, +% these hacks are no longer needed. This concerns Arabic, Divehi, Hebrew, Hindi, Kurdish, +% Persian, Punjabi, Syriac, and Urdu. +% \item Fix Eastern (Mashriq) Arabic numbering direction with \LuaLaTeX\ for Arabic, Kurdish, Persian, +% Syriac, and Urdu (amends previous fix to \TXI{213}). +% \item French \xpgoption{variant=acadian} refers to the Canadian French subvariety as spoken in the Acadian +% region (as opposed to Quebec French). To differentiate it we now use a dedicated subtag +% which can also be used to access the language (\texttt{fr-CA-u-sd-canb}). +% Note that Quebec French is currently connected with \texttt{fr-CA}, not the more specific +% \texttt{fr-CA-u-sd-caqc}, although the u extension is returned if requested via \cmd\BCPdata. +% In practice, the Canadian subvarieties of French are identical currently, anyway. +% \item Do not blindly de-activate the quote character in languages that provide shorthands if the +% shorthands are not used. This allows to activate the character with other packages such as +% \pkg{csquotes} (\TXI{592}). +% \item Do not flood the \LaTeX\ hooks with redundant French itemlabels and footnote settings (\TXI{593}). +% \item Fix Korean patching of part format with hyperref (\TXP{595}). +% \item Make Hebrew numerals expandable (\TXP{596}). +% \item Avoid superfluous writing of language switches to aux file (\TXI{593}). +% \end{itemize} +% +% \subsubsection*{New features} +% \begin{itemize} +% \item New option \xpgoption{capitalyiwn} for Armenian. +% \item New option \xpgoption{capitaleszett} for German. +% \item New option \xpgoption{capitaliota} for Greek. +% \item New option \xpgoption{datei} for Serbian. +% \item New option \xpgoption{sectionsep} for Arabic, Kurdish, Persian, +% Syriac, and Urdu (\TXI{589}). +% \item Add aliases \xpgvalue{eastern} (=~\xpgvalue{mashriq}) and \xpgvalue{western} (=~\xpgvalue{maghrib}) +% to Arabic \xpgoption{numerals}. +% \item New date commands \cmd{\today*}, \cmd{\todayGen}, \cmd{\todayArabic}, and \cmd{\todayRoman} (all with +% starred counterparts) for Serbian (\TXI{524}). +% \item Implement basic support for \xpgoption{variant=ijekavian} in Serbian. +% \item Dutch now hyphenates properly on letters with tremata. The new option, \xpgoption{tremahyphenation}, +% is provided to opt-out this feature. +% \item Add shorthands ¦"a¦, ¦"e¦, ¦"i¦, ¦"o¦, ¦"u¦, ¦"A¦, ¦"E¦, ¦"I¦, ¦"O¦, ¦"U¦, ¦"y¦, and ¦"Y¦ to Dutch. +% \end{itemize} +% +% \subsubsection*{Interface changes} +% \begin{itemize} +% \item All language options are now lowercase by default (though the mechanism is case-insensitive anyway). +% Changes cover Kurdish, Sanskrit, Serbian. +% \end{itemize} +% % \subsection*{1.62 (2023/04/22)} % % \subsubsection*{Bug fixes} @@ -3862,12 +4005,12 @@ to track the issues and follow progress. % Many thanks to all the people who have contributed bugfixes and new features to \pkg{polyglossia} % since we took over. % In alphabetical order: \TA{Ignas Anikevicius}, \TA{Sina Ahmadi}, \TA{Wouter Bolsterlee}, \TA{Christian Buhtz}, -% \TA{Zgarbul Andrey}, \TA{Oleg Domanov}, user \TA{fakhriaunur}, \TA{Philipp Gesang}, \TA{Kevin Godby}, \TA{Enrico Gregorio}, -% \TA{Khaled Hosny}, \TA{Najib Idrissi}, user \TA{julroy67}, \TA{Dohyun Kim}, \TA{Phil Kime}, \TA{Mike Kroutikov}, -% \TA{Ivan Kokan}, \TA{Caleb Maclennan}, \TA{Gyula Magyarkuti}, \TA{José Mancera}, \TA{Miquel Ortega}, \TA{Yevgen Pogribnyi}, -% \TA{Will Robertson}, \TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy}, \TA{Guy Rutenberg}, \TA{Marcin Serwin}, -% \TA{Arvinder Singh}, \TA{Philipp Stephani}, \TA{Niranjan Tambe}, \TA{Takuji Tanaka}, \TA{Osman Tursun}, \TA{Keno Wehr}, -% \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev}, \TA{Yan Zhou}, and \TA{Stefan Zlatinov}. +% \TA{Zgarbul Andrey}, \TA{Oleg Domanov}, user \TA{fakhriaunur}, \TA{Udi Fogiel}, \TA{Philipp Gesang}, \TA{Kevin Godby}, +% \TA{Enrico Gregorio}, \TA{Khaled Hosny}, \TA{Najib Idrissi}, user \TA{julroy67}, \TA{Dohyun Kim}, \TA{Phil Kime}, +% \TA{Mike Kroutikov}, \TA{Ivan Kokan}, \TA{Caleb Maclennan}, \TA{Gyula Magyarkuti}, \TA{José Mancera}, \TA{Miquel Ortega}, +% \TA{Yevgen Pogribnyi}, \TA{Will Robertson}, \TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy}, \TA{Guy Rutenberg}, +% \TA{Marcin Serwin}, \TA{Arvinder Singh}, \TA{Philipp Stephani}, \TA{Niranjan Tambe}, \TA{Takuji Tanaka}, \TA{Osman Tursun}, +% \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev}, \TA{Yan Zhou}, and \TA{Stefan Zlatinov}. % Their respective contributions can be identified from the contributor statistics on % \href{https://github.com/reutenauer/polyglossia/graphs/contributors}{GitHub}. % @@ -3893,7 +4036,7 @@ to track the issues and follow progress. % \subsection{polyglossia.sty} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{polyglossia}[2023/04/22 v1.62 +\ProvidesPackage{polyglossia}[2023/06/10 v1.63 Modern multilingual typesetting with XeLaTeX and LuaLaTeX] \RequirePackage{etoolbox} \RequirePackage{makecmds} @@ -5877,7 +6020,8 @@ to track the issues and follow progress. % where \text would cause clashes % (e.g., \textit) \newcommand\textlang[3][]{% - \__xpg_textlanguage:een {#1} {#2} {#3} + \xpg@str@lowercase{\xpg@tmp@lang}{#2}% + \__xpg_textlanguage:een {#1} {\xpg@tmp@lang} {#3} }% % Alias to {}, but more suitable @@ -5910,6 +6054,23 @@ to track the issues and follow progress. \__xpg_store_bcp_info:nn {#1}{#2} } +% Expandable lowercasing. We use this to assure keyval +% options are lowercased (also when used in \MakeUppercase +% contexts e.g. in headings) +% Macro adapted from tudscr.sty +\newcommand*\xpg@str@lowercase[2]{% + \protected@edef#1{% + \lowercase{\def\noexpand#1{#2}}% + }#1% +} + +% lowercase options before passing to setkeys +\cs_new:Nn \polyglossia@set@keys:nn +{ + \xpg@str@lowercase{\xpg@tmp@opts}{#2}% + \exp_args:Nne \setkeys{#1}{\xpg@tmp@opts}% +} + % joint code of \foreignlanguage, otherlanguage* % and \text % #1 option @@ -5917,7 +6078,7 @@ to track the issues and follow progress. \newcommand{\xpg@otherlanguage}[2][] {% \polyglossia@error@iflangnotloaded:n{#2} - \exp_args:Nne \setkeys{#2}{#1}% + \polyglossia@set@keys:nn{#2}{#1}% \polyglossia@setforeignlanguage[#1]{#2} % Hook for external packages such as biblatex \polyglossia@language@switched% @@ -6050,13 +6211,13 @@ to track the issues and follow progress. \xpg@hook@setlanguage \let\emp@langname\@undefined} -\newif\ifxpglanginaux\xpglanginauxfalse +\newif\ifxpginauxfile\xpginauxfilefalse \DeclareDocumentCommand \selectlanguage {s O{} m} { \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}} { - \ifxpglanginaux + \ifxpginauxfile \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3} \else \msg_show:nnn { polyglossia } { languagenotloaded } {#3} @@ -6106,7 +6267,7 @@ to track the issues and follow progress. \clist_map_inline:nn { #2 } {% \xpg@parsevariantkeyvalue##1=#3:#1\relax }% - \exp_args:Nne \setkeys{#1}{#2}% + \polyglossia@set@keys:nn{#1}{#2}% } } @@ -6288,20 +6449,34 @@ to track the issues and follow progress. } \newcommand*{\xpg@set@language@only@aux}[2][]{% - % Write to the aux + % Write to the aux (toc files) \if@filesw% - \protected@write\@auxout{}{\protect\xpglanginauxtrue}% \ifx#1\\\\% - \protected@write\@auxout{}{\protect\selectlanguage*{#2}}% \addtocontents{toc}{\protect\selectlanguage*{#2}}% \else - \protected@write\@auxout{}{\protect\selectlanguage*[#1]{#2}}% \addtocontents{toc}{\protect\selectlanguage*[#1]{#2}}% \fi - \protected@write\@auxout{}{\protect\xpglanginauxfalse}% \fi } +\AtBeginDocument{% + % Tell polyglossia that we are in an aux file + \if@filesw% + \addtocontents{toc}{\protect\xpginauxfiletrue}% + \addtocontents{lof}{\protect\xpginauxfiletrue}% + \addtocontents{lot}{\protect\xpginauxfiletrue}% + \fi% +} + +\AtEndDocument{% + % Tell polyglossia that we are no longer in an aux file + \if@filesw% + \addtocontents{toc}{\protect\xpginauxfilefalse}% + \addtocontents{lof}{\protect\xpginauxfilefalse}% + \addtocontents{lot}{\protect\xpginauxfilefalse}% + \fi% +} + % Since captions might float to other language regions, % we need to change the language here (#542) \AddToHook{cmd/caption/before}{% @@ -6508,7 +6683,7 @@ to track the issues and follow progress. % Execute passed command with language and maybe options % and re-set stored language's keys \tl_if_empty:NTF \l_tmpb_tl {\cs_if_exist_use:c{#1}{\l_tmpc_tl}} - {\exp_args:Nne \setkeys{\l_tmpc_tl}{\l_tmpb_tl} + {\polyglossia@set@keys:nn{\l_tmpc_tl}{\l_tmpb_tl} \cs_if_exist_use:c{#1}[\l_tmpb_tl]{\l_tmpc_tl} } } @@ -6551,7 +6726,7 @@ to track the issues and follow progress. \edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}} \bgroup \polyglossia@error@iflangnotloaded:n{\xpg@tmp@lang} - \exp_args:Nne \setkeys{\xpg@tmp@lang}{\xpg@tmp@opts}% + \polyglossia@set@keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}% % Store bcp47.tag@hypenmins \tl_if_blank:nTF {\xpg@tmp@opts}{% \ifcsundef{\csname xpg@tmp@lang\endcsname @g.bcp47.tag}{% @@ -6570,7 +6745,7 @@ to track the issues and follow progress. \newcommand*\use@localhyphenmins[2][]{% \bgroup \polyglossia@error@iflangnotloaded:n{#2} - \exp_args:Nne \setkeys{#2}{#1}% + \polyglossia@set@keys:nn{#2}{#1}% % Use bcp47.tag@hypenmins \tl_if_blank:nTF {#1}{% \ifcsundef{#2@g.bcp47.tag}{% @@ -6696,6 +6871,30 @@ to track the issues and follow progress. \polyglossia@enable@local@marks: } +% Control shorthand (de-)activation +% This checks that the shorthand char is only deactivated +% if we have activated it ourselves and hence keeps +% activation of other packages if no shorthands are used. +\seq_new:N \__xpg_active_shorthands + +\DeclareDocumentCommand \xpg@activate@shorthands { O{"} } +{ + \seq_if_in:NnF \__xpg_active_shorthands { #1 } + { + \bbl@activate{#1} + \seq_gpush:Nn \__xpg_active_shorthands { #1 } + } +} + +\DeclareDocumentCommand \xpg@deactivate@shorthands { O{"} } +{ + \seq_if_in:NnT \__xpg_active_shorthands { #1 } + { + \cs_if_exist:cT{initiate@active@char}{\bbl@deactivate{#1}} + \seq_remove_all:Nn \__xpg_active_shorthands {#1} + } +} + % compatibility \newif\ifsystem@babelshorthands \bool_if:nTF \l_polyglossia_babelshorthands_bool { @@ -7418,7 +7617,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi} % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia-punct') @@ -7485,7 +7684,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct % \begin{macrocode} -- -- polyglossia-korean.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- local glyph_id = node.id"glyph" @@ -8103,7 +8302,7 @@ prepend_to_callback ("hpack_filter", % \begin{macrocode} -- -- polyglossia-latin.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia-punct') @@ -8158,7 +8357,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia') -- just in case... @@ -8526,7 +8725,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters % \begin{macrocode} -- -- polyglossia-sanskrit.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia-punct') @@ -8576,7 +8775,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct % \begin{macrocode} -- -- polyglossia-tibt.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia') -- just in case... @@ -8679,7 +8878,7 @@ polyglossia.desactivate_tibt_eol = desactivate % \begin{macrocode} -- -- polyglossia.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- local module_name = "polyglossia" @@ -8877,11 +9076,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \subsection{babel-hebrewalph.def} % \begin{macrocode} \ProvidesFile{babel-hebrewalph.def} - [2010/03/02 % - Babel definitions for Hebrew numerals^^J - Adapted from hebrew.ldf (2005/03/30 v2.3h)] -\newif\if@gim@apost % whether we print apostrophes (gereshayim) -\newif\if@gim@final % whether we use final or initial letters + [2023/06/01 % + Expandable definitions for Hebrew numerals] + \newcommand*\hebrewnumeral[1]{% \expandafter\@hebrew@numeral\expandafter{\the\numexpr#1}% } @@ -8891,78 +9088,74 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \newcommand*\Hebrewnumeralfinal[1]{% \expandafter\@Hebrew@numeralfinal\expandafter{\the\numexpr#1}% } -\newrobustcmd*{\@hebrew@numeral}[1] % no apostrophe, no final letters - {{\@gim@finalfalse\@gim@apostfalse\@hebrew@@numeral{#1}}} -\newrobustcmd*{\@Hebrew@numeral}[1] % apostrophe, no final letters - {{\@gim@finalfalse\@gim@aposttrue\@hebrew@@numeral{#1}}} -\newrobustcmd*{\@Hebrew@numeralfinal}[1] % apostrophe, final letters - {{\@gim@finaltrue\@gim@aposttrue\@hebrew@@numeral{#1}}} -\newcommand*{\@hebrew@@numeral}[1]{% + +\newcommand*\hebrew@div@trancate[2]{% + \ifnum\numexpr #1 - #2*\numexpr #1/#2\relax<0 + \the\numexpr #1/#2 -1\relax\else\the\numexpr #1/#2\relax\fi +} + +\newcommand*\@hebrew@@numeral[2]{% \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for Hebrew numeral}% \else - \@tempcnta=#1\@tempcntb=#1\relax - \divide\@tempcntb by 1000 - \ifnum\@tempcntb=0\gim@nomil\@tempcnta\relax - \else{\@gim@apostfalse\@gim@finalfalse\@hebrew@numeral\@tempcntb}׳% - \multiply\@tempcntb by 1000\relax - \advance\@tempcnta by -\@tempcntb\relax - \gim@nomil\@tempcnta\relax + \ifnum #1<1000 + \gim@nomil{#1}{#2}% + \else + \hebrewnumeral{\hebrew@div@trancate{#1}{1000}}׳% + \expandafter\gim@nomil\expandafter{\the\numexpr #1 - 1000*\hebrew@div@trancate{#1}{1000}}{#2}% \fi \fi } -\def\hebrew@alph@zero{} -\newcommand*{\gim@nomil}[1]{\@tempcnta=#1\@gim@prevfalse - \@tempcntb=\@tempcnta\divide\@tempcntb by 100\relax % hundreds digit - \ifcase\@tempcntb % print nothing if no hundreds - \or\gim@print{100}{ק}% - \or\gim@print{200}{ר}% - \or\gim@print{300}{ש}% - \or\gim@print{400}{ת}% - \or ת\@gim@prevtrue\gim@print{500}{ק}% - \or ת\@gim@prevtrue\gim@print{600}{ר}% - \or ת\@gim@prevtrue\gim@print{700}{ש}% - \or ת\@gim@prevtrue\gim@print{800}{ת}% - \or ת\@gim@prevtrue ת\gim@print{900}{ק}% - \fi - \@tempcntb=\@tempcnta\divide\@tempcntb by 10\relax % tens digit - \ifcase\@tempcntb % print nothing if no tens - \or % number between 10 and 19 - \ifnum\@tempcnta = 16 \gim@print {9}{ט}% tet-zayin - \else\ifnum\@tempcnta = 15 \gim@print {9}{ט}% tet-vav - \else \gim@print{10}{י}% - \fi % \@tempcnta = 15 - \fi % \@tempcnta = 16 - \or\gim@print{20}{\if@gim@final ך\else כ\fi}% - \or\gim@print{30}{ל}% - \or\gim@print{40}{\if@gim@final ם\else מ\fi}% - \or\gim@print{50}{\if@gim@final ן\else נ\fi}% - \or\gim@print{60}{ס}% - \or\gim@print{70}{ע}% - \or\gim@print{80}{\if@gim@final ף\else פ\fi}% - \or\gim@print{90}{\if@gim@final ץ\else צ\fi}% + +\newcommand*\@hebrew@numeral[1]{\@hebrew@@numeral{#1}{0}} +\newcommand*\@Hebrew@numeral[1]{\@hebrew@@numeral{#1}{1}} +\newcommand*\@Hebrew@numeralfinal[1]{\@hebrew@@numeral{#1}{2}} + +\newcommand*\hebrew@alph@zero{} +\newcommand*\gim@nomil[2]{% + \ifcase\hebrew@div@trancate{#1}{100} % print nothing if no hundreds + \or ק\ifnum #2>0\ifnum #1=100 ׳\fi\fi + \or ר\ifnum #2>0\ifnum #1=200 ׳\fi\fi + \or ש\ifnum #2>0\ifnum #1=300 ׳\fi\fi + \or ת\ifnum #2>0\ifnum #1=400 ׳\fi\fi + \or ת\ifnum #2>0\ifnum #1=500 ״\fi\fi ק% + \or ת\ifnum #2>0\ifnum #1=600 ״\fi\fi ר% + \or ת\ifnum #2>0\ifnum #1=700 ״\fi\fi ש% + \or ת\ifnum #2>0\ifnum #1=800 ״\fi\fi ת% + \or תת\ifnum #2>0\ifnum #1=900 ״\fi\fi ק% \fi - \ifcase\@tempcnta - \hebrew@alph@zero% empty but can be defined if desired - \or\gim@print{1}{א}% - \or\gim@print{2}{ב}% - \or\gim@print{3}{ג}% - \or\gim@print{4}{ד}% - \or\gim@print{5}{ה}% - \or\gim@print{6}{ו}% - \or\gim@print{7}{ז}% - \or\gim@print{8}{ח}% - \or\gim@print{9}{ט}% + \ifnum \the\numexpr #1 - 100*\hebrew@div@trancate{#1}{100} = 16 + \ifnum #2>0 ט״ז\else טז\fi% tet-zayin + \else\ifnum \the\numexpr #1 - 100*\hebrew@div@trancate{#1}{100} = 15 + \ifnum #2>0 ט״ו\else טו\fi% tet-vav + \else + \ifcase\expandafter\hebrew@div@trancate\expandafter{\the\numexpr #1 - 100*\hebrew@div@trancate{#1}{100}}{10} % print nothing if no tens + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 י\else\ifnum #2>0\ifnum #1=10 י׳\else ״י\fi\else י\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 כ\else\ifnum #2>0\ifnum #1>20 ״\fi\fi\if #22ך\else כ\fi\ifnum #2>0\ifnum #1=20 ׳\fi\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 ל\else\ifnum #2>0\ifnum #1=30 ל׳\else ״ל\fi\else ל\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 מ\else\ifnum #2>0\ifnum #1>40 ״\fi\fi\if #22ם\else מ\fi\ifnum #2>0\ifnum #1=40 ׳\fi\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 נ\else\ifnum #2>0\ifnum #1>50 ״\fi\fi\if #22ן\else נ\fi\ifnum #2>0\ifnum #1=50 ׳\fi\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 ס\else\ifnum #2>0\ifnum #1=60 ס׳\else ״ס\fi\else ס\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 ע\else\ifnum #2>0\ifnum #1=70 ע׳\else ״ע\fi\else ע\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 פ\else\ifnum #2>0\ifnum #1>80 ״\fi\fi\if #22ף\else פ\fi\ifnum #2>0\ifnum #1=80 ׳\fi\fi\fi + \or \ifnum \the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10}>0 צ\else\ifnum #2>0\ifnum #1>90 ״\fi\fi\if #22ץ\else צ\fi\ifnum #2>0\ifnum #1=90 ׳\fi\fi\fi \fi + \ifcase\the\numexpr #1 - 10*\hebrew@div@trancate{#1}{10} + \hebrew@alph@zero % empty but can be defined if desired + \or \ifnum #2>0\ifnum #1=1 א׳\else ״א\fi\else א\fi + \or \ifnum #2>0\ifnum #1=2 ב׳\else ״ב\fi\else ב\fi + \or \ifnum #2>0\ifnum #1=3 ג׳\else ״ג\fi\else ג\fi + \or \ifnum #2>0\ifnum #1=4 ד׳\else ״ד\fi\else ד\fi + \or \ifnum #2>0\ifnum #1=5 ה׳\else ״ה\fi\else ה\fi + \or \ifnum #2>0\ifnum #1=6 ו׳\else ״ו\fi\else ו\fi + \or \ifnum #2>0\ifnum #1=7 ז׳\else ״ז\fi\else ז\fi + \or \ifnum #2>0\ifnum #1=8 ח׳\else ״ח\fi\else ח\fi + \or \ifnum #2>0\ifnum #1=9 ט׳\else ״ט\fi\else ט\fi + \fi\fi\fi } -\newif\if@gim@prev % flag if a previous letter has been typeset -\newcommand*{\gim@print}[2]{% #2 is a letter, #1 is its value. - \advance\@tempcnta by -#1\relax% deduct the value from the remainder - \ifnum\@tempcnta=0% if this is the last letter - \if@gim@prev\if@gim@apost ״\fi#2% - \else#2\if@gim@apost ׳\fi\fi% - \else{\@gim@finalfalse#2}\@gim@prevtrue\fi} -\def\Alphfinal#1{\expandafter\@Alphfinal\csname c@#1\endcsname}% -\providecommand*{\@Alphfinal}[1]{\Hebrewnumeralfinal{#1}} + +\newcommand*\Alphfinal[1]{\expandafter\@Alphfinal\csname c@#1\endcsname} +\newcommand*\@Alphfinal[1]{\Hebrewnumeralfinal{#1}} + % \end{macrocode} % \iffalse % @@ -10038,9 +10231,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latex.lde} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % -\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/04/22}{v1.62}{polyglossia: module for default language} +\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/06/10}{v1.63}{polyglossia: module for default language} \PolyglossiaSetup{latex}{ bcp47=en-US, @@ -10088,7 +10281,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-acadien.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-acadien.ldf}[polyglossia: module for Canadian (Acadian) French] @@ -10105,7 +10298,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-aeb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-aeb.ldf}[polyglossia: module for aeb (Arabic)] @@ -10122,7 +10315,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-af.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-af.ldf}[polyglossia: module for af (Afrikaans)] @@ -10139,7 +10332,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-afb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-afb.ldf}[polyglossia: module for afb (Arabic)] @@ -10156,7 +10349,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-afrikaans.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-afrikaans.ldf}[polyglossia: module for Afrikaans] @@ -10192,7 +10385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\afrikaans@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{afrikaans}% \declare@shorthand{afrikaans}{"-}{\nobreak-\bbl@allowhyphens} \declare@shorthand{afrikaans}{"~}{\textormath{\leavevmode\hbox{-}}{-}} @@ -10205,7 +10398,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\noafrikaans@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captionsafrikaans{% @@ -10261,7 +10454,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-albanian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-albanian.ldf}[polyglossia: module for Albanian] @@ -10318,7 +10511,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-am.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-am.ldf}[polyglossia: module for am (Amharic)] @@ -10335,7 +10528,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-american.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-american.ldf}[polyglossia: module for American English] @@ -10352,7 +10545,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-amharic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-amharic.ldf}[polyglossia: module for Amharic] \PolyglossiaSetup{amharic}{ @@ -10572,7 +10765,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-apd.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-apd.ldf}[polyglossia: module for apd (Arabic)] @@ -10589,7 +10782,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-IQ.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-IQ.ldf}[polyglossia: module for ar-IQ (Arabic)] @@ -10608,7 +10801,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-JO.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-JO.ldf}[polyglossia: module for ar-JO (Arabic)] @@ -10627,7 +10820,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-LB.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-LB.ldf}[polyglossia: module for ar-LB (Arabic)] @@ -10646,7 +10839,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-MR.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-MR.ldf}[polyglossia: module for ar-MR (Arabic)] @@ -10665,7 +10858,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-PS.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-PS.ldf}[polyglossia: module for ar-PS (Arabic)] @@ -10684,7 +10877,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-SY.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-SY.ldf}[polyglossia: module for ar-SY (Arabic)] @@ -10703,7 +10896,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-YE.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar-YE.ldf}[polyglossia: module for ar-YE (Arabic)] @@ -10722,7 +10915,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ar.ldf}[polyglossia: module for ar (Arabic)] @@ -10739,7 +10932,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-arabic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-arabic.ldf}[polyglossia: module for Arabic] \RequireBidi @@ -10782,21 +10975,27 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \define@boolkey{arabic}[arabic@]{abjadalph}[true]{} \newif\ifeastern@numerals -\def\tmp@mashriq{mashriq} -\def\tmp@maghrib{maghrib} -\define@key{arabic}{numerals}[mashriq]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@mashriq% - \eastern@numeralstrue% - \else - \ifx\@tmpa\tmp@maghrib\eastern@numeralsfalse\fi% - \fi} +\define@choicekey*+{arabic}{numerals}[\xpg@val\xpg@nr]{mashriq,maghrib,eastern,western}[mashriq]{% + \ifcase\xpg@nr\relax + % mashriq: + \eastern@numeralstrue% + \or + % maghrib: + \eastern@numeralsfalse + \or + % eastern: + \eastern@numeralstrue% + \or + % western: + \eastern@numeralsfalse + \fi + \xpg@info{Option: Arabic, numerals=\xpg@val}% +}{\xpg@warning{Unknown Arabic numerals option `#1'}} %this is needed for \abjad in arabicnumbers.sty -\def\tmp@true{true} -\define@key{arabic}{abjadjimnotail}[true]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@true\abjad@jim@notailtrue% +\define@boolkey{arabic}[arabic@]{abjadjimnotail}[true]{% + \ifarabic@abjadjimnotail + \abjad@jim@notailtrue% \else \abjad@jim@notailfalse \fi} @@ -10842,19 +11041,30 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{\xpg@warning{Unknown Arabic locale `#1'}} \newif\if@hijrical -\def\tmp@hijri{hijri} -\def\tmp@islamic{islamic} -\define@key{arabic}{calendar}[gregorian]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@hijri\@hijricaltrue% - \else - \ifx\@tmpa\tmp@islamic\@hijricaltrue% - \else\@hijricalfalse% - \fi - \fi} +\define@choicekey*+{arabic}{calendar}[\xpg@val\xpg@nr]{gregorian,hijri,islamic}[gregorian]{% + \ifcase\xpg@nr\relax + % gregorian: + \@hijricalfalse + \or + % hijri: + \@hijricaltrue + \or + % islamic: + \@hijricaltrue + \fi + \xpg@info{Option: Arabic, calendar=\xpg@val}% +}{\xpg@warning{Unknown Arabic calendar option `#1'}} + \define@key{arabic}{hijricorrection}[0]{% - \gdef\@hijri@correction{#1}}% + \gdef\arabic@hijri@correction{#1}}% + +\newif\ifarabic@customsep\arabic@customsepfalse +\def\xpg@sepmark{} +\define@key{arabic}{sectionsep}[.]{% + \arabic@customseptrue% + \gdef\xpg@sepmark{#1}% +} % Register default options \xpg@initialize@gloss@options{arabic}{locale=default,calendar=gregorian,numerals=mashriq,hijricorrection=0,abjadjimnotail=false} @@ -10914,7 +11124,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\datearabic{% \def\today{% \if@hijrical% - \Hijritoday[\@hijri@correction]% + \Hijritoday[\arabic@hijri@correction]% \else% \if@RTL% \arabicnumber\day\space\@@arabic@month{\month}% @@ -10933,7 +11143,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\arabicnumber#1{% \ifeastern@numerals - \@ensure@dir{\arabicdigits{\number#1}}% + \@ensure@LTR{\arabicdigits{\number#1}}% \else \number#1% \fi} @@ -11015,17 +11225,92 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\@arabic\xpg@save@arabic% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase +\def\arabic@xetex@capsformat{% + \let\xpg@save@sepmark\@SepMark% + \SepMark{\xpg@sepmark} +} -\def\blockextras@arabic{% - \def\MakeUppercase##1{##1}% - % TODO disable \@Roman and \@roman ? +\def\noarabic@xetex@capsformat{% + \ifcsdef{xpg@save@sepmark}{% + \SepMark{\xpg@save@sepmark} + }{}% } +\def\arabic@luatex@capsformat{% + % + % change chapter and part headings + \ifarabic@customsep + \ifcsdef{chapter}{% + \let\xpg@save@thesection\thesection% + \renewcommand*\thesection{\thechapter\xpg@sepmark\@arabic\c@section} + \let\xpg@save@theequation\theequation% + \renewcommand*\theequation{% + \ifnum \c@chapter>\z@ \thechapter\xpg@sepmark\fi\@arabic\c@equation} + \let\xpg@save@thefigure\thefigure% + \renewcommand*\thefigure{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@figure} + \let\xpg@save@thetable\thetable% + \renewcommand*\thetable{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@table} + }{} + \let\xpg@save@thesubsection\thesubsection% + \renewcommand\thesubsection + {\thesection\xpg@sepmark\@arabic\c@subsection} + \let\xpg@save@thesubsubsection\thesubsubsection% + \renewcommand\thesubsubsection{\thesubsection\xpg@sepmark\@arabic\c@subsubsection} + \let\xpg@save@theparagraph\theparagraph% + \renewcommand\theparagraph + {\thesubsubsection\xpg@sepmark\@arabic\c@paragraph} + \let\xpg@save@thesubparagraph\thesubparagraph% + \renewcommand\thesubparagraph{\theparagraph\xpg@sepmark\@arabic\c@subparagraph} + \fi% (end \ifarabic@customsep) +} + +\def\noarabic@luatex@capsformat{% + \ifcsdef{xpg@save@thesection}{% + \let\thesection\xpg@save@thesection% + }{}% + \ifcsdef{xpg@save@theequation}{% + \let\theequation\xpg@save@theequation% + }{}% + \ifcsdef{xpg@save@thefigure}{% + \let\thefigure\xpg@save@thefigure% + }{}% + \ifcsdef{xpg@save@thetable}{% + \let\thetable\xpg@save@thetable% + }{}% + \ifcsdef{xpg@save@thesubsection}{% + \let\thesubsection\xpg@save@thesubsection% + \ifcsdef{xpg@save@thesubsubsection}{% + \let\thesubsubsection\xpg@save@thesubsubsection% + }{}% + }{}% + \ifcsdef{xpg@save@theparagraph}{% + \let\theparagraph\xpg@save@theparagraph% + }{}% + \ifcsdef{xpg@save@thesubparagraph}{% + \let\thesubparagraph\xpg@save@thesubparagraph% + }{}% +} + +\def\blockextras@arabic{% + \ifarabic@customsep + \ifxetex + \arabic@xetex@capsformat + \else + \arabic@luatex@capsformat + \fi + \fi +} +% \def\noextras@arabic{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase + \ifarabic@customsep + \ifxetex + \noarabic@xetex@capsformat + \else + \noarabic@luatex@capsformat + \fi + \fi } % \end{macrocode} @@ -11037,7 +11322,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-armenian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-armenian.ldf}[polyglossia: module for Armenian] @@ -11083,6 +11368,18 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }% } +\define@boolkey{armenian}[armenian@]{capitalyiwn}[true]{% + \ifarmenian@capitalyiwn + % MakeUppercase capitalizes the ligature of letters ech and yiwn (U+0587) + % to capital ech and yiwn (also the output if Armenian is not selected at all) + \SetLanguageKeys{armenian}{bcp47-casing=hy-x-yiwn,bcp47-extension-x=yiwn} + \else + % Capitalize ech and yiwn ligature to capital ech and vew, + % following Armenian spelling reform + \SetLanguageKeys{armenian}{bcp47-casing=hy,bcp47-extension-x={}} + \fi +} + % Register default options \xpg@initialize@gloss@options{armenian}{numerals=armenian,variant=western} @@ -11233,7 +11530,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-arq.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-arq.ldf}[polyglossia: module for arq (Arabic)] @@ -11250,7 +11547,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ary.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ary.ldf}[polyglossia: module for ary (Arabic)] @@ -11267,7 +11564,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-arz.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-arz.ldf}[polyglossia: module for arz (Arabic)] @@ -11284,7 +11581,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ast.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ast.ldf}[polyglossia: module for ast (Asturian)] @@ -11301,7 +11598,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-asturian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % Translated by Xuacu % Contributed by Kevin Godby @@ -11361,7 +11658,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-australian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-australian.ldf}[polyglossia: module for Australian English] @@ -11378,7 +11675,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-austrian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-austrian.ldf}[polyglossia: module for Austrian German (old spelling)] @@ -11395,7 +11692,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ayl.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ayl.ldf}[polyglossia: module for ayl (Arabic)] @@ -11412,7 +11709,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bahasa.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bahasa.ldf}[polyglossia: module for Bahasa Indonesia] @@ -11429,7 +11726,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bahasai.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bahasai.ldf}[polyglossia: module for Bahasa Indonesia] @@ -11447,7 +11744,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bahasam.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bahasam.ldf}[polyglossia: module for Bahasa Melayu] @@ -11465,7 +11762,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-basque.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-basque.ldf}[polyglossia: module for Basque] \PolyglossiaSetup{basque}{ @@ -11523,7 +11820,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-be-tarask.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-be-tarask.ldf}[polyglossia: module for be-tarask (Belarusian)] @@ -11540,7 +11837,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-be.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-be.ldf}[polyglossia: module for be (Belarusian)] @@ -11557,7 +11854,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-belarusian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-belarusian.ldf}[polyglossia: module for Belarusian] @@ -11644,7 +11941,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\belarusian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{belarusian}% \declare@shorthand{belarusian}{"`}{„}% \declare@shorthand{belarusian}{"'}{“}% @@ -11683,7 +11980,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nobelarusian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } % Taken from babel-belarusian @@ -11885,7 +12182,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bengali.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % Translations provided by সাজেদুর রহিম জোয়ারদার % TODO implement Bengali calendar @@ -12026,7 +12323,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bg.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bg.ldf}[polyglossia: module for bg (Bulgarian)] @@ -12043,7 +12340,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bn.ldf}[polyglossia: module for bn (Bengali)] @@ -12060,7 +12357,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bo.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bo.ldf}[polyglossia: module for bo (Tibetan)] @@ -12077,7 +12374,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bosnian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bosnian.ldf}[polyglossia: module for Bosnian] @@ -12141,7 +12438,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-br.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-br.ldf}[polyglossia: module for br (Breton)] @@ -12158,7 +12455,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-brazil.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-brazil.ldf}[polyglossia: module for Brazilian Portuguese] @@ -12177,7 +12474,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-breton.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-breton.ldf}[polyglossia: module for Breton] \PolyglossiaSetup{breton}{ @@ -12285,7 +12582,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-british.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-british.ldf}[polyglossia: module for British English] @@ -12302,7 +12599,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bs.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bs.ldf}[polyglossia: module for bs (Bosnian)] @@ -12319,7 +12616,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bulgarian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-bulgarian.ldf}[polyglossia: module for Bulgarian] \PolyglossiaSetup{bulgarian}{ @@ -12421,7 +12718,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ca.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ca.ldf}[polyglossia: module for ca (Catalan)] @@ -12438,7 +12735,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-canadian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-canadian.ldf}[polyglossia: module for Canadian English] @@ -12455,7 +12752,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-canadien.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-canadien.ldf}[polyglossia: module for Canadian French] @@ -12472,7 +12769,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-catalan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-catalan.ldf}[polyglossia: module for Catalan] \PolyglossiaSetup{catalan}{ @@ -12580,14 +12877,14 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\bbl@L#1#2{\Lgem} \def\catalan@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{catalan}% \declare@shorthand{catalan}{"l}{\lgem{}} \declare@shorthand{catalan}{"L}{\Lgem{}} } \def\nocatalan@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captionscatalan{% @@ -12641,7 +12938,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-chinese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-chinese.ldf}[polyglossia: module for Chinese] @@ -12931,7 +13228,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ckb-Arab.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ckb-Arab.ldf}[polyglossia: module for ckb-Arab (Kurdish)] @@ -12948,7 +13245,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ckb-Latn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ckb-Latn.ldf}[polyglossia: module for ckb-Latn (Kurdish)] @@ -12965,7 +13262,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ckb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ckb.ldf}[polyglossia: module for ckb (Kurdish)] @@ -12982,7 +13279,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-cop.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-cop.ldf}[polyglossia: module for cop (Coptic)] @@ -12999,7 +13296,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-coptic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-coptic.ldf}[polyglossia: module for Coptic] \PolyglossiaSetup{coptic}{ @@ -13055,7 +13352,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-croatian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-croatian.ldf}[polyglossia: module for Croatian] \PolyglossiaSetup{croatian}{ @@ -13134,7 +13431,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\croatian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{croatian}% \declare@shorthand{croatian}{"=}{\penalty\@M-\hskip\z@skip}% \declare@shorthand{croatian}{""}{\hskip\z@skip}% @@ -13159,7 +13456,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nocroatian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \ifxetex @@ -13330,7 +13627,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-cy.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-cy.ldf}[polyglossia: module for cy (Welsh)] @@ -13347,7 +13644,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-cz.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-cz.ldf}[polyglossia: module for cz (Czech)] @@ -13364,7 +13661,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-czech.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-czech.ldf}[polyglossia: module for Czech] @@ -13430,7 +13727,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\czech@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{czech}% \declare@shorthand{czech}{"=}{\czech@splithyphen}% \declare@shorthand{czech}{"`}{„}% @@ -13440,7 +13737,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\noczech@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \ifxetex @@ -13623,7 +13920,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-da.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-da.ldf}[polyglossia: module for da (Danish)] @@ -13640,7 +13937,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-danish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-danish.ldf}[polyglossia: module for Danish] \PolyglossiaSetup{danish}{ @@ -13697,7 +13994,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-AT-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-AT-1901.ldf}[polyglossia: module for de-AT-1901 (Austrian German, old spelling)] @@ -13714,7 +14011,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-AT-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-AT-1996.ldf}[polyglossia: module for de-AT-1996 (Austrian German)] @@ -13731,7 +14028,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-AT.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-AT.ldf}[polyglossia: module for de-AT (Austrian German)] @@ -13748,7 +14045,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-CH-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-CH-1901.ldf}[polyglossia: module for de-CH-1901 (Swiss German, old spelling)] @@ -13765,7 +14062,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-CH-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-CH-1996.ldf}[polyglossia: module for de-CH-1996 (Swiss German)] @@ -13782,7 +14079,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-CH.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-CH.ldf}[polyglossia: module for de-CH (Swiss German)] @@ -13799,7 +14096,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-DE-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-DE-1901.ldf}[polyglossia: module for de-DE-1901 (Germany's German, old spelling)] @@ -13816,7 +14113,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-DE-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-DE-1996.ldf}[polyglossia: module for de-DE-1996 (Germany's German)] @@ -13833,7 +14130,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-DE.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-DE.ldf}[polyglossia: module for de-DE (Germany's German)] @@ -13850,7 +14147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-AT-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-AT-1901-Latf.ldf}[polyglossia: module for de-AT-1901-Latf (Austrian German, old spelling)] @@ -13867,7 +14164,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-AT-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-AT-1996-Latf.ldf}[polyglossia: module for de-AT-1996-Latf (Austrian German)] @@ -13884,7 +14181,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-AT.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-AT-Latf.ldf}[polyglossia: module for de-AT-Latf (Austrian German)] @@ -13901,7 +14198,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-CH-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-CH-1901-Latf.ldf}[polyglossia: module for de-CH-1901-Latf (Swiss German, old spelling)] @@ -13918,7 +14215,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-CH-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-CH-1996-Latf.ldf}[polyglossia: module for de-CH-1996-Latf (Swiss German)] @@ -13935,7 +14232,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-CH.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-CH-Latf.ldf}[polyglossia: module for de-CH-Latf (Swiss German)] @@ -13952,7 +14249,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-DE-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-DE-1901-Latf.ldf}[polyglossia: module for de-DE-1901-Latf (Germany's German, old spelling)] @@ -13969,7 +14266,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-DE-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-DE-1996-Latf.ldf}[polyglossia: module for de-DE-1996-Latf (Germany's German)] @@ -13986,7 +14283,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-DE.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-DE-Latf.ldf}[polyglossia: module for de-DE-Latf (Germany's German)] @@ -14003,7 +14300,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de-Latf.ldf}[polyglossia: module for de-Latf (German)] @@ -14020,7 +14317,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-de.ldf}[polyglossia: module for de (German)] @@ -14037,7 +14334,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-divehi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-divehi.ldf}[polyglossia: module for Divehi] @@ -14083,18 +14380,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % } %\def\datedivehi{\def\today{<++>}} -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase - -\def\blockextras@divehi{% - \def\MakeUppercase##1{##1}% -} - -\def\noextras@divehi{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase% -} - % \end{macrocode} % \iffalse % @@ -14104,7 +14389,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-dsb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-dsb.ldf}[polyglossia: module for dsb (Sorbian)] @@ -14121,7 +14406,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-dutch.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-dutch.ldf}[polyglossia: module for Dutch] \PolyglossiaSetup{dutch}{ @@ -14140,8 +14425,10 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \define@boolkey{dutch}[dutch@]{babelshorthands}[true]{} +\define@boolkey{dutch}[dutch@]{tremahyphenation}[true]{} + % Register default options -\xpg@initialize@gloss@options{dutch}{babelshorthands=false} +\xpg@initialize@gloss@options{dutch}{babelshorthands=false,tremahyphenation=true} \ifsystem@babelshorthands \setkeys{dutch}{babelshorthands=true} @@ -14155,9 +14442,33 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \shorthandoff{"}% }{} +\def\xpg@trema#1{\allowhyphens\discretionary{-}{#1}{\"{#1}}\allowhyphens} + +\def\xpg@itrema{% + \textormath{\allowhyphens\discretionary{-}{i}{\"{\i}}\allowhyphens}% + {\ddot \imath}% +} + +\def\xpg@imtrema{% + \textormath{\allowhyphens\discretionary{-}{I}{\"{I}}\allowhyphens}% + {\ddot I}% +} + \def\dutch@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{dutch}% + \declare@shorthand{dutch}{"a}{\textormath{\xpg@trema{a}}{\ddot a}}% + \declare@shorthand{dutch}{"e}{\textormath{\xpg@trema{e}}{\ddot e}}% + \declare@shorthand{dutch}{"i}{\xpg@itrema}% + \declare@shorthand{dutch}{"o}{\textormath{\xpg@trema{o}}{\ddot o}}% + \declare@shorthand{dutch}{"u}{\textormath{\xpg@trema{u}}{\ddot u}}% + \declare@shorthand{dutch}{"A}{\textormath{\xpg@trema{A}}{\ddot A}}% + \declare@shorthand{dutch}{"E}{\textormath{\xpg@trema{E}}{\ddot E}}% + \declare@shorthand{dutch}{"I}{\xpg@imtrema}% + \declare@shorthand{dutch}{"O}{\textormath{\xpg@trema{O}}{\ddot O}}% + \declare@shorthand{dutch}{"U}{\textormath{\xpg@trema{U}}{\ddot U}}% + \declare@shorthand{dutch}{"y}{\textormath{\ij{}}{\ddot y}}% + \declare@shorthand{dutch}{"Y}{\textormath{\IJ{}}{\ddot Y}}% \declare@shorthand{dutch}{"-}{\nobreak-\bbl@allowhyphens}% \declare@shorthand{dutch}{"~}{\textormath{\leavevmode\hbox{-}}{-}}% \declare@shorthand{dutch}{"|}{% @@ -14169,10 +14480,86 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nodutch@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% \def\-{\discretionary{-}{}{}}% << original def in latex.ltx } +% +% Support proper hyphenation of tremata: after hyphenation, +% the trema is omitted, e.g. geëxecuteerd > ge-executeerd +% We support this by making the respective letters active. +% +% Save catcodes of trema characters for later restorage +\chardef\xpg@saved@auml@catcode\catcode`ä +\chardef\xpg@saved@euml@catcode\catcode`ë +\chardef\xpg@saved@iuml@catcode\catcode`ï +\chardef\xpg@saved@ouml@catcode\catcode`ö +\chardef\xpg@saved@uuml@catcode\catcode`ü +\chardef\xpg@saved@Auml@catcode\catcode`Ä +\chardef\xpg@saved@Euml@catcode\catcode`Ë +\chardef\xpg@saved@Iuml@catcode\catcode`Ï +\chardef\xpg@saved@Ouml@catcode\catcode`Ö +\chardef\xpg@saved@Uuml@catcode\catcode`Ü + +% activate trema characters +\def\dutch@@tremahyph{% + \catcode`ä = \active + \catcode`ë = \active + \catcode`ï = \active + \catcode`ö = \active + \catcode`ü = \active + \catcode`Ä = \active + \catcode`Ë = \active + \catcode`Ï = \active + \catcode`Ö = \active + \catcode`Ü = \active +} + +% restore previous catcode of trema characters +\def\nodutch@@tremahyph{% + \catcode`ä = \xpg@saved@auml@catcode + \catcode`ë = \xpg@saved@euml@catcode + \catcode`ï = \xpg@saved@iuml@catcode + \catcode`ö = \xpg@saved@ouml@catcode + \catcode`ü = \xpg@saved@uuml@catcode + \catcode`Ä = \xpg@saved@Auml@catcode + \catcode`Ë = \xpg@saved@Euml@catcode + \catcode`Ï = \xpg@saved@Iuml@catcode + \catcode`Ö = \xpg@saved@Ouml@catcode + \catcode`Ü = \xpg@saved@Uuml@catcode +} + +\bgroup +\dutch@@tremahyph +\gdef\dutch@tremahyph{% + \dutch@@tremahyph% + \def ä{\textormath{\xpg@trema{a}}{\ddot a}}% + \def ë{\textormath{\xpg@trema{e}}{\ddot e}}% + \def ï{\textormath{\xpg@trema{i}}{\ddot i}}% + \def ö{\textormath{\xpg@trema{o}}{\ddot o}}% + \def ü{\textormath{\xpg@trema{u}}{\ddot u}}% + \def Ä{\textormath{\xpg@trema{A}}{\ddot A}}% + \def Ë{\textormath{\xpg@trema{E}}{\ddot E}}% + \def Ï{\textormath{\xpg@trema{I}}{\ddot I}}% + \def Ö{\textormath{\xpg@trema{O}}{\ddot O}}% + \def Ü{\textormath{\xpg@trema{U}}{\ddot U}}% +} + +\gdef\nodutch@tremahyph{% + \let ä\relax% + \let ë\relax% + \let ï\relax% + \let ö\relax% + \let ü\relax% + \let Ä\relax% + \let Ë\relax% + \let Ï\relax% + \let Ö\relax% + \let Ü\relax% + \nodutch@@tremahyph% +} +\egroup + \def\captionsdutch{% \def\prefacename{Voorwoord}% \def\refname{Referenties}% @@ -14207,14 +14594,17 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\noextras@dutch{% \ifdutch@babelshorthands\nodutch@shorthands\fi% + \ifdutch@tremahyphenation\nodutch@tremahyph\fi% } \def\blockextras@dutch{% \ifdutch@babelshorthands\dutch@shorthands\else\nodutch@shorthands\fi% + \ifdutch@tremahyphenation\dutch@tremahyph\else\nodutch@tremahyph\fi% } \def\inlineextras@dutch{% \ifdutch@babelshorthands\dutch@shorthands\else\nodutch@shorthands\fi% + \ifdutch@tremahyphenation\dutch@tremahyph\else\nodutch@tremahyph\fi% } % \end{macrocode} @@ -14226,7 +14616,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-dv.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-dv.ldf}[polyglossia: module for dv (Divehi)] @@ -14243,7 +14633,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-el-monoton.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-el-monoton.ldf}[polyglossia: module for el-monoton (Greek)] @@ -14260,7 +14650,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-el-polyton.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-el-polyton.ldf}[polyglossia: module for el-polyton (Greek)] @@ -14277,7 +14667,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-el.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-el.ldf}[polyglossia: module for el (Greek)] @@ -14294,7 +14684,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-AU.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-en-AU.ldf}[polyglossia: module for en-AU (Australian English)] @@ -14311,7 +14701,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-CA.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-en-CA.ldf}[polyglossia: module for en-CA (Canadan English)] @@ -14328,7 +14718,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-GB.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-en-GB.ldf}[polyglossia: module for en-GB (British English)] @@ -14345,7 +14735,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-NZ.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-en-NZ.ldf}[polyglossia: module for en-NZ (Newzealand English)] @@ -14362,7 +14752,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-US.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-en-US.ldf}[polyglossia: module for en-US (American English)] @@ -14379,7 +14769,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-en.ldf}[polyglossia: module for en (English)] @@ -14396,7 +14786,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-english.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-english.ldf}[polyglossia: module for English] @@ -14607,7 +14997,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-eo.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-eo.ldf}[polyglossia: module for eo (Esperanto)] @@ -14624,7 +15014,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-es-ES.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-es-ES.ldf}[polyglossia: module for es-ES (Spain's Spanish)] @@ -14641,7 +15031,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-es-MX.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-es-MX.ldf}[polyglossia: module for es-MX (Mexican Spanish)] @@ -14658,7 +15048,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-es.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-es.ldf}[polyglossia: module for es (Spanish)] @@ -14675,7 +15065,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-esperanto.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-esperanto.ldf}[polyglossia: module for Esperanto] \PolyglossiaSetup{esperanto}{ @@ -14755,7 +15145,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-estonian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-estonian.ldf}[polyglossia: module for Estonian] \PolyglossiaSetup{estonian}{ @@ -14812,7 +15202,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-et.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-et.ldf}[polyglossia: module for et (Estonian)] @@ -14829,7 +15219,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-eu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-eu.ldf}[polyglossia: module for eu (Basque)] @@ -14846,7 +15236,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fa.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fa.ldf}[polyglossia: module for fa (Persian)] @@ -14863,7 +15253,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-farsi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-farsi.ldf}[polyglossia: module for Farsi] @@ -14881,7 +15271,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fi.ldf}[polyglossia: module for fi (Finnish)] @@ -14898,7 +15288,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-finnish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-finnish.ldf}[polyglossia: module for Finnish] \PolyglossiaSetup{finnish}{ @@ -14936,7 +15326,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\finnish@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{finnish}% \declare@shorthand{finnish}{"-}{\nobreak-\bbl@allowhyphens} \declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}% @@ -14948,7 +15338,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nofinnish@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captionsfinnish{% @@ -15012,13 +15402,30 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \end{macrocode} % \iffalse % +%<*gloss-fr-CA-u-sd-canb.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-fr-CA-u-sd-canb.ldf} +% \begin{macrocode} +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) +% +\ProvidesFile{gloss-fr-CA-u-sd-canb.ldf}[polyglossia: module for fr-CA-u-sd-canb (Canadian French, Acadian subvariety)] + +% We provide this as a bcp47-compliant alias + +\xpg@load@master@language{french} + +% \end{macrocode} +% \iffalse +% %<*gloss-fr-CA.ldf> % \fi % \clearpage % % \subsection{gloss-fr-CA.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fr-CA.ldf}[polyglossia: module for fr-CA (Canadian French)] @@ -15035,7 +15442,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr-CH.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fr-CH.ldf}[polyglossia: module for fr-CH (Swiss French)] @@ -15052,7 +15459,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr-FR.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fr-FR.ldf}[polyglossia: module for fr-FR (France's French)] @@ -15069,7 +15476,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fr.ldf}[polyglossia: module for fr (French)] @@ -15086,7 +15493,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-french.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-french.ldf}[polyglossia: module for French] @@ -15107,11 +15514,12 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % BCP-47 compliant aliases \setlanguagealias*{french}{fr} \setlanguagealias*[variant=french]{french}{fr-FR} +\setlanguagealias*[variant=acadian]{french}{fr-CA-u-sd-canb} \setlanguagealias*[variant=canadian]{french}{fr-CA} \setlanguagealias*[variant=swiss]{french}{fr-CH} % Babel aliases -\setlanguagealias[variant=acadian]{french}{acadien} +\setlanguagealias[variant=acadian]{french}{acadian} \setlanguagealias[variant=canadian]{french}{canadien} \def\french@variant{french} @@ -15124,7 +15532,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \or % canadian: \def\french@variant{canadien}% - \SetLanguageKeys{french}{babelname=canadien,bcp47=fr-CA,bcp47-language=fr,bcp47-region=CA}% + \SetLanguageKeys{french}{babelname=canadien,bcp47=fr-CA,bcp47-language=fr,bcp47-region=CA,bcp47-extension-u=sd-caqc}% \xpg@ifdefined{canadien}{}% {\xpg@warning{No hyphenation patterns were loaded for "French (Canada)"\MessageBreak I will use the standard patterns for French instead}% @@ -15133,9 +15541,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \or % acadian: \def\french@variant{acadian}% - \SetLanguageKeys{french}{babelname=canadien,bcp47=fr-CA,bcp47-language=fr,bcp47-region=CA}% + \SetLanguageKeys{french}{babelname=acadian,bcp47=fr-CA-u-sd-canb,bcp47-language=fr,bcp47-region=CA,bcp47-extension-u=sd-canb}% \xpg@ifdefined{acadian}{}% - {\xpg@warning{No hyphenation patterns were loaded for "French (Canada)"\MessageBreak + {\xpg@warning{No hyphenation patterns were loaded for "French (Canada, Acadian)"\MessageBreak I will use the standard patterns for French instead}% \adddialect\l@acadian\l@french\relax}% \french@thincolonspacefalse @@ -15175,24 +15583,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\xpg@orig@makefntext\@makefntext } -\define@boolkey{french}[french@]{frenchfootnote}[true]{% - \AfterPreamble{% - \iffrench@frenchfootnote - \ifdefstring{\xpg@main@language}{french}{% - \ifx\@makefntext\undefined\else - \long\def\french@makefntext##1{% - \parindent1em \noindent\quad% - \ifx\@thefnmark\empty\else% - \@thefnmark.\space\fi ##1% - } - \let\@makefntext\french@makefntext - \fi - }{\xpg@warning{Option 'frenchfootnote' only supported if French is main language!}}% - \else - \let\@makefntext\xpg@orig@makefntext - \fi - }% -} +\define@boolkey{french}[french@]{frenchfootnote}[true]{} \define@boolkey{french}[french@]{autospacing}[true]{} \french@autospacingtrue @@ -15263,20 +15654,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\french@itemiv{#1} } -\define@boolkey{french}[french@]{frenchitemlabels}[true]{% - \AfterPreamble{% - \iffrench@frenchitemlabels - \ifdefstring{\xpg@main@language}{french}{% - \renewcommand{\labelitemi}{\french@itemi}% - \renewcommand{\labelitemii}{\french@itemii}% - \renewcommand{\labelitemiii}{\french@itemiii}% - \renewcommand{\labelitemiv}{\french@itemiv}% - }{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}% - \else - \let\@makefntext\xpg@orig@makefntext - \fi - }% -} +\define@boolkey{french}[french@]{frenchitemlabels}[true]{} % Register default options \xpg@initialize@gloss@options{french}{variant=french,autospacing=true,thincolonspace=false, @@ -15553,6 +15931,50 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }% (end \ifdefined\titleformat) } +\newif\if@xpg@french@footnote@set +\@xpg@french@footnote@setfalse +\def\set@french@footnote{% + % Set French footnote once if requested + \if@xpg@french@footnote@set% + \else% + \iffrench@frenchfootnote% + \ifdefstring{\xpg@main@language}{french}{% + \ifx\@makefntext\undefined\else% + \long\def\french@makefntext##1{% + \parindent1em \noindent\quad% + \ifx\@thefnmark\empty\else% + \@thefnmark.\space\fi ##1% + }% + \let\@makefntext\french@makefntext% + \fi% + }{\xpg@warning{Option 'frenchfootnote' only supported if French is main language!}}% + \else% + \let\@makefntext\xpg@orig@makefntext% + \fi% + \@xpg@french@footnote@settrue% + \fi% +} + +\newif\if@xpg@french@itemlabels@set +\@xpg@french@itemlabels@setfalse +\def\set@french@itemlabels{% + % Set French itemlabels once if requested + \if@xpg@french@itemlabels@set% + \else% + \iffrench@frenchitemlabels + \ifdefstring{\xpg@main@language}{french}{% + \renewcommand{\labelitemi}{\french@itemi}% + \renewcommand{\labelitemii}{\french@itemii}% + \renewcommand{\labelitemiii}{\french@itemiii}% + \renewcommand{\labelitemiv}{\french@itemiv}% + }{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}% + \else + \let\@makefntext\xpg@orig@makefntext + \fi + \@xpg@french@itemlabels@settrue% + \fi% +} + \def\noextras@french{% \nofrench@punctuation% \nofrench@fontsetup% @@ -15560,11 +15982,17 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\blockextras@french{% - \iffrench@autospacing + % Set French itemlabels and footnote, + % if so requested, once in the document body + \ifx\@onlypreamble\@notprerr% + \set@french@footnote% + \set@french@itemlabels% + \fi% + \iffrench@autospacing% \french@punctuation% - \fi + \fi% \french@fontsetup% - \iffrench@frenchpart + \iffrench@frenchpart% \french@capsformat% \fi% } @@ -15611,7 +16039,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-friulan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-friulan.ldf}[polyglossia: module for Friulian] @@ -15628,7 +16056,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-friulian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-friulian.ldf}[polyglossia: module for Friulian] @@ -15714,7 +16142,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fur.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-fur.ldf}[polyglossia: module for fur (Friulian)] @@ -15731,7 +16159,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ga.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ga.ldf}[polyglossia: module for ga (Gaelic)] @@ -15748,7 +16176,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-gaelic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-gaelic.ldf}[polyglossia: module for Gaelic] @@ -15878,7 +16306,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-galician.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-galician.ldf}[polyglossia: module for Galician] \PolyglossiaSetup{galician}{ @@ -15935,7 +16363,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-gd.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-gd.ldf}[polyglossia: module for gd (Gaelic)] @@ -15952,7 +16380,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-georgian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-georgian.ldf}[polyglossia: module for Georgian] @@ -16002,7 +16430,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\georgian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{georgian}% \declare@shorthand{georgian}{"`}{„}% \declare@shorthand{georgian}{"'}{“}% @@ -16040,7 +16468,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nogeorgian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captionsgeorgian{% @@ -16200,7 +16628,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-german.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-german.ldf}[polyglossia: module for German] @@ -16357,6 +16785,17 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \xpg@info{Option: German, script=\xpg@val}% }{\xpg@warning{Unknown German script `#1'}} +\define@boolkey{german}[german@]{capitaleszett}[true]{% + \ifgerman@capitaleszett + % MakeUppercase capitalizes the eszett (U+00DF) with U+1E9E + \SetLanguageKeys{german}{bcp47-casing=de-x-eszett,bcp47-extension-x=eszett} + \else + % Capitalize eszett as + \SetLanguageKeys{german}{bcp47-casing=de,bcp47-extension-x={}} + \fi +} + + % Option defunc'ed, as both XeTeX and LuaTeX meanwhile % use the experimental German hyphenation patterns by default. \define@boolkey{german}[german@]{latesthyphen}[true]{} @@ -16385,7 +16824,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\german@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{german}% \declare@shorthand{german}{"`}{„}% \declare@shorthand{german}{"'}{“}% @@ -16425,7 +16864,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nogerman@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captions@german{% @@ -16538,7 +16977,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-germanb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-germanb.ldf}[polyglossia: module for German (old spelling)] @@ -16555,7 +16994,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-gl.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-gl.ldf}[polyglossia: module for gl (Galician)] @@ -16572,7 +17011,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-grc.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-grc.ldf}[polyglossia: module for grc (Greek)] @@ -16589,7 +17028,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-greek.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-greek.ldf}[polyglossia: module for Greek] @@ -16599,6 +17038,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages bcp47-variant=monoton, bcp47-script=Grek, bcp47-extension-u=nu-grek, + bcp47-casing=el, script=Greek, scripttag=grek, langtag=ELL, @@ -16627,56 +17067,79 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % this file imported from xgreek fixes the \lccode and \uccode of Greek letters: \input{xgreek-fixes.def} -\def\tmp@mono{mono} -\def\tmp@monotonic{monotonic} -\def\tmp@poly{poly} -\def\tmp@polytonic{polytonic} -\def\tmp@ancient{ancient} -\def\tmp@ancientgreek{ancientgreek} - \def\greek@variant{monogreek} -\define@key{greek}{variant}[monotonic]{% - \def\@tmpa{#1}% - \xpg@ifdefined{greek}{}{% +\newif\if@greek@ancient\@greek@ancientfalse +\newif\if@greek@poly\@greek@polyfalse + +\define@choicekey*+{greek}{variant}[\xpg@val\xpg@nr]{monotonic,mono,polytonic,poly,ancient,ancientgreek}[monotonic]{% + \xpg@ifdefined{greek}{}{% \xpg@nopatterns{greek}% \adddialect\l@greek\l@nohyphenation - }% - \ifx\@tmpa\tmp@poly\def\@tmpa{polytonic}\fi - \ifx\@tmpa\tmp@ancientgreek\def\@tmpa{ancient}\fi - \ifx\@tmpa\tmp@polytonic% - \xpg@ifdefined{polygreek}{}% - {\xpg@warning{No hyphenation patterns were loaded for Polytonic Greek\MessageBreak - I will use the patterns loaded for \string\l@greek\space instead}% - \adddialect\l@polygreek\l@greek\relax}% - \def\greek@variant{polygreek}% - \def\captionsgreek{\polygreekcaptions}% - \def\dategreek{\datepolygreek}% - \SetLanguageKeys{greek}{babelname=polutonikogreek,bcp47=el-polyton,bcp47-language=el,bcp47-variant=polyton}% - \xpg@info{Option: Polytonic Greek}% - \else - \ifx\@tmpa\tmp@ancient - \xpg@ifdefined{ancientgreek}{}% - {\xpg@warning{No hyphenation patterns were loaded for Ancient Greek\MessageBreak - I will use the patterns loaded for \string\l@greek\space instead}% - \adddialect\l@ancientgreek\l@greek\relax}% - \def\greek@variant{ancientgreek}% - \def\captionsgreek{\ancientgreekcaptions}% - \def\dategreek{\dateancientgreek}% - \SetLanguageKeys{greek}{babelname=greek,bcp47=grc,bcp47-language=grc,bcp47-variant={}}% - \xpg@info{Option: Ancient Greek}% - \else %monotonic - \xpg@ifdefined{monogreek}{}% - {\xpg@warning{No hyphenation patterns were loaded for Monotonic Greek\MessageBreak - I will use the patterns loaded for \string\l@greek\space instead}% - \adddialect\l@monogreek\l@greek\relax}% - \def\greek@variant{monogreek}% monotonic - \def\captionsgreek{\monogreekcaptions}% - \def\dategreek{\datemonogreek}% - \SetLanguageKeys{greek}{babelname=greek,bcp47=el-monoton,bcp47-language=el,bcp47-variant=polyton}% - \xpg@info{Option: Monotonic Greek}% - \fi - \fi} + }% + \ifcase\xpg@nr\relax + % monotonic: + \@greek@polyfalse + \@greek@ancientfalse + \or + % mono: + \@greek@polyfalse + \@greek@ancientfalse + \or + % polytonic: + \@greek@polytrue + \@greek@ancientfalse + \or + % poly: + \@greek@polytrue + \@greek@ancientfalse + \or + % ancient: + \@greek@polyfalse + \@greek@ancienttrue + \or + % ancientgreek: + \@greek@polyfalse + \@greek@ancienttrue + \fi + \greek@set@langdata + \xpg@info{Option: Greek, variant=\xpg@val}% +}{\xpg@warning{Unknown Greek variant `#1'}} + + +\def\greek@set@langdata{% + \if@greek@ancient + \xpg@ifdefined{ancientgreek}{}% + {\xpg@warning{No hyphenation patterns were loaded for Ancient Greek\MessageBreak + I will use the patterns loaded for \string\l@greek\space instead}% + \adddialect\l@ancientgreek\l@greek\relax}% + \def\greek@variant{ancientgreek}% + \def\captionsgreek{\ancientgreekcaptions}% + \def\dategreek{\dateancientgreek}% + \SetLanguageKeys{greek}{babelname=greek,bcp47=grc,bcp47-language=grc,bcp47-variant={}}% + \else + \if@greek@poly + \xpg@ifdefined{polygreek}{}% + {\xpg@warning{No hyphenation patterns were loaded for Polytonic Greek\MessageBreak + I will use the patterns loaded for \string\l@greek\space instead}% + \adddialect\l@polygreek\l@greek\relax}% + \def\greek@variant{polygreek}% + \def\captionsgreek{\polygreekcaptions}% + \def\dategreek{\datepolygreek}% + \SetLanguageKeys{greek}{babelname=polutonikogreek,bcp47=el-polyton,bcp47-language=el,bcp47-variant=polyton}% + \else% monotonic greek + \xpg@ifdefined{monogreek}{}% + {\xpg@warning{No hyphenation patterns were loaded for Monotonic Greek\MessageBreak + I will use the patterns loaded for \string\l@greek\space instead}% + \adddialect\l@monogreek\l@greek\relax}% + \def\greek@variant{monogreek}% monotonic + \def\captionsgreek{\monogreekcaptions}% + \def\dategreek{\datemonogreek}% + \SetLanguageKeys{greek}{babelname=greek,bcp47=el-monoton,bcp47-language=el,bcp47-variant=monoton}% + \fi% + \fi% +} + \def\greek@language{% \polyglossia@setup@language@patterns{\greek@variant}% @@ -16684,13 +17147,28 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \newif\if@greek@numerals -\define@key{greek}{numerals}[greek]{% - \ifstrequal{#1}{arabic}{% - \@greek@numeralsfalse% - \SetLanguageKeys{greek}{bcp47-extension-u=nu-latn}% - }{\@greek@numeralstrue% - \SetLanguageKeys{greek}{bcp47-extension-u=nu-grek}% - }% +\define@choicekey*+{greek}{numerals}[\xpg@val\xpg@nr]{greek,arabic}[greek]{% + \ifcase\xpg@nr\relax + % greek: + \@greek@numeralstrue% + \SetLanguageKeys{greek}{bcp47-extension-u=nu-grek}% + \or + % arabic: + \@greek@numeralsfalse% + \SetLanguageKeys{greek}{bcp47-extension-u=nu-latn}% + \fi + \xpg@info{Option: Greek, numerals=\xpg@val}% +}{\xpg@warning{Unknown Greek numerals value `#1'}} + + +\define@boolkey{greek}[greek@]{capitaliota}[true]{% + \ifgreek@capitaliota + % \MakeUppercase converts the ypogegrammeni (subscript muted iota) to capital iota + \SetLanguageKeys{greek}{bcp47-casing=el-x-iota,bcp47-extension-x=iota} + \else + % \MakeUppercase retains the subscript versions (default) + \SetLanguageKeys{greek}{bcp47-casing=el,bcp47-extension-x={}} + \fi } \define@boolkey{greek}{attic}[true]{\xpg@warning{Greek option `attic' is no longer required.}} @@ -17018,7 +17496,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-he.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-he.ldf}[polyglossia: module for he (Hebrew)] @@ -17035,7 +17513,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hebrew.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for Hebrew] @@ -17153,24 +17631,24 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \ifxetex + % Bidi inserts an RTL mark (0x200f) between number and number separator (- .), + % forcing numbers to RTL. This is wrong for Hebrew. + % So we defunc the respective command with XeTeX. \let\xpg@orig@DigitsDotDashInterCharToks\DigitsDotDashInterCharToks% -\fi -\def\hebrew@ltr@numbers{% - \ifxetex - % Bidi inserts an RTL mark (0x200f) between number and number separator (- .), - % forcing numbers to RTL. This is wrong for Hebrew. - % So we defunc the respective command. - \renewcommand*{\DigitsDotDashInterCharToks}{}% - \fi% -} + \def\hebrew@ltr@numbers{% + \renewcommand*{\DigitsDotDashInterCharToks}{}% + } -\def\nohebrew@ltr@numbers{% - \ifxetex - % Restore bidi's \DigitsDotDashInterCharToks - \let\DigitsDotDashInterCharToks\xpg@orig@DigitsDotDashInterCharToks% - \fi% -} + \def\nohebrew@ltr@numbers{% + % Restore bidi's \DigitsDotDashInterCharToks + \let\DigitsDotDashInterCharToks\xpg@orig@DigitsDotDashInterCharToks% + } +\else + % Only dummy commands (nothing to do here) for LuaTeX + \def\hebrew@ltr@numbers{} + \def\nohebrew@ltr@numbers{} +\fi% \def\hebrew@numbers{% \let\@alph\hebrewnumeral% @@ -17183,7 +17661,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\@alph\latin@alph% \let\@Alph\latin@Alph% % Restore previous bidi numbers definition - \nohebrew@ltr@numbers + \nohebrew@ltr@numbers% } \def\hebrew@globalnumbers{% @@ -17200,18 +17678,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\@arabic\xpg@save@arabic% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase - -\def\blockextras@hebrew{% - \def\MakeUppercase##1{##1}% -} - -\def\noextras@hebrew{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase% -} - % \end{macrocode} % \iffalse % @@ -17221,7 +17687,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hi.ldf}[polyglossia: module for hi (Hindi)] @@ -17238,7 +17704,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hindi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % UTF-8 strings kindly provided by Zdenĕk Wagner, 10-03-2008 % with corrections and additional contributions by Anshuman Pandey @@ -17348,18 +17814,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \space\hindinumber\year}% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase - -\def\blockextras@hindi{% - \def\MakeUppercase##1{##1}% -} - -\def\noextras@hindi{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase% -} - % \end{macrocode} % \iffalse % @@ -17369,7 +17823,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hr.ldf}[polyglossia: module for hr (Croatian)] @@ -17386,7 +17840,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hsb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hsb.ldf}[polyglossia: module for hsb (Higher Sorbian)] @@ -17403,7 +17857,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hu.ldf}[polyglossia: module for hu (Hungarian)] @@ -17420,7 +17874,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hungarian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hungarian.ldf}[polyglossia: module for Hungarian] @@ -17819,7 +18273,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hy.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-hy.ldf}[polyglossia: module for hy (Armenian)] @@ -17836,7 +18290,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ia.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ia.ldf}[polyglossia: module for ia (Interlingua)] @@ -17853,7 +18307,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-icelandic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-icelandic.ldf}[polyglossia: module for Icelandic] \PolyglossiaSetup{icelandic}{ @@ -17911,7 +18365,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-id.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-id.ldf}[polyglossia: module for id (Malay)] @@ -17928,7 +18382,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-interlingua.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-interlingua.ldf}[polyglossia: module for Interlingua] \PolyglossiaSetup{interlingua}{ @@ -17986,7 +18440,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-irish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-irish.ldf}[polyglossia: module for Irish] @@ -18004,7 +18458,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-is.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-is.ldf}[polyglossia: module for is (Icelandic)] @@ -18021,7 +18475,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-it.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-it.ldf}[polyglossia: module for it (Italian)] @@ -18039,7 +18493,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \subsection{gloss-italian.ldf} % \begin{macrocode} % !TEX encoding = UTF-8 Unicode -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian] \PolyglossiaSetup{italian}{ @@ -18078,7 +18532,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\italian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{italian}% \declare@shorthand{italian}{"}{% \relax\ifmmode @@ -18118,7 +18572,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \xpgit@@next} \def\noitalian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } %%% CHANGES END %%% @@ -18191,7 +18645,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ja.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ja.ldf}[polyglossia: module for ja (Japanese)] @@ -18208,7 +18662,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-japanese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-japanese.ldf}[polyglossia: module for Japanese] @@ -18446,7 +18900,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ka.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ka.ldf}[polyglossia: module for ka (Georgian)] @@ -18464,7 +18918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \subsection{gloss-kannada.ldf} % \begin{macrocode} %% gloss-kannada.ldf -%% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +%% Language definition file (part of polyglossia v1.63 -- 2023/06/10) %% %% Copyright 2011 Aravinda VK , %% Shankar Prasad , @@ -18587,7 +19041,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-khmer.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-khmer.ldf}[polyglossia: module for Khmer] \PolyglossiaSetup{khmer}{ @@ -18764,7 +19218,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-km.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-km.ldf}[polyglossia: module for km (Khmer)] @@ -18781,7 +19235,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kmr-Arab.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-kmr-Arab.ldf}[polyglossia: module for kmr-Arab (Kurdish)] @@ -18798,7 +19252,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kmr-Latn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-kmr-Latn.ldf}[polyglossia: module for kmr-Latn (Kurdish)] @@ -18815,7 +19269,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kmr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-kmr.ldf}[polyglossia: module for kmr (Kurdish)] @@ -18832,7 +19286,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-kn.ldf}[polyglossia: module for kn (Kannada)] @@ -18849,7 +19303,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ko.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ko.ldf}[polyglossia: module for ko (Korean)] @@ -18866,7 +19320,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-korean.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean] @@ -18982,9 +19436,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \if@korean@swapheadings % With titlesec \ifcsdef{titleformat}{% - \ifcsdef{H@old@part}{% Hyperref - \let\xpg@save@part@format\H@old@part - \patchcmd{\H@old@part}% + \ifcsdef{NR@part}{% Hyperref (nameref) + \let\xpg@save@part@format\NR@part + \patchcmd{\NR@part}% {\partname\nobreakspace\thepart}% {\koreanTHEname\nobreakspace \thepart\nobreakspace \partname}% {}% @@ -19023,9 +19477,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \IfChapterUsesPrefixLine {% \ifx\@chapapp\korean@appendix@chapapp - \chapappifchapterprefix\nobreakspace \thechapter\autodot + \chapapp\nobreakspace \thechapter\autodot \else - \koreanTHEname\nobreakspace \thechapter\nobreakspace \chapappifchapterprefix{}% + \koreanTHEname\nobreakspace \thechapter\nobreakspace \chapapp\autodot \fi }% {\thechapter\autodot\enskip}% @@ -19053,9 +19507,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages {\chapnamefont\koreanTHEname\chapternamenum}{}}% \fi }{}% - \ifcsdef{H@old@part}{% Hyperref - \let\xpg@save@part@format\H@old@part - \patchcmd{\H@old@part}% + \ifcsdef{NR@part}{% Hyperref (nameref) + \let\xpg@save@part@format\NR@part + \patchcmd{\NR@part}% {\printpartname \partnamenum \printpartnum}% {\printkoreanpartthe \printpartnum\partnamenum \printpartname}% {}% @@ -19092,9 +19546,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages {}% {\xpg@warning{Failed to patch chapter for Korean}}% }{}% - \ifcsdef{H@old@part}{% Hyperref - \let\xpg@save@part@format\H@old@part - \patchcmd{\H@old@part}% + \ifcsdef{NR@part}{% Hyperref (nameref) + \let\xpg@save@part@format\NR@part + \patchcmd{\NR@part}% {\partname\nobreakspace\thepart}% {\koreanTHEname\nobreakspace \thepart\nobreakspace \partname}% {}% @@ -19126,9 +19580,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \IfChapterUsesPrefixLine {% \ifx\@chapapp\korean@appendix@chapapp - \chapappifchapterprefix\ \thechapter\autodot + \chapapp\ \thechapter\autodot \else - \koreanTHEname\ \thechapter\ \chapappifchapterprefix{}% + \koreanTHEname\ \thechapter\ \chapapp\autodot \fi }% {\thechapter\autodot}% @@ -19178,8 +19632,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \ifcsdef{titleformat}{% % With titlesec \ifcsdef{xpg@save@part@format}{% - \ifcsdef{H@old@part}{% - \let\H@old@part\xpg@save@part@format + \ifcsdef{NR@part}{% + \let\NR@part\xpg@save@part@format }{% \let\@part\xpg@save@part@format }% @@ -19201,8 +19655,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{% % With memoir and standard classes \ifcsdef{xpg@save@part@format}{% - \ifcsdef{H@old@part}{% - \let\H@old@part\xpg@save@part@format + \ifcsdef{NR@part}{% + \let\NR@part\xpg@save@part@format }{% \let\@part\xpg@save@part@format }% @@ -19346,7 +19800,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ku-Arab.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ku-Arab.ldf}[polyglossia: module for ku-Arab (Kurdish)] @@ -19363,7 +19817,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ku-Latn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ku-Latn.ldf}[polyglossia: module for ku-Latn (Kurdish)] @@ -19380,7 +19834,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ku.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ku.ldf}[polyglossia: module for ku (Kurdish)] @@ -19397,7 +19851,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kurdish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % Created on September 1, 2019 % Last updated on May 17, 2020 @@ -19426,13 +19880,13 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % BCP-47 compliant aliases \setlanguagealias*{kurdish}{ku} -\setlanguagealias*[variant=kurmanji,script=Latin]{kurdish}{kmr-Latn} +\setlanguagealias*[variant=kurmanji,script=latin]{kurdish}{kmr-Latn} \setlanguagealias*[variant=sorani]{kurdish}{ckb} -\setlanguagealias*[variant=kurmanji,script=Arabic]{kurdish}{kmr-Arab} -\setlanguagealias*[script=Latin]{kurdish}{ku-Latn} -\setlanguagealias*[variant=sorani,script=Arabic]{kurdish}{ckb-Arab} -\setlanguagealias*[variant=sorani,script=Latin]{kurdish}{ckb-Latn} -\setlanguagealias*[script=Arabic]{kurdish}{ku-Arab} +\setlanguagealias*[variant=kurmanji,script=arabic]{kurdish}{kmr-Arab} +\setlanguagealias*[script=latin]{kurdish}{ku-Latn} +\setlanguagealias*[variant=sorani,script=arabic]{kurdish}{ckb-Arab} +\setlanguagealias*[variant=sorani,script=latin]{kurdish}{ckb-Latn} +\setlanguagealias*[script=arabic]{kurdish}{ku-Arab} \setlanguagealias*[variant=kurmanji]{kurdish}{kmr} % Babel aliases @@ -19456,13 +19910,13 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \newif\if@kurdish@latin \newif\if@kurdish@arabic -\define@choicekey*+{kurdish}{script}[\xpg@val\xpg@nr]{Arabic,Latin}{% +\define@choicekey*+{kurdish}{script}[\xpg@val\xpg@nr]{arabic,latin}{% \ifcase\xpg@nr\relax - % Arabic: + % arabic: \@kurdish@latinfalse% \@kurdish@arabictrue% \or - % Latin: + % latin: \@kurdish@latintrue% \@kurdish@arabicfalse% \fi @@ -19477,7 +19931,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\kurdish@pattern{nohyphenation} \def\kurdish@set@variety{% - \if@kurdish@latin% Latin explicitly set + \if@kurdish@latin% latin explicitly set \@western@numeralstrue% \if@kurdish@kurmanji \def\kurdish@pattern{kurmanji}% @@ -19488,7 +19942,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\kurdish@script{latin} \xpg@fontsetup@latin{kurdish}% \else - \if@kurdish@arabic% Arabic explicitly set + \if@kurdish@arabic% arabic explicitly set \if@kurdish@kurmanji \if@force@western@numerals\else\@western@numeralsfalse\fi% \SetLanguageKeys{kurdish}{script=Arabic,direction=RL,scripttag=arab,babelname=kurmanji,bcp47=kmr-Arab,bcp47-language=kmr,bcp47-script=Arab,bcp47-casing=kmr-Arab}% @@ -19497,7 +19951,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \SetLanguageKeys{kurdish}{script=Arabic,direction=RL,scripttag=arab,babelname=kurdish,bcp47=ckb-Arab,bcp47-language=ckb,bcp47-script=Arab,bcp47-casing=ckb-Arab}% \fi \xpg@fontsetup@nonlatin{kurdish}% - \else% sorani=Arabic, kurmanji=Latin + \else% sorani=arabic, kurmanji=latin \if@kurdish@kurmanji \@western@numeralstrue% \SetLanguageKeys{kurdish}{script=Latin,direction=LR,scripttag=latn,babelname=kurmanji,bcp47=kmr-Latn,bcp47-language=kmr,bcp47-script=Latn,bcp47-casing=kmr-Latn}% @@ -19511,19 +19965,30 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \fi } -\def\tmp@western{western} -\define@key{kurdish}{numerals}[eastern]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@western\@western@numeralstrue\@force@western@numeralstrue\else% - \@western@numeralsfalse% - \fi% +\newif\if@western@numerals +\define@choicekey*+{kurdish}{numerals}[\xpg@val\xpg@nr]{eastern,western}[eastern]{% + \ifcase\xpg@nr\relax + % eastern: + \@western@numeralsfalse% + \or + % western: + \@western@numeralstrue% + \@force@western@numeralstrue% + \fi + \xpg@info{Option: Kurdish, numerals=\xpg@val}% +}{\xpg@warning{Unknown Kurdish numerals option `#1'}} + +\newif\ifkurdish@customsep\kurdish@customsepfalse +\def\xpg@sepmark{} +\define@key{kurdish}{sectionsep}[.]{% + \kurdish@customseptrue% + \gdef\xpg@sepmark{#1}% } %this is needed for \abjad in arabicnumbers.sty -\def\tmp@true{true} -\define@key{kurdish}{abjadjimnotail}[true]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@true\abjad@jim@notailtrue% +\define@boolkey{kurdish}[kurdish@]{abjadjimnotail}[true]{% + \ifkurdish@abjadjimnotail + \abjad@jim@notailtrue% \else \abjad@jim@notailfalse \fi% @@ -19536,7 +20001,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages %TODO add option for CALENDAR % Register default options -\xpg@initialize@gloss@options{kurdish}{variant=sorani,locale=default,script=Arabic,abjadjimnotail=false,numerals=eastern} +\xpg@initialize@gloss@options{kurdish}{variant=sorani,locale=default,script=arabic,abjadjimnotail=false,numerals=eastern} \def\kurdish@language{% \polyglossia@setup@language@patterns{\kurdish@pattern}% @@ -19749,8 +20214,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \number#1% \else \xpg@if@char@available{06F0}% - {\farsidigits{\number#1}}% - {\arabicdigits{\number#1}}% + {\@ensure@LTR{\farsidigits{\number#1}}}% + {\@ensure@LTR{\arabicdigits{\number#1}}}% \fi } @@ -19786,15 +20251,92 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \renewcommand\thefootnote{\protect\number{\c@footnote}}% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase +\def\kurdish@xetex@capsformat{% + \let\xpg@save@sepmark\@SepMark% + \SepMark{\xpg@sepmark} +} -\def\blockextras@kurdish{% - \def\MakeUppercase##1{##1}% +\def\nokurdish@xetex@capsformat{% + \ifcsdef{xpg@save@sepmark}{% + \SepMark{\xpg@save@sepmark} + }{}% } +\def\kurdish@luatex@capsformat{% + % + % change chapter and part headings + \ifkurdish@customsep + \ifcsdef{chapter}{% + \let\xpg@save@thesection\thesection% + \renewcommand*\thesection{\thechapter\xpg@sepmark\@arabic\c@section} + \let\xpg@save@theequation\theequation% + \renewcommand*\theequation{% + \ifnum \c@chapter>\z@ \thechapter\xpg@sepmark\fi\@arabic\c@equation} + \let\xpg@save@thefigure\thefigure% + \renewcommand*\thefigure{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@figure} + \let\xpg@save@thetable\thetable% + \renewcommand*\thetable{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@table} + }{} + \let\xpg@save@thesubsection\thesubsection% + \renewcommand\thesubsection + {\thesection\xpg@sepmark\@arabic\c@subsection} + \let\xpg@save@thesubsubsection\thesubsubsection% + \renewcommand\thesubsubsection{\thesubsection\xpg@sepmark\@arabic\c@subsubsection} + \let\xpg@save@theparagraph\theparagraph% + \renewcommand\theparagraph + {\thesubsubsection\xpg@sepmark\@arabic\c@paragraph} + \let\xpg@save@thesubparagraph\thesubparagraph% + \renewcommand\thesubparagraph{\theparagraph\xpg@sepmark\@arabic\c@subparagraph} + \fi% (end \ifkurdish@customsep) +} + +\def\nokurdish@luatex@capsformat{% + \ifcsdef{xpg@save@thesection}{% + \let\thesection\xpg@save@thesection% + }{}% + \ifcsdef{xpg@save@theequation}{% + \let\theequation\xpg@save@theequation% + }{}% + \ifcsdef{xpg@save@thefigure}{% + \let\thefigure\xpg@save@thefigure% + }{}% + \ifcsdef{xpg@save@thetable}{% + \let\thetable\xpg@save@thetable% + }{}% + \ifcsdef{xpg@save@thesubsection}{% + \let\thesubsection\xpg@save@thesubsection% + \ifcsdef{xpg@save@thesubsubsection}{% + \let\thesubsubsection\xpg@save@thesubsubsection% + }{}% + }{}% + \ifcsdef{xpg@save@theparagraph}{% + \let\theparagraph\xpg@save@theparagraph% + }{}% + \ifcsdef{xpg@save@thesubparagraph}{% + \let\thesubparagraph\xpg@save@thesubparagraph% + }{}% +} + +\def\blockextras@kurdish{% + \ifkurdish@customsep + \ifxetex + \kurdish@xetex@capsformat + \else + \kurdish@luatex@capsformat + \fi + \fi +} +% \def\noextras@kurdish{% - \let\MakeUppercase\xpg@save@MakeUppercase% + \ifkurdish@customsep + \ifxetex + \nokurdish@xetex@capsformat + \else + \nokurdish@luatex@capsformat + \fi + \fi } % \end{macrocode} @@ -19806,7 +20348,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kurmanji.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-kurmanji.ldf}[polyglossia: module for Kurmanji Kurdish] @@ -19823,7 +20365,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la-x-classic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-la-xclassic.ldf}[polyglossia: module for la-xclassic (Latin)] @@ -19840,7 +20382,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la-x-ecclesia.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-la-xecclesiastic.ldf}[polyglossia: module for la-xecclesiastic (Latin)] @@ -19857,7 +20399,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la-x-medieval.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-la-xmedieval.ldf}[polyglossia: module for la-xmedieval (Latin)] @@ -19874,7 +20416,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-la.ldf}[polyglossia: module for la (Latin)] @@ -19891,7 +20433,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lao.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao] @@ -20002,7 +20544,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latin.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin] @@ -20412,7 +20954,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \bool_set_true:N \l_polyglossia_latin_capitalize_month_bool \bool_set_false:N \l_polyglossia_latin_punctuation_spacing_bool \str_set:Nn \l_polyglossia_latin_variant_str {medieval} - \SetLanguageKeys {latin} { babelname = medievallatin, bcp47 = la-x-medieval, bcp47-extension-x = medieval } + \SetLanguageKeys {latin} { babelname = medievallatin, bcp47 = la-x-medieval, bcp47-extension-x = medieval, bcp47-casing = la-x-medieval } \polyglossia_latin_use_modern_patterns: } @@ -20674,7 +21216,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \cs_new:Npn \polyglossia_latin_shorthands: { \def \language@group {latin} - \bbl@activate {"} + \xpg@activate@shorthands ["] \declare@shorthand {latin} {"} { \mode_if_math:TF @@ -20688,7 +21230,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % The ' shorthand is normally turned off to avoid problems with the unicode-math % package. We have to turn it on here. \shorthandon {'} - \bbl@activate {'} + \xpg@activate@shorthands ['] \declare@shorthand {latin} {'} { \mode_if_math:TF @@ -20992,8 +21534,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \cs_new:Npn \polyglossia_latin_no_shorthands: { - \bbl@deactivate {"} - \bbl@deactivate {'} + \xpg@deactivate@shorthands ["] + \xpg@deactivate@shorthands ['] } \cs_new:Npn \polyglossia_latin_no_prosodic_shorthands: @@ -21117,7 +21659,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latinclassic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-latinclassic.ldf}[polyglossia: module for classic Latin] @@ -21134,7 +21676,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latinecclesiastic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-latinecclesiastic.ldf}[polyglossia: module for ecclesiastic Latin] @@ -21151,7 +21693,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latinmedieval.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-latinmedieval.ldf}[polyglossia: module for medieval Latin] @@ -21168,7 +21710,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latvian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-latvian.ldf}[polyglossia: module for Latvian] \PolyglossiaSetup{latvian}{ @@ -21226,7 +21768,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lithuanian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % Translated by Paulius Sladkevičius @@ -21239,7 +21781,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages hyphennames={lithuanian}, hyphenmins={2,2}, langtag=LTH, - indentfirst=true, % TODO Dokumentų rengimo taisyklių, patvirtintų Lietuvos vyriausiojo archyvaro 2011 m. liepos 4 d. įsakymu Nr. V-117, 29.1 punktą + indentfirst=true, fontsetup=true } @@ -21251,23 +21793,23 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\refname{Literatūra}% \def\abstractname{Santrauka}% \def\bibname{Literatūra}% - \def\chaptername{Skyrius}% TODO letter case + \def\chaptername{Skyrius}% \def\appendixname{Priedas}% \def\contentsname{Turinys}% \def\listfigurename{Iliustracijų sąrašas}% \def\listtablename{Lentelių sąrašas}% \def\indexname{Rodyklė}% \def\figurename{pav.}% - \def\tablename{lentelė}% TODO any special reason for \protect in babel? + \def\tablename{lentelė}% \def\partname{Dalis}% \def\enclname{Įdėta}% \def\ccname{Kopijos}% \def\headtoname{Kam}% TODO empty in babel? \def\pagename{puslapis}% \def\seename{žiūrėk}% - \def\alsoname{taip pat}% TODO some other variants are considered in babel? + \def\alsoname{taip pat}% \def\proofname{Įrodymas}% - \def\glossaryname{Terminų žodynas}% TODO some other variants are considered in babel? + \def\glossaryname{Terminų žodynas}% } \def\datelithuanian{% @@ -21308,7 +21850,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lo.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-lo.ldf}[polyglossia: module for lo (Lao)] @@ -21325,7 +21867,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lowersorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-lowersorbian.ldf}[polyglossia: module for Lower Sorbian] @@ -21342,7 +21884,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lsorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-lsorbian.ldf}[polyglossia: module for Lower Sorbian] @@ -21360,7 +21902,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lt.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-lt.ldf}[polyglossia: module for lt (Lithuanian)] @@ -21377,7 +21919,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lv.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-lv.ldf}[polyglossia: module for lv (Latvian)] @@ -21394,7 +21936,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-macedonian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-macedonian.ldf}[polyglossia: module for Macedonian] \PolyglossiaSetup{macedonian}{ @@ -21493,7 +22035,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-magyar.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-magyar.ldf}[polyglossia: module for Hungarian (Magyar)] @@ -21510,7 +22052,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-malay.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-malay.ldf}[polyglossia: module for Malay] @@ -21709,7 +22251,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-malayalam.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for Malayalam] @@ -21779,7 +22321,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-marathi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % Translations provided by Abhijit Navale % Ordinals (1-100) added by Niranjan Tambe on 14th December, 2019 @@ -21929,7 +22471,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mk.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-mk.ldf}[polyglossia: module for mk (Macedonian)] @@ -21946,7 +22488,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ml.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ml.ldf}[polyglossia: module for ml (Malayalam)] @@ -21963,7 +22505,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-mn.ldf}[polyglossia: module for mn (Mongolian)] @@ -21980,7 +22522,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mongolian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-mongolian.ldf}[polyglossia: module for Mongolian] @@ -22051,7 +22593,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\mongolian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{mongolian}% \declare@shorthand{mongolian}{"`}{„}% \declare@shorthand{mongolian}{"'}{“}% @@ -22090,7 +22632,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nomongolian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } % Taken from babel-mongolian @@ -22219,7 +22761,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-mr.ldf}[polyglossia: module for mr (Marathi)] @@ -22236,7 +22778,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-naustrian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-naustrian.ldf}[polyglossia: module for Austrian German (current spelling)] @@ -22253,7 +22795,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-nb.ldf}[polyglossia: module for nb (Norwegian)] @@ -22270,7 +22812,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-newzealand.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-newzealand.ldf}[polyglossia: module for Newzealand English] @@ -22287,7 +22829,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ngerman.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ngerman.ldf}[polyglossia: module for German (current spelling)] @@ -22304,7 +22846,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nko.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko] \PolyglossiaSetup{nko}{% @@ -22402,7 +22944,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-norsk.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-norsk.ldf}[polyglossia: module for Norwegian (Bokmal)] @@ -22420,7 +22962,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-norwegian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-norwegian.ldf}[polyglossia: module for Norwegian] \PolyglossiaSetup{norwegian}{ @@ -22547,7 +23089,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nswissgerman.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-nswissgerman.ldf}[polyglossia: module for Swiss German (current spelling)] @@ -22564,7 +23106,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nynorsk.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-nynorsk.ldf}[polyglossia: module for Norwegian (Nynorsk)] @@ -22582,7 +23124,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-occitan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % %% %% This is file `gloss-occitan.ldf', @@ -22633,7 +23175,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\occitan@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{occitan}% \declare@shorthand{occitan}{"}{% \relax\ifmmode @@ -22670,9 +23212,11 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \fi \fi \fi - \xpgoc@@next} + \xpgoc@@next% +} + \def\nooccitan@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captionsoccitan{% \def\refname{Referéncias}% @@ -22761,7 +23305,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-pa.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-pa.ldf}[polyglossia: module for pa (Punjabi)] @@ -22778,7 +23322,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-persian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-persian.ldf}[polyglossia: module for Persian] @@ -22807,22 +23351,30 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \setlanguagealias{persian}{farsi} \newif\if@western@numerals -\def\tmp@western{western} -\define@key{persian}{numerals}[eastern]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@western% - \@western@numeralstrue% - \SetLanguageKeys{persian}{bcp47-extension-u=nu-latn}% - \else% - \@western@numeralsfalse% - \SetLanguageKeys{persian}{bcp47-extension-u=nu-arab}% - \fi} +\define@choicekey*+{persian}{numerals}[\xpg@val\xpg@nr]{eastern,western}[eastern]{% + \ifcase\xpg@nr\relax + % eastern: + \@western@numeralsfalse% + \SetLanguageKeys{persian}{bcp47-extension-u=nu-arab}% + \or + % western: + \@western@numeralstrue% + \SetLanguageKeys{persian}{bcp47-extension-u=nu-latn}% + \fi + \xpg@info{Option: Persian, numerals=\xpg@val}% +}{\xpg@warning{Unknown Persian numerals option `#1'}} + +\newif\ifpersian@customsep\persian@customsepfalse +\def\xpg@sepmark{} +\define@key{persian}{sectionsep}[.]{% + \persian@customseptrue% + \gdef\xpg@sepmark{#1}% +} %this is needed for \abjad in arabicnumbers.sty -\def\tmp@true{true} -\define@key{persian}{abjadjimnotail}[true]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@true\abjad@jim@notailtrue% +\define@boolkey{persian}[persian@]{abjadjimnotail}[true]{% + \ifpersian@abjadjimnotail + \abjad@jim@notailtrue% \else \abjad@jim@notailfalse \fi} @@ -22880,8 +23432,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \number#1% \else \xpg@if@char@available{06F0}% - {\farsidigits{\number#1}}% - {\arabicdigits{\number#1}}% + {\@ensure@LTR{\farsidigits{\number#1}}}% + {\@ensure@LTR{\arabicdigits{\number#1}}}% \fi } @@ -22913,17 +23465,94 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\@arabic\xpg@save@arabic% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase +\def\persian@xetex@capsformat{% + \let\xpg@save@sepmark\@SepMark% + \SepMark{\xpg@sepmark} +} -\def\blockextras@persian{% - \def\MakeUppercase##1{##1}% +\def\nopersian@xetex@capsformat{% + \ifcsdef{xpg@save@sepmark}{% + \SepMark{\xpg@save@sepmark} + }{}% } +\def\persian@luatex@capsformat{% + % + % change chapter and part headings + \ifpersian@customsep + \ifcsdef{chapter}{% + \let\xpg@save@thesection\thesection% + \renewcommand*\thesection{\thechapter\xpg@sepmark\@arabic\c@section} + \let\xpg@save@theequation\theequation% + \renewcommand*\theequation{% + \ifnum \c@chapter>\z@ \thechapter\xpg@sepmark\fi\@arabic\c@equation} + \let\xpg@save@thefigure\thefigure% + \renewcommand*\thefigure{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@figure} + \let\xpg@save@thetable\thetable% + \renewcommand*\thetable{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@table} + }{} + \let\xpg@save@thesubsection\thesubsection% + \renewcommand\thesubsection + {\thesection\xpg@sepmark\@arabic\c@subsection} + \let\xpg@save@thesubsubsection\thesubsubsection% + \renewcommand\thesubsubsection{\thesubsection\xpg@sepmark\@arabic\c@subsubsection} + \let\xpg@save@theparagraph\theparagraph% + \renewcommand\theparagraph + {\thesubsubsection\xpg@sepmark\@arabic\c@paragraph} + \let\xpg@save@thesubparagraph\thesubparagraph% + \renewcommand\thesubparagraph{\theparagraph\xpg@sepmark\@arabic\c@subparagraph} + \fi% (end \ifpersiancustomsep) +} + +\def\nopersian@luatex@capsformat{% + \ifcsdef{xpg@save@thesection}{% + \let\thesection\xpg@save@thesection% + }{}% + \ifcsdef{xpg@save@theequation}{% + \let\theequation\xpg@save@theequation% + }{}% + \ifcsdef{xpg@save@thefigure}{% + \let\thefigure\xpg@save@thefigure% + }{}% + \ifcsdef{xpg@save@thetable}{% + \let\thetable\xpg@save@thetable% + }{}% + \ifcsdef{xpg@save@thesubsection}{% + \let\thesubsection\xpg@save@thesubsection% + \ifcsdef{xpg@save@thesubsubsection}{% + \let\thesubsubsection\xpg@save@thesubsubsection% + }{}% + }{}% + \ifcsdef{xpg@save@theparagraph}{% + \let\theparagraph\xpg@save@theparagraph% + }{}% + \ifcsdef{xpg@save@thesubparagraph}{% + \let\thesubparagraph\xpg@save@thesubparagraph% + }{}% +} + +\def\blockextras@persian{% + \ifpersian@customsep + \ifxetex + \persian@xetex@capsformat + \else + \persian@luatex@capsformat + \fi + \fi +} +% \def\noextras@persian{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase + \ifpersian@customsep + \ifxetex + \nopersian@xetex@capsformat + \else + \nopersian@luatex@capsformat + \fi + \fi } + % \end{macrocode} % \iffalse % @@ -22934,7 +23563,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \subsection{gloss-piedmontese.ldf} % \begin{macrocode} % !TEX encoding = UTF-8 Unicode -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for Piedmontese] \makeatletter @@ -22967,7 +23596,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\piedmontese@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{piedmontese}% \declare@shorthand{piedmontese}{"}{% \relax\ifmmode @@ -22997,7 +23626,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \xpgpms@@next} \def\nopiedmontese@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \@namedef{captions\CurrentOption}{% \def\prefacename{Prefassion}% @@ -23064,7 +23693,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-polish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-polish.ldf}[polyglossia: module for Polish] @@ -23129,7 +23758,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\polish@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{polish}% \declare@shorthand{polish}{"=}{\polish@splhyphen}% \declare@shorthand{polish}{""}{\hskip\z@skip}% @@ -23148,7 +23777,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\nopolish@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \ifxetex @@ -23322,7 +23951,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-polutonikogreek.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-polutonikogreek.ldf}[polyglossia: module for polytonic Greek] @@ -23339,7 +23968,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-portuges.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-portuges.ldf}[polyglossia: module for Portuguese] @@ -23359,7 +23988,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-portuguese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-portuguese.ldf}[polyglossia: module for Portuguese] @@ -23447,7 +24076,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\portuguese@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{portuguese}% \declare@shorthand{portuguese}{"=}{\portuguese@splhyphen}% \declare@shorthand{portuguese}{""}{\hskip\z@skip}% @@ -23464,7 +24093,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\noportuguese@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \ifxetex @@ -23589,7 +24218,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-punjabi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % % UTF-8 strings kindly provided by % Arvinder Singh Kang, <17-11-2022> @@ -23688,18 +24317,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \space\punjabinumber\year}% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase - -\def\blockextras@punjabi{% - \def\MakeUppercase##1{##1}% -} - -\def\noextras@punjabi{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase% -} - % \end{macrocode} % \iffalse % @@ -23709,7 +24326,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-romanian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-romanian.ldf}[polyglossia: module for Romanian] @@ -23768,7 +24385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-romansh.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-romansh.ldf}[polyglossia: module for Romansh] \makeatletter @@ -23826,7 +24443,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-russian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-russian.ldf}[polyglossia: module for Russian] @@ -23934,7 +24551,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\russian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{russian}% % \declare@shorthand{russian}{"`}{„}% % \declare@shorthand{russian}{"'}{“}% @@ -23972,7 +24589,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\norussian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } @@ -24225,7 +24842,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-sami.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-sami.ldf}[polyglossia: module for Sami] @@ -24329,7 +24946,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-samin.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-samin.ldf}[polyglossia: module for Northern Sami] @@ -24347,7 +24964,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-sanskrit.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-sanskrit.ldf}[polyglossia: module for Sanskrit] @@ -24368,55 +24985,55 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % BCP-47 compliant aliases \setlanguagealias*{sanskrit}{sa} -\setlanguagealias*[script=Devanagari]{sanskrit}{sa-Deva} -\setlanguagealias*[script=Malayalam]{sanskrit}{sa-Mlym} -\setlanguagealias*[script=Telugu]{sanskrit}{sa-Telu} -\setlanguagealias*[script=Bengali]{sanskrit}{sa-Beng} -\setlanguagealias*[script=Kannada]{sanskrit}{sa-Knda} -\setlanguagealias*[script=Gujarati]{sanskrit}{sa-Gujr} -\setlanguagealias*[script=Latin]{sanskrit}{sa-Latn} - -\define@key{sanskrit}{Script}[Devanagari]{% +\setlanguagealias*[script=devanagari]{sanskrit}{sa-Deva} +\setlanguagealias*[script=malayalam]{sanskrit}{sa-Mlym} +\setlanguagealias*[script=telugu]{sanskrit}{sa-Telu} +\setlanguagealias*[script=bengali]{sanskrit}{sa-Beng} +\setlanguagealias*[script=kannada]{sanskrit}{sa-Knda} +\setlanguagealias*[script=gujarati]{sanskrit}{sa-Gujr} +\setlanguagealias*[script=latin]{sanskrit}{sa-Latn} + +\define@key{sanskrit}{Script}[devanagari]{% \ifcsdef{fontsetup@sanskrit@#1}% {\csname fontsetup@sanskrit@#1\endcsname}% {\xpg@error{`#1' is not a valid script for Sanskrit}% }% } -\define@key{sanskrit}{script}[Devanagari]{\setkeys{sanskrit}{Script=#1}} +\define@key{sanskrit}{script}[devanagari]{\setkeys{sanskrit}{Script=#1}} -\def\fontsetup@sanskrit@Devanagari{% +\def\fontsetup@sanskrit@devanagari{% \SetLanguageKeys{sanskrit}{scripttag=deva,script=Devanagari,bcp47=sa-Deva,bcp47-language=sa,bcp47-script=Deva,bcp47-casing=sa-Deva} \xpg@fontsetup@nonlatin{sanskrit}} -\def\fontsetup@sanskrit@Gujarati{% +\def\fontsetup@sanskrit@gujarati{% \SetLanguageKeys{sanskrit}{scripttag=gujr,script=Gujarati,bcp47=sa-Gujr,bcp47-language=sa,bcp47-script=Gujr,bcp47-casing=sa-Gujr} \xpg@fontsetup@nonlatin{sanskrit}} -\def\fontsetup@sanskrit@Malayalam{% +\def\fontsetup@sanskrit@malayalam{% \SetLanguageKeys{sanskrit}{scripttag=mlym,script=Malayalam,bcp47=sa-Mlym,bcp47-language=sa,bcp47-script=Mlym,bcp47-casing=sa-Mlym} \xpg@fontsetup@nonlatin{sanskrit}} -\def\fontsetup@sanskrit@Bengali{% +\def\fontsetup@sanskrit@bengali{% \SetLanguageKeys{sanskrit}{scripttag=beng,script=Bengali,bcp47=sa-Beng,bcp47-language=sa,bcp47-script=Beng,bcp47-casing=sa-Beng} \xpg@fontsetup@nonlatin{sanskrit}} -\def\fontsetup@sanskrit@Kannada{% +\def\fontsetup@sanskrit@kannada{% \SetLanguageKeys{sanskrit}{scripttag=knda,script=Kannada,bcp47=sa-Knda,bcp47-language=sa,bcp47-script=Knda,bcp47-casing=sa-Knda} \xpg@fontsetup@nonlatin{sanskrit}} -\def\fontsetup@sanskrit@Telugu{% +\def\fontsetup@sanskrit@telugu{% \SetLanguageKeys{sanskrit}{scripttag=telu,script=Telugu,bcp47=sa-Relu,bcp47-language=sa,bcp47-script=Relu,bcp47-casing=sa-Relu} \xpg@fontsetup@nonlatin{sanskrit}} -\def\fontsetup@sanskrit@Latin{% +\def\fontsetup@sanskrit@latin{% \SetLanguageKeys{sanskrit}{scripttag=latn,script=Latin,bcp47=sa-Latn,bcp47-language=sa,bcp47-script=Latn,bcp47-casing=sa-Latn} \xpg@fontsetup@latin{sanskrit}} \newif\ifsanskrit@devanagari@numerals \sanskrit@devanagari@numeralstrue -\define@choicekey*+{sanskrit}{numerals}[\xpg@val\xpg@nr]{Devanagari,Western}[Devanagari]{% +\define@choicekey*+{sanskrit}{numerals}[\xpg@val\xpg@nr]{devanagari,western}[devanagari]{% \ifcase\xpg@nr\relax - % Devanagari: + % devanagari: \sanskrit@devanagari@numeralstrue% \SetLanguageKeys{sanskrit}{bcp47-extension-u=nu-deva}% \or - % Western: + % western: \sanskrit@devanagari@numeralsfalse% \SetLanguageKeys{sanskrit}{bcp47-extension-u=nu-latn}% \fi @@ -24425,7 +25042,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % Register default options -\xpg@initialize@gloss@options{sanskrit}{script=Devanagari,numerals=Devanagari} +\xpg@initialize@gloss@options{sanskrit}{script=devanagari,numerals=devanagari} % Use \providecommand here as the ldf file might % be reloaded via BCP. @@ -24506,7 +25123,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-scottish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-scottish.ldf}[polyglossia: module for Scottish Gaelic] @@ -24524,7 +25141,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-serbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-serbian.ldf}[polyglossia: module for Serbian] %TODO split into gloss-serbiancyr.ldf and gloss-serbianlat.ldf @@ -24537,6 +25154,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \PolyglossiaSetup{serbian}{ bcp47=sr-Latn, bcp47-language=sr, + bcp47-variant=ekavsk, bcp47-script=Latn, bcp47-casing=sr-Latn, langtag=SRB, @@ -24553,11 +25171,11 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % BCP-47 compliant aliases \setlanguagealias*{serbian}{sr} -\setlanguagealias*[script=Cyrillic]{serbian}{sr-Cyrl} -\setlanguagealias*[script=Latin]{serbian}{sr-Latn} +\setlanguagealias*[script=cyrillic]{serbian}{sr-Cyrl} +\setlanguagealias*[script=latin]{serbian}{sr-Latn} % Babel aliases -\setlanguagealias[script=Cyrillic]{serbian}{serbianc} +\setlanguagealias[script=cyrillic]{serbian}{serbianc} \ifluatex \RequirePackage{luavlna} @@ -24568,20 +25186,32 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \ifcase\xpg@nr\relax % cyrillic: \@serbian@cyrtrue - \SetLanguageKeys{serbian}{scripttag=cyrl,script=Cyrillic,babelname=serbianc,bcp47=sr-Cyrl,bcp47-language=sr,bcp47-script=Cyrl,bcp47-casing=sr-Cyrl} \xpg@fontsetup@nonlatin{serbian}% \or % latin: \@serbian@cyrfalse - \SetLanguageKeys{serbian}{scripttag=latn,script=Latin,babelname=serbian,bcp47=sr-Latn,bcp47-language=sr,bcp47-script=Latn,bcp47-casing=sr-Latn} \xpg@fontsetup@latin{serbian}% %TODO \def\serbian@language{\language=\l@serbianlat}% % or should we use Croatian patterns as a fallback for the time being??? \fi + \serbian@set@languagekeys% \xpg@info{Option: Serbian, script=\xpg@val}% }{\xpg@warning{Unknown Serbian script `#1'}} -\define@key{serbian}{script}[Cyrillic]{\setkeys{serbian}{Script=#1}} +\define@key{serbian}{script}[cyrillic]{\setkeys{serbian}{Script=#1}} + +\newif\if@serbian@ijekavian +\define@choicekey*+{serbian}{variant}[\xpg@val\xpg@nr]{ekavian,ijekavian}[ekavian]{% + \ifcase\xpg@nr\relax + % ekavian: + \@serbian@ijekavianfalse% + \or + % ijekavian: + \@serbian@ijekaviantrue% + \fi + \serbian@set@languagekeys% + \xpg@info{Option: Serbian, variant=\xpg@val}% +}{\xpg@warning{Unknown Serbian variant `#1'}} \newif\ifcyrillic@numerals \newif\ifcyrillic@asbuk@numerals @@ -24612,10 +25242,28 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \define@boolkey{serbian}[serbian@]{splithyphens}[true]{} +\define@boolkey{serbian}[serbian@]{datei}[true]{} + +\def\serbian@set@languagekeys{% + \if@serbian@cyr + \if@serbian@ijekavian + \SetLanguageKeys{serbian}{scripttag=cyrl,script=Cyrillic,babelname=serbianc,bcp47=sr-Cyrl-ijekavsk,bcp47-language=sr,bcp47-script=Cyrl,bcp47-variant=ijekavsk,bcp47-casing=sr-Cyrl} + \else + \SetLanguageKeys{serbian}{scripttag=cyrl,script=Cyrillic,babelname=serbianc,bcp47=sr-Cyrl,bcp47-language=sr,bcp47-script=Cyrl,bcp47-variant=ekavsk,bcp47-casing=sr-Cyrl} + \fi + \else + \if@serbian@ijekavian + \SetLanguageKeys{serbian}{scripttag=latn,script=Latin,babelname=serbian,bcp47=sr-Latn-ijekavsk,bcp47-language=sr,bcp47-script=Latn,bcp47-variant=ijekavsk,bcp47-casing=sr-Latn} + \else + \SetLanguageKeys{serbian}{scripttag=latn,script=Latin,babelname=serbian,bcp47=sr-Latn,bcp47-language=sr,bcp47-script=Latn,bcp47-variant=ekavsk,bcp47-casing=sr-Latn} + \fi + \fi% +} + \setkeys{serbian}{Script,numerals} % Register default options -\xpg@initialize@gloss@options{serbian}{script=Cyrillic,numerals=arabic,splithyphens=true} +\xpg@initialize@gloss@options{serbian}{script=cyrillic,numerals=arabic,splithyphens=true} \def\captionsserbian{% \if@serbian@cyr\captionsserbian@cyr\else\captionsserbian@lat\fi @@ -24652,13 +25300,51 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\headtoname{Prima}% \def\proofname{Dokaz}% \def\glossaryname{Rečnik nepoznatih reči}% + \if@serbian@ijekavian% + \def\partname{Dio}% + \def\glossaryname{Rječnik nepoznatih riječi}% + \fi } -\def\dateserbian@lat{% - \def\today{\number\day .~\ifcase\month\or - januar\or februar\or mart\or april\or maj\or - jun\or jul\or avgust\or septembar\or oktobar\or novembar\or - decembar\fi \space \number\year.}% +\def\month@serbian@lat{% + \ifcase\month\or + januar\or + februar\or + mart\or + april\or + maj\or + \ifserbian@datei juni\else jun\fi\or + \ifserbian@datei juli\else jul\fi\or + avgust\or + septembar\or + oktobar\or + novembar\or + decembar% + \fi% +}% + +\def\month@serbian@lat@gen{% + \ifcase\month\or + januara\or + februara\or + marta\or + aprila\or + maja\or + juna\or + jula\or + avgusta\or + septembra\or + oktobra\or + novembra\or + decembra% + \fi% +}% + +\def\dateserbian@lat{% + \def\today{\number\day.~\month@serbian@lat\ \number\year\@ifstar{}{.}}% + \def\todayRoman{\number\day.~\@Roman\month~\number\year\@ifstar{}{.}}% + \def\todayGen{\number\day.~\month@serbian@lat@gen\ \number\year\@ifstar{}{.}}% + \def\todayArabic{\number\day.~\number\month.~\number\year\@ifstar{}{.}}% } \def\captionsserbian@cyr{% @@ -24687,13 +25373,51 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\headtoname{Прима}% \def\proofname{Доказ}% \def\glossaryname{Речник непознатих речи}% + \if@serbian@ijekavian% + \def\partname{Дио}% + \def\glossaryname{Рјечник непознатих ријечи}% + \fi } -\def\dateserbian@cyr{% - \def\today{\number\day .~\ifcase\month\or - јануар\or фебруар\or март\or април\or мај\or - јун\or јул\or август\or септембар\or октобар\or новембар\or - децембар\fi \space \number\year.}% +\def\month@serbian@cyr{% + \ifcase\month\or + јануар\or + фебруар\or + март\or + април\or + мај\or + \ifserbian@datei јуни\else јун\fi\or + \ifserbian@datei јули\else јул\fi\or + август\or + септембар\or + октобар\or + новембар\or + децембар% + \fi% +}% + +\def\month@serbian@cyr@gen{% + \ifcase\month\or + јануара\or + фебруара\or + марта\or + априла\or + маја\or + јуна\or + јула\or + августа\or + септембра\or + октобра\or + новембра\or + децембра% + \fi% +}% + +\def\dateserbian@cyr{% + \def\today{\number\day.~\month@serbian@cyr\ \number\year\@ifstar{}{.}}% + \def\todayRoman{\number\day.~\@Roman\month~\number\year\@ifstar{}{.}}% + \def\todayGen{\number\day.~\month@serbian@cyr@gen\ \number\year\@ifstar{}{.}}% + \def\todayArabic{\number\day.~\number\month.~\number\year\@ifstar{}{.}}% } % Use \providecommand here as the ldf file might @@ -24839,7 +25563,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-serbianc.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-serbianc.ldf}[polyglossia: module for Serbian (cyrillic)] @@ -24856,7 +25580,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-slovak.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak] @@ -24920,7 +25644,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\slovak@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{slovak}% \declare@shorthand{slovak}{"=}{\slovak@splhyphen}% \declare@shorthand{slovak}{""}{\hskip\z@skip}% @@ -24939,7 +25663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\noslovak@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \ifxetex @@ -25122,7 +25846,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-slovene.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-slovene.ldf}[polyglossia: module for Slovenian] @@ -25139,7 +25863,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-slovenian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-slovenian.ldf}[polyglossia: module for Slovenian] @@ -25231,7 +25955,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-sorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-sorbian.ldf}[polyglossia: module for Sorbian] @@ -25422,7 +26146,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-spanish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-spanish.ldf}[polyglossia: module for Spanish] @@ -25662,7 +26386,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-spanishmx.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-spanishmx.ldf}[polyglossia: module for Mexican Spanish] @@ -25679,7 +26403,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-swedish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-swedish.ldf}[polyglossia: module for Swedish] @@ -25744,7 +26468,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-swissgerman.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-swissgerman.ldf}[polyglossia: module for Swiss German (old spelling)] @@ -25761,7 +26485,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-syriac.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac] @@ -25788,21 +26512,28 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\syriacnumber#1{\@syriacnumber{#1}}% \newif\if@eastern@numerals -\def\tmp@eastern{eastern} -\def\tmp@abjad{abjad} -\define@key{syriac}{numerals}[western]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@abjad - \let\syriacnumber\abjadsyriac - \else - \ifx\@tmpa\tmp@eastern - \@eastern@numeralstrue - \SetLanguageKeys{syriac}{bcp47-extension-u=nu-syrc}% - \else - \@eastern@numeralsfalse - \SetLanguageKeys{syriac}{bcp47-extension-u=nu-latn}% - \fi - \fi} +\define@choicekey*+{syriac}{numerals}[\xpg@val\xpg@nr]{eastern,western,abjad}[eastern]{% + \ifcase\xpg@nr\relax + % eastern: + \@eastern@numeralstrue + \SetLanguageKeys{syriac}{bcp47-extension-u=nu-syrc}% + \or + % western: + \@eastern@numeralsfalse + \SetLanguageKeys{syriac}{bcp47-extension-u=nu-latn}% + \or + % abjad: + \let\syriacnumber\abjadsyriac% + \fi + \xpg@info{Option: Syriac, numerals=\xpg@val}% +}{\xpg@warning{Unknown Syriac numerals option `#1'}} + +\newif\ifsyriac@customsep\syriac@customsepfalse +\def\xpg@sepmark{} +\define@key{syriac}{sectionsep}[.]{% + \syriac@customseptrue% + \gdef\xpg@sepmark{#1}% +} % Register default options \xpg@initialize@gloss@options{syriac}{numerals=western} @@ -25890,10 +26621,10 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages %%% else we try \arabicfont if defined (and give a warning), %%% else we fall back to the Western numerals. \xpg@if@char@available{0661}% - {\protect\arabicdigits{\number#1}}% - {\arabicdigits{\number#1} + {\@ensure@LTR{\protect\arabicdigits{\number#1}}}% + {\@ensure@LTR{\arabicdigits{\number#1}} \ifcsdef{arabicfont}% - {\protect\arabicdigits{\number#1}% + {\@ensure@LTR{\protect\arabicdigits{\number#1}}% \xpg@warning{You have specified the option numerals=eastern for Syriac, but the Syriac font does not contain the appropriate glyphs: I am using \string\arabicfont instead}}% {\number#1%%% <---changed from \RL{\protect\reset@font\protect\number#1}% @@ -25930,16 +26661,92 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\@arabic\xpg@save@arabic% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase +\def\syriac@xetex@capsformat{% + \let\xpg@save@sepmark\@SepMark% + \SepMark{\xpg@sepmark} +} -\def\blockextras@syriac{% - \def\MakeUppercase##1{##1}% +\def\nosyriac@xetex@capsformat{% + \ifcsdef{xpg@save@sepmark}{% + \SepMark{\xpg@save@sepmark} + }{}% +} + +\def\syriac@luatex@capsformat{% + % + % change chapter and part headings + \ifsyriac@customsep + \ifcsdef{chapter}{% + \let\xpg@save@thesection\thesection% + \renewcommand*\thesection{\thechapter\xpg@sepmark\@arabic\c@section} + \let\xpg@save@theequation\theequation% + \renewcommand*\theequation{% + \ifnum \c@chapter>\z@ \thechapter\xpg@sepmark\fi\@arabic\c@equation} + \let\xpg@save@thefigure\thefigure% + \renewcommand*\thefigure{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@figure} + \let\xpg@save@thetable\thetable% + \renewcommand*\thetable{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@table} + }{} + \let\xpg@save@thesubsection\thesubsection% + \renewcommand\thesubsection + {\thesection\xpg@sepmark\@arabic\c@subsection} + \let\xpg@save@thesubsubsection\thesubsubsection% + \renewcommand\thesubsubsection{\thesubsection\xpg@sepmark\@arabic\c@subsubsection} + \let\xpg@save@theparagraph\theparagraph% + \renewcommand\theparagraph + {\thesubsubsection\xpg@sepmark\@arabic\c@paragraph} + \let\xpg@save@thesubparagraph\thesubparagraph% + \renewcommand\thesubparagraph{\theparagraph\xpg@sepmark\@arabic\c@subparagraph} + \fi% (end \ifsyriac@customsep) +} + +\def\nosyriac@luatex@capsformat{% + \ifcsdef{xpg@save@thesection}{% + \let\thesection\xpg@save@thesection% + }{}% + \ifcsdef{xpg@save@theequation}{% + \let\theequation\xpg@save@theequation% + }{}% + \ifcsdef{xpg@save@thefigure}{% + \let\thefigure\xpg@save@thefigure% + }{}% + \ifcsdef{xpg@save@thetable}{% + \let\thetable\xpg@save@thetable% + }{}% + \ifcsdef{xpg@save@thesubsection}{% + \let\thesubsection\xpg@save@thesubsection% + \ifcsdef{xpg@save@thesubsubsection}{% + \let\thesubsubsection\xpg@save@thesubsubsection% + }{}% + }{}% + \ifcsdef{xpg@save@theparagraph}{% + \let\theparagraph\xpg@save@theparagraph% + }{}% + \ifcsdef{xpg@save@thesubparagraph}{% + \let\thesubparagraph\xpg@save@thesubparagraph% + }{}% } +\def\blockextras@syriac{% + \ifsyriac@customsep + \ifxetex + \syriac@xetex@capsformat + \else + \syriac@luatex@capsformat + \fi + \fi +} +% \def\noextras@syriac{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase% + \ifsyriac@customsep + \ifxetex + \nosyriac@xetex@capsformat + \else + \nosyriac@luatex@capsformat + \fi + \fi } % \end{macrocode} @@ -25951,7 +26758,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-tamil.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-tamil.ldf}[polyglossia: module for Tamil] @@ -26021,7 +26828,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-telugu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-telugu.ldf}[polyglossia: module for Telugu] @@ -26094,7 +26901,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-thai.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-thai.ldf}[polyglossia: module for Thai] %% This is partly based on thai-latex for Babel: @@ -26252,7 +27059,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-tibetan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for Tibetan] %% Copyright 2013 Elie Roux @@ -26478,7 +27285,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-turkish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-turkish.ldf}[polyglossia: module for Turkish] \RequirePackage{hijrical} @@ -26596,7 +27403,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-turkmen.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-turkmen.ldf}[polyglossia: module for Turkmen] %% Translations provided by Nazar Annagurban @@ -26654,7 +27461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ug.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ug.ldf}[polyglossia: module for ug (Uyghur)] % BCP 47 tag for Uyghur @@ -26670,7 +27477,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ukrainian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-ukrainian.ldf}[polyglossia: module for Ukrainian] % Strings taken from Babel @@ -26745,7 +27552,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages }{} \def\ukrainian@shorthands{% - \bbl@activate{"}% + \xpg@activate@shorthands% \def\language@group{ukrainian}% % \declare@shorthand{ukrainian}{"`}{„}% % \declare@shorthand{ukrainian}{"'}{“}% @@ -26785,7 +27592,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages } \def\noukrainian@shorthands{% - \@ifundefined{initiate@active@char}{}{\bbl@deactivate{"}}% + \xpg@deactivate@shorthands% } \def\captionsukrainian{% @@ -26969,7 +27776,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-uppersorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-uppersorbian.ldf}[polyglossia: module for Upper Sorbian] @@ -26986,7 +27793,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-urdu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % %%% Adapted from a file contributed by Kamal Abdali \ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu] @@ -27013,37 +27820,49 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \setlanguagealias*{urdu}{ur} \newif\if@western@numerals -\def\tmp@western{western} -\define@key{urdu}{numerals}[eastern]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@western - \@western@numeralstrue% - \SetLanguageKeys{urdu}{bcp47-extension-u=nu-latn}% - \else - \@western@numeralsfalse% - \SetLanguageKeys{urdu}{bcp47-extension-u=nu-arab}% - \fi} +\define@choicekey*+{urdu}{numerals}[\xpg@val\xpg@nr]{eastern,western}[eastern]{% + \ifcase\xpg@nr\relax + % eastern: + \@western@numeralsfalse% + \SetLanguageKeys{urdu}{bcp47-extension-u=nu-arab}% + \or + % western: + \@western@numeralstrue% + \SetLanguageKeys{urdu}{bcp47-extension-u=nu-latn}% + \fi + \xpg@info{Option: Urdu, numerals=\xpg@val}% +}{\xpg@warning{Unknown Urdu numerals option `#1'}} + +\newif\ifurdu@customsep\urdu@customsepfalse +\def\xpg@sepmark{} +\define@key{urdu}{sectionsep}[.]{% + \urdu@customseptrue% + \gdef\xpg@sepmark{#1}% +} -%% TODO USE boolkey instead !!! %this is needed for \abjad in arabicnumbers.sty -\def\tmp@true{true} -\define@key{urdu}{abjadjimnotail}[true]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@true\abjad@jim@notailtrue% +\define@boolkey{urdu}[urdu@]{abjadjimnotail}[true]{% + \ifurdu@abjadjimnotail + \abjad@jim@notailtrue% \else \abjad@jim@notailfalse - \fi} + \fi% +} \newif\if@hijrical -\def\tmp@hijri{hijri} -\define@key{urdu}{calendar}[gregorian]{% - \def\@tmpa{#1}% - \ifx\@tmpa\tmp@hijri\@hijricaltrue% - \else\@hijricalfalse% - \fi} +\define@choicekey*+{urdu}{calendar}[\xpg@val\xpg@nr]{gregorian,hijri}[gregorian]{% + \ifcase\xpg@nr\relax + % gregorian: + \@hijricalfalse + \or + % hijri: + \@hijricaltrue + \fi + \xpg@info{Option: Urdu, calendar=\xpg@val}% +}{\xpg@warning{Unknown Urdu calendar option `#1'}} \define@key{urdu}{hijricorrection}[0]{% - \gdef\@hijri@correction{#1}}% + \gdef\urdu@hijri@correction{#1}}% % This should set the defaults \setkeys{urdu}{calendar,numerals,hijricorrection} @@ -27087,7 +27906,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \def\dateurdu{% \def\today{% \if@hijrical - \Hijritoday[\@hijri@correction]% + \Hijritoday[\urdu@hijri@correction]% \else \@ensure@RTL{\urdunumber\day؍\space\urdugregmonth{\month}% \space\urdunumber\year}% @@ -27099,7 +27918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \number#1% \else %%FIXME use farsidigits instead??? - \protect\arabicdigits{\number#1}% + \@ensure@LTR{\protect\arabicdigits{\number#1}}% \fi} \def\urdu@numbers{% @@ -27127,16 +27946,92 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \let\@arabic\xpg@save@arabic% } -% Save original \MakeUppercase definition -\let\xpg@save@MakeUppercase\MakeUppercase +\def\urdu@xetex@capsformat{% + \let\xpg@save@sepmark\@SepMark% + \SepMark{\xpg@sepmark} +} -\def\blockextras@urdu{% - \def\MakeUppercase##1{##1}% +\def\nourdu@xetex@capsformat{% + \ifcsdef{xpg@save@sepmark}{% + \SepMark{\xpg@save@sepmark} + }{}% } +\def\urdu@luatex@capsformat{% + % + % change chapter and part headings + \ifurdu@customsep + \ifcsdef{chapter}{% + \let\xpg@save@thesection\thesection% + \renewcommand*\thesection{\thechapter\xpg@sepmark\@arabic\c@section} + \let\xpg@save@theequation\theequation% + \renewcommand*\theequation{% + \ifnum \c@chapter>\z@ \thechapter\xpg@sepmark\fi\@arabic\c@equation} + \let\xpg@save@thefigure\thefigure% + \renewcommand*\thefigure{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@figure} + \let\xpg@save@thetable\thetable% + \renewcommand*\thetable{% + \ifnum\c@chapter>\z@\thechapter\xpg@sepmark\fi\@arabic\c@table} + }{} + \let\xpg@save@thesubsection\thesubsection% + \renewcommand\thesubsection + {\thesection\xpg@sepmark\@arabic\c@subsection} + \let\xpg@save@thesubsubsection\thesubsubsection% + \renewcommand\thesubsubsection{\thesubsection\xpg@sepmark\@arabic\c@subsubsection} + \let\xpg@save@theparagraph\theparagraph% + \renewcommand\theparagraph + {\thesubsubsection\xpg@sepmark\@arabic\c@paragraph} + \let\xpg@save@thesubparagraph\thesubparagraph% + \renewcommand\thesubparagraph{\theparagraph\xpg@sepmark\@arabic\c@subparagraph} + \fi% (end \ifurdu@customsep) +} + +\def\nourdu@luatex@capsformat{% + \ifcsdef{xpg@save@thesection}{% + \let\thesection\xpg@save@thesection% + }{}% + \ifcsdef{xpg@save@theequation}{% + \let\theequation\xpg@save@theequation% + }{}% + \ifcsdef{xpg@save@thefigure}{% + \let\thefigure\xpg@save@thefigure% + }{}% + \ifcsdef{xpg@save@thetable}{% + \let\thetable\xpg@save@thetable% + }{}% + \ifcsdef{xpg@save@thesubsection}{% + \let\thesubsection\xpg@save@thesubsection% + \ifcsdef{xpg@save@thesubsubsection}{% + \let\thesubsubsection\xpg@save@thesubsubsection% + }{}% + }{}% + \ifcsdef{xpg@save@theparagraph}{% + \let\theparagraph\xpg@save@theparagraph% + }{}% + \ifcsdef{xpg@save@thesubparagraph}{% + \let\thesubparagraph\xpg@save@thesubparagraph% + }{}% +} + +\def\blockextras@urdu{% + \ifurdu@customsep + \ifxetex + \urdu@xetex@capsformat + \else + \urdu@luatex@capsformat + \fi + \fi +} +% \def\noextras@urdu{% - % restore original \MakeUppercase definition - \let\MakeUppercase\xpg@save@MakeUppercase% + \ifurdu@customsep + \ifxetex + \nourdu@xetex@capsformat + \else + \nourdu@luatex@capsformat + \fi + \fi } % \end{macrocode} @@ -27148,7 +28043,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-usorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-usorbian.ldf}[polyglossia: module for Upper Sorbian] @@ -27166,7 +28061,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-uyghur.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-uyghur.ldf}[polyglossia: module for Uyghur] %% Translations provided by Osman Tursun (Github Account: neouyghur) @@ -27607,7 +28502,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-vietnamese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-vietnamese.ldf}[polyglossia: module for Vietnamese] %% Strings contributed by Daniel Owens < dhowens . pmbx . net > @@ -27666,7 +28561,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-welsh.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-welsh.ldf}[polyglossia: module for Welsh] @@ -27766,7 +28661,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-zh-CN.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-zh-CN.ldf}[polyglossia: module for zh-CN (Chinese)] @@ -27783,7 +28678,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-zh-TW.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.62 -- 2023/04/22) +% Language definition file (part of polyglossia v1.63 -- 2023/06/10) % \ProvidesFile{gloss-zh-TW.ldf}[polyglossia: module for zh-TW (Chinese)] @@ -27952,7 +28847,7 @@ U+0039 <> U+0E59 ; % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia-punct') @@ -28019,7 +28914,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct % \begin{macrocode} -- -- polyglossia-korean.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- local glyph_id = node.id"glyph" @@ -28637,7 +29532,7 @@ prepend_to_callback ("hpack_filter", % \begin{macrocode} -- -- polyglossia-latin.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia-punct') @@ -28692,7 +29587,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia') -- just in case... @@ -29060,7 +29955,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters % \begin{macrocode} -- -- polyglossia-sanskrit.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia-punct') @@ -29110,7 +30005,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct % \begin{macrocode} -- -- polyglossia-tibt.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- require('polyglossia') -- just in case... @@ -29213,7 +30108,7 @@ polyglossia.desactivate_tibt_eol = desactivate % \begin{macrocode} -- -- polyglossia.lua --- part of polyglossia v1.62 -- 2023/04/22 +-- part of polyglossia v1.63 -- 2023/06/10 -- local module_name = "polyglossia" diff --git a/macros/unicodetex/latex/polyglossia/polyglossia.pdf b/macros/unicodetex/latex/polyglossia/polyglossia.pdf index 2d3a9f0ea0..449634bb92 100644 Binary files a/macros/unicodetex/latex/polyglossia/polyglossia.pdf and b/macros/unicodetex/latex/polyglossia/polyglossia.pdf differ -- cgit v1.2.3