summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-18 03:01:45 +0000
committerNorbert Preining <norbert@preining.info>2024-02-18 03:01:45 +0000
commita3b386e8476527e1b87ec71f7156cd7751f8f325 (patch)
treecd6442374d94f7e42f3d8e2c018a448aacedb846 /macros
parent8886ad587a305595ce543a74b0fc779f0732a6e9 (diff)
CTAN sync 202402180301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/codedescribe/README.md5
-rw-r--r--macros/latex/contrib/codedescribe/doc/codedescribe.pdfbin252057 -> 252555 bytes
-rw-r--r--macros/latex/contrib/codedescribe/doc/codedescribe.tex17
-rw-r--r--macros/latex/contrib/codedescribe/latex/codedescribe.sty66
-rw-r--r--macros/latex/contrib/codedescribe/latex/codelisting.sty26
-rw-r--r--macros/luatex/latex/novel/README.md20
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-example.pdf283
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-example.tex6
-rw-r--r--macros/luatex/latex/novel/doc/extras/novel-extras-README.html2
-rw-r--r--macros/luatex/latex/novel/doc/novel-documentation.html33
-rw-r--r--macros/luatex/latex/novel/doc/novel.pdf76
-rw-r--r--macros/luatex/latex/novel/doc/novel.tex4
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-DropCap.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-FileData.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Fonts.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Footnotes.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Images.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-JC200103.clo2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-PostLayout.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Sandbox.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-TextMacros.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-microtype.cfg2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-pdfx.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-xmppacket.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel.cls67
-rw-r--r--macros/unicodetex/latex/polyglossia/README.md6
-rw-r--r--macros/unicodetex/latex/polyglossia/polyglossia.dtx2054
-rw-r--r--macros/unicodetex/latex/polyglossia/polyglossia.pdfbin374493 -> 381896 bytes
34 files changed, 1401 insertions, 1300 deletions
diff --git a/macros/latex/contrib/codedescribe/README.md b/macros/latex/contrib/codedescribe/README.md
index 218cb14202..e4fb229aa1 100644
--- a/macros/latex/contrib/codedescribe/README.md
+++ b/macros/latex/contrib/codedescribe/README.md
@@ -87,7 +87,10 @@ The Current Maintainer of this work is Alceu Frigeri
## Changelog
-* Version 1.3 (this)
+* Version 1.4 (this)
+ - The 'new', 'update' and 'info' keys can, now, be used multiple times when declaring a codedescribe environment. (see documentation).
+
+* Version 1.3
- Added \tsresult, a command to just show the result of a stored code (codelisting specific).
diff --git a/macros/latex/contrib/codedescribe/doc/codedescribe.pdf b/macros/latex/contrib/codedescribe/doc/codedescribe.pdf
index 45271b09d6..d2f654f7f7 100644
--- a/macros/latex/contrib/codedescribe/doc/codedescribe.pdf
+++ b/macros/latex/contrib/codedescribe/doc/codedescribe.pdf
Binary files differ
diff --git a/macros/latex/contrib/codedescribe/doc/codedescribe.tex b/macros/latex/contrib/codedescribe/doc/codedescribe.tex
index 94e9dd8ba4..519c48eb58 100644
--- a/macros/latex/contrib/codedescribe/doc/codedescribe.tex
+++ b/macros/latex/contrib/codedescribe/doc/codedescribe.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.3} (2023/05/16)
+%% This is version {1.4} {2024/02/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/codedescribe
@@ -96,7 +96,7 @@ All \tsobj[code]{\tscode,\tsdemo} commands create a local group in which the \t
\end{tsremark}
\end{codedescribe}
-\begin{codedescribe}[code,new=2024-01-06]{\tscode*,\tsdemo*,\tsresult*}
+\begin{codedescribe}[code,update=2024/01/06]{\tscode*,\tsdemo*,\tsresult*}
\begin{codesyntax}%
\tsmacro{\tscode*}[code-keys]{st-name}
\tsmacro{\tsdemo*}[code-keys]{st-name}
@@ -106,7 +106,7 @@ All \tsobj[code]{\tscode,\tsdemo} commands create a local group in which the \t
\tsmacro{\tsdemo*}{} first typesets \tsobj[meta]{st-name}, as above, then it \emph{executes} said code. The non-start versions place them side-by-side, whilst the star versions places one following the other.
-(new) \tsmacro{\tsresult*}{} only \emph{executes} said code. The non-start versions centers it and use just half of the base line, whilst the star versions uses the full text width.
+(new 2024/01/06) \tsmacro{\tsresult*}{} only \emph{executes} said code. The non-start versions centers it and use just half of the base line, whilst the star versions uses the full text width.
\end{codedescribe}
@@ -261,7 +261,7 @@ Using \tsobj{\defgroupfmt} one can (re-)define custom \tsobj[arg]{format-groups}
\tsobj[keys]{color} was used in the list above just as a 'reminder' that a color is defined/associated with the given group.
\end{tsremark}
-\subsubsection{Object Types}
+\subsubsection{Object Types}\label{obj-types}
Using \tsobj{\defobjectfmt} one can (re-)define custom \tsobj[arg]{obj-types}.
Similarly, there is a set of predefined ones, as follow:
@@ -315,21 +315,20 @@ For instance, the many optional \tsobj[arg]{*arg} are defined as follow:
\subsection{Environments}
-\begin{codedescribe}[env,new=2023/05/01,update=2023/05/1,note={this is an example}]{codedescribe}
+\begin{codedescribe}[env,new=2023/05/01,update=2023/05/01,note={this is an example},update=2024/02/16]{codedescribe}
\begin{codesyntax}
\tsmacro{\begin{codedescribe}}[obj-type]{csv-list}
\ldots
\tsmacro{\end{codedescribe}}{}
\end{codesyntax}
-This is the main environment to describe \tsobj[env]{Macros, Functions, Variable, Environments, etc.} \tsobj[meta]{csv-list} is typeset in the margin. The optional \tsobj[oarg]{obj-type} defines the object-type format.
+This is the main environment to describe \tsobj[env]{Macros, Functions, Variable, Environments, etc.} \tsobj[meta]{csv-list} is typeset in the margin. The optional \tsobj[oarg]{obj-type} (see \ref{obj-type-def} and \ref{obj-types}) defines the object-type format.
\end{codedescribe}
\begin{tsremark}[Note~1:]
One can change the rule color with the key \tsobj[keys]{rulecolor}, for instance \tsmacro{\begin{codedescribe}[rulecolor=white]}{} will remove the rules.
\end{tsremark}
\begin{tsremark}[Note~2:]
-Besides that, one can use the keys \tsobj[keys]{new,update,note} to further customize it as: \tsverb{\begin{codedescribe} [new=2023/05/01, update=2023/05/1, note={this is an example}]}
+Besides that, one can use the keys \tsobj[keys]{new,update,note} to further customize it. (2024/02/16 these keys can also be used multiple times).
\end{tsremark}
-
\begin{tsremark}[Note~3:]
Finally, one can use \tsobj[key]{EXP,rEXP} to add a star \ding{72} or a hollow star \ding{73}, as per expl3/doc3 conventions (if expandable, restricted expandable or not).
\end{tsremark}
@@ -354,7 +353,7 @@ The \tsobj[env]{codesyntax} environment sets the fontsize and activates \tsmacro
For example, the code for \tsobj[env]{codedescribe} (entry above) is:
\begin{codestore}[demoD]
-\begin{codedescribe}[env,new=2023/05/01,update=2023/05/1,note={this is an example}]{codedescribe}
+\begin{codedescribe}[env,new=2023/05/01,update=2023/05/01,note={this is an example},update=2024/02/16]{codedescribe}
\begin{codesyntax}
\tsmacro{\begin{codedescribe}}[obj-type]{csv-list}
\ldots
diff --git a/macros/latex/contrib/codedescribe/latex/codedescribe.sty b/macros/latex/contrib/codedescribe/latex/codedescribe.sty
index 05058dc183..d807ba59b9 100644
--- a/macros/latex/contrib/codedescribe/latex/codedescribe.sty
+++ b/macros/latex/contrib/codedescribe/latex/codedescribe.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.3} {2024/01/06}
+%% This is version {1.4} {2024/02/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/codedescribe
@@ -22,8 +22,8 @@
\ProvidesExplPackage
{codedescribe}
- {2024/01/06}
- {1.3}
+ {2024/02/17}
+ {1.4}
{LaTeX Code Description/Documentation}
%%%%%%%
@@ -36,24 +36,16 @@
{
name .code:n = {codedescribe} ,
prefix .code:n = {codedesc} ,
- date .code:n = {2024/01/06} ,
- version .code:n = {1.3} ,
+ date .code:n = {2024/02/17} ,
+ version .code:n = {1.4} ,
description .code:n = {\LaTeX~Code~Description/Documentation}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
@@ -483,7 +475,8 @@
{
\bool_set_true:N \l__codedesc_descnotes_bool
\bool_set_true:N \l__codedesc_descdate_new_bool
- \tl_set:Nn \l__codedesc_descdate_new_tl {#1}
+% \tl_set:Nn \l__codedesc_descdate_new_tl {#1}
+ \seq_put_right:Nn \l__codedesc_descdate_new_seq {#1}
},
update.usage:n = general,
@@ -491,7 +484,8 @@
{
\bool_set_true:N \l__codedesc_descnotes_bool
\bool_set_true:N \l__codedesc_descdate_update_bool
- \tl_set:Nn \l__codedesc_descdate_update_tl {#1}
+ %\tl_set:Nn \l__codedesc_descdate_update_tl {#1}
+ \seq_put_right:Nn \l__codedesc_descdate_update_seq {#1}
},
note.usage:n = general,
@@ -499,7 +493,8 @@
{
\bool_set_true:N \l__codedesc_descnotes_bool
\bool_set_true:N \l__codedesc_sidenote_bool
- \tl_set:Nn \l__codedesc_sidenote_tl {#1}
+% \tl_set:Nn \l__codedesc_sidenote_tl {#1}
+ \seq_put_right:Nn \l__codedesc_sidenote_seq {#1}
},
unknown.usage:n = general,
@@ -667,12 +662,14 @@
\bool_new:N \l__codedesc_descnotes_bool
\bool_new:N \l__codedesc_descdate_new_bool
-\tl_new:N \l__codedesc_descdate_new_tl
+%\tl_new:N \l__codedesc_descdate_new_tl
+\seq_new:N \l__codedesc_descdate_new_seq
\bool_new:N \l__codedesc_descdate_update_bool
-\tl_new:N \l__codedesc_descdate_update_tl
+%\tl_new:N \l__codedesc_descdate_update_tl
+\seq_new:N \l__codedesc_descdate_update_seq
\bool_new:N \l__codedesc_sidenote_bool
-\tl_new:N \l__codedesc_sidenote_tl
-
+%\tl_new:N \l__codedesc_sidenote_tl
+\seq_new:N \l__codedesc_sidenote_seq
\coffin_new:N \__codedesc_describe_coffin
\dim_new:N \__codedesc_describelabel_wd_dim
@@ -723,12 +720,27 @@
\\[-2.5ex]
\__codedesc_hline:nnnn {\color{black}}{0.5ex}{0.25}{0.25ex}
+%%% \bool_if:nT {\l__codedesc_descdate_new_bool}
+%%% {\scriptsize\color{black}new:~ \l__codedesc_descdate_new_tl\\[-1ex]}
\bool_if:nT {\l__codedesc_descdate_new_bool}
- {\scriptsize\color{black}new:~ \l__codedesc_descdate_new_tl\\[-1ex]}
+ {
+ \seq_map_inline:Nn \l__codedesc_descdate_new_seq
+ {\scriptsize\color{black}new:~ ##1\\[-1ex]}
+ }
+%%% \bool_if:nT {\l__codedesc_descdate_update_bool}
+%%% {\scriptsize\color{black}update:~ \l__codedesc_descdate_update_tl\\[-1ex]}
\bool_if:nT {\l__codedesc_descdate_update_bool}
- {\scriptsize\color{black}update:~ \l__codedesc_descdate_update_tl\\[-1ex]}
+ {
+ \seq_map_inline:Nn \l__codedesc_descdate_update_seq
+ {\scriptsize\color{black}update:~ ##1\\[-1ex]}
+ }
+%%% \bool_if:nT {\l__codedesc_sidenote_bool}
+%%% {\scriptsize\color{black}NB:~ \l__codedesc_sidenote_tl\\[-1ex]}
\bool_if:nT {\l__codedesc_sidenote_bool}
- {\scriptsize\color{black}NB:~ \l__codedesc_sidenote_tl\\[-1ex]}
+ {
+ \seq_map_inline:Nn \l__codedesc_sidenote_seq
+ {\scriptsize\color{black}NB:~ ##1\\[-1ex]}
+ }
\\[-1.5ex]
}
{
diff --git a/macros/latex/contrib/codedescribe/latex/codelisting.sty b/macros/latex/contrib/codedescribe/latex/codelisting.sty
index fa54237963..19c7fe854b 100644
--- a/macros/latex/contrib/codedescribe/latex/codelisting.sty
+++ b/macros/latex/contrib/codedescribe/latex/codelisting.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.3} {2024/01/06}
+%% This is version {1.4} {2024/02/17}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/codedescribe
@@ -22,8 +22,8 @@
\ProvidesExplPackage
{codelisting}
- {2024/01/06}
- {1.3}
+ {2024/02/17}
+ {1.4}
{LaTeX Code Listing}
%%%%%%%
@@ -36,24 +36,16 @@
{
name .code:n = {codelisting} ,
prefix .code:n = {codelist} ,
- date .code:n = {2024/01/06} ,
- version .code:n = {1.3} ,
+ date .code:n = {2024/02/17} ,
+ version .code:n = {1.4} ,
description .code:n = {\LaTeX~Code~Listing}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
diff --git a/macros/luatex/latex/novel/README.md b/macros/luatex/latex/novel/README.md
index 81ab14b3e2..a95f9d4034 100644
--- a/macros/luatex/latex/novel/README.md
+++ b/macros/luatex/latex/novel/README.md
@@ -4,9 +4,19 @@ The `novel` document class is intended for popular fiction books,
printed to paper: murder mystery, historical romance, etc.
Special attention to the needs of print-on-demand.
-Due to changes in print technology over the years, much of `novel` code
-is now unnecessary. Also, it offers many rarely-used features that bloat
-the code and its documentation. If you have not already used `novel`,
-the simpler `novelette` document class might be better for your
-purpose. Expected 2024.
+Author: Robert Allgeyer. (Aptos, California, USA).
+
+Project Page: https://github.com/rallg/novel
+
+Contact: Username `rallg` at GitHub or tex.stackexchange.com.
+
+Licenses: Fonts are licensed Open Font License 1.1.
+TeX code is licensed Latex Project Public License 1.3c, with some code snippets
+attributed under terms of Creative Commons CC-BY-SA 4.0.
+
+Additional Information: Due to changes in print technology over the years,
+much of `novel` code is now unnecessary. Also, it offers many rarely-used
+features that bloat the code and its documentation.
+If you have not already used `novel`, the simpler `novelette` document class
+might be better for your purpose. Expected 2024.
diff --git a/macros/luatex/latex/novel/doc/extras/novel-example.pdf b/macros/luatex/latex/novel/doc/extras/novel-example.pdf
index 55fecc38d9..f1be15667f 100644
--- a/macros/luatex/latex/novel/doc/extras/novel-example.pdf
+++ b/macros/luatex/latex/novel/doc/extras/novel-example.pdf
@@ -8,10 +8,10 @@ stream
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/">
- <xmp:ModifyDate>2024-02-16T08:47:23-08:00</xmp:ModifyDate>
- <xmp:CreateDate>2024-02-16T08:47:23-08:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-02-16T20:48:20-08:00</xmp:ModifyDate>
+ <xmp:CreateDate>2024-02-16T20:48:20-08:00</xmp:CreateDate>
<xmp:CreatorTool>LuaLaTeX with novel and microtype</xmp:CreatorTool>
- <xmp:MetadataDate>2024-02-16T08:47:23-08:00</xmp:MetadataDate>
+ <xmp:MetadataDate>2024-02-16T20:48:20-08:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -30,7 +30,7 @@ stream
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
<xmpMM:DocumentID>uuid:fe9cc407-f91f-4054-81c7-abb5a9adb176</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:faaf12f1-b72a-4382-84d4-28a9277ad9e9</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:cec135d7-5db3-459b-85f9-8bc4d20095ab</xmpMM:InstanceID>
<xmpMM:RenditionClass>default</xmpMM:RenditionClass>
<xmpMM:VersionID>1</xmpMM:VersionID>
</rdf:Description>
@@ -268,7 +268,7 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ProcSet [ /PDF ] >>
endobj
30 0 obj
-<< /Length 7553 >>
+<< /Length 7815 >>
stream
0 g 0 G
0 g 0 G
@@ -283,24 +283,24 @@ BT
1.02 0 0 1 53.455 335.327 Tm [<0038004A00540049004A004F00550042004D0046>24<06DF0054>-256<00520056004200530055004600530054000F>-359<003400420045004D005A>58<000D>-258<002D00500053>7<0045>-255<0038004A005500490046004F0054>-256<005800420054>-256<004F00500055>-256<0050004F>-256<004A0055000D>-259<004900420057004A004F0048>]TJ
0.982 0 0 1 54 320.533 Tm [<0054004D004A00510051>-7<0046>-7<0045>-255<00500938>-256<0049004A0054>-255<0054004200450045004D0046>-256<0042004D0050004F0048>-255<005500490046>-255<00580042005A>60<000F>-341<0035004900420055>-255<005800420054>-256<0043>-10<0046>-7<00440042005600540046>-255<005500490046>-256<0058>8<004600420055004900460053>]TJ
1 0 0 1 53.58 305.738 Tm [<005800420054>-250<0054005500500053004E005A>59<000F>]TJ
-0.98 0 0 1 71.036 290.944 Tm [<002D00500053>8<0046004E>-248<004A005100540056004E>-248<00450050004D00500053>-249<0054004A0055>-248<0042004E00460055000D>-250<00440050004F00540046>-7<0044005500460055005600460053>-249<00420045004A0051004A00540044004A004F0048>-249<0046004D004A0055000F>-337<00360055>-249<00510056000E>]TJ
-0.985 0 0 1 54 276.149 Tm [<005300560054>-253<0046004D004A0055000D>-253<0057>7<004600540055004A00430056004D0056004E>-252<00560055000D>-253<0051004D004200440046005300420055>-253<00420044000D>-254<00420045004A0051004A00540044004A004F0048>-253<0057004A005500420046>10<000D>-253<00470046004D004A0054000F>-338<00240056005300420043004A005500560053>]TJ
-1.02 0 0 1 54 261.355 Tm [<0045004A004400550056004E>-243<0048005300420057004A00450042>-243<004E004200560053004A0054000F>-327<002F0042004E>-243<00420053>7<00440056>-243<004D004A0043>-10<00460053>7<0050>10<000D>-242<004F0050004F0056004E004E005A>-244<0046004800460055000D>-244<00440050004F00540046>-7<0044000E>]TJ
-1.02 0 0 1 54 246.56 Tm [<005500460055005600460053>-335<004A0045000D>-358<00570056004D005100560055004200550046>-335<0042000D>-358<004E00420048004F0042000F>-598<00250050004F0046>-7<0044>-335<0057>7<00460049004A00440056004D0042>-335<00420056004800560046>-335<00460056>-335<004F0046>-7<005200560046>9<000F>]TJ
-1.02 0 0 1 54 231.766 Tm [<00310046004D004D0046004F005500460054005200560046>-319<004900420043004A00550042004F0055>-320<004E005000530043004A>-320<00550053004A00540055004A005200560046>-320<00540046004F0046>-7<0044005500560054>-320<00460055>-320<004F0046005500560054>-320<00460055>-320<004E0042004D0046000E>]TJ
-1.02 0 0 1 54 216.971 Tm [<00540056004200450042>-261<00470042004E00460054>-262<00420044>-261<0055005600530051004A0054>-262<0046004800460054005500420054000F>-376<002E004200560053004A0054>-262<00560055>-262<004D0046>-7<0050>10<000F>-376<0024005300420054>-261<0057004A0057>7<0046005300530042>-261<004E0046005500560054>]TJ
-0.98 0 0 1 54 202.177 Tm [<005300490050004F004400560054>-226<00540046004E000F>-331<002F0056004D004D0042>-227<00460055>-226<004D0046>-8<0044005500560054>-226<0057>7<004600540055004A00430056004D0056004E>-226<00560053004F0042>-227<00470053004A004F0048004A004D004D0042>-226<0056004D00550053004A004400460054000F>-331<0031>-13<00490042000E>]TJ
-1.004 0 0 1 54 187.382 Tm [<00540046004D004D00560054>-248<00460056>-249<00550046004D004D00560054>-249<0054004A0055>-249<0042004E00460055>-249<005500500053005500500053>-249<0048005300420057004A00450042>-249<0051004D004200440046005300420055000F>-332<002A004F00550046004800460053>-249<005400420051004A0046004F>-249<004600540055000D>]TJ
-0.99 0 0 1 54 172.588 Tm [<004A004200440056004D004A0054>-253<004A004F000D>-253<00510053>7<00460055004A0056004E>-253<00520056004A0054000D>-253<0057004A0057>7<0046005300530042>-252<00420044000D>-254<004F0056004F0044000F>-339<003100530042004600540046004F0055>-253<0046004800460055>-254<00540046004E>-253<0057>7<0046004D>-252<004D0046>-7<0050>]TJ
-0.99 0 0 1 54 157.793 Tm [<0056004D00550053004A004400460054>-252<0043004A0043>-11<0046004F00450056004E000F>-337<0022>12<0046004F00460042004F>-252<0047004200560044004A004300560054000F>-337<002E005000530043004A>-253<00450050004D00500053>-253<004F0056004D004D0042000D>-252<004E0042004D004600540056004200450042>]TJ
-1.02 0 0 1 54 142.999 Tm [<00460056000D>-331<00510056004D0057004A004F00420053>-314<00420055000D>-332<004E0050004D004D004A0054>-314<00420044000D>-332<004F0056004D004D0042000F>-534<00240056005300420043004A005500560053>-315<004200560044005500500053>-314<00540046004E0051>-7<00460053>-314<004F0056004D004D0042000F>]TJ
-1.02 0 0 1 54 128.204 Tm [<00250050004F0046>-7<0044>-252<005700420053004A00560054>-253<00500053>7<0044004A>-251<0046004800460055>-253<0053004A005400560054000F>-349<00250056004A0054>-252<004F004A00430049>-253<004E004A000D>-254<00440050004F004800560046>-253<00460056000D>-254<0042004400440056004E00540042004F>]TJ
-1.007 0 0 1 54 113.41 Tm [<0046004D0046004A00470046004F0045000D>-249<005400420048004A00550055004A0054>-249<00520056004A0054000D>-249<0045004A0042004E000F>-334<00250056004A0054>-249<0046004800460055>-249<00500053>7<0044004A>-249<0054004A0055>-249<0042004E00460055>-249<00500053>7<0044004A>-248<0045004A0048004F004A00540054004A004E>]TJ
-1 0 0 1 54 98.615 Tm [<00530056005500530056004E000F>]TJ
-1.02 0 0 1 71.036 83.82 Tm [<002F0042004E>-328<00450056004A>-328<004D004A00480056004D0042000D>-349<00470053004A004F0048004A004D004D0042>-329<0042000D>-349<00460056004A0054004E0050>-7<0045>-328<00540050>-7<00450042004D00460054000D>-349<00540050004D004D004A0044004A005500560045004A004F>-329<0057>7<0046004D000D>]TJ
-1.016 0 0 1 53.58 69.026 Tm [<0058004A0054004A000F>-328<002E005000530043004A>-245<004200560044005500500053>-246<004D00500053>7<0046004E>-245<004F0050004F>-246<004B0056005400550050>9<000F>-327<002F0042004E>-245<004D0042004400560054>-246<004D004A0043>-10<00460053>7<0050>10<000D>-245<00510053>7<00460055004A0056004E>-245<00420055000D>]TJ
-0.98 0 0 1 54 54.231 Tm [<004D00500043>-10<005000530055004A0054>-215<0057004A005500420046>10<000D>-222<0056004D00550053004A0044004A00460054>-215<00460055000D>-223<00550046004D004D00560054000F>-327<00250050004F0046>-7<0044>-215<0042004D004A0052005600460055000D>-223<005500500053005500500053>-215<00540046>-7<0045>-215<0042004400440056004E00540042004F>]TJ
-0.995 0 0 1 54 39.437 Tm [<0043004A0043>-10<0046004F00450056004E000D>-251<0046005300420055>-250<004D004A00480056004D0042>-251<0042004D004A0052005600460055>-251<004E00420048004F0042000D>-250<0057004A005500420046>-251<00500053004F00420053>7<0046>-250<0050>-7<0045004A0050>-251<004E0046005500560054>-250<0042>-251<004E004A000F>]TJ
+1.02 0 0 1 71.036 290.944 Tm [<002D00500053>8<0046004E>-328<004A005100540056004E>-329<00450050004D00500053>-328<0054004A0055>-329<0042004E00460055000D>-328<00440050004F00540046>-7<0044005500460055005600460053>-328<00420045004A0051004A00540044004A004F0048>-329<0046004D004A0055000F>-328<00360055>]TJ
+1.02 0 0 1 54 276.149 Tm [<00510056005300560054>-321<0046004D004A0055000D>-322<0057>7<004600540055004A00430056004D0056004E>-321<00560055000D>-322<0051004D004200440046005300420055>-322<00420044000D>-321<00420045004A0051004A00540044004A004F0048>-322<0057004A005500420046>9<000D>-321<00470046004D004A0054000F>-322<00240056000E>]TJ
+1.02 0 0 1 54 261.355 Tm [<005300420043004A005500560053>-284<0045004A004400550056004E>-285<0048005300420057004A00450042>-285<004E004200560053004A0054000F>-285<002F0042004E>-285<00420053>7<00440056>-284<004D004A0043>-10<00460053>7<0050>10<000D>-284<004F0050004F0056004E004E005A>-285<0046004800460055000D>]TJ
+0.98 0 0 1 54 246.56 Tm [<00440050004F00540046>-7<0044005500460055005600460053>-184<004A0045000D>-185<00570056004D005100560055004200550046>-184<0042000D>-184<004E00420048004F0042000F>-185<00250050004F0046>-7<0044>-184<0057>7<00460049004A00440056004D0042>-184<00420056004800560046>-184<00460056>-184<004F0046>-7<005200560046>9<000F>]TJ
+0.98 0 0 1 54 231.766 Tm [<00310046004D004D0046004F005500460054005200560046>-195<004900420043004A00550042004F0055>-196<004E005000530043004A>-196<00550053004A00540055004A005200560046>-196<00540046004F0046>-8<0044005500560054>-195<00460055>-196<004F0046005500560054>-196<00460055>-196<004E0042004D004600540056004200450042>]TJ
+0.996 0 0 1 54 216.971 Tm [<00470042004E00460054>-251<00420044>-252<0055005600530051004A0054>-252<0046004800460054005500420054000F>-252<002E004200560053004A0054>-252<00560055>-252<004D0046>-7<0050>10<000F>-251<0024005300420054>-252<0057004A0057>7<0046005300530042>-251<004E0046005500560054>-252<005300490050004F004400560054>]TJ
+1.02 0 0 1 54 202.177 Tm [<00540046004E000F>-307<002F0056004D004D0042>-307<00460055>-307<004D0046>-7<0044005500560054>-308<0057>7<004600540055004A00430056004D0056004E>-306<00560053004F0042>-307<00470053004A004F0048004A004D004D0042>-308<0056004D00550053004A004400460054000F>-307<0031>-12<0049004200540046004D004D00560054>]TJ
+0.992 0 0 1 54 187.382 Tm [<00460056>-252<00550046004D004D00560054>-253<0054004A0055>-253<0042004E00460055>-252<005500500053005500500053>-253<0048005300420057004A00450042>-253<0051004D004200440046005300420055000F>-252<002A004F00550046004800460053>-253<005400420051004A0046004F>-253<004600540055000D>-253<004A004200440056004D004A0054>]TJ
+1.018 0 0 1 54 172.588 Tm [<004A004F000D>-246<00510053>7<00460055004A0056004E>-245<00520056004A0054000D>-247<0057004A0057>7<0046005300530042>-245<00420044000D>-247<004F0056004F0044000F>-246<003100530042004600540046004F0055>-247<0046004800460055>-246<00540046004E>-247<0057>7<0046004D>-245<004D0046>-7<0050>-247<0056004D00550053004A000E>]TJ
+1.011 0 0 1 54 157.793 Tm [<004400460054>-246<0043004A0043>-10<0046004F00450056004E000F>-247<0022>12<0046004F00460042004F>-246<0047004200560044004A004300560054000F>-247<002E005000530043004A>-246<00450050004D00500053>-247<004F0056004D004D0042000D>-246<004E0042004D004600540056004200450042>-247<00460056000D>]TJ
+0.996 0 0 1 54 142.999 Tm [<00510056004D0057004A004F00420053>-251<00420055000D>-251<004E0050004D004D004A0054>-252<00420044000D>-251<004F0056004D004D0042000F>-252<00240056005300420043004A005500560053>-251<004200560044005500500053>-251<00540046004E0051>-8<00460053>-251<004F0056004D004D0042000F>-251<00250050004F0046>-8<0044>]TJ
+0.996 0 0 1 53.716 128.204 Tm [<005700420053004A00560054>-250<00500053>7<0044004A>-250<0046004800460055>-250<0053004A005400560054000F>-251<00250056004A0054>-251<004F004A00430049>-250<004E004A000D>-251<00440050004F004800560046>-251<00460056000D>-250<0042004400440056004E00540042004F>-251<0046004D0046004A00470046004F0045000D>]TJ
+1 0 0 1 54 113.41 Tm [<005400420048004A00550055004A0054>-250<00520056004A0054000D>-250<0045004A0042004E000F>-250<00250056004A0054>-250<0046004800460055>-250<00500053>8<0044004A>-250<0054004A0055>-250<0042004E00460055>-250<00500053>8<0044004A>-250<0045004A0048004F004A00540054004A004E>-250<00530056005500530056004E000F>]TJ
+1.02 0 0 1 71.036 98.615 Tm [<002F0042004E>-336<00450056004A>-336<004D004A00480056004D0042000D>-336<00470053004A004F0048004A004D004D0042>-336<0042000D>-336<00460056004A0054004E0050>-7<0045>-336<00540050>-7<00450042004D00460054000D>-336<00540050004D004D004A0044004A005500560045004A004F>-337<0057>7<0046004D000D>]TJ
+1.02 0 0 1 53.58 83.82 Tm [<0058004A0054004A000F>-251<002E005000530043004A>-252<004200560044005500500053>-252<004D00500053>7<0046004E>-251<004F0050004F>-251<004B0056005400550050>9<000F>-251<002F0042004E>-252<004D0042004400560054>-252<004D004A0043>-10<00460053>7<0050>10<000D>-251<00510053>7<00460055004A0056004E>-250<00420055000D>]TJ
+0.98 0 0 1 54 69.026 Tm [<004D00500043>-10<005000530055004A0054>-230<0057004A005500420046>10<000D>-230<0056004D00550053004A0044004A00460054>-230<00460055000D>-230<00550046004D004D00560054000F>-230<00250050004F0046>-7<0044>-230<0042004D004A0052005600460055000D>-230<005500500053005500500053>-230<00540046>-7<0045>-230<0042004400440056004E00540042004F>]TJ
+1.02 0 0 1 54 54.231 Tm [<0043004A0043>-10<0046004F00450056004E000D>-342<0046005300420055>-342<004D004A00480056004D0042>-342<0042004D004A0052005600460055>-343<004E00420048004F0042000D>-342<0057004A005500420046>-342<00500053004F00420053>7<0046>-341<0050>-7<0045004A0050>-343<004E0046005500560054>-342<0042>]TJ
+1.02 0 0 1 54 39.437 Tm [<004E004A000F>-303<002E005000530043004A>-303<00420044>-304<00500053>7<0044004A>-302<00460055>-303<004F004A0054004D>-304<00490046004F00450053>7<00460053004A0055>-302<004E0050004D004D004A0054000F>-303<0034005600540051>-7<0046004F0045004A005400540046>-304<00560055>-303<004E0042005400540042000F>]TJ
0 g 0 G
0 g 0 G
ET
@@ -316,7 +316,7 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
33 0 obj
-<< /Length 10995 >>
+<< /Length 11014 >>
stream
0 g 0 G
BT
@@ -326,41 +326,41 @@ BT
1 0 0 1 151.292 565.121 Tm [<0025>-50<0964>-50<096C>-50<095B>-341<0029>-50<095C>-50<096C>-50<095F>-50<095E>-50<095C>-50<096D>-50<0960>]TJ
0 g 0 G
/F83 11.3574 Tf
-1.011 0 0 1 36 542.451 Tm [<002E005000530043004A>-247<00420044>-248<00500053>7<0044004A>-246<00460055>-248<004F004A0054004D>-247<00490046004F00450053>7<00460053004A0055>-247<004E0050004D004D004A0054000F>-330<0034005600540051>-8<0046004F0045004A005400540046>-247<00560055>-248<004E0042005400540042000F>-330<0024005300420054>]TJ
-1.02 0 0 1 36 527.656 Tm [<004F0046>-7<0044>-283<0042004F00550046>9<000F>-443<00310046004D004D0046004F005500460054005200560046>-284<0042>-283<004F0056004D004D0042000F>-444<00240056004E>-284<00540050>-6<0044004A004A0054>-284<004F004200550050>-7<005200560046>-284<0051>-7<0046004F00420055004A004300560054>-284<00460055>]TJ
-1.02 0 0 1 36 512.862 Tm [<004E00420048004F004A0054>-316<0045004A0054>-316<005100420053005500560053004A0046004F0055>-317<004E0050004F005500460054000D>-334<004F0042005400440046005500560053>-316<0053004A0045004A00440056004D00560054>-316<004E00560054000F>-541<0022004D004A005200560042004E>]TJ
-0.999 0 0 1 36 498.067 Tm [<0055004A004F0044004A00450056004F0055>-250<00560053004F0042000F>-336<002F0056004D004D0042>-251<0056004D004D0042004E0044005000530051>-7<00460053>-251<0057>7<004600540055004A00430056004D0056004E>-250<0055005600530051004A0054000F>-335<00310046004D004D0046004F005500460054005200560046>]TJ
-1 0 0 1 36 483.273 Tm [<004400560053005400560054>-250<004D00560044005500560054>-250<004E004200560053004A0054000F>]TJ
-1.011 0 0 1 53.036 468.478 Tm [<002F0056004D004D0042>-248<004E0042004D004600540056004200450042>-248<0051>-7<0050005300550055004A005500500053>-249<0045004A0042004E000F>-332<00250050004F0046>-7<0044>-249<00470046004D004A0054>-248<0046005300420055000D>-249<00440050004F004800560046>-248<004F0050004F000D>]TJ
-0.992 0 0 1 35.716 453.684 Tm [<0057>8<0050004D00560055005100420055>-251<00420055000D>-252<0055004A004F0044004A00450056004F0055>-251<00550053004A00540055004A005200560046>9<000D>-251<004D004A0043>-10<00460053>7<0050>10<000F>-335<0037004A00570042004E00560054>-251<0057004A0057>7<0046005300530042>-251<004700460053004E0046004F00550056004E>]TJ
-0.98 0 0 1 36 438.889 Tm [<00470046004D004A0054000F>-329<00250050004F0046>-7<0044>-222<004F0050004F0056004E004E005A>-221<0051>-7<0046004D004D0046004F005500460054005200560046>-222<0042004F00550046>9<000F>-328<0031>-12<0049004200540046004D004D00560054>-222<00420045004A0051004A00540044004A004F0048>-222<00540046004E000E>]TJ
-0.98 0 0 1 36 424.095 Tm [<0051>-7<00460053>-226<0046004D004A0055000F>-330<00310053>7<0050004A004F>-225<004700460053004E0046004F00550056004E>-226<004E0042005400540042>-226<00420044>-226<005200560042004E000F>-331<00340046>-7<0045>-226<0045004A0042004E>-226<0055005600530051004A0054000D>-232<004E0050004D004600540055004A0046>]TJ
-1.02 0 0 1 35.716 409.3 Tm [<0057004A005500420046>10<000D>-250<0051004D004200440046005300420055>-249<0042000D>-251<004E0050004D004600540055004A0046>-249<004F0046>-7<0044000D>-251<004D0046>-7<0050>9<000F>-338<002E00420046>-7<00440046004F00420054>-250<004D00420044004A004F004A0042000F>-339<002F0042004E>-250<004A005100540056004E>]TJ
-1.015 0 0 1 36 394.506 Tm [<004D004A00480056004D0042000D>-246<0046004D0046004A00470046004F0045>-247<00420055000D>-246<0042004400440056004E00540042004F>-247<004F0046>-7<0044000D>-246<0054005600540044004A0051004A0055>-247<0042000D>-247<004A005100540056004E000F>-329<002E005000530043004A>-246<0043004D0042004F0045004A0055>]TJ
-1.017 0 0 1 36 379.711 Tm [<004D004A00480056004D0042>-244<0047004600560048004A00420055>-245<004E00420048004F0042000F>-328<002F0056004F0044>-245<0046004D0046004A00470046004F0045>-245<00440050004F00540046>-7<0052005600420055>-245<004D00500053>8<0046004E000F>-327<00340046>-7<0045>-245<004D00420044004A004F004A0042>]TJ
-1.02 0 0 1 36 364.917 Tm [<004F0056004D004D0042>-305<0057004A005500420046>-306<0046004F004A004E000F>-510<00310046004D004D0046004F005500460054005200560046>-306<0055004A004F0044004A00450056004F0055>-306<00510056005300560054>-305<0057>7<0046004D>-305<004E00420048004F0042000F>-510<002A004F00550046000E>]TJ
-1.004 0 0 1 36 350.122 Tm [<004800460053>-248<004F0050004F>-249<0046004F004A004E000F>-332<003100530042004600540046004F0055>-248<00460056004A0054004E0050>-7<0045>-249<004F0056004F0044>-249<00460056>-248<00510056005300560054000F>-332<00250050004F0046>-7<0044>-249<0043004A0043>-10<0046004F00450056004E>]TJ
-1.014 0 0 1 36 335.327 Tm [<005200560042004E>-247<004A004F>-247<00550046004D004D00560054000F>-331<002F0056004D004D0042004E>-247<004400560053005400560054>-247<00510056004D0057004A004F00420053>-247<004D0046>-7<0044005500560054000F>-331<00250050004F0046>-7<0044>-247<00460055>-248<004E004A000F>-330<002F0042004E>]TJ
-1 0 0 1 35.716 320.533 Tm [<00570056004D005100560055004200550046>-250<004E0046005500560054>-250<00460056>-250<0046004F004A004E000F>-333<0037>79<004600540055004A00430056004D0056004E>-249<0051>-7<0046004D004D0046004F005500460054005200560046>-250<00470046004D004A0054>-250<00460056>-250<004E0042005400540042000F>]TJ
-0.98 0 0 1 53.036 305.738 Tm [<09550056004A0054005200560046>-228<0056004D004D0042004E0044005000530051>-7<00460053>-228<0051004D004200440046005300420055>-228<004A005100540056004E000F>-331<0024005300420054>-228<004F004A00430049000F>-331<002E005000530043004A>-228<0057>7<0046004D>-227<004B0056005400550050>]TJ
-0.98 0 0 1 35.716 290.944 Tm [<0057004A005500420046>-236<004D0042004400560054>-237<0055004A004F0044004A00450056004F0055>-236<0056004D00550053004A004400460054000F>-334<002D00500053>7<0046004E>-235<004A005100540056004E>-237<00450050004D00500053>-236<0054004A0055>-237<0042004E00460055000D>-240<00440050004F00540046>-7<004400550046000E>]TJ
-0.98 0 0 1 36 276.149 Tm [<0055005600460053>-193<00420045004A0051004A00540044004A004F0048>-193<0046004D004A0055000F>-319<002A004F>-193<004900420044>-193<004900420043004A00550042005400540046>-194<0051004D0042005500460042>-193<0045004A004400550056004E00540055000F>-319<002A004F00550046004800460053>-193<00550046004E005100560054>]TJ
-0.996 0 0 1 36 261.355 Tm [<00440050004F00570042004D004D004A0054>-250<00420056004800560046>9<000F>-333<00260055004A0042004E>-251<004700420044004A004D004A0054004A0054000F>-334<002F0056004F0044>-251<0046004D0046004E0046004F00550056004E>-250<004700460053004E0046004F00550056004E>-251<0058004A0054004A000F>]TJ
-1.01 0 0 1 35.602 246.56 Tm [<0022>12<0046004F00460042004F>-246<0051004D004200440046005300420055000F>-330<00360055>-247<004A004E0051>-7<00460053>7<0045004A00460055000D>-246<0046004F004A004E>-247<00540046>-7<0045>-247<0048005300420057004A00450042>-246<00540050004D004D004A0044004A005500560045004A004F000D>-247<00470046004D004A0054>]TJ
-1.02 0 0 1 36 231.766 Tm [<0050>-7<0045004A0050>-259<0051004D004200440046005300420055>-260<005200560042004E000D>-264<00420044>-260<00510056004D0057004A004F00420053>-260<0046004D004A0055>-260<00510056005300560054>-260<0046004800460055>-260<0046004F004A004E000F>-371<002F0056004F0044>-260<0057004A005500420046>]TJ
-1.014 0 0 1 36 216.971 Tm [<005500500053005500500053>59<000F>-330<00310053>7<0050004A004F>-246<00550046004E005100560054>-247<004F004A00430049>-247<0054004A0055>-247<0042004E00460055>-247<004F004A0054004D000F>-331<0037004A00570042004E00560054>-247<00520056004A0054>-247<005500500053005500500053>-247<0057004A005500420046>]TJ
-1 0 0 1 36 202.177 Tm [<0053004A005400560054>-250<0051>-7<0050005300550042>-250<0057>8<00460049004A00440056004D0042000F>]TJ
-0.999 0 0 1 53.036 187.382 Tm [<00270056005400440046>-250<004E004200560053004A0054000F>-333<0037>80<004600540055004A00430056004D0056004E>-249<004D00560044005500560054>-250<004F004A00430049>-250<00420055>-251<004D0046>-7<0044005500560054000F>-333<00340046>-7<0045>-251<0043004A0043>-10<0046004F00450056004E000D>]TJ
-1.004 0 0 1 36 172.588 Tm [<004F0056004D004D0042>-248<0042>-248<0047004200560044004A004300560054>-248<00540046004E0051>-7<00460053>59<000D>-247<004D0046>-7<0050>-248<0057>7<0046004D004A0055>-247<0056004D00550053004A0044004A00460054>-248<00550046004D004D00560054000D>-248<00420044>-248<0057>7<0046004F0046004F00420055004A0054>-247<00420053>7<00440056>]TJ
-1.016 0 0 1 35.58 157.793 Tm [<0058004A0054004A>-246<0057>7<0046004D>-245<004F004A0054004D000F>-328<0037>79<004600540055004A00430056004D0056004E>-245<0045004A0042004E000F>-329<0022004D004A005200560042004E>-246<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-245<00420056004800560046>-246<00520056004A0054>]TJ
-1.007 0 0 1 36 142.999 Tm [<005400420048004A00550055004A0054>-247<0051>-7<00500054005600460053>7<0046>10<000D>-247<0055005600530051004A0054>-247<004D0042004400560054>-248<00440050004F004800560046>-248<005200560042004E000D>-247<004A004F>-248<00490046004F00450053>7<00460053004A0055>-247<0053004A005400560054>-247<00460053>7<00500054>]TJ
-0.98 0 0 1 36 128.204 Tm [<0046004800460055>-237<00470046004D004A0054000F>-334<002E00420046>-7<00440046004F00420054>-237<0046004800460055>-237<0046005300420055>-237<004A004F>-237<005400420051004A0046004F>-237<004E004200550055004A0054>-237<0051>-8<0050005300550055004A005500500053>61<000F>-333<0037>82<004600540055004A00430056004D0056004E>]TJ
-1.02 0 0 1 36 113.41 Tm [<0051>-7<0050005300550055004A005500500053>59<000F>-483<002F0056004D004D0042>-298<004700420044004A004D004A0054004A000F>-483<00340046>-7<0045>-297<0042>-298<0055005600530051004A0054>-297<00460056>-298<004D0042004400560054>-297<00440050004E004E0050>-7<00450050>-297<004700420044004A004D004A0054004A0054000F>]TJ
-0.982 0 0 1 36 98.615 Tm [<002E005000530043004A>-254<00470053004A004F0048004A004D004D0042000D>-254<0058004A0054004A>-254<004A004F>-254<0045004A0048004F004A00540054004A004E>-254<004A004F005500460053>8<00450056004E000D>-254<004B0056005400550050>-254<004D0046>-7<0044005500560054>-254<005400420048004A00550055004A0054>-254<00450056004A000D>]TJ
-1.02 0 0 1 36 83.82 Tm [<00460055>-258<0057>7<00460049004A00440056004D0042>-258<004D004A0043>-10<00460053>7<0050>-258<00450056004A>-259<004400560053005400560054>-258<00450056004A000F>-368<002E004200560053004A0054>-259<00550046004E0051>-7<00500053>-259<004D004A00480056004D0042>-258<00540046>-7<0045>-259<004D0042004400560054000F>]TJ
-1.02 0 0 1 36 69.026 Tm [<00250056004A0054>-341<004400560053005400560054>-341<0046004F004A004E>-341<00560055>-341<00420056004800560046>9<000F>-614<0024005300420054>-341<00420044>-341<004E00420048004F0042000F>-615<0024005300420054>-341<004F0056004D004D0042000F>-615<002F0056004D004D0042>]TJ
-1.02 0 0 1 36 54.231 Tm [<0046004800460054005500420054000F>-526<00240056005300420043004A005500560053>-312<0042>-311<004D0046>-7<0050>9<000F>-526<09550056004A0054005200560046>-312<0046004800460054005500420054>-311<0058004A0054004A>-312<0046004800460055>-312<004F0056004F0044000F>-526<002F0042004E>]TJ
-1 0 0 1 36 39.437 Tm [<0047004600560048004A00420055>-250<004D0042004400560054>-250<0057>8<0046004D>-250<004600540055000F>-333<00240056005300420043004A005500560053>-250<00440050004F00540046>-7<0044005500460055005600460053>58<000F>]TJ
+1.002 0 0 1 36 542.451 Tm [<0024005300420054>-249<004F0046>-7<0044>-250<0042004F00550046>9<000F>-248<00310046004D004D0046004F005500460054005200560046>-250<0042>-249<004F0056004D004D0042000F>-250<00240056004E>-249<00540050>-7<0044004A004A0054>-250<004F004200550050>-7<005200560046>-249<0051>-8<0046004F00420055004A004300560054>]TJ
+1.009 0 0 1 36 527.656 Tm [<00460055>-247<004E00420048004F004A0054>-248<0045004A0054>-248<005100420053005500560053004A0046004F0055>-247<004E0050004F005500460054000D>-248<004F0042005400440046005500560053>-248<0053004A0045004A00440056004D00560054>-247<004E00560054000F>-248<0022004D004A005200560042004E>]TJ
+1.006 0 0 1 36 512.862 Tm [<0055004A004F0044004A00450056004F0055>-247<00560053004F0042000F>-248<002F0056004D004D0042>-248<0056004D004D0042004E0044005000530051>-7<00460053>-248<0057>7<004600540055004A00430056004D0056004E>-247<0055005600530051004A0054000F>-248<00310046004D004D0046004F005500460054005200560046>]TJ
+1 0 0 1 36 498.067 Tm [<004400560053005400560054>-250<004D00560044005500560054>-250<004E004200560053004A0054000F>]TJ
+1.015 0 0 1 53.036 483.273 Tm [<002F0056004D004D0042>-246<004E0042004D004600540056004200450042>-247<0051>-7<0050005300550055004A005500500053>-246<0045004A0042004E000F>-247<00250050004F0046>-7<0044>-246<00470046004D004A0054>-247<0046005300420055000D>-246<00440050004F004800560046>-247<004F0050004F000D>]TJ
+0.995 0 0 1 35.716 468.478 Tm [<0057>8<0050004D00560055005100420055>-251<00420055000D>-252<0055004A004F0044004A00450056004F0055>-252<00550053004A00540055004A005200560046>9<000D>-251<004D004A0043>-10<00460053>7<0050>10<000F>-251<0037004A00570042004E00560054>-252<0057004A0057>7<0046005300530042>-251<004700460053004E0046004F00550056004E>]TJ
+0.98 0 0 1 36 453.684 Tm [<00470046004D004A0054000F>-252<00250050004F0046>-7<0044>-253<004F0050004F0056004E004E005A>-252<0051>-7<0046004D004D0046004F005500460054005200560046>-252<0042004F00550046>9<000F>-251<0031>-13<0049004200540046004D004D00560054>-252<00420045004A0051004A00540044004A004F0048>-253<00540046004E000E>]TJ
+0.98 0 0 1 36 438.889 Tm [<0051>-7<00460053>-247<0046004D004A0055000F>-248<00310053>8<0050004A004F>-247<004700460053004E0046004F00550056004E>-248<004E0042005400540042>-247<00420044>-248<005200560042004E000F>-247<00340046>-8<0045>-247<0045004A0042004E>-248<0055005600530051004A0054000D>-247<004E0050004D004600540055004A0046>]TJ
+1.02 0 0 1 35.716 424.095 Tm [<0057004A005500420046>10<000D>-269<0051004D004200440046005300420055>-270<0042000D>-270<004E0050004D004600540055004A0046>-270<004F0046>-7<0044000D>-270<004D0046>-7<0050>10<000F>-269<002E00420046>-7<00440046004F00420054>-270<004D00420044004A004F004A0042000F>-270<002F0042004E>-270<004A005100540056004E>]TJ
+1.019 0 0 1 36 409.3 Tm [<004D004A00480056004D0042000D>-244<0046004D0046004A00470046004F0045>-244<00420055000D>-244<0042004400440056004E00540042004F>-244<004F0046>-7<0044000D>-244<0054005600540044004A0051004A0055>-244<0042000D>-245<004A005100540056004E000F>-244<002E005000530043004A>-244<0043004D0042004F0045004A0055>]TJ
+1.02 0 0 1 36 394.506 Tm [<004D004A00480056004D0042>-255<0047004600560048004A00420055>-256<004E00420048004F0042000F>-256<002F0056004F0044>-256<0046004D0046004A00470046004F0045>-256<00440050004F00540046>-7<0052005600420055>-255<004D00500053>7<0046004E000F>-255<00340046>-7<0045>-256<004D00420044004A004F004A0042>]TJ
+1.014 0 0 1 36 379.711 Tm [<004F0056004D004D0042>-247<0057004A005500420046>-248<0046004F004A004E000F>-248<00310046004D004D0046004F005500460054005200560046>-247<0055004A004F0044004A00450056004F0055>-248<00510056005300560054>-248<0057>7<0046004D>-246<004E00420048004F0042000F>-248<002A004F00550046004800460053>]TJ
+0.98 0 0 1 36 364.917 Tm [<004F0050004F>-233<0046004F004A004E000F>-233<003100530042004600540046004F0055>-233<00460056004A0054004E0050>-7<0045>-234<004F0056004F0044>-233<00460056>-233<00510056005300560054000F>-233<00250050004F0046>-7<0044>-234<0043004A0043>-10<0046004F00450056004E>-233<005200560042004E>]TJ
+0.98 0 0 1 36 350.122 Tm [<004A004F>-204<00550046004D004D00560054000F>-205<002F0056004D004D0042004E>-205<004400560053005400560054>-204<00510056004D0057004A004F00420053>-205<004D0046>-7<0044005500560054000F>-205<00250050004F0046>-7<0044>-205<00460055>-205<004E004A000F>-204<002F0042004E>-205<00570056004D005100560055004200550046>]TJ
+1 0 0 1 36 335.327 Tm [<004E0046005500560054>-250<00460056>-250<0046004F004A004E000F>-250<0037>80<004600540055004A00430056004D0056004E>-250<0051>-7<0046004D004D0046004F005500460054005200560046>-250<00470046004D004A0054>-250<00460056>-250<004E0042005400540042000F>]TJ
+0.98 0 0 1 53.036 320.533 Tm [<09550056004A0054005200560046>-253<0056004D004D0042004E0044005000530051>-8<00460053>-253<0051004D004200440046005300420055>-254<004A005100540056004E000F>-254<0024005300420054>-254<004F004A00430049000F>-253<002E005000530043004A>-254<0057>7<0046004D>-253<004B0056005400550050>]TJ
+0.98 0 0 1 35.716 305.738 Tm [<0057004A005500420046>-247<004D0042004400560054>-248<0055004A004F0044004A00450056004F0055>-248<0056004D00550053004A004400460054000F>-247<002D00500053>7<0046004E>-247<004A005100540056004E>-248<00450050004D00500053>-247<0054004A0055>-248<0042004E00460055000D>-248<00440050004F00540046>-7<004400550046000E>]TJ
+0.98 0 0 1 36 290.944 Tm [<0055005600460053>-221<00420045004A0051004A00540044004A004F0048>-221<0046004D004A0055000F>-221<002A004F>-221<004900420044>-221<004900420043004A00550042005400540046>-222<0051004D0042005500460042>-221<0045004A004400550056004E00540055000F>-221<002A004F00550046004800460053>-221<00550046004E005100560054>]TJ
+1.003 0 0 1 36 276.149 Tm [<00440050004F00570042004D004D004A0054>-247<00420056004800560046>9<000F>-246<00260055004A0042004E>-248<004700420044004A004D004A0054004A0054000F>-247<002F0056004F0044>-248<0046004D0046004E0046004F00550056004E>-247<004700460053004E0046004F00550056004E>-248<0058004A0054004A000F>]TJ
+1.013 0 0 1 35.602 261.355 Tm [<0022>12<0046004F00460042004F>-247<0051004D004200440046005300420055000F>-247<00360055>-247<004A004E0051>-7<00460053>7<0045004A00460055000D>-247<0046004F004A004E>-247<00540046>-7<0045>-248<0048005300420057004A00450042>-247<00540050004D004D004A0044004A005500560045004A004F000D>-247<00470046004D004A0054>]TJ
+1.02 0 0 1 36 246.56 Tm [<0050>-7<0045004A0050>-271<0051004D004200440046005300420055>-271<005200560042004E000D>-272<00420044>-271<00510056004D0057004A004F00420053>-272<0046004D004A0055>-271<00510056005300560054>-272<0046004800460055>-271<0046004F004A004E000F>-272<002F0056004F0044>-271<0057004A005500420046>]TJ
+1.02 0 0 1 36 231.766 Tm [<005500500053005500500053>59<000F>-248<00310053>7<0050004A004F>-247<00550046004E005100560054>-248<004F004A00430049>-248<0054004A0055>-248<0042004E00460055>-248<004F004A0054004D000F>-249<0037004A00570042004E00560054>-248<00520056004A0054>-248<005500500053005500500053>-248<0057004A005500420046>]TJ
+1 0 0 1 36 216.971 Tm [<0053004A005400560054>-250<0051>-7<0050005300550042>-250<0057>8<00460049004A00440056004D0042000F>]TJ
+1.006 0 0 1 53.036 202.177 Tm [<00270056005400440046>-248<004E004200560053004A0054000F>-249<0037>80<004600540055004A00430056004D0056004E>-248<004D00560044005500560054>-249<004F004A00430049>-249<00420055>-248<004D0046>-7<0044005500560054000F>-249<00340046>-7<0045>-249<0043004A0043>-10<0046004F00450056004E000D>]TJ
+1.004 0 0 1 36 187.382 Tm [<004F0056004D004D0042>-248<0042>-248<0047004200560044004A004300560054>-248<00540046004E0051>-7<00460053>59<000D>-247<004D0046>-7<0050>-248<0057>7<0046004D004A0055>-247<0056004D00550053004A0044004A00460054>-248<00550046004D004D00560054000D>-248<00420044>-248<0057>7<0046004F0046004F00420055004A0054>-247<00420053>7<00440056>]TJ
+1.02 0 0 1 35.58 172.588 Tm [<0058004A0054004A>-253<0057>7<0046004D>-253<004F004A0054004D000F>-254<0037>79<004600540055004A00430056004D0056004E>-252<0045004A0042004E000F>-254<0022004D004A005200560042004E>-254<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-253<00420056004800560046>-253<00520056004A0054>]TJ
+1.007 0 0 1 36 157.793 Tm [<005400420048004A00550055004A0054>-247<0051>-7<00500054005600460053>7<0046>10<000D>-247<0055005600530051004A0054>-247<004D0042004400560054>-248<00440050004F004800560046>-248<005200560042004E000D>-247<004A004F>-248<00490046004F00450053>7<00460053004A0055>-246<0053004A005400560054>-248<00460053>7<00500054>]TJ
+0.981 0 0 1 36 142.999 Tm [<0046004800460055>-255<00470046004D004A0054000F>-256<002E00420046>-7<00440046004F00420054>-255<0046004800460055>-256<0046005300420055>-255<004A004F>-256<005400420051004A0046004F>-255<004E004200550055004A0054>-256<0051>-7<0050005300550055004A005500500053>60<000F>-254<0037>82<004600540055004A00430056004D0056004E>]TJ
+1.02 0 0 1 36 128.204 Tm [<0051>-7<0050005300550055004A005500500053>59<000F>-338<002F0056004D004D0042>-339<004700420044004A004D004A0054004A000F>-339<00340046>-7<0045>-339<0042>-338<0055005600530051004A0054>-339<00460056>-339<004D0042004400560054>-339<00440050004E004E0050>-6<00450050>-339<004700420044004A004D004A0054004A0054000F>]TJ
+0.982 0 0 1 36 113.41 Tm [<002E005000530043004A>-254<00470053004A004F0048004A004D004D0042000D>-254<0058004A0054004A>-254<004A004F>-254<0045004A0048004F004A00540054004A004E>-254<004A004F005500460053>8<00450056004E000D>-254<004B0056005400550050>-254<004D0046>-7<0044005500560054>-254<005400420048004A00550055004A0054>-254<00450056004A000D>]TJ
+1.02 0 0 1 36 98.615 Tm [<00460055>-269<0057>7<00460049004A00440056004D0042>-269<004D004A0043>-10<00460053>7<0050>-269<00450056004A>-269<004400560053005400560054>-270<00450056004A000F>-270<002E004200560053004A0054>-269<00550046004E0051>-7<00500053>-270<004D004A00480056004D0042>-270<00540046>-7<0045>-269<004D0042004400560054000F>]TJ
+0.98 0 0 1 36 83.82 Tm [<00250056004A0054>-199<004400560053005400560054>-199<0046004F004A004E>-199<00560055>-199<00420056004800560046>10<000F>-198<0024005300420054>-199<00420044>-199<004E00420048004F0042000F>-199<0024005300420054>-199<004F0056004D004D0042000F>-199<002F0056004D004D0042>-199<0046004800460054005500420054000F>]TJ
+0.99 0 0 1 36 69.026 Tm [<00240056005300420043004A005500560053>-251<0042>-252<004D0046>-7<0050>10<000F>-251<09550056004A0054005200560046>-251<0046004800460054005500420054>-252<0058004A0054004A>-251<0046004800460055>-252<004F0056004F0044000F>-251<002F0042004E>-252<0047004600560048004A00420055>-251<004D0042004400560054>]TJ
+1 0 0 1 35.716 54.231 Tm [<0057>8<0046004D>-250<004600540055000F>-250<00240056005300420043004A005500560053>-250<00440050004F00540046>-7<0044005500460055005600460053>59<000F>]TJ
+0.982 0 0 1 53.036 39.437 Tm [<0034005600540051>-7<0046004F0045004A005400540046>-253<0057>7<0046004D>-253<00470046004D004A0054000F>-254<00360055>-253<004D00500053>7<0046004E>-253<004D00500053>8<0046004E000D>-253<004A004F005500460053>7<00450056004E>-252<00460056000D>-254<0055004A004F0044004A00450056004F0055>-254<0054004A0055>]TJ
0 g 0 G
0 g 0 G
ET
@@ -376,7 +376,7 @@ endobj
<< /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /Font << /F83 16 0 R >> /ProcSet [ /PDF /Text ] >>
endobj
36 0 obj
-<< /Length 6171 >>
+<< /Length 5830 >>
stream
0 g 0 G
BT
@@ -386,25 +386,24 @@ BT
1 0 0 1 355.141 565.121 Tm [<0014>]TJ
0 g 0 G
/F83 11.3574 Tf
-0.98 0 0 1 71.036 542.451 Tm [<0034005600540051>-7<0046004F0045004A005400540046>-249<0057>7<0046004D>-248<00470046004D004A0054000F>-339<00360055>-249<004D00500053>7<0046004E>-248<004D00500053>7<0046004E000D>-249<004A004F005500460053>7<00450056004E>-249<00460056000D>-250<0055004A004F0044004A00450056004F0055>-250<0054004A0055>]TJ
-1.015 0 0 1 54 527.656 Tm [<0042004E00460055000D>-246<004D004200500053>7<0046>-6<00460055>-247<0057004A005500420046>9<000D>-246<00420053>7<00440056000F>-329<0022>11<0046004F00460042004F>-245<0047004200560044004A004300560054>-247<0051>-7<0046>-7<00450046>-247<00460056>-247<0042004F00550046>10<000F>-329<003100530042004600540046004F0055>]TJ
-1.02 0 0 1 54 512.862 Tm [<0046004F004A004E>-282<0046004D004A0055000D>-293<00530056005500530056004E>-283<00420055000D>-292<004E0050004D004600540055004A0046>-283<004F0050004F000D>-292<004F0050004F0056004E004E005A>-283<0057>7<0046004D000D>-291<004F004A0054004D000F>-440<00360055>-283<004D0046>-7<0044005500560054>]TJ
-1.02 0 0 1 54 498.067 Tm [<00460053>8<00500054000D>-318<004E0042004D004600540056004200450042>-304<0054004A0055>-304<0042004E00460055000D>-319<004700460053004E0046004F00550056004E>-304<00460056000D>-319<00540050>-6<00450042004D00460054>-304<004400560053005400560054000D>-319<004E00420048004F0042000F>]TJ
-1.007 0 0 1 54 483.273 Tm [<00250050004F0046>-7<0044>-248<00460056>-249<00510056005300560054000F>-332<09550056004A0054005200560046>-249<0057>7<00460049004A00440056004D0042000D>-248<00560053004F0042>-248<00540046>-8<0045>-248<0056004D00550053004A0044004A00460054>-249<004200560044005500500053>59<000D>-248<0051>-7<0046>-7<00450046>]TJ
-1.02 0 0 1 54 468.478 Tm [<004D00500053>8<0046004E>-316<0046004800460054005500420054>-316<00450056004A000D>-335<00460055>-316<00440050004F00570042004D004D004A0054>-317<0046004D004A0055>-316<0046005300420055>-316<00540046>-7<0045>-317<004F0056004D004D0042000F>-541<00250050004F0046>-7<0044>-316<004D00560044005500560054000F>]TJ
-0.98 0 0 1 54 453.684 Tm [<00240056005300420043004A005500560053>-241<00460055>-242<004F0056004F0044000F>-336<0022004D004A005200560042004E>-242<00450050004D00500053>-242<0050>-7<0045004A0050>10<000D>-244<00440050004E004E0050>-7<00450050>-242<00510053>7<00460055004A0056004E000D>-243<0056004D00550053004A0044004A00460054>]TJ
-1.018 0 0 1 54 438.889 Tm [<004F0050004F000D>-244<0051004900420053>7<0046005500530042>-243<004A004F000D>-245<0057>7<0046004D004A0055000F>-326<002A004F00550046004800460053>-244<00420053>7<00440056>-244<004600540055000D>-244<004F0050004F0056004E004E005A>-244<004A004F000D>-245<004700460053004E0046004F00550056004E>]TJ
-1 0 0 1 54 424.095 Tm [<0047004200560044004A004300560054000D>-250<0046004800460054005500420054>-250<0057>8<0046004D000D>-250<0050>-7<0045004A0050>10<000F>]TJ
-1.005 0 0 1 71.036 409.3 Tm [<00340046>-7<0045>-247<00440050004E004E0050>-7<00450050>-248<0051>-7<00500054005600460053>8<0046>-247<0051>-7<0046>-7<00450046>9<000F>-330<002E004200560053004A0054>-248<00560055>-247<004600540055000F>-331<00360055>-248<00520056004A0054>-247<00510056005300560054000F>-332<00340046>-7<0045>]TJ
-1.01 0 0 1 54 394.506 Tm [<00420044>-247<0050>-7<0045004A0050>9<000F>-330<00340046>-7<0045>-248<0057>7<00460049004A00440056004D0042>-247<00490046004F00450053>7<00460053004A0055>-247<00540046004E000F>-331<00250056004A0054>-248<004F0050004F>-247<0050>-8<0045004A0050>10<000F>-330<002E005000530043004A>-248<00560055>-248<00450056004A000F>]TJ
-1.02 0 0 1 54 379.711 Tm [<00340046>-7<0045>-316<0042004400440056004E00540042004F>-317<0053004A005400560054>-316<0046004800460055>-317<0050>-7<0045004A0050>9<000F>-541<002A004F>-316<004900420044>-317<004900420043004A00550042005400540046>-317<0051004D0042005500460042>-316<0045004A004400550056004E00540055000F>]TJ
-1.02 0 0 1 54 364.917 Tm [<00310046004D004D0046004F005500460054005200560046>-361<004F0050004F>-362<0046004D004A0055000F>-677<00270056005400440046>-361<00540046>-7<0045>-362<004B0056005400550050>-362<00460056>-362<00560053004F0042>-361<0051>-7<0050005300550042>-362<0055004A004F0044004A00450056004F0055000F>]TJ
-0.981 0 0 1 54 350.122 Tm [<002E004200560053004A0054>-255<00470046004D004A0054>-255<0050>-7<0045004A0050>9<000D>-254<00540050004D004D004A0044004A005500560045004A004F>-255<00540046>-8<0045000D>-255<0057>7<0050004D0056>1<0055005100420055>-255<0042000D>-255<00500053004F00420053>7<0046>-254<00420044000D>-255<0046005300420055000F>-341<002E005000530043004A>]TJ
-1.02 0 0 1 54 335.327 Tm [<00520056004A0054>-270<00450050004D00500053>59<000F>-401<00250050004F0046>-7<0044>-270<0051>-7<0046004D004D0046004F005500460054005200560046>9<000D>-275<0046005300420055>-270<00420044>-270<005400420048004A00550055004A0054>-270<00540046004E0051>-7<00460053>58<000D>-275<004F0056004F0044>-270<00450056004A>]TJ
-1.02 0 0 1 54 320.533 Tm [<004D00500043>-10<005000530055004A0054>-269<00510056005300560054000D>-275<00520056004A0054>-269<00440050004F004800560046>-269<00510056005300560054>-269<004E0046005500560054>-269<0056004D00550053004A0044004A00460054>-269<00550046004D004D00560054000F>-398<00310053>7<0050004A004F>-268<00460055>]TJ
-1.02 0 0 1 54 305.738 Tm [<005200560042004E000F>-341<0024004D004200540054>-250<0042005100550046004F0055>-250<005500420044004A0055004A>-250<00540050>-7<0044004A0050005400520056>-250<00420045>-250<004D004A0055005000530042>-250<005500500053>7<005200560046004F0055>-249<0051>-7<00460053>-250<00440050004F00560043004A0042>]TJ
-0.98 0 0 1 54 290.944 Tm [<004F00500054005500530042000D>-241<0051>-7<00460053>-239<004A004F004400460051005500500054>-238<0049005A004E0046004F00420046>-7<00500054000F>-334<003100530042004600540046004F0055>-238<005400420051004A0046004F>-239<0055005600530051004A0054000D>-241<004700460053004E0046004F00550056004E>]TJ
-1 0 0 1 53.716 276.149 Tm [<0057>8<0046004D000D>-250<0046004D0046004A00470046004F0045>-250<0047004200560044004A004300560054000D>-250<0057>8<00460049004A00440056004D0042>-250<00460056000D>-250<004D0042004400560054000F>]TJ
+1.02 0 0 1 54 542.451 Tm [<0042004E00460055000D>-250<004D004200500053>7<0046>-6<00460055>-251<0057004A005500420046>9<000D>-250<00420053>7<00440056000F>-250<0022>12<0046004F00460042004F>-250<0047004200560044004A004300560054>-251<0051>-7<0046>-7<00450046>-251<00460056>-250<0042004F00550046>9<000F>-250<003100530042004600540046004F0055>]TJ
+1.02 0 0 1 54 527.656 Tm [<0046004F004A004E>-302<0046004D004A0055000D>-302<00530056005500530056004E>-303<00420055000D>-302<004E0050004D004600540055004A0046>-302<004F0050004F000D>-303<004F0050004F0056004E004E005A>-302<0057>7<0046004D000D>-301<004F004A0054004D000F>-303<00360055>-302<004D0046>-7<0044005500560054>]TJ
+1.02 0 0 1 54 512.862 Tm [<00460053>8<00500054000D>-311<004E0042004D004600540056004200450042>-311<0054004A0055>-312<0042004E00460055000D>-311<004700460053004E0046004F00550056004E>-311<00460056000D>-312<00540050>-6<00450042004D00460054>-312<004400560053005400560054000D>-311<004E00420048004F0042000F>]TJ
+1.011 0 0 1 54 498.067 Tm [<00250050004F0046>-7<0044>-246<00460056>-246<00510056005300560054000F>-246<09550056004A0054005200560046>-247<0057>8<00460049004A00440056004D0042000D>-246<00560053004F0042>-246<00540046>-7<0045>-246<0056004D00550053004A0044004A00460054>-246<004200560044005500500053>58<000D>-245<0051>-7<0046>-7<00450046>]TJ
+1.02 0 0 1 54 483.273 Tm [<004D00500053>8<0046004E>-340<0046004800460054005500420054>-341<00450056004A000D>-341<00460055>-340<00440050004F00570042004D004D004A0054>-341<0046004D004A0055>-341<0046005300420055>-340<00540046>-7<0045>-341<004F0056004D004D0042000F>-341<00250050004F0046>-7<0044>-340<004D00560044005500560054000F>]TJ
+0.98 0 0 1 54 468.478 Tm [<00240056005300420043004A005500560053>-254<00460055>-254<004F0056004F0044000F>-254<0022004D004A005200560042004E>-255<00450050004D00500053>-254<0050>-7<0045004A0050>9<000D>-253<00440050004E004E0050>-7<00450050>-254<00510053>7<00460055004A0056004E000D>-253<0056004D00550053004A0044004A00460054>]TJ
+1.02 0 0 1 54 453.684 Tm [<004F0050004F000D>-247<0051004900420053>7<0046005500530042>-247<004A004F000D>-248<0057>7<0046004D004A0055000F>-247<002A004F00550046004800460053>-248<00420053>7<00440056>-247<004600540055000D>-247<004F0050004F0056004E004E005A>-248<004A004F000D>-248<004700460053004E0046004F00550056004E>]TJ
+1 0 0 1 54 438.889 Tm [<0047004200560044004A004300560054000D>-250<0046004800460054005500420054>-250<0057>8<0046004D000D>-250<0050>-7<0045004A0050>10<000F>]TJ
+1.016 0 0 1 71.036 424.095 Tm [<00340046>-7<0045>-245<00440050004E004E0050>-7<00450050>-245<0051>-7<00500054005600460053>7<0046>-244<0051>-7<0046>-7<00450046>9<000F>-244<002E004200560053004A0054>-245<00560055>-246<004600540055000F>-245<00360055>-245<00520056004A0054>-245<00510056005300560054000F>-246<00340046>-7<0045>]TJ
+1.02 0 0 1 54 409.3 Tm [<00420044>-246<0050>-7<0045004A0050>9<000F>-246<00340046>-7<0045>-247<0057>7<00460049004A00440056004D0042>-245<00490046004F00450053>7<00460053004A0055>-246<00540046004E000F>-247<00250056004A0054>-246<004F0050004F>-247<0050>-7<0045004A0050>9<000F>-246<002E005000530043004A>-246<00560055>-247<00450056004A000F>]TJ
+1.02 0 0 1 54 394.506 Tm [<00340046>-7<0045>-341<0042004400440056004E00540042004F>-342<0053004A005400560054>-341<0046004800460055>-342<0050>-7<0045004A0050>9<000F>-341<002A004F>-341<004900420044>-342<004900420043004A00550042005400540046>-342<0051004D0042005500460042>-341<0045004A004400550056004E00540055000F>]TJ
+0.98 0 0 1 54 379.711 Tm [<00310046004D004D0046004F005500460054005200560046>-174<004F0050004F>-175<0046004D004A0055000F>-174<00270056005400440046>-175<00540046>-7<0045>-174<004B0056005400550050>-175<00460056>-174<00560053004F0042>-175<0051>-7<0050005300550042>-175<0055004A004F0044004A00450056004F0055000F>-174<002E004200560053004A0054>]TJ
+1.02 0 0 1 54 364.917 Tm [<00470046004D004A0054>-275<0050>-7<0045004A0050>9<000D>-274<00540050004D004D004A0044004A005500560045004A004F>-275<00540046>-7<0045000D>-276<0057>8<0050004D00560055005100420055>-275<0042000D>-275<00500053004F00420053>7<0046>-274<00420044000D>-276<0046005300420055000F>-275<002E005000530043004A>-275<00520056004A0054>]TJ
+0.98 0 0 1 54 350.122 Tm [<00450050004D00500053>61<000F>-247<00250050004F0046>-7<0044>-247<0051>-8<0046004D004D0046004F005500460054005200560046>10<000D>-247<0046005300420055>-247<00420044>-247<005400420048004A00550055004A0054>-248<00540046004E0051>-7<00460053>61<000D>-247<004F0056004F0044>-247<00450056004A>-248<004D00500043>-10<005000530055004A0054>]TJ
+1.02 0 0 1 54 335.327 Tm [<00510056005300560054000D>-358<00520056004A0054>-358<00440050004F004800560046>-358<00510056005300560054>-358<004E0046005500560054>-358<0056004D00550053004A0044004A00460054>-358<00550046004D004D00560054000F>-358<00310053>7<0050004A004F>-357<00460055>-358<005200560042004E000F>]TJ
+1.015 0 0 1 54 320.533 Tm [<0024004D004200540054>-246<0042005100550046004F0055>-246<005500420044004A0055004A>-246<00540050>-7<0044004A0050005400520056>-246<00420045>-246<004D004A0055005000530042>-246<005500500053>7<005200560046004F0055>-245<0051>-7<00460053>-246<00440050004F00560043004A0042>-247<004F00500054005500530042000D>]TJ
+1.02 0 0 1 54 305.738 Tm [<0051>-7<00460053>-302<004A004F004400460051005500500054>-302<0049005A004E0046004F00420046>-7<00500054000F>-303<003100530042004600540046004F0055>-302<005400420051004A0046004F>-302<0055005600530051004A0054000D>-303<004700460053004E0046004F00550056004E>-302<0057>7<0046004D000D>]TJ
+1 0 0 1 54 290.944 Tm [<0046004D0046004A00470046004F0045>-250<0047004200560044004A004300560054000D>-250<0057>8<00460049004A00440056004D0042>-250<00460056000D>-250<004D0042004400560054000F>]TJ
0 g 0 G
0 g 0 G
ET
@@ -430,7 +429,7 @@ BT
/F83 11.3574 Tf
0.988 0 0 1 35.659 394.506 Tm [<003500490046>-254<004F004A004800490055>-253<005800420054>-254<00540055004A004D004D>-254<004500420053004C>-254<0042004F0045>-254<0054005500500053004E005A>60<000F>-339<00350049004A0054>-254<0054004900500056004D0045>-254<004F00500055>-254<0043>-11<0046>-253<00540056005300510053004A0054004A004F0048000D>]TJ
0.989 0 0 1 36 379.711 Tm [<00540046>-7<0046004A004F0048>-253<00420054>-254<00490050>7<0058>-253<0050004F004D005A>-253<00490042004D0047>-253<0042004F>-254<0049005000560053>-253<004900420054>-254<0046004D0042005100540046>-7<0045>-253<0054004A004F00440046>-254<005500490046>-253<0939005300540055>-253<0044004900420051005500460053>60<000F>]TJ
-1.02 0 0 1 35.659 364.917 Tm [<0035004900420055>-281<004A004F004700500053004E00420055004A0050004F>-282<005800420054>-282<004F0046>-7<004400460054005400420053>-15<005A>59<000D>-290<004A004F>-282<0044004200540046>-282<005A>7<00500056>-280<005100560055>-282<005500490046>-282<0043>-10<0050>-7<0050004C>-281<00450050>6<0058004F>]TJ
+1.02 0 0 1 35.659 364.917 Tm [<0035004900420055>-281<004A004F004700500053004E00420055004A0050004F>-282<005800420054>-282<004F0046>-7<004400460054005400420053>-15<005A>58<000D>-289<004A004F>-282<0044004200540046>-282<005A>7<00500056>-280<005100560055>-282<005500490046>-282<0043>-10<0050>-7<0050004C>-281<00450050>6<0058004F>]TJ
1 0 0 1 36 350.122 Tm [<0042004F0045>-250<004900420057>8<0046004F06DF0055>-250<0053>8<004600420045>-250<0042004F005A>-250<00500047>-250<004A0055>-250<004700500053>-250<005500490046>-250<004D004200540055>-250<00550058>8<0050>-250<0058>8<0046>-7<0046004C0054000F>]TJ
0.98 0 0 1 53.036 335.327 Tm [<002D00500053>8<0045>-209<0038004A005500490046004F0054000D>-220<0058>8<00460055>-209<0042004F0045>-210<004300530056004A00540046>-8<0045000D>-219<0939004F0042004D004D005A>-210<004200530053004A0057>7<0046>-6<0045>-210<00420055>-210<0049004A0054>-210<0045004600540055004A004F00420055004A0050004F000F>]TJ
0.98 0 0 1 35.659 320.533 Tm [<003500490046>-234<0053>7<0046004200540050004F>-234<00490046>-234<005800420054>-235<0058>7<00460055>-233<005800420054>-235<0043>-10<0046>-8<00440042005600540046>10<000D>-238<00420054>-235<004900420054>-234<0043>-11<0046>-7<0046004F>-235<004F005000550046>-7<0045000D>-239<005500490046>-235<0058>8<004600420055004900460053>]TJ
@@ -1034,92 +1033,92 @@ endobj
<< /Type /Catalog /Pages 77 0 R /Metadata 4 0 R/OutputIntents [ <</Type/OutputIntent/S/GTS_PDFX/OutputCondition (SWOP (Publication) printing in USA (Printing process definition: ANSI CGATS.6).)/OutputConditionIdentifier (CGATS TR 001)/Info (U.S. Web Coated (SWOP) v2)/RegistryName (http://www.color.org)>> ]/PageLabels<</Nums[0<</S/r>>6<</S/D>>]>> >>
endobj
79 0 obj
-<< /Title(Dark\040and\040Stormy)/Author(Dirk\040Hardcase)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240216084723-08'00')/ModDate(D:20240216084723-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >>
+<< /Title(Dark\040and\040Stormy)/Author(Dirk\040Hardcase)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240216204820-08'00')/ModDate(D:20240216204820-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >>
endobj
xref
0 80
0000000000 65535 f
-0000062159 00000 n
-0000062179 00000 n
-0000062199 00000 n
+0000062099 00000 n
+0000062119 00000 n
+0000062139 00000 n
0000000020 00000 n
0000003415 00000 n
0000003264 00000 n
0000002770 00000 n
-0000095381 00000 n
-0000095740 00000 n
+0000095321 00000 n
+0000095680 00000 n
0000003781 00000 n
0000003627 00000 n
0000003535 00000 n
0000005375 00000 n
0000005221 00000 n
0000003873 00000 n
-0000091329 00000 n
-0000077152 00000 n
+0000091269 00000 n
+0000077092 00000 n
0000008045 00000 n
0000007891 00000 n
0000005520 00000 n
-0000075154 00000 n
+0000075094 00000 n
0000009244 00000 n
0000009090 00000 n
0000008168 00000 n
0000009625 00000 n
0000009471 00000 n
0000009379 00000 n
-0000017484 00000 n
-0000017330 00000 n
+0000017746 00000 n
+0000017592 00000 n
0000009717 00000 n
-0000028815 00000 n
-0000028661 00000 n
-0000017606 00000 n
-0000035322 00000 n
-0000035168 00000 n
-0000028937 00000 n
-0000043519 00000 n
-0000043365 00000 n
-0000035444 00000 n
-0000054866 00000 n
-0000054711 00000 n
-0000043641 00000 n
-0000095878 00000 n
-0000061359 00000 n
-0000061204 00000 n
-0000054988 00000 n
-0000061728 00000 n
-0000061573 00000 n
-0000061481 00000 n
-0000062067 00000 n
-0000061912 00000 n
-0000061820 00000 n
-0000062252 00000 n
-0000073276 00000 n
-0000062674 00000 n
-0000063018 00000 n
-0000073518 00000 n
-0000075313 00000 n
-0000075518 00000 n
-0000076214 00000 n
-0000075551 00000 n
-0000075658 00000 n
-0000076440 00000 n
-0000077298 00000 n
-0000077490 00000 n
-0000089327 00000 n
-0000077959 00000 n
-0000078322 00000 n
-0000089568 00000 n
-0000091489 00000 n
-0000091695 00000 n
-0000094234 00000 n
-0000091822 00000 n
-0000091894 00000 n
-0000094473 00000 n
-0000095537 00000 n
-0000095975 00000 n
-0000096044 00000 n
-0000096411 00000 n
+0000029096 00000 n
+0000028942 00000 n
+0000017868 00000 n
+0000035262 00000 n
+0000035108 00000 n
+0000029218 00000 n
+0000043459 00000 n
+0000043305 00000 n
+0000035384 00000 n
+0000054806 00000 n
+0000054651 00000 n
+0000043581 00000 n
+0000095818 00000 n
+0000061299 00000 n
+0000061144 00000 n
+0000054928 00000 n
+0000061668 00000 n
+0000061513 00000 n
+0000061421 00000 n
+0000062007 00000 n
+0000061852 00000 n
+0000061760 00000 n
+0000062192 00000 n
+0000073216 00000 n
+0000062614 00000 n
+0000062958 00000 n
+0000073458 00000 n
+0000075253 00000 n
+0000075458 00000 n
+0000076154 00000 n
+0000075491 00000 n
+0000075598 00000 n
+0000076380 00000 n
+0000077238 00000 n
+0000077430 00000 n
+0000089267 00000 n
+0000077899 00000 n
+0000078262 00000 n
+0000089508 00000 n
+0000091429 00000 n
+0000091635 00000 n
+0000094174 00000 n
+0000091762 00000 n
+0000091834 00000 n
+0000094413 00000 n
+0000095477 00000 n
+0000095915 00000 n
+0000095984 00000 n
+0000096351 00000 n
trailer
-<< /Size 80 /Root 78 0 R /Info 79 0 R /ID [ <B4EA57253E694850063E8CE805F03E33> <B4EA57253E694850063E8CE805F03E33> ] >>
+<< /Size 80 /Root 78 0 R /Info 79 0 R /ID [ <81E01F05068F4B29390B30B993AE6DF3> <81E01F05068F4B29390B30B993AE6DF3> ] >>
startxref
-96755
+96695
%%EOF
diff --git a/macros/luatex/latex/novel/doc/extras/novel-example.tex b/macros/luatex/latex/novel/doc/extras/novel-example.tex
index 13258f0eba..1f925b3584 100644
--- a/macros/luatex/latex/novel/doc/extras/novel-example.tex
+++ b/macros/luatex/latex/novel/doc/extras/novel-example.tex
@@ -11,7 +11,7 @@
% have read/write permissions for any user. If they don't, then
% compile will fail at the point where files are written.
-\documentclass[v2,american,latin]{novel} % v. 2.00.
+\documentclass[v2,american]{novel} % v. 2.1.
\SetTitle{Dark and Stormy}
\SetSubtitle{A Tale of Nights}
\SetAuthor{Dirk Hardcase}
@@ -109,7 +109,7 @@ It was a dark and stormy night. Lord Withens rode his horse through the gloom, w
Moving right along, his horse arrived at the back door of Lady Wishintale's quarters. Sadly, Lord Withens was not on it, having slipped off his saddle along the way. That was because the weather was stormy.
-\lipsum
+\foreignlanguage{latin}{\lipsum}
% Chapter Two:
\clearpage % next chapter may begin recto or verso
@@ -122,7 +122,7 @@ The night was still dark and stormy. This should not be surprising, seeing as ho
Lord Withens, wet and bruised, finally arrived at his destination. The reason he was wet was because, as has been noted, the weather was stormy. It was dark, too.
-\lipsum
+\foreignlanguage{latin}{\lipsum}
\end{document}
diff --git a/macros/luatex/latex/novel/doc/extras/novel-extras-README.html b/macros/luatex/latex/novel/doc/extras/novel-extras-README.html
index 5631974cfb..17ee0e61df 100644
--- a/macros/luatex/latex/novel/doc/extras/novel-extras-README.html
+++ b/macros/luatex/latex/novel/doc/extras/novel-extras-README.html
@@ -9,7 +9,7 @@
<h2>README for novel extras</h2>
-<p>This folder contains items that may be helpful, but are not essential to operation of the <i>novel</i> document class. Version 2.00.</p>
+<p>This folder contains items that may be helpful, but are not essential to operation of the <i>novel</i> document class. Version 2.1.</p>
<p>File <i>novel-example.tex</i> is a fake short novel. If you wish to compile it, place a copy in your user home folder (or other place where you have read/write privilege) and compile it there.</p>
diff --git a/macros/luatex/latex/novel/doc/novel-documentation.html b/macros/luatex/latex/novel/doc/novel-documentation.html
index 4f4b3171e9..080086130a 100644
--- a/macros/luatex/latex/novel/doc/novel-documentation.html
+++ b/macros/luatex/latex/novel/doc/novel-documentation.html
@@ -492,7 +492,7 @@ p.overhang {margin-left:32px; text-indent:-16px;}
<!-- **************************************************************************************** -->
<h1 id="h0" style="padding-top:16px">Document class <i>novel</i> - documentation.</h1>
-<p>V. 2.00, 2024/02/16</p>
+<p>V. 2.1, 2024/02/17</p>
<p class="item">ALERT: If you have been using this document class prior to version 1.80 (February 2023),
see <a href="#hZ">Appendix Z</a>.</p>
@@ -538,20 +538,31 @@ Expected in early 2024.</p>
<h4 id="h1.1.3">1.1.3. Language Support. CHANGED IN VERSION 2.</h4>
<div class="d4" id="d1.1.3">
-<p class="item">Prior to version 2 (February 2024), the polyglossia package was the only
-method for language support. With version 2, you may use babel instead.</p>
-<p>To use version 2, write <code>v2</code> as d document class option, along with your choice
-of babel language option(s). You may also use other novel class options, as before.</p>
-<p>Example: <code>\documentclass[v2,french]{novel}</code>.</p>
-<p>If you do not write <code>v2</code> as option, then any language will be ignored there,
-and polyglossia will load instead. That was the behavior prior to version 2.</p>
+<p class="item"><b>A.</b> Prior to version 2 (February 2024), the polyglossia package was the only
+method for language support. With version 2, you may use either polyglossia or babel.</p>
+<p class="item"><b>B.</b> Do not write <code>\usepackage</code> or <code>\RequirePackage</code>
+for polyglossia or babel. The correct package will be loaded automatically.</p>
+<p class="item"><b>C.</b> To use polyglossia, write
+<code>\setmainlanguage[<i>options</i>]{<i>language</i>}</code> in preamble.
+You may also use other polyglossia commands. Do not use the document class options
+to set language. See the polyglossia package documentation.</p>
+<p class="item"><b>D.</b> To use babel, write <code>v2</code> as a document class option, along with your choice
+of babel language options. See babel documentation.</p>
+<p class="item"><b>E.</b> If you do not choose either method, then the default language
+will be US English, using polyglossia.</p>
+<p class="item"><b>F.</b> Some examples:</p>
+<p>&bull; <code>\documentclass{novel}</code> Polyglossia.</p>
+<p><span style="visibility:hidden">&bull;</span> <code>\setmainlanguage{french}</code>. french.</p>
+<p>&bull; <code>\documentclass[v2,french]{novel}</code>. Babel, french.</p>
+<p>&bull; <code>\documentclass[french]{novel}</code>. Uses polyglossia, because no <code>v2</code>
+as class option. The request for <code>french</code> is ignored, and triggers
+"unknown class option".</p>
</div><!-- end 1.1.3 -->
<h4 id="h1.1.4">1.1.4. Use Open Type Fonts</h4>
<div class="d4" id="d1.1.4">
<p class="item"><b>A.</b> The built-in <i>fontspec</i> package requires utf-8 encoding. It is able to load Open Type fonts, and access their internal feature sets. Forget Type 1 fonts and special encodings! If you wish to use Greek or Cyrillic, all you need are compatible fonts.</p>
<p class="item"><b>B.</b> If you accept the pre-configured fonts (from package <i>libertinus-fonts</i>), then you do not need to know anything about <i>fontspec</i>. But if you wish to configure your own fonts, <a href="#hE">Appendix E</a> reviews the most important parts of <i>fontspec</i> syntax.</p>
-<div style="clear:both"></div>
</div><!-- end 1.1.4 -->
<h4 id="h1.1.5">1.1.5. Read About Book Design</h4>
@@ -3121,12 +3132,12 @@ Some text {\baskf\addfontfeature{Numbers=Monospaced} hello 123} is here.
<div id="pageZ" class="page">
-<h2 id="hZ">Appendix Z. &nbsp; Changes in v.2.00.</h2>
+<h2 id="hZ">Appendix Z. &nbsp; Changes in v.2.1.</h2>
<div class="d2" id="dZ">
<h4>Important Changes</h4>
<div class="d3">
-<p>Version 2.00 (2024) Added choice babel/polyglossia. Revised uuid.</p>
+<p>Version 2.1 (2024) Added choice babel/polyglossia. Revised uuid.</p>
<p>Version 1.86 (2024) docs edited.</p>
<p>Version 1.84 (2023) docs edited. Probably final update.</p>
<p>Version 1.83 (2023) corrected minor typo. Will not affect most users.</p>
diff --git a/macros/luatex/latex/novel/doc/novel.pdf b/macros/luatex/latex/novel/doc/novel.pdf
index afe784e6e5..181ab08a5c 100644
--- a/macros/luatex/latex/novel/doc/novel.pdf
+++ b/macros/luatex/latex/novel/doc/novel.pdf
@@ -8,10 +8,10 @@ stream
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/">
- <xmp:ModifyDate>2024-02-16T08:29:32-08:00</xmp:ModifyDate>
- <xmp:CreateDate>2024-02-16T08:29:32-08:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-02-16T20:46:42-08:00</xmp:ModifyDate>
+ <xmp:CreateDate>2024-02-16T20:46:42-08:00</xmp:CreateDate>
<xmp:CreatorTool>LuaLaTeX with novel and microtype</xmp:CreatorTool>
- <xmp:MetadataDate>2024-02-16T08:29:32-08:00</xmp:MetadataDate>
+ <xmp:MetadataDate>2024-02-16T20:46:42-08:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -25,7 +25,7 @@ stream
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
<xmpMM:DocumentID>uuid:8be8dbc2-8185-4bd3-89d9-3e8e2e6caf20</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:fe42ffd2-8326-4588-8b41-6b5184d4ec27</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:07b883d2-6d54-4e3f-8435-88147e89e625</xmpMM:InstanceID>
<xmpMM:RenditionClass>default</xmpMM:RenditionClass>
<xmpMM:VersionID>1</xmpMM:VersionID>
</rdf:Description>
@@ -49,7 +49,7 @@ stream
endstream
endobj
7 0 obj
-<< /Length 8456 >>
+<< /Length 8460 >>
stream
0 g 0 G
0 g 0 G
@@ -60,7 +60,7 @@ BT
/F95 13.62884 Tf
1 0 0 1 105.124 508.167 Tm [<0022>-250<00250050>-7<00440056004E0046004F0055>-250<0024004D004200540054>-250<004700500053>-250<005500490046>-250<0033004600540055>-250<00500047>-250<00360054>]TJ
/F95 11.3574 Tf
-1 0 0 1 141.246 493.372 Tm [<0037>80<004600530054004A0050004F>-250<09CA000F09C809C8>-250<00090027004600430053005600420053>-15<005A>-250<09CA09C809CA09CC000A>]TJ
+1 0 0 1 139.997 493.372 Tm [<0037>80<004600530054004A0050004F>-250<09CA000F09C8000F09C9>-250<00090027004600430053005600420053>-15<005A>-250<09CA09C809CA09CC000A>]TJ
/F97 11.3574 Tf
1 0 0 1 53.421 446.202 Tm [<0038004900460053>8<0046>-250<004A0054>-250<005500490046>-250<00450050>-7<00440056004E0046004F005500420055004A0050004F00200020>]TJ
/F95 11.3574 Tf
@@ -421,44 +421,44 @@ endobj
<< /Type /Catalog /Pages 11 0 R /Metadata 4 0 R/OutputIntents [ <</Type/OutputIntent/S/GTS_PDFX/OutputCondition (SWOP (Publication) printing in USA (Printing process definition: ANSI CGATS.6).)/OutputConditionIdentifier (CGATS TR 001)/Info (U.S. Web Coated (SWOP) v2)/RegistryName (http://www.color.org)>> ] >>
endobj
31 0 obj
-<< /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240216082932-08'00')/ModDate(D:20240216082932-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >>
+<< /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240216204642-08'00')/ModDate(D:20240216204642-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >>
endobj
xref
0 32
0000000000 65535 f
-0000011462 00000 n
-0000011482 00000 n
-0000011502 00000 n
+0000011466 00000 n
+0000011486 00000 n
+0000011506 00000 n
0000000020 00000 n
-0000011319 00000 n
-0000011167 00000 n
+0000011323 00000 n
+0000011171 00000 n
0000002652 00000 n
-0000030846 00000 n
-0000019433 00000 n
-0000014089 00000 n
-0000031211 00000 n
-0000011555 00000 n
-0000013000 00000 n
-0000011634 00000 n
-0000011705 00000 n
-0000013242 00000 n
-0000014248 00000 n
-0000014453 00000 n
-0000018160 00000 n
-0000014631 00000 n
-0000014703 00000 n
-0000018399 00000 n
-0000019589 00000 n
-0000019792 00000 n
-0000029062 00000 n
-0000020128 00000 n
-0000020503 00000 n
-0000029303 00000 n
-0000031005 00000 n
-0000031272 00000 n
-0000031599 00000 n
+0000030850 00000 n
+0000019437 00000 n
+0000014093 00000 n
+0000031215 00000 n
+0000011559 00000 n
+0000013004 00000 n
+0000011638 00000 n
+0000011709 00000 n
+0000013246 00000 n
+0000014252 00000 n
+0000014457 00000 n
+0000018164 00000 n
+0000014635 00000 n
+0000014707 00000 n
+0000018403 00000 n
+0000019593 00000 n
+0000019796 00000 n
+0000029066 00000 n
+0000020132 00000 n
+0000020507 00000 n
+0000029307 00000 n
+0000031009 00000 n
+0000031276 00000 n
+0000031603 00000 n
trailer
-<< /Size 32 /Root 30 0 R /Info 31 0 R /ID [ <5828568D4751CD080DCDD3C64B1EDDCD> <5828568D4751CD080DCDD3C64B1EDDCD> ] >>
+<< /Size 32 /Root 30 0 R /Info 31 0 R /ID [ <D7D34C8ADBD93CEEFC0DDE591F50331E> <D7D34C8ADBD93CEEFC0DDE591F50331E> ] >>
startxref
-31923
+31927
%%EOF
diff --git a/macros/luatex/latex/novel/doc/novel.tex b/macros/luatex/latex/novel/doc/novel.tex
index 50e81a5baa..91f2ffb290 100644
--- a/macros/luatex/latex/novel/doc/novel.tex
+++ b/macros/luatex/latex/novel/doc/novel.tex
@@ -12,7 +12,7 @@
% novel.pdf (if present) have read/write permissions for any user.
% Otherwise, compile may fail at the point where files are written.
-\documentclass[v2]{novel} % v. 2.00.
+\documentclass{novel} % v. 2.1.
% Almost all settings are defaults.
\SetHeadFootStyle{3}
\SetTitle{Novel Document Class} % only footer, with page number
@@ -26,7 +26,7 @@
\ChapterTitle{NOVEL}
\vspace{\nbs}
\ChapterSubtitle{A Document Class for the Rest of Us}
-{\centering Version 2.00 (February 2024)\par}
+{\centering Version 2.0.1 (February 2024)\par}
\end{ChapterStart}
\textbf{Where is the documentation??} It is HTML.\\
diff --git a/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo b/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo
index 29dac06b40..35ed97ea57 100644
--- a/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo
+++ b/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo
@@ -2,7 +2,7 @@
%% The values of the arguments are public industry standards.
%%
\ProvidesFile{novel-CGATSTR001.clo}%
-[2024/02/16 any version. (novel Output Intent CGATS TR 001)]
+[2024/02/17 any version. (novel Output Intent CGATS TR 001)]
%%
% Typically used in the USA.
diff --git a/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty b/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty
index 5d607de9f1..c99872fbb3 100644
--- a/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-CalculateLayout.sty}%
-[2024/02/16 v2.00 LaTeX file (layout calculations)]
+[2024/02/17 v2.1 LaTeX file (layout calculations)]
%%
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty b/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty
index 672a5ee5b0..df53dfc96e 100644
--- a/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-ChapterScene.sty}%
-[2024/02/16 v2.00 LaTeX file (chapter and scene macros)]
+[2024/02/17 v2.1 LaTeX file (chapter and scene macros)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-DropCap.sty b/macros/luatex/latex/novel/lualatex/novel-DropCap.sty
index 9f7094fc90..6e2359b465 100644
--- a/macros/luatex/latex/novel/lualatex/novel-DropCap.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-DropCap.sty
@@ -9,7 +9,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-DropCap.sty}%
-[2024/02/16 v2.00 (Drop Caps)]
+[2024/02/17 v2.1 (Drop Caps)]
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%
%
diff --git a/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo b/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo
index a4e3e30606..c2cd2c3314 100644
--- a/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo
+++ b/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo
@@ -1,7 +1,7 @@
%% This is file `novel-FOGRA39.clo', part of `novel' document class.
%% The values of the arguments are public industry standards.
\ProvidesFile{novel-FOGRA39.clo}%
-[2024/02/16 any version. (novel Output Intent FOGRA39)]
+[2024/02/17 any version. (novel Output Intent FOGRA39)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-FileData.sty b/macros/luatex/latex/novel/lualatex/novel-FileData.sty
index 474ede64a1..54d4c3a7f9 100644
--- a/macros/luatex/latex/novel/lualatex/novel-FileData.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-FileData.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-FileData.sty}%
-[2024/02/16 v2.00 LaTeX file (File Data settings)]
+[2024/02/17 v2.1 LaTeX file (File Data settings)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Fonts.sty b/macros/luatex/latex/novel/lualatex/novel-Fonts.sty
index 7ad8209c4a..b5b27b3aac 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Fonts.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Fonts.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Fonts.sty}%
-[2024/02/16 v2.00 LaTeX file (font settings and defaults)]
+[2024/02/17 v2.1 LaTeX file (font settings and defaults)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty b/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty
index c3c75067f2..abfa3a4042 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty
@@ -7,7 +7,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Footnotes.sty}%
-[2024/02/16 v2.00 LaTeX file (commands for footnotes and endnotes)]
+[2024/02/17 v2.1 LaTeX file (commands for footnotes and endnotes)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty b/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty
index 86f69bd8c9..5b0f063d8f 100644
--- a/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-HeadFootStyles.sty}%
-[2024/02/16 v2.00 LaTeX file (header and footer layouts and styles)]
+[2024/02/17 v2.1 LaTeX file (header and footer layouts and styles)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Images.sty b/macros/luatex/latex/novel/lualatex/novel-Images.sty
index da054d4385..ab891595f2 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Images.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Images.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Images.sty}%
-[2024/02/16 v2.00 LaTeX file (image placement)]
+[2024/02/17 v2.1 LaTeX file (image placement)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-JC200103.clo b/macros/luatex/latex/novel/lualatex/novel-JC200103.clo
index b422f3af32..06ba7d98de 100644
--- a/macros/luatex/latex/novel/lualatex/novel-JC200103.clo
+++ b/macros/luatex/latex/novel/lualatex/novel-JC200103.clo
@@ -2,7 +2,7 @@
%% The values of the arguments are public industry standards.
%%
\ProvidesFile{novel-JC200103.clo}%
-[2024/02/16 any version. (novel Output Intent JC200103)]
+[2024/02/17 any version. (novel Output Intent JC200103)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty b/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty
index 5ccdac3471..7dba9a0dd1 100644
--- a/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-LayoutSettings.sty}%
-[2024/02/16 v2.00 LaTeX file (layout settings)]
+[2024/02/17 v2.1 LaTeX file (layout settings)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty b/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty
index b47e9e0d3f..68b269535e 100644
--- a/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-PostLayout.sty}%
-[2024/02/16 v2.00 LaTeX file (post-layout modifications)]
+[2024/02/17 v2.1 LaTeX file (post-layout modifications)]
%%
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty b/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty
index ff0978735a..2045a31ab5 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty
@@ -11,7 +11,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Sandbox.sty}%
-[2024/02/16 v2.00 LaTeX file (used only with sandbox class option)]
+[2024/02/17 v2.1 LaTeX file (used only with sandbox class option)]
%%
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty b/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty
index fd080cc247..b30e2e814b 100644
--- a/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-TextMacros.sty}%
-[2024/02/16 v2.00 LaTeX file (text macros usable within document body)]
+[2024/02/17 v2.1 LaTeX file (text macros usable within document body)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-microtype.cfg b/macros/luatex/latex/novel/lualatex/novel-microtype.cfg
index d0dab63518..2cbac7bf30 100644
--- a/macros/luatex/latex/novel/lualatex/novel-microtype.cfg
+++ b/macros/luatex/latex/novel/lualatex/novel-microtype.cfg
@@ -10,7 +10,7 @@
%% ------------------------------------------------------------------------
%%
\ProvidesFile{novel-microtype.cfg}%
-[2024/02/16 any version. (default microtype configuration for novel class)]
+[2024/02/17 any version. (default microtype configuration for novel class)]
%%% ---------------------------------------------------------------------------
%%% FONT SETS
diff --git a/macros/luatex/latex/novel/lualatex/novel-pdfx.sty b/macros/luatex/latex/novel/lualatex/novel-pdfx.sty
index 5c91a405b0..5edcb5d212 100644
--- a/macros/luatex/latex/novel/lualatex/novel-pdfx.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-pdfx.sty
@@ -16,7 +16,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{novel-pdfx.sty}%
-[2024/02/16 v2.00 LaTeX file (PDF/X support for novel class)]
+[2024/02/17 v2.1 LaTeX file (PDF/X support for novel class)]
% This package supports, and is part of, class `novel'.
% No support for anything but LuaLaTeX.
diff --git a/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty b/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty
index 0251b4f3ab..5326f25249 100644
--- a/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty
@@ -14,7 +14,7 @@
%% ----------------------------------------------------------------------------
%%
\ProvidesFile{novel-xmppacket.sty}%
-[2024/02/16 any version. (novel XMP packet template)]
+[2024/02/17 any version. (novel XMP packet template)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel.cls b/macros/luatex/latex/novel/lualatex/novel.cls
index 4d0ce25da7..51ba0094c6 100644
--- a/macros/luatex/latex/novel/lualatex/novel.cls
+++ b/macros/luatex/latex/novel/lualatex/novel.cls
@@ -8,7 +8,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
% Actually needs LuaLaTeX, at least version 0.95 from TeXLive 2016.
-\ProvidesClass{novel}[2024/02/16 v2.00 LaTeX document class]
+\ProvidesClass{novel}[2024/02/17 v2.1 LaTeX document class]
%%
%% During the years since `novel' was introduced, there have been
@@ -22,8 +22,11 @@
%% In addition to a minimal LaTeX setup, with luatex, you will need these:
%% textpos magaz xcolor adjustbox eso-pic pdfpages unicode-math fp iftex
%% libertinus-fonts makecmds xkeyval lm-math xstring xifthen silence
-%% collectbox pgf lipsum wrapfig pdflscape microtype hyperref babel
+%% collectbox pgf lipsum wrapfig pdflscape microtype hyperref
%% You will need language support, for your language(s).
+%% Default support is polyglossia. Write \setmainlanguage[options]{language}
+%% in preamble. Alternative babel, write `v2' as a document class option,
+%% and write choice of language as a document class option.
%% If using lipsum, you will need hyphen-latin.
@@ -68,6 +71,7 @@
Command line: lualatex your-document.tex}
\fi
\pdfimageresolution=300 % default dpi if image does not say
+\nofiles
%
\RequirePackage{etoolbox} % general good stuff
\RequirePackage{xifthen} % improved ifthenelse handling
@@ -128,35 +132,8 @@
%% ----------------------------------------------------------------------------
% Allowed option list:
% draft xml shademargins cropmarks cropview closecrop
-% coverart sandbox unblock mtoff test revert v2 (with babel languages)
-% Yes, I realize that this could have been done another way, but I want
-% to issue error messages from `novel' rather than (say) `keyval':
-\gdef\@mycol{\@classoptionslist,}
-\StrDel{\@mycol}{ }[\@mycol]
-\StrDel{\@mycol}{revert,}[\@mycol]
-\StrDel{\@mycol}{draft,}[\@mycol]
-\StrDel{\@mycol}{xml,}[\@mycol]
-\StrDel{\@mycol}{shademargins,}[\@mycol]
-\StrDel{\@mycol}{graytext,}[\@mycol] % Obsolete. Now always allows graytext.
-\StrDel{\@mycol}{greytext,}[\@mycol] % See above.
-\StrDel{\@mycol}{cropmarks,}[\@mycol]
-\StrDel{\@mycol}{cropview,}[\@mycol]
-\StrDel{\@mycol}{closecrop,}[\@mycol]
-\StrDel{\@mycol}{coverart,}[\@mycol]
-\StrDel{\@mycol}{unblock,}[\@mycol]
-\StrDel{\@mycol}{mtoff,}[\@mycol]
-\StrDel{\@mycol}{test,}[\@mycol]
-\StrDel{\@mycol}{sandbox,}[\@mycol]
-%
-\newif\ifusing@babel % New in novel version 2.
-\IfSubStr{\@mycol}{v2}{
- \StrDel{\@mycol}{v2,}[\@mycol]
- \ifthenelse{\equal{\@mycol}{}}{\def\@mycol{american}}{}
- \RequirePackage[\@mycol]{babel}
-}{
- \RequirePackage{polyglossia}
- \setmainlanguage[variant=american]{english}
-}
+% coverart sandbox unblock mtoff test revert v2 (babel languages)
+% Version 2 change allows language support from polyglossia or babel.
% Version 1.80 has minor tweaks. Option `revert' for version 1.52 behavior.
\newif \if@novrevert
\DeclareOption{revert}{\@novreverttrue}
@@ -222,7 +199,8 @@
% Option test. Primarily for developer use.
\newif \if@testsuite
\DeclareOption{test}{\@testsuitetrue}
-\DeclareOption{v2}{\using@babeltrue}
+\newif \ifusing@vtwo
+\DeclareOption{v2}{\using@vtwotrue} % Reserved for future use.
%
% Option sandbox. for artwork and tables. Max 4 pages.
\newif \if@sandbox
@@ -299,7 +277,7 @@
% In draft mode only, the `shademargins' option requires `grayscale',
% which will be temporarily enabled, even if not specifically requested.
%
-\RequirePackage[gray,hyperref]{xcolor}
+\RequirePackage[gray]{xcolor}
%
% adjustbox and eso-pic cannot precede xcolor.
\RequirePackage{adjustbox} % for scaling and moving
@@ -321,6 +299,20 @@
\@setfontsize\normalsize{\@TentativeEmN}{\@TentativeBLSkipN}%
}
\normalsize
+%%
+\ifusing@vtwo\else
+ \RequirePackage{polyglossia}
+ \ExplSyntaxOn
+ \pretocmd\xpg@set@alias@values{%
+ \prop_if_exist:cF { xpg@alias@keyvals@#1@#4 }
+ { \prop_new:c {xpg@alias@keyvals@#1@#4} }
+ }{}{}
+ \ExplSyntaxOff
+ \setmainlanguage[variant=american]{english}
+\fi
+%%
+
+
\RequirePackage[no-math]{fontspec} % For LuaLaTeX. NOT package `fontenc'.
% The `novel' class is not intended for math. But TeX assumes you do math,
% so it needs a math font, whether you like it or not.
@@ -434,6 +426,11 @@
\RequirePackage{novel-PostLayout} % calculates shademargins, cropmarks, etc.
\RequirePackage{novel-pdfx}% also provides an \AtBeginDocument macro
\@GetInitialYpos% in `novel-TextMacros.sty
+ \ifdefined\setmainlanguage\else
+ \ifusing@vtwo
+ \@ifpackageloaded{babel}{}{\RequirePackage[american]{babel}}
+ \fi
+ \fi
}%
%% end AtEndPreamble
@@ -622,10 +619,6 @@
\AtEndDocument{%
\if@coverart\else%
\if@sandbox\else%
- \immediate\write\@auxout{%
- \string\xdef\string\@AllGoodImages{\@AllGoodImages}^^J%
- \string\xdef\string\@UnknownImages{\@UnknownImages}^^J%
- }%
\ifnocle@rtoend\else\cleartoend\fi%
\fi%
\fi%
diff --git a/macros/unicodetex/latex/polyglossia/README.md b/macros/unicodetex/latex/polyglossia/README.md
index a2f6bf506e..9d5f0bc58b 100644
--- a/macros/unicodetex/latex/polyglossia/README.md
+++ b/macros/unicodetex/latex/polyglossia/README.md
@@ -1,4 +1,4 @@
-# THE POLYGLOSSIA PACKAGE v1.66
+# THE POLYGLOSSIA PACKAGE v2.0
## Multilingual typesetting with XeLaTeX and LuaLaTeX
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -26,8 +26,8 @@ Polyglossia makes it possible to automate the following tasks:
# LICENCE
-Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2023 Arthur Reutenauer,
-Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel
+Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2024 Arthur Reutenauer,
+Copyright (c) 2019-2023 Bastien Roucariès, 2019-2024 Jürgen Spitzmüller, 2023-2024 Udi Fogiel
Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence
(https://opensource.org/licenses/MIT).
diff --git a/macros/unicodetex/latex/polyglossia/polyglossia.dtx b/macros/unicodetex/latex/polyglossia/polyglossia.dtx
index 2adeb09db9..32ca151bc2 100644
--- a/macros/unicodetex/latex/polyglossia/polyglossia.dtx
+++ b/macros/unicodetex/latex/polyglossia/polyglossia.dtx
@@ -8,7 +8,7 @@
\iffalse
%</internal>
%<*README>
-# THE POLYGLOSSIA PACKAGE v1.66
+# THE POLYGLOSSIA PACKAGE v2.0
## Multilingual typesetting with XeLaTeX and LuaLaTeX
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -36,8 +36,8 @@ Polyglossia makes it possible to automate the following tasks:
# LICENCE
-Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2023 Arthur Reutenauer,
-Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel
+Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2024 Arthur Reutenauer,
+Copyright (c) 2019-2023 Bastien Roucariès, 2019-2024 Jürgen Spitzmüller, 2023-2024 Udi Fogiel
Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence
(https://opensource.org/licenses/MIT).
@@ -66,17 +66,17 @@ to track the issues and follow progress.
The polyglossia package
(C) 2008–2010 François Charette
- (C) 2011–2023 Arthur Reutenauer
+ (C) 2011–2024 Arthur Reutenauer
(C) 2013 Elie Roux
(C) 2019 Bastien Roucariès
- (C) 2019–2023 Jürgen Spitzmüller
+ (C) 2019–2024 Jürgen Spitzmüller
License information appended
\endpreamble
\postamble
- Copyright (C) 2023 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
+ Copyright (C) 2024 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -109,7 +109,6 @@ to track the issues and follow progress.
\generate{\file{babelsh.def}{\from{polyglossia.dtx}{babelsh.def}}}
\generate{\file{cal-util.def}{\from{polyglossia.dtx}{cal-util.def}}}
\generate{\file{xgreek-fixes.def}{\from{polyglossia.dtx}{xgreek-fixes.def}}}
-\generate{\file{gloss-latex.lde}{\from{polyglossia.dtx}{gloss-latex.lde}}}
\generate{\file{gloss-acadien.ldf}{\from{polyglossia.dtx}{gloss-acadien.ldf}}}
\generate{\file{gloss-aeb.ldf}{\from{polyglossia.dtx}{gloss-aeb.ldf}}}
\generate{\file{gloss-af.ldf}{\from{polyglossia.dtx}{gloss-af.ldf}}}
@@ -276,6 +275,7 @@ to track the issues and follow progress.
\generate{\file{gloss-la-x-medieval.ldf}{\from{polyglossia.dtx}{gloss-la-x-medieval.ldf}}}
\generate{\file{gloss-la.ldf}{\from{polyglossia.dtx}{gloss-la.ldf}}}
\generate{\file{gloss-lao.ldf}{\from{polyglossia.dtx}{gloss-lao.ldf}}}
+\generate{\file{gloss-latex.ldf}{\from{polyglossia.dtx}{gloss-latex.ldf}}}
\generate{\file{gloss-latin.ldf}{\from{polyglossia.dtx}{gloss-latin.ldf}}}
\generate{\file{gloss-latinclassic.ldf}{\from{polyglossia.dtx}{gloss-latinclassic.ldf}}}
\generate{\file{gloss-latinecclesiastic.ldf}{\from{polyglossia.dtx}{gloss-latinecclesiastic.ldf}}}
@@ -963,11 +963,8 @@ to track the issues and follow progress.
%
% \begin{itemize}
% \item \xpgboolkeyfalse[1.1.1]{babelshorthands}
-% Globally activates \pkg{babel} shorthands whenever available. Such shorthands are
-% implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
-% Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian,
-% Russian, Slovak, and Ukrainian. Please refer to the respective language descriptions
-% (sec.~\ref{specific}) for details.
+% Globally activates \pkg{babel} shorthands whenever available.
+% Please refer to sec.~\ref{shorthands} for details.
%
% \item \xpgboolkeyfalse{localmarks} redefines the internal \LaTeX\ macros \cmd\markboth\ and
% \cmd\markright\ to the effect that the header text is explicitly set in the currently
@@ -993,6 +990,43 @@ to track the issues and follow progress.
% by \LaTeX, \pkg{fontspec} and \pkg{polyglossia} are output.
% \end{itemize}
%
+% \subsection{Shorthands}\label{shorthands}
+%
+% \pkg{Babel} has introduced the nifty feature of \enquote{shorthands} for some of the languages
+% it supports.
+% Shorthands make use of active characters to provide quick access to glyphs and formatting
+% peculiarities that are common in a respective language (\eg ¦"a¦ for German umlaut ⟨ä⟩ in case
+% this is not available on your keyboard).
+% \pkg{Polyglossia} has adopted this feature, we call it \emph{babelshorthands}.
+%
+% Shorthands need to be activated for the respective language, or can be activated globally, via
+% the boolean option \xpgoption{babelshorthands} (either passed globally when loading \pkg{polyglossia}
+% or to a specific language when loading it).
+%
+% Shorthands are implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
+% Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian, Occitan,
+% Piedmontese, Polish, Portuguese, Russian, Slovak, and Ukrainian, and their number and function
+% differs between these languages. Please refer to the respective language descriptions (sec.~\ref{specific})
+% for detailed elaborations.
+%
+% If you want to re-use the shorthands defined for a specific language in a different language,
+% you can do so by using in preamble:\new{2.0}
+% \displaycmd{\inheritbabelshorthands\marg{source language}\marg{target language}}{\inheritbabelshorthands}
+% in order to input and activate the shorthands defined for the \meta{source language} in
+% the \meta{target language}. Both languages will be loaded as \enquote{other} languages if they have not
+% been loaded yet. If one of the languages does not exist, or if the \meta{source language} does not provide any
+% shorthands, you will get an error message.
+%
+% Note, also, that you can only use \cmd{\inheritbabelshorthands} once per language. Subsequent
+% calls will overwrite previous ones (and also the shorthand that might be defined for a
+% \meta{target language} in the first place).
+%
+% If you want to enable the shorthands of a specific language inline, also when the language itself
+% is not active (but loaded in the preamble), you can do so by means of\new{2.0}
+% \displaycmd{\usebabelshorthands\marg{language}}{\usebabelshorthands}
+% The effect of this is local to groups. If you want to disable any active shorthands, you can use
+% ¦\usebabelshorthands{none}¦.
+%
% \section{Language-switching commands}\label{languageswitching}
%
% \subsection{Recommended commands}\label{sec:langcmds}
@@ -1090,9 +1124,11 @@ to track the issues and follow progress.
% In a similar vein, it is possible to use \Cmd\rmfamilylatin, \Cmd\sffamilylatin,
% and \Cmd\ttfamilylatin.
%
-% \item \Cmd\latinalph: Representation of counter as a lower-case letter: 1 = a, 2 = b, etc.
+% \item \DescribeMacro{\latinalph}\cmd{\latinalph\marg{counter}}: Representation of counter as a lower-case letter:
+% 1 = a, 2 = b, etc.
%
-% \item \Cmd\latinAlph: Representation of counter as a upper-case letter: 1 = A, 2 = B, etc.
+% \item \DescribeMacro{\latinAlph}\cmd{\latinAlph\marg{counter}}: Representation of counter as a upper-case letter:
+% 1 = A, 2 = B, etc.
% \end{itemize}
%
%
@@ -1532,23 +1568,37 @@ to track the issues and follow progress.
% If this is turned on, the following shorthands for fine-tuning hyphenation
% and micro-typography of Finnish words are activated:
% \begin{shorthands}
-% \item[¦"-¦] adds a hyphenation point that does still allow for hyphenation at the points preset
-% in the hyphenation patterns (as opposed to \cmd\-).
-% \item[\texttt{"\textasciitilde}] for a hyphen sign without a breakpoint. Useful for
-% cases where the hyphen should stick at the following syllable.
+% \item[¦"-¦] adds an explicit hyphen without a breakpoint, allowing for hyphenation at the
+% other points preset in the hyphenation patterns. Useful for
+% cases where the hyphen should stick at the following syllable
+% (\eg ¦pakastekaapit ja "-arkut¦).
+% \item[\texttt{"=}] for a hyphen sign without a breakpoint that does also remove all other
+% breakpoints in the word (as opposed to ¦"-¦).
+% \item[\texttt{"\textasciitilde}] functionally equivalent to ¦"-¦ (provided for backwards
+% compatibility reasons).
% \item[¦"|¦] disables a ligature at this position.
% \item[¦""¦] allows for a line break at this position (without hyphenation sign).
% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash,
% hyphenation at the breakpoints preset in the hyphenation patterns is still allowed.
% \end{shorthands}
-% \item \xpgboolkeyfalse[1.54]{schoolhyphens}
-% If this is set to true, alternative (experimental) hyphenation patterns are used rather than the
-% default Finnish patterns. These (so-called `School') patterns allow hyphenation at
+% \item \xpgchoicekey[2.0]{hyphens}{\xpgpresetvalue{default}, \xpgvalue{babel}, \xpgvalue{school}}
+% Hyphenation in Finnish is peculiar since there are many rather long words. In order to select a suitable
+% hyphenation pattern, three different options are provided:
+% \begin{itemize}
+% \item The \xpgvalue{default} patterns as used by \LaTeX\ are rather strict and try to prevent hyphenation
+% at points which are valid but considered sub-optimal from an ortho-typographic point of view
+% (\eg hyphenation between two vowels), with the drawback that simple words are sometimes not being
+% hyphenated at points where this would be valid, and lines might become unevenly spaced.
+% \item The \pkg{babel} support for Finnish by default tweaks some hyphenation-related values
+% (such as \cmd\hyphenpenalty) for Finnish. If you want to replicate this with \pkg{polyglossia},
+% select \xpgvalue{babel} (this still uses the default patterns).
+% \item The \xpgvalue{school} setting, finally, employs alternative (experimental) hyphenation patterns
+% rather than the default Finnish patterns. These (so-called `School') patterns allow hyphenation at
% all valid points, including hyphenation points that are considered sub-optimal from an
-% ortho-typographic point of view (e.\,g., hyphenation between two vowels).
-% The default patterns try to prevent such hyphenation, with the drawback that simple words
-% are sometimes not being hyphenated at points where this would be valid.
+% ortho-typographic point of view.\footnote{This equals the previous boolean option \xpgoption{schoolhyphens},
+% which is still supported for backwards compatibility.}
% See \url{https://github.com/hyphenation/basic-finnish} for details.
+% \end{itemize}
% \end{itemize}
%
% \subsection{french}\label{french}
@@ -1706,6 +1756,11 @@ to track the issues and follow progress.
% \eg ¦(pseudo"~)""wissenschaftlich¦.
% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash, hyphenation at the breakpoints
% preset in the hyphenation patterns is still allowed.
+% \item[¦"*¦]\new{2.0} An asterisk which assures the word can still be hyphenated at its defined breakpoints.
+% Useful if you want to employ gender-sensitive writing (,gender star`).
+% Similar shorthands are available for the alternative gender-sensitive spellings, ¦":¦ and ¦"_¦.
+% \item[¦"x¦]\new{2.0} Inserts a gender mark which assures the word can still be hyphenated at its defined breakpoints.
+% This is predefined to ¦*¦ but can be globally redefined by redefining the macro \cmd\mkgender\ (see below).
% \end{shorthands}
%
% There are also four shorthands for quotation signs:
@@ -1716,6 +1771,11 @@ to track the issues and follow progress.
% \item[¦">¦] for French-style right double quotes (»).
% \end{shorthands}
% \end{itemize}
+% \paragraph*{Commands:}
+% \begin{itemize}
+% \item \Cmd\mkgender\new{2.0} Defines which gender mark is output by the babelshorthand ¦"x¦.
+% Predefined to ¦\def\mkgender{*}¦.
+% \end{itemize}
%
% \subsection{greek}\label{greek}
% \paragraph*{Options:}
@@ -3030,7 +3090,45 @@ to track the issues and follow progress.
% \section{Revision history}
%
% \bgroup\footnotesize
-% \subsection*{1.66 (2023/12/02)}
+%
+% \subsection*{2.0 (2024/02/17)}
+%
+% \subsubsection*{Bug fixes}
+% \begin{itemize}
+% \item Fix error with undefined property list that unhides with
+% \pkg{l3kernel} version 2024-02-13 (\TXI{626}).
+% \item Fix \xpgoption{frenchfootnote} option (\TXI{620}).
+% \item The error message on improper font setting is now
+% correct if the main script is non-Latin, for
+% non-Roman fonts (\TXI{571}), and specifically for
+% the CJK case (\TXI{621}).
+% \item Fix expansion of localnumeral (\TXI{622}).
+% \end{itemize}
+%
+% \subsubsection*{New Features}
+% \begin{itemize}
+% \item Add \cmd{\inheritbabelshorthands} (\TXI{604}).
+% \item Add \cmd{\usebabelshorthands}.
+% \item Add shorthands for German gender-sensitive writing.
+% \item Implement \pkg{babel}-style hyphenation for Finnish.
+% \end{itemize}
+%
+% \subsubsection*{Documentation improvements}
+% \begin{itemize}
+% \item Fix documentation of Finnish shorthands (\TXI{623}).
+% \end{itemize}
+%
+% \subsubsection*{Internal work}
+% \begin{itemize}
+% \item The package code has been subjected to a major rewrite.
+% Code has been cleaned up, and in general, \pkg{polyglossia}
+% more consistently employs \pkg{latex3} now. Note that this is
+% an ongoing and yet unfinished project that will continue over
+% the next releases.
+% \end{itemize}
+%
+%
+% \subsection*{1.66 (2023/12/11)}
%
% \subsubsection*{Bug fixes}
% \begin{itemize}
@@ -4102,44 +4200,52 @@ to track the issues and follow progress.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage
- {polyglossia} {2023/12/11} {v1.66}
+ {polyglossia} {2024/02/17} {v2.0}
{Modern multilingual typesetting with XeLaTeX and LuaLaTeX}
+
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}[2008/08/13]
% Will raise error if used with anything else than XeTeX or LuaTeX
\RequirePackage{fontspec}[2010/06/08]% v2.0
\RequirePackage{iftex}
-% Execute code #3 if package #1 has been loaded already, else
-% add to package hook #2
-\cs_new_nopar:Nn \__xpg_at_package_hook:nnn{
- \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}%
-}
-
\prg_generate_conditional_variant:Nnn \clist_if_in:Nn {Ne} {TF, T, F} % check if needed
+
% correct a bug in tracklang
-\__xpg_at_package_hook:nnn{tracklang}{file/tracklang.sty/after}{%
- \@ifpackagelater{tracklang}{2019/08/30}{}{\global\def\AddTrackedLangage{\AddTrackedLanguage}}
+\AddToHook{package/tracklang/after}{%
+ \IfPackageAtLeastTF{tracklang}{2019/08/30}
+ {}
+ {\cs_gset_eq:NN \AddTrackedLangage \AddTrackedLanguage}
}
-%% This is for compatibility with Babel-aware package:
-\def\languageshorthands#1{\relax} % this is for scrlttr2 class
-\def\bbl@cs#1{\csname bbl@#1\endcsname}
+%% The following is for compatibility with Babel-aware package:
+% \languageshorthands is provided by babelsh.def, which is
+% only loaded by some glosses, but some classes presuppose
+% it is there generally. So let's provide a stub:
+\ProvideDocumentCommand \languageshorthands { m } {}
+% These have to be provided at the end of the preamble
\AddToHook{begindocument/before}{
- \let\bbl@set@language\xpg@set@language@aux % for biblatex
- \let\bbl@main@language\xpg@main@language % for biblatex
- \providecommand\texorpdfstring[2]{#1} % dummy command if hyperref is not loaded
+ \cs_gset_eq:NN \bbl@set@language \xpg@set@language@aux % for biblatex
+ \cs_gset_eq:NN \bbl@main@language \xpg@main@language % for biblatex
+ \ProvideDocumentCommand \texorpdfstring { m m } { #1 } % dummy command if hyperref is not loaded
}
-\sys_if_engine_luatex:T{
- \RequirePackage{luatexbase} % already included by fontspec, but needed here
- \RequireLuaModule{polyglossia}
-}
+%% when no patterns are available, we use \l@nohyphenation, assigned to 255
+%% (suggestion by Enrico Gregorio)
+%% \l@nohyphenation is defined in polyglossia.lua
+\sys_if_engine_luatex:TF
+ {
+ \RequirePackage{luatexbase} % already included by fontspec, but needed here
+ \RequireLuaModule{polyglossia}
+ }{
+ \cs_if_free:cT { l@nohyphenation }
+ { \chardef\l@nohyphenation=255 }
+ }
% Which version of XeTeX do we use? What is the boudary class? 4095 or 255
-\@ifundefined{e@alloc@intercharclass@top}
- {\chardef\xpg@boundaryclass=\@cclv}
- {\let\xpg@boundaryclass=\e@alloc@intercharclass@top}
+\cs_if_exist:cTF { e@alloc@intercharclass@top }
+ { \let\xpg@boundaryclass=\e@alloc@intercharclass@top }
+ { \chardef\xpg@boundaryclass=\@cclv }
% Useful for getting list of loaded languages and variants. Like babel's bbl@loaded
% all language loaded
@@ -4153,17 +4259,26 @@ to track the issues and follow progress.
% list of loaded languages (bcp-47 id)
\clist_new:N \xpg@bcp@loaded
-% counter in latin
-\def\latinalph#1{\expandafter\latin@alph\csname c@#1\endcsname}
-\def\latinAlph#1{\expandafter\latin@Alph\csname c@#1\endcsname}
+% output counter as lower-case latin letter
+\DeclareExpandableDocumentCommand \latinalph { m }
+{
+ \exp_args:Nc \latin@alph {c@#1}
+}
+% output counter as upper-case latin letter
+\DeclareExpandableDocumentCommand \latinAlph { m }
+{
+ \exp_args:Nc \latin@Alph {c@#1}
+}
+%% Internal hooks
% select language hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_selectlanguage: {}
% \disablehyphenation hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_hyphenation: {}
% hook to be executed at begin of document
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument: {
+\cs_new_nopar:Nn \__xpg_at_begin_document:
+{
% save various command
\let\latin@alph\@alph % TODO rename when we have the C locale
\let\latin@Alph\@Alph % TODO rename when we have the C locale
@@ -4171,22 +4286,25 @@ to track the issues and follow progress.
\let\polyglossia@Clang@@arabic\@arabic
\let\polyglossia@Clang@arabic\arabic
- \xpg@initial@setup
+ \xpg_initial_setup:
% apply \familydefault changes
\xpg@set@familydefault
}
-\AtBeginDocument{
- \polyglossia@AtBeginDocument:
+\AddToHook{begindocument}{
+ \__xpg_at_begin_document:
}
% The following needs to go after any \AtBeginDocument (also of packages
% loaded after \set[main|other]language
-\AfterEndPreamble{
+% Track whether the main language has been set
+\bool_new:N \g_xpg_main_lang_set_bool
+\AddToHook{begindocument/end}{
% now we have the C locale definition: select the language
- \polyglossia@AtBeginDocument@selectlanguage:
+ \__xpg_at_begin_document_selectlanguage:
+ \bool_gset_true:N \g_xpg_main_lang_set_bool
% If hyphenation disabling has been requested in preamble, do it now
- \polyglossia@AtBeginDocument@hyphenation:
+ \__xpg_at_begin_document_hyphenation:
}
%% custom message macros
@@ -4219,7 +4337,7 @@ to track the issues and follow progress.
\xpg@warning{Illegal~ value~ (#1)~ for~ #2}}
% error out if lang is not loaded
-\cs_new_nopar:Nn \polyglossia@error@iflangnotloaded:n
+\cs_new_nopar:Nn \xpg_error_if_lang_not_loaded:n
{
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
@@ -4239,7 +4357,16 @@ to track the issues and follow progress.
}
\msg_redirect_name:nnn { polyglossia } { languagenolongerloaded } { warning }
-%
+\msg_new:nnn { polyglossia } { unknownlocalnumeral }
+{
+ Unknown~ key~ "#1"~ in~ \string\localnumeral.
+}
+
+\msg_new:nnn { polyglossia } { localnumeralemptyvalue }
+{
+ Keys~ of~ \string\localnumeral~ must~ have~ value.
+}
+
%% use macro if defined, else warn that it is not
\cs_new_nopar:Nn \__xpg_use_or_warn:N
@@ -4257,12 +4384,12 @@ to track the issues and follow progress.
\def\@@ensure@maindir#1{\ifcsundef{@ensure@maindir}{#1}{\@ensure@maindir{#1}}}
%% Used by the language definitions files for right-to-left languages
-\def\RequireBidi
- {
+\NewDocumentCommand \RequireBidi {}
+{
\sys_if_engine_luatex:TF
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{luabidi}\fi}
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{bidi}\fi}
- }
+}
% if #1 is LR run #2 else #3
\prg_set_conditional:Nnn \__xpg_if_LR_str:n {p, T, F, TF}
@@ -4281,20 +4408,23 @@ to track the issues and follow progress.
% (lua)bidi commands to change directionality for paragraphs
% and inline text.
% overwritten with correct package
-\cs_new_nopar:Nn{\polyglossia@setpardirection:n}{
+\cs_new_nopar:Nn \__xpg_set_par_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\cs_new_nopar:Nn{\polyglossia@settextdirection:n}{
+\cs_new_nopar:Nn \__xpg_set_text_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\__xpg_at_package_hook:nnn{bidi}{package/bidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/bidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -4303,7 +4433,8 @@ to track the issues and follow progress.
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -4313,8 +4444,9 @@ to track the issues and follow progress.
}
}
}
-\__xpg_at_package_hook:nnn{luabidi}{package/luabidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/luabidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -4323,7 +4455,8 @@ to track the issues and follow progress.
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -4358,18 +4491,17 @@ to track the issues and follow progress.
%% TODO: localalph = {<alph_csname>,<Alph_csname>}
%% TODO: localnumeral = <csname>
%% or even better localdigits = {0123456789} for fully automatic setup
-\newif\if@xpg@language@really@defined@
\newcommand*\PolyglossiaSetup[2]{
- \polyglossia@keys_define_lang:n{#1}
+ \__xpg_keys_define_lang:n{#1}
\keys_set:nn { polyglossia / #1 } { #2 }
- \polyglossia_setup_hyphen:n {#1}
+ \__xpg_setup_hyphen:n {#1}
%define booleans etoolbox style and set defaults
%% TODO ? \providetoggle{#1@setup@done}%
% we initialize these so that we can use \gappto below
\csgdef{init@extras@#1}{}
\csgdef{init@noextras@#1}{} % we don't use this yet: remove?
% here we do the fontsetup:
- \xpg__auto_setupfont:n { #1 }
+ \__xpg_auto_setupfont:n { #1 }
%% TODO? \toggletrue{#1@setup@done}
% register base alias
\xpg_language_alias { #1 } { #1 }
@@ -4388,15 +4520,16 @@ to track the issues and follow progress.
% setup hyphennames from a str list of hyphen
-\cs_new:Nn \polyglossia_setup_hyphen:n {
- \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \polyglossia@langsetup {#1 / hyphennames}}
+\cs_new:Nn \__xpg_setup_hyphen:n
+{
+ \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphennames}}
\providebool{havehyphen}
\boolfalse{havehyphen}
% for each hyphen in the set until we find one that works
\clist_map_inline:Nn \l_tmpa_clist {
\ifbool{havehyphen}{}{
% check if language hyphenname is defined
- \__xpg_check_if_exist_l@:NF{#1}{
+ \__xpg_check_if_exist_l@:nF{#1}{
% if not, first consider nohyphenation
\str_if_eq:nnTF{##1}{nohyphenation}
{
@@ -4433,7 +4566,7 @@ to track the issues and follow progress.
}
% setup hyphenmins
\clist_set:Ne \l_tmpa_clist
- { \prop_item:Nn \polyglossia@langsetup {#1 / hyphenmins} }
+ { \prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphenmins} }
\cs_if_eq:cNF {l@#1} \l@nohyphenation
{
\use:x
@@ -4446,8 +4579,9 @@ to track the issues and follow progress.
}
\newcommand*\polyglossia@setup@language@patterns[1]{
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\the\csname l@#1\endcsname}
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\the\csname l@#1\endcsname}
}{
% first, test if \l@#1 exists
% without that, \csname l@#1\endcsname will be defined as \relax
@@ -4474,15 +4608,16 @@ to track the issues and follow progress.
}
}
-\prop_new:N \polyglossia@langsetup
+\prop_new:N \g_xpg_langsetup_prop
-\cs_new_protected:Npn \polyglossia@keys_define_lang:n #1 {
+\cs_new_protected:Npn \__xpg_keys_define_lang:n #1
+{
\keys_define:nn {polyglossia}{
% the script font
#1 / script
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/script}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/lcscript}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/script}{##1}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/lcscript}
{\tl_if_empty:nF{##1}{\str_lowercase:n{##1}}}
},
#1 / script
@@ -4491,84 +4626,84 @@ to track the issues and follow progress.
.initial:n = latin,
% the opentype script tag
#1 / scripttag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/scripttag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/scripttag}{##1}},
#1 / scripttag
.default:n = {},
#1 / scripttag
.initial:n = {},
% the language full name
#1 / language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/language}{##1}},
#1 / language
.value_required:n = true,
#1 / language
.initial:x = {\str_uppercase:n#1},
% the language tag
#1 / langtag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/langtag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/langtag}{##1}},
#1 / langtag
.value_required:n = true,
#1 / langtag
.initial:n = {},
% the BCP-47 tag
#1 / bcp47
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47}{##1}},
#1 / bcp47
.value_required:n = true,
#1 / bcp47
.initial:n = {},
% the BCP-47 language tag
#1 / bcp47-language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-language}{##1}},
#1 / bcp47-language
.value_required:n = true,
#1 / bcp47-language
.initial:n = {},
% the BCP-47 region tag
#1 / bcp47-region
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-region}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-region}{##1}},
#1 / bcp47-region
.value_required:n = false,
#1 / bcp47-region
.initial:n = {},
% the BCP-47 script tag
#1 / bcp47-script
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-script}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-script}{##1}},
#1 / bcp47-script
.value_required:n = true,
#1 / bcp47-script
.initial:n = {},
% the BCP-47 variant tag
#1 / bcp47-variant
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-variant}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-variant}{##1}},
#1 / bcp47-variant
.value_required:n = false,
#1 / bcp47-variant
.initial:n = {},
% the BCP-47 extension-t tag
#1 / bcp47-extension-t
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-t}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-t}{##1}},
#1 / bcp47-extension-t
.value_required:n = false,
#1 / bcp47-extension-t
.initial:n = {},
% the BCP-47 extension-u tag
#1 / bcp47-extension-u
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-u}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-u}{##1}},
#1 / bcp47-extension-u
.value_required:n = false,
#1 / bcp47-extension-u
.initial:n = {},
% the BCP-47 extension-x tag
#1 / bcp47-extension-x
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-x}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-x}{##1}},
#1 / bcp47-extension-x
.value_required:n = false,
#1 / bcp47-extension-x
.initial:n = {},
% the BCP-47 casing alias
#1 / bcp47-casing
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-casing}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-casing}{##1}},
#1 / bcp47-casing
.value_required:n = false,
#1 / bcp47-casing
@@ -4577,7 +4712,7 @@ to track the issues and follow progress.
#1 / hyphennames
.code:n = {
\clist_set:Nn{\l_tmpa_clist}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
},
#1 / hyphennames
.value_required:n = true,
@@ -4590,7 +4725,7 @@ to track the issues and follow progress.
{LR}{}
{RL}{\RequireBidi}
}
- {\prop_gput:Nnn{\polyglossia@langsetup}{#1/direction}{##1}}
+ {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/direction}{##1}}
{\xpg@error{Unknown~ direction~ "##1"~ for~ language~ "#1"}}
},
#1 / direction
@@ -4604,7 +4739,7 @@ to track the issues and follow progress.
\int_compare:nNnF { \clist_count:n {##1} } = {2}
{\xpg@error{hypenmins~should~be~a~list~of~two~entries,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/hyphenmins} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/hyphenmins} {##1}
},
#1 / hyphenmins
.value_required:n = true,
@@ -4617,7 +4752,7 @@ to track the issues and follow progress.
\int_compare:nNnF { \clist_count:n {##1} } = {1}
{\xpg@error{totalhyphenhypenmin~should~be~a~single~entry,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/totalhyphenmin} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/totalhyphenmin} {##1}
},
#1 / totalhyphenmin
.value_required:n = false,
@@ -4636,35 +4771,35 @@ to track the issues and follow progress.
% environment name
#1 / envname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/envname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/envname}{##1}
},
#1/ envname.value_required:n = true,
#1/ envname.initial:n = {#1},
% babel name
#1 / babelname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/babelname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/babelname}{##1}
},
#1/ babelname.value_required:n = true,
#1/ babelname.initial:n = {#1},
% default numerals
#1 / localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/localnumeral}{##1}
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / localnumeral.value_required:n = true,
#1 / localnumeral.initial:n = {polyglossia@C@localnumeral},
% uppercased
#1 / Localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / Localnumeral.value_required:n = true,
#1 / Localnumeral.initial:n = {polyglossia@C@localnumeral},
% environment define command (by default create the environment)
#1 / DefineCommandsCmd
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/DefineCommandsCmd}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/DefineCommandsCmd}{##1}},
#1 / DefineCommandsCmd
.value_required:n = true,
#1 / DefineCommandsCmd
@@ -4677,29 +4812,32 @@ to track the issues and follow progress.
\polyglossia@Clang@@arabic{#2}
}
-\tl_new:N \l__xpg_localnumeral_tl
-\bool_new:N \l__xpg_localnumeral_bool
-
-\keys_define:nn { polyglossia / localnumeral }
+\cs_new:Npn \__xpg_localnumeral_parse:nn #1 #2
{
- lang .choice:,
- lang / main .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \mainlanguagename } ,
- lang / local .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \languagename }
- \bool_set_true:N \l__xpg_localnumeral_bool ,
- lang / unknown .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { #1 } ,
+ \str_if_eq:eeF { #1 } { lang } { \msg_error:nnn { polyglossia } { unknownlocalnumeral } { #1 } }
+ \exp_args:Ne \str_case:nnF { #2 }
+ {
+ { local } { }
+ { main } { \foreignlanguage { \mainlanguagename } }
+ }
+ { \foreignlanguage { #2 } }
}
\cs_new:Npn \__xpg_localnumeral:nnn #1 #2 #3
{
- \group_begin:
- \keys_set:ne { polyglossia / localnumeral } { #2 }
- \bool_if:NF \l__xpg_localnumeral_bool { \foreignlanguage { \l__xpg_localnumeral_tl } }
- { \use:c { \prop_item:Ne \polyglossia@langsetup
- { \l__xpg_localnumeral_tl / #3 } } { } { #1 } }
- \group_end:
+ \use:e
+ {
+ \keyval_parse:nnn
+ { \msg_error:nnn { polyglossia } { localnumeralemptyvalue } }
+ {
+ \__xpg_localnumeral_parse:nn
+ } { #2 }
+ }
+ { \use:c { \prop_item:Ne \g_xpg_langsetup_prop
+ { \languagename / #3 } } { } { #1 } }
}
-
-\NewDocumentCommand \localnumeral { s ={ lang } O{ local } m }
+
+\NewExpandableDocumentCommand \localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -4710,7 +4848,7 @@ to track the issues and follow progress.
}
}
-\NewDocumentCommand \Localnumeral { s ={ lang } O{ local } m }
+\NewExpandableDocumentCommand \Localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -4721,86 +4859,90 @@ to track the issues and follow progress.
}
}
-\cs_new_nopar:Npn \xpg__french_spacing:n #1
+\cs_new_nopar:Npn \__xpg_french_spacing:n #1
{
\bool_if:cTF { g__xpg_#1_fs_bool }
{ \frenchspacing } { \nonfrenchspacing }
}
-\cs_new_nopar:Npn \xpg__indent_first:n #1
+\cs_new_nopar:Npn \__xpg_indent_first:n #1
{
\bool_if:cTF { g__xpg_#1_if_bool }
{ \french@indent } { \nofrench@indent }
}
-\cs_new:Nn{\polyglossia@lang@setpardirection:n}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_par_direction:n
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@setpardirection:n{\l_tmpa_tl}
+ \__xpg_set_par_direction:n{\l_tmpa_tl}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\cs_new:Nn{\polyglossia@lang@settextdirection:nn}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_text_direction:nn
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@settextdirection:n{\l_tmpa_tl}{#2}
+ \__xpg_set_text_direction:n{\l_tmpa_tl}{#2}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\def\xpg@lastlanguage{0}
+\tl_new:N \g__xpg_lastlanguage_tl
+\tl_set:Nn \g__xpg_lastlanguage_tl { 0 }
-\providebool{xpg@hyphenation@disabled}
-\boolfalse{xpg@hyphenation@disabled}
+% Track whether hyphenation is disabled
+\bool_new:N \g__xpg_hyphenation_disabled_bool
-\def\xpg@disablehyphenation{
- \ifx\@onlypreamble\@notprerr
- \xpg@@disablehyphenation
- \else
- % if this is used in the preamble, we have to postpone
- % the execution until the main language has been set (#125).
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {
- \xpg@@disablehyphenation
+\DeclareDocumentCommand \disablehyphenation {}
+{
+ \bool_if:NTF \g_xpg_main_lang_set_bool
+ {
+ \__xpg_disable_hyphenation:
+ }
+ {
+ % we have to postpone the execution until the main language
+ % has been set (#125).
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_hyphenation: {
+ \__xpg_disable_hyphenation:
}
- \fi
+ }
}
-\def\xpg@@disablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{}{
- \booltrue{xpg@hyphenation@disabled}
- \xdef\xpg@lastlanguage{\the\language}
+\cs_new:Nn \__xpg_disable_hyphenation:
+{
+ \bool_if:NF \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_true:N \g__xpg_hyphenation_disabled_bool
+ \tl_gset:Ne \g__xpg_lastlanguage_tl { \the\language }
% We do not call \xpg@set@hyphenation@patterns here to avoid a warning message.
% "nohyphenation" is not listed in language.dat.lua.
\language=\l@nohyphenation
}
}
-\def\xpg@enablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{
- \boolfalse{xpg@hyphenation@disabled}
- \language=\csname xpg@lastlanguage\endcsname
- }{}%
+\DeclareDocumentCommand \enablehyphenation {}
+{
+ \bool_if:NT \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_false:N \g__xpg_hyphenation_disabled_bool
+ \language=\tl_use:N{\g__xpg_lastlanguage_tl}
+ }%
}
-\let\disablehyphenation\xpg@disablehyphenation
-\let\enablehyphenation\xpg@enablehyphenation
-
-%\def\xpg@fontsetup#1{\xpg@csifdef@warn{xpg@fontsetup@#1}}
-%\def\xpg@fontsetup@none#1{\csgdef{#1@font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg@fontsetup@custom#1{\csuse{#1@font}}
-
-\cs_new:Npn \xpg__auto_setupfont:n #1 {
+\cs_new:Npn \__xpg_auto_setupfont:n #1
+{
\bool_if:cTF { g__xpg_#1_fontsetup_bool }
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{\xpg@fontsetup@latin{#1}}
{\xpg@fontsetup@nonlatin{#1}}
}
@@ -4812,11 +4954,12 @@ to track the issues and follow progress.
% add fontfeature Language=#2 to langtag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@language:nn {
+\cs_new:Nn \__xpg_add_font_feature_language:nn
+{
\bool_if:nTF{\tl_if_empty_p:n{#1} || \tl_if_empty_p:n{#2}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font~
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font~
(Language="#2"~ to~ langtag~ "#1")}
}
{
@@ -4840,67 +4983,82 @@ to track the issues and follow progress.
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
% add fontfeature Script=#2 to scripttag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@script:nnn {
+\cs_new:Nn \__xpg_add_font_feature_script:nnn
+{
\bool_if:nTF{\tl_if_empty_p:n{#2} || \tl_if_empty_p:n{#3}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font
(Script="#3"~ to~ scripttag~ "#2")}
}
{
\fontspec_if_script:nTF{#2}
{\addfontfeature{Script=#3}}
{
- \tl_set:Nn \l_ffamily_tl {}
- \tl_set:Nn \l_ffamilysh_tl { #1 }
+ \tl_set:Nn \xpg_ffamily_tl {}
+ \tl_set:Nn \xpg_ffamilysh_tl { #1 }
\str_if_eq:nnT { #1 } { rm }
{
- \tl_set:Nn \l_ffamily_tl { roman }
- \tl_set:Nn \l_ffamilysh_tl {}
+ \tl_set:Nn \xpg_ffamily_tl { roman }
+ \tl_set:Nn \xpg_ffamilysh_tl {}
}
\str_if_eq:nnT { #1 } { sf }
{
- \tl_set:Nn \l_ffamily_tl { sans~ serif }
+ \tl_set:Nn \xpg_ffamily_tl { sans~ serif }
}
\str_if_eq:nnT { #1 } { tt }
{
- \tl_set:Nn \l_ffamily_tl { monospace }
+ \tl_set:Nn \xpg_ffamily_tl { monospace }
}
+ % Strip font family name for error message
+ % Courtesy of egreg, https://tex.stackexchange.com/a/613996
+ \str_set:Nx \xpg_fname_str { \fontname\font }
+ % Remove all after :
+ \regex_replace_once:nnN { \:.* } { } \xpg_fname_str
+ % ... and all after /
+ \regex_replace_once:nnN { /.* } { } \xpg_fname_str
+ % ... and brackets
+ \regex_replace_once:nnN { \[ } { } \xpg_fname_str
+ \regex_replace_once:nnN { \] } { } \xpg_fname_str
+ % ... and extensions
+ \regex_replace_once:nnN { \.[^\.]* \Z } { } \xpg_fname_str
+ % ... and, finally, quotation marks
+ \regex_replace_once:nnN { " } { } \xpg_fname_str
\xpg@error{
- The~ current~ latin ~ \l_ffamily_tl\space font~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
- Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n#3}font\l_ffamilysh_tl\endcsname~
+ The~ current~ main ~ \xpg_ffamily_tl\space font,~ \xpg_fname_str,~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
+ Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n{#3}}font\xpg_ffamilysh_tl\endcsname~
with~ \string\newfontfamily\space command
}
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
\def\xpg@fontsetup@latin#1{
\begingroup
\csgdef{#1@font@rm}{
\cs_if_exist_use:cF{#1font}{
\rmfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@sf}{
\cs_if_exist_use:cF{#1fontsf}{
\sffamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@tt}{
\cs_if_exist_use:cF{#1fonttt}{
\ttfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\endgroup
@@ -4912,9 +5070,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1font}
{
\providetoggle{#1@use@script@font}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\rmfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} font}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} font}
{
\toggletrue{#1@use@script@font}
}
@@ -4923,12 +5081,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@font}{}{
- \polyglossia@addfontfeature@script:nxx{rm}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{rm}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{rm}
}%
@@ -4936,9 +5094,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1fontsf}
{
\providetoggle{#1@use@script@fontsf}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\sffamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fontsf}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fontsf}
{
\toggletrue{#1@use@script@fontsf}
}
@@ -4947,12 +5105,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@fontsf}{}{
- \polyglossia@addfontfeature@script:nxx{sf}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{sf}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{sf}
}%
@@ -4960,9 +5118,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1fonttt}
{
\providetoggle{#1@use@script@fonttt}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\ttfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fonttt}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fonttt}
{
\toggletrue{#1@use@script@fonttt}
}
@@ -4971,12 +5129,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@fonttt}{}{
- \polyglossia@addfontfeature@script:nxx{tt}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{tt}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
\def\familytype{tt}
}
@@ -4987,71 +5145,42 @@ to track the issues and follow progress.
%% ensure localization of \markright and \markboth commands
%%% THIS IS NOW DISABLED BY DEFAULT
-\cs_new_nopar:Nn {\polyglossia@local@marks:n} {}
-\cs_new_nopar:Nn {\polyglossia@enable@local@marks:}
+\cs_new_nopar:Nn \__xpg_local_marks:n { }
+\cs_new_nopar:Nn \__xpg_enable_local_marks:
{
- \xpg@info{Option:~ localmarks}
- \cs_gset_nopar:Nn \polyglossia@local@marks:n
- {%
- \def\xpg@tmp@lang{##1}
- \DeclareRobustCommand\markboth[2]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \unrestored@protected@xdef\@themark
- {%
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
- }%
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }%
- \DeclareRobustCommand\markright[1]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }
-% This part seems wrong (see #396 for explanation). Remove after a while.
-% \def\@markright####1####2####3{%
-% \@temptokena{\protect\@@ensure@maindir{####1}}%
-% \unrestored@protected@xdef\@themark{%
-% {\the\@temptokena}%
-% {\protect\@@ensure@maindir{####3}}%
-% }%
-% }%
- }%
+ \xpg@info{Option:~ localmarks}
+ \cs_gset_nopar:Nn \__xpg_local_marks:n
+ {
+ \def\xpg@tmp@lang{##1}
+ \DeclareRobustCommand\markboth[2]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \unrestored@protected@xdef\@themark
+ {
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
+ }
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ \DeclareRobustCommand\markright[1]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ }
}
-
-% Easy way out – Arthur, 2012-08-01
-\ifcsdef{newXeTeXintercharclass}{
-% to reset the intercharclass of a character to "normal"
-\newXeTeXintercharclass\xpg@normalclass %TODO
-}{}
-
-%% when no patterns are available, we use \l@nohyphenation, assigned to 255
-%% (suggestion by Enrico Gregorio)
-\sys_if_engine_luatex:TF
- {
- \@ifundefined{l@nohyphenation}
- {\chardef\l@nohyphenation=\directlua{
- tex.sprint(polyglossia.newloader_loaded_languages.nohyphenation)}\relax
- }
- {}
- }
- {
- \@ifundefined{l@nohyphenation}{\chardef\l@nohyphenation=255 }{}
- }
-
%we call this macro when a gloss file is not found for a given language
\def\xpg@nogloss#1{
- \xpg@warning{Neither~ file~ gloss-#1.ldf~ nor file~ gloss-#1.lde~ exists!\MessageBreak
+ \xpg@warning{File~ gloss-#1.ldf~ do~ not~ exists!\MessageBreak
I~ will~ nevertheless~ try~ to~ use~ hyphenation~ patterns~ for~ #1.}
\PolyglossiaSetup{#1}{hyphenmins={2,3},hyphennames={#1},fontsetup=true}
% the above amounts to:
@@ -5070,96 +5199,39 @@ to track the issues and follow progress.
\catcode`\@=\xpg@saved@at@catcode
}
-%% Load a lde file
-\cs_new_nopar:Nn \__xpg_gloss_ext: {lde}
-\cs_new_nopar:Ne \__xpg_saved_@pkgextension: {\@pkgextension}
-
-\msg_new:nnn { polyglossia } { directloadgloss }
-{
- You~ should~ not~ load~ directly~ the~ gloss~ file. ~
- You~ must~ use~ `\string\setotherlanguage\{#1\}' or `\string\setmainlanguage\{#1\}'.
-}
-\msg_redirect_name:nnn { polyglossia } { directloadgloss } { critical }
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension_error}{m m m m}
-{
- \msg_critical:nn { polyglossia } { directloadgloss }
-}
-% ProvideExplPackage but for language file
-\cs_new_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-\cs_new_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension}{m m m m}
-{
- \__xpg_saved_ProvidesExplPackage{#1}{#2}{#3}{#4}
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-}
-
-
-% wrapper for loading a gle file
-\NewDocumentCommand{\RequireLanguageDefinitionExtension}{O{} m}
-{
- \cs_gset_eq:NN \__xpg_saved_@pkgextension: \@pkgextension
- \cs_gset_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
- \cs_gset_eq:NN \@pkgextension \__xpg_gloss_ext:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension
- \RequirePackage[#1]{gloss-#2}
- % be paranoiac restore
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \__xpg_ProvidesLanguageDefinitionExtension_error \ProvideLanguageDefinitionExtension
-}
-
% try to load a language file
-\cs_new:Nn \polyglossia_load_lang_definition:nn {
- \file_if_exist:nTF{gloss-#2.lde}
- {
- \RequireLanguageDefinitionExtension[#1]{#2}
- \setkeys{#2}{#1}
- }
- {
- \file_if_exist:nTF{gloss-#2.ldf}
- {
- % Temporarily force catcode of ~ to 13 since babelsh.def
- % requires it. This is needed particularly with LaTeX3
- % packages which force \ExplSyntaxOn (#425)
- \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
- \catcode 126 = 13
- \xpg@input{gloss-#2.ldf}
- \setkeys{#2}{#1}
- % restore former ~ catcode
- \xpg@restore@tilde@catcode
- }
- {
- \xpg@nogloss{#2}
- }
- }
-}
-\cs_generate_variant:Nn \polyglossia_load_lang_definition:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_new:Nn \__xpg_load_lang_definition:nn {
+ \file_if_exist:nTF{gloss-#2.ldf}
+ {
+ % Temporarily force catcode of ~ to 13 since babelsh.def
+ % requires it. This is needed particularly with LaTeX3
+ % packages which force \ExplSyntaxOn (#425)
+ \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
+ \catcode 126 = 13
+ \xpg@input{gloss-#2.ldf}
+ \setkeys{#2}{#1}
+ % restore former ~ catcode
+ \xpg@restore@tilde@catcode
+ }
+ {
+ \xpg@nogloss{#2}
+ }
+}
+\cs_generate_variant:Nn \__xpg_load_lang_definition:nn { ee }
% load a master language from an alias file
\newcommand*\xpg@load@master@language[1] {
- \file_if_exist:nTF{gloss-#1.lde}
- {
- \RequireLanguageDefinitionExtension{#1}
- }
- {
- \xpg@input{gloss-#1.ldf}
- }
+ \xpg@input{gloss-#1.ldf}
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1} {
- \use:c{\prop_item:Nn{\polyglossia@langsetup}
+ \use:c{\prop_item:Nn{\g_xpg_langsetup_prop}
{#1/DefineCommandsCmd}}
{#1}
}
}
- \polyglossia@register@language:nn{}{#1}
+ \__xpg_register_language:nn{}{#1}
\seq_gput_right:Nn \__xpg_langs_loaded {#1}
}
@@ -5170,14 +5242,14 @@ to track the issues and follow progress.
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1}
{
\exp_args:Ne
- \newenvironment {\prop_item:Nn{\polyglossia@langsetup}{#1/envname}} [1] []
+ \NewDocumentEnvironment {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/envname}} { O{} }
{
- \begin{otherlanguage}[##1]{#1}
+ \otherlanguage [ ##1 ] { #1 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
- \exp_args:Nc \newcommand {text#1} [2][]
+ \exp_args:Nc \NewDocumentCommand {text#1} { O{} m }
{
\__xpg_textlanguage:een{##1}{#1}{##2}
}
@@ -5198,7 +5270,7 @@ to track the issues and follow progress.
% target to self fall back to language table
\str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
{
- \prop_item:Nn{\polyglossia@langsetup} {#1/#2}
+ \prop_item:Nn{\g_xpg_langsetup_prop} {#1/#2}
}
% load alias by recursion
{
@@ -5232,15 +5304,10 @@ to track the issues and follow progress.
% get base language
-\cs_new:Nn \xpg_alias_base_lang:n {
- \str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
- {
- #1
- }
+\cs_new:Nn \xpg_alias_base_lang:n
{
- \xpg_alias_base_lang:n { \prop_item:Ne \__xpg_alias {#1/target} }
+ \prop_item:Ne \__xpg_alias {#1/target}
}
-}
\cs_generate_variant:Nn \xpg_alias_base_lang:n {e}
\keys_define:nn { polyglossia/alias }
@@ -5302,10 +5369,10 @@ to track the issues and follow progress.
}
\DeclareDocumentEnvironment { #4 } { }
{
- \begin{otherlanguage}{#4}
+ \otherlanguage { #4 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
}
\tl_clear_new:N \__xpg_alias_option_tl
@@ -5321,19 +5388,20 @@ to track the issues and follow progress.
{#4}
}
-\cs_new:Nn \polyglossia@register@language:nn {
+\cs_new:Nn \__xpg_register_language:nn
+{
\clist_if_in:NeF \xpg@loaded {#2}{
\clist_gput_right:Ne \xpg@loaded {#2}
}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
% register babelname
- \prop_get:NeN \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
\clist_if_in:NeF \xpg@bloaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bloaded {\l_tmpa_tl}
}
% register BCP-47 ID
- \prop_get:NeN \polyglossia@langsetup {#2/bcp47} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/bcp47} \l_tmpa_tl
\clist_if_in:NeF \xpg@bcp@loaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bcp@loaded {\l_tmpa_tl}
}
@@ -5350,21 +5418,21 @@ to track the issues and follow progress.
}
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:nn{#1}{#2}
+ \__xpg_load_lang_definition:nn{#1}{#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
- \exp_args:Nee \polyglossia@set@default@language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \exp_args:Nee \__xpg_set_default_language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
-\cs_new:Nn \polyglossia@set@default@language:nn
+\cs_new:Nn \__xpg_set_default_language:nn
{
\gdef\xpg@main@language{#2}
\tl_if_blank:nTF {#1}
@@ -5373,16 +5441,16 @@ to track the issues and follow progress.
}
{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@main@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
}
\csgdef{#2@gvar}{\mainlanguagevariant}
%% The following settings are for the default language and script
% this tells bidi.sty or luabidi.sty that the document is RTL
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{
\__xpg_setRTLmain:
}
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_selectlanguage: {
\selectbackgroundlanguage{#2}
\selectlanguage[#1]{#2}%
}
@@ -5391,24 +5459,24 @@ to track the issues and follow progress.
\cs_gset_nopar:Npn \mainlanguagename {#2}
% Store babelname of main language (for external packages such as biblatex)
- \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \polyglossia@langsetup {#2/babelname} }
+ \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \g_xpg_langsetup_prop {#2/babelname} }
% Store babelname of current language (for external packages such as biblatex)
\cs_gset_eq:NN \babelname \mainbabelname
\cs_gset_eq:cc{#2@gbabelname}{babelname}%
% Store BCP-47 ID and subtags of main language:
% 1. store main.* (sub)tags
- \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47 } }
- \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-language } }
- \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-region } }
- \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-script } }
- \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-variant } }
- \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47extension-t } }
- \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-u } }
- \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-x } }
+ \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47 } }
+ \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-language } }
+ \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-region } }
+ \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-script } }
+ \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-variant } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47extension-t } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-u } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
- { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \polyglossia@langsetup {#2 / bcp47-language} } }
+ { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \g_xpg_langsetup_prop {#2 / bcp47-language} } }
{ \cs_gset_nopar:cpe {bcp47.main.casing} { \tmpcasing } }
% 2. Store lang (sub)tags
\cs_gset_eq:cc {bcp47.tag} {bcp47.main.tag}
@@ -5430,11 +5498,6 @@ to track the issues and follow progress.
\cs_gset_eq:cc{#2@g.bcp47.extension.u}{bcp47.extension.u}
\cs_gset_eq:cc{#2@g.bcp47.extension.x}{bcp47.extension.x}
\cs_gset_eq:cc{#2@g.bcp47.casing}{bcp47.casing}
- % Set luatex main language
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.set_default_language('\luaescapestring{\string#2}')}%
- }
}
\DeclareCommandCopy \setmainlanguage \setdefaultlanguage
@@ -5519,14 +5582,14 @@ to track the issues and follow progress.
\ifcsundef{#2@gvar}{\def\languagevariant{}}{\def\languagevariant{\csuse{#2@gvar}}}
}{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
- \cs_set_eq:cc{#2@gvar}{languagevariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \cs_set_eq:cc{#2@var}{languagevariant}
}%
}
\newcommand*{\resetdefaultlanguage}[2][]{
- \polyglossia@reset@default@language:nn
+ \__xpg_reset_default_language:nn
{\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
@@ -5537,56 +5600,56 @@ to track the issues and follow progress.
\tl_if_blank:nTF {#1}{
% tag (e.g., en-US)
\ifcsundef{#2@g.bcp47.tag}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
}{
\csedef{bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
% language (e.g., en)
\ifcsundef{#2@g.bcp47.language}{
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
}{
\csedef{bcp47.language}{\csuse{#2@g.bcp47.language}}
}
% region (e.g., US)
\ifcsundef{#2@g.bcp47.region}{%
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
}{
\csedef{bcp47.region}{\csuse{#2@g.bcp47.region}}%
}
% script (e.g., Latn)
\ifcsundef{#2@g.bcp47.script}{
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
}{
\csedef{bcp47.script}{\csuse{#2@g.bcp47.script}}
}
% variant (e.g., 1996)
\ifcsundef{#2@g.bcp47.variant}{
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
}{
\csedef{bcp47.variant}{\csuse{#2@g.bcp47.variant}}
}
% extension.t (tranformation)
\ifcsundef{#2@g.bcp47.extension.t}{%
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
}{
\csedef{bcp47.extension.t}{\csuse{#2@g.bcp47.extension.t}}
}
% extension.u (additional locale information)
\ifcsundef{#2@g.bcp47.extension.u}{%
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
}{
\csedef{bcp47.extension.u}{\csuse{#2@g.bcp47.extension.u}}
}
% extension.x (private use area)
\ifcsundef{#2@g.bcp47.extension.x}{
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
}{
\csedef{bcp47.extension.x}{\csuse{#2@g.bcp47.extension.x}}
}
% casing
\ifcsundef{#2@g.bcp47.casing}{
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
@@ -5594,25 +5657,25 @@ to track the issues and follow progress.
\csedef{bcp47.casing}{\csuse{#2@g.bcp47.casing}}
}
}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
}
}
-\cs_new:Nn \polyglossia@reset@default@language:nn
+\cs_new:Nn \__xpg_reset_default_language:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
% disable globalnumbers of previously defined default language
\csuse{no\xpg@main@language @globalnumbers}
\csuse{noextras@\xpg@main@language}%
@@ -5621,7 +5684,7 @@ to track the issues and follow progress.
\cs_if_exist_use:c{noextras@bbl@\mainbabelname}%
\csuse{init@noextras@\xpg@main@language}%
\polyglossia@set@language@name[#1]{#2}%
- \__xpg_if_LR_str:eF{\prop_item:Ne{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Ne{\g_xpg_langsetup_prop}{#2/direction}}
{
\@rlmaintrue\@rl@footnotetrue
}
@@ -5630,23 +5693,26 @@ to track the issues and follow progress.
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{%
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
+ }
+ % Store variant
+ \tl_if_blank:nTF {#1}
+ {
+ \cs_gset_nopar:Npn \mainlanguagevariant {}
}
+ {
+ % Register the language options
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
+ }
+ \csgdef{#2@gvar}{\mainlanguagevariant}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
}
-\cs_generate_variant:Nn \polyglossia@reset@default@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
% This saves the normalfont for the latin script since we may change normalfont in other scripts
\let\normalfontlatin=\normalfont
@@ -5758,56 +5824,51 @@ to track the issues and follow progress.
\@afterindentfalse
}
-\cs_new_nopar:Npn \selectbackgroundlanguage #1
-{%
- \polyglossia@select@background@language:n {\xpg_alias_base_lang:n{#1}}
+\DeclareDocumentCommand \selectbackgroundlanguage { m }
+{
+ \__xpg_select_background_language:n {\xpg_alias_base_lang:n{#1}}
}
-\cs_new:Nn \polyglossia@select@background@language:n
+
+\cs_new:Nn \__xpg_select_background_language:n
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{}
{\xpg@set@normalfont{#1}}
\csuse{#1@globalnumbers}
}
-\cs_generate_variant:Nn \polyglossia@select@background@language:n {e}
+\cs_generate_variant:Nn \__xpg_select_background_language:n {e}
% Declare secondary language #2 with language options #1
\DeclareDocumentCommand \setotherlanguage { O{} m }
{
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:ee {#1} {#2}
+ \__xpg_load_lang_definition:ee {#1} {#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
- \polyglossia@set@other@language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \__xpg_set_otherlanguage:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
}
-\cs_new:Nn \polyglossia@set@other@language:nn
+\cs_new:Nn \__xpg_set_otherlanguage:nn
{
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% If a variant is set, store it.
\gdef\otherlanguagevariant{}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@other@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@other@langvariant}
\csgdef{#2@gvar}{\otherlanguagevariant}
- \prop_get:NeNT \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeNT \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
{ \xdef\otherlanguagebabelname{\l_tmpa_tl} }
\cs_gset_eq:cc{#2@gbabelname}{otherlanguagebabelname}
}
-\cs_generate_variant:Nn \polyglossia@set@other@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_generate_variant:Nn \__xpg_set_otherlanguage:nn { ee }
% Store main language variant for external packages
@@ -5820,17 +5881,20 @@ to track the issues and follow progress.
\clist_map_function:eN { #1 } \setotherlanguage
}
-\def\common@language{% FIXME is this really needed???
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\z@}
+\cs_set:Nn \xpg_common_language:
+{% FIXME is this really needed???
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\z@}
}{
\language=\z@
}
\lefthyphenmin=\tw@
\righthyphenmin=\thr@@}
-\def\xpg@initial@setup{
- \common@language
+\cs_set:Nn \xpg_initial_setup:
+{
+ \xpg_common_language:
}
@@ -5851,27 +5915,21 @@ to track the issues and follow progress.
% for specific (esp. tag-based) aliases
% where {<alias>} would cause clashes
% (e.g., \fi)
-\newenvironment{lang}[2][]{
- \begin{otherlanguage}[#1]{#2}
-}{
- \end{otherlanguage}
-}
-
-\providecommand{\foreignlanguage}{}
+\DeclareEnvironmentCopy { lang } { otherlanguage }
% wrapper for foreignlanguage and otherlanguage*
\newcommand*\polyglossia@setforeignlanguage[2][]{
\select@@language[#1]{#2}
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -5888,7 +5946,7 @@ to track the issues and follow progress.
}
% lowercase options before passing to setkeys
-\cs_new:Nn \polyglossia@set@keys:nn
+\cs_new:Nn \__xpg_set_keys:nn
{
\xpg@str@lowercase{\xpg@tmp@opts}{#2}
\exp_args:Nne \setkeys{#1}{\xpg@tmp@opts}
@@ -5898,10 +5956,10 @@ to track the issues and follow progress.
% and \text<lang>
% #1 option
% #2 language
-\newcommand{\xpg@otherlanguage}[2][]
+\cs_new:Nn \xpg_otherlanguage:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
\polyglossia@setforeignlanguage[#1]{#2}
% Hook for external packages such as biblatex
\polyglossia@language@switched
@@ -5912,10 +5970,13 @@ to track the issues and follow progress.
\cs_if_exist_use:c{inlineextras@bbl@\babelname}
}
-\renewcommand{\foreignlanguage}[3][]
-{
- \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
-}
+\DeclareDocumentCommand { \foreignlanguage } { O{} m m }
+ {
+ \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
+ }
+
+% prevent case changing of language name in \foreignlanguage
+\tl_put_right:Nn \l_text_case_exclude_arg_tl { \foreignlanguage }
% Direct access to polyglossia@setforeignlanguage
% used in captions
@@ -5942,7 +6003,7 @@ to track the issues and follow progress.
{ \cs_set_eq:NN \__xpg_current_matrixlang \l_tmpa_tl }
{ \cs_set_eq:NN \__xpg_current_matrixlang \mainlanguagename }
% Reset the language's/script's font families if the embedding script is latin
- \str_if_eq:eeT{\prop_item:Ne{\polyglossia@langsetup}{\__xpg_current_matrixlang/lcscript}}{latin}
+ \str_if_eq:eeT{\prop_item:Ne{\g_xpg_langsetup_prop}{\__xpg_current_matrixlang/lcscript}}{latin}
{\resetfontlatin}
% In case a \<lang>font is defined, re-activate that
\exp_args:Ne \xpg@set@normalfont{\__xpg_current_matrixlang}
@@ -5961,8 +6022,8 @@ to track the issues and follow progress.
}{
\__xpg_store_matrixlang:
\group_begin:
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -5971,17 +6032,14 @@ to track the issues and follow progress.
% otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
-
-\renewenvironment{otherlanguage*}[2][]
-{%
- \__xpg_store_matrixlang:
- \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
-}
-{
- \egroup
- \__xpg_reset_to_matrixlang:
-}
+\DeclareDocumentEnvironment { otherlanguage* } { O{} m }
+ {
+ \__xpg_store_matrixlang:
+ \__xpg_otherlanguage:eee { #1 } { #2 } { \xpg_alias_base_lang:n { #2 } }
+ }{
+ \group_end:
+ \__xpg_reset_to_matrixlang:
+ }
% internal wrapper
% #1 option
@@ -5993,14 +6051,12 @@ to track the issues and follow progress.
{
\msg_show:nnn { polyglossia } { languagenotloaded } {#2}
}{
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}%
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}%
\bgroup
}
}
-\cs_generate_variant:Nn \__xpg_otherlanguage:nnn {
- eee
-}
+\cs_generate_variant:Nn \__xpg_otherlanguage:nnn { eee }
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -6014,7 +6070,7 @@ to track the issues and follow progress.
\cs_generate_variant:Nn \__xpg_textlanguage:nnn {een}
% Track whether we are in an inline lang (\text...) switch
-\bool_new:N \__xpg_inline_lang
+\bool_new:N \l__xpg_inline_lang_bool
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -6031,13 +6087,13 @@ to track the issues and follow progress.
{
\__xpg_store_matrixlang:
\group_begin:
- \bool_set_true:N \__xpg_inline_lang
- \xpg@otherlanguage[#1]{#3}
+ \bool_set_true:N \l__xpg_inline_lang_bool
+ \xpg_otherlanguage:nn{#1}{#3}
\csuse{date#3}
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -6047,7 +6103,7 @@ to track the issues and follow progress.
% Define language-specific hyphenation exceptions
\newcommand\pghyphenation[3][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
\setkeys{#2}{#1}
\select@@language[#1]{#2}
\hyphenation{#3}
@@ -6057,6 +6113,7 @@ to track the issues and follow progress.
% Hook that other package authors can use
% (for instance biblatex):
+% Do not rename!
\newcommand*{\xpg@hook@setlanguage}{}
\def\xpg@pop@language@i#1#2{
@@ -6064,55 +6121,39 @@ to track the issues and follow progress.
\xpg@hook@setlanguage
\let\emp@langname\@undefined}
-\newif\ifxpginauxfile\xpginauxfilefalse
-
\DeclareDocumentCommand \selectlanguage {s O{} m}
-{
- \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
{
- \ifxpginauxfile
- \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3}
- \else
- \msg_show:nnn { polyglossia } { languagenotloaded } {#3}
- \fi
- }
- {
- \polyglossia@select@language:nee {#1}
- {\xpg_alias_add_to_option_i:nn{#3}{#2}}
- {\xpg_alias_base_lang:n{#3}}
+ \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
+ {
+ \IfBooleanTF { #1 }
+ { \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3} }
+ { \msg_show:nnn { polyglossia } { languagenotloaded } {#3} }
+ }{
+ \__xpg_select_language:nee {#1}
+ { \xpg_alias_add_to_option_i:nn{#3}{#2} }
+ { \xpg_alias_base_lang:n{#3} }
+ }
}
-}
-\cs_new:Nn \polyglossia@select@language:nnn
+\cs_new:Nn \__xpg_select_language:nnn
{
- \IfBooleanF {#1}
- {
- \cs_set_nopar:Npx \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
- \group_insert_after:N \xpg@pop@language
- }
% Register the language options
- \polyglossia@set@lang@options:nnn {#3} {#2} {@xpg@set@langvariant}
- % The starred variant does not write to the aux
- \IfBooleanTF#1{%
- \xpg@set@language@nonaux[#2]{#3}
- }
- {
- \xpg@set@language@aux[#2]{#3}
- }
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.select_language('\luaescapestring{\string#3}',
- \the\csname l@#3\endcsname)}
- }
- \polyglossia@register@language:nn{#2}{#3}
-}
-\cs_generate_variant:Nn \polyglossia@select@language:nnn {
- nee, nne
+ \__xpg_set_language_options:nnn {#3} {#2} {@xpg@set@langvariant}
+ \IfBooleanTF { #1 } % The starred variant does not write to the aux
+ {
+ \xpg@set@language@nonaux[#2]{#3}
+ }{
+ \cs_set_nopar:Npe \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
+ \group_insert_after:N \xpg@pop@language
+ \xpg@set@language@aux[#2]{#3}
+ }
+ \__xpg_register_language:nn{#2}{#3}
}
+\cs_generate_variant:Nn \__xpg_select_language:nnn { nee, nne }
% set lang option #2 for lang #1
-\cs_new:Nn \polyglossia@set@lang@options:nnn
+\cs_new:Nn \__xpg_set_language_options:nnn
{
\tl_if_blank:nF {#2}
{
@@ -6120,7 +6161,7 @@ to track the issues and follow progress.
\clist_map_inline:nn { #2 } {
\xpg@parsevariantkeyvalue##1=#3:#1\relax
}%
- \polyglossia@set@keys:nn{#1}{#2}
+ \__xpg_set_keys:nn{#1}{#2}
}
}
@@ -6128,7 +6169,7 @@ to track the issues and follow progress.
% \iflanguageoption has the info it needs also
% for default settings
\newcommand*\xpg@initialize@gloss@options[2]{
- \polyglossia@set@lang@options:nnn {#1} {#2} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#1} {#2} {@xpg@set@langvariant}
}
% Record synonymous keyvals such as variant=us and variant=american
@@ -6138,6 +6179,8 @@ to track the issues and follow progress.
{ \prop_new:c {xpg@alias@keyvals@#1@#3} }
\prop_put:cnn { xpg@alias@keyvals@#1@#3 }
{#2}{#4}
+ \prop_if_exist:cF { xpg@alias@keyvals@#1@#4 }
+ { \prop_new:c {xpg@alias@keyvals@#1@#4} }
\prop_put:cnn { xpg@alias@keyvals@#1@#4 }
{#2}{#3}
}
@@ -6174,7 +6217,7 @@ to track the issues and follow progress.
}
-\prg_set_conditional:Npnn \polyglossia@check@option@value:NNN #1#2#3 { p , T , F , TF }
+\prg_set_conditional:Npnn \__xpg_check_option_value:NNN #1#2#3 { p , T , F , TF }
{
\prop_get:cnNTF {xpg@current@options@#1} {#2} \l_tmpa_tl
{
@@ -6203,8 +6246,9 @@ to track the issues and follow progress.
}
% Test if option value is set
-\newcommand*\iflanguageoption[5]{
- \polyglossia@check@option@value:NNNTF{#1}{#2}{#3}{#4}{#5}
+\DeclareDocumentCommand \iflanguageoption { m m m m m }
+{
+ \__xpg_check_option_value:NNNTF{#1}{#2}{#3}{#4}{#5}
}
@@ -6216,21 +6260,23 @@ to track the issues and follow progress.
}
% Test if language is loaded
-\newcommand*\iflanguageloaded[3]{
+\DeclareDocumentCommand \iflanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@loaded{#1}{#2}{#3}
}
}
% Same for babellanguage is loaded
-\newcommand*\ifbabellanguageloaded[3]{
+\DeclareDocumentCommand \ifbabellanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@bloaded{#1}{#2}{#3}
}
}
% Same for languageid
-\DeclareDocumentCommand \iflanguageidloaded {mmmm}
+\DeclareDocumentCommand \iflanguageidloaded { m m m m }
{
\AddToHook{begindocument/end}{
\str_case:nnTF {#1}
@@ -6246,7 +6292,7 @@ to track the issues and follow progress.
}
% Check if the current font has a given glyph
-\prg_new_conditional:Npnn \__polyglossia_if_char:N #1 { TF }
+\prg_new_conditional:Npnn \__xpg_if_char:N #1 { TF }
{
\iffontchar\font\int_from_hex:n { #1 }~
\prg_return_true:
@@ -6259,14 +6305,14 @@ to track the issues and follow progress.
% and print it, if so, otherwise print the replacement #2
\NewExpandableDocumentCommand \charifavailable { m m }
{
- \exp_args:Nno \__polyglossia_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
+ \exp_args:Nno \__xpg_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
}
% Test if a char (by char code) is available in the current font
% if so, do #2, else do #3
-\NewDocumentCommand \IfCharIsAvailableTF { m m m }
+\NewExpandableDocumentCommand \IfCharIsAvailableTF { m m m }
{
- \__polyglossia_if_char:NTF{#1}{#2}{#3}
+ \__xpg_if_char:NTF { #1 } { #2 } { #3 }
}
@@ -6279,12 +6325,12 @@ to track the issues and follow progress.
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -6296,29 +6342,14 @@ to track the issues and follow progress.
\newcommand*{\xpg@set@language@only@aux}[2][]{
% Write to the aux (toc files)
\if@filesw
- \ifx#1\\\\
- \addtocontents{toc}{\protect\selectlanguage*{#2}}
- \else
- \addtocontents{toc}{\protect\selectlanguage*[#1]{#2}}
- \fi
+ \addtocontents{toc}{\selectlanguage*[#1]{#2}}
\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}
+ \immediate\write\@mainaux
+ {\ProvideDocumentCommand\selectlanguage{sO{}m}{}}
\fi
}
@@ -6330,49 +6361,22 @@ to track the issues and follow progress.
\addtocontents{lot}{\protect\setforeignlanguage{\languagename}}
}
-% The bidi package swaps the output stream within RTL tables
-% (to get the column order right). This also swaps group
-% delimiters inserted to the aux files via otherlanguage (see #354).
-% We therefore patch bidi and insert a bool that tells us
-% whether we are in such a table.
-\newbool{xpg@inbiditable}
-\AtBeginDocument{
- \@ifpackageloaded{bidi}{
- \patchcmd{\@tabular}
- {\if@RTLtab}
- {\if@RTLtab\booltrue{xpg@inbiditable}}
- {} % success
- {\xpg@warning{Patching bidi table failed!}}
- }{}
-}
-
% check if language is defined
-\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:N #1 { p , T , F , TF }{
- \cs_if_exist:cTF {l@#1}
- {
- \cs_if_eq:cNTF {l@#1} \l@nohyphenation
- {
- \prg_return_false:
- }
- {
- % it's possible that sometimes \csname l@#1\endcsname becomes \relax
- \cs_if_eq:cNTF {l@#1} \relax
- { \prg_return_false: }
- { \prg_return_true: }
- }
- }
- {
- \prg_return_false:
- }
-}
+\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:n #1 { F, TF }
+ {
+ \bool_lazy_and:nnTF
+ { \cs_if_exist_p:c { l@#1 } }
+ { ! (\cs_if_eq_p:cc { l@#1 } { l@nohyphenation }) }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
\def\polyglossia@luatex@load@lang#1{
% if \l@#1 is not properly defined, call lua function newloader(#1),
% and assign the returned number to \l@#1
- \__xpg_check_if_exist_l@:NF {#1}
+ \__xpg_check_if_exist_l@:nF {#1}
{
- \expandafter\chardef\csname l@#1\endcsname=
- \directlua{ tex.sprint(polyglossia.newloader'#1') }\relax
+ \directlua { token.set_char('l@#1', polyglossia.newloader'#1') }
}
}
@@ -6384,7 +6388,7 @@ to track the issues and follow progress.
{
\polyglossia@luatex@load@lang{#1}
}
- \__xpg_check_if_exist_l@:NTF{#1}{#2}{#3}
+ \__xpg_check_if_exist_l@:nTF{#1}{#2}{#3}
}
% Set \bbl@hyphendata@\the\language, which is (lua)babel's
@@ -6410,20 +6414,20 @@ to track the issues and follow progress.
% hook for compatibility with biblatex
\select@language{#2}
\xpg@set@bbl@hyphendata{\the\language}
- \xpg@initial@setup%
+ \xpg_initial_setup:
\select@@language[#1]{#2}%
% Hook for external packages such as biblatex
\polyglossia@language@switched%
- \polyglossia@lang@setpardirection:n{#2}
+ \__xpg_lang_set_par_direction:n{#2}
\csuse{captions#2}%
\csuse{date#2}%
% These are hooks for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{captions@bbl@\babelname}
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@local@marks:n{#2}
+ \__xpg_local_marks:n{#2}
\csuse{init@extras@#2}%
- \xpg__indent_first:n { #2 }
+ \__xpg_indent_first:n { #2 }
\csuse{blockextras@#2}%
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
@@ -6437,6 +6441,7 @@ to track the issues and follow progress.
\def\select@language#1{}
% Hook for external packages such as biblatex
+% do not rename!
\def\polyglossia@language@switched{}
% remove all custumization for language #1
@@ -6456,24 +6461,24 @@ to track the issues and follow progress.
\noextrascurrent{\languagename}
\cs_if_exist_use:c{no\languagename @numbers}
\sys_if_engine_xetex:T{
- \__xpg_if_LR_str:eTF{\prop_item:Ne{\polyglossia@langsetup}{\languagename/direction}}
+ \__xpg_if_LR_str:eTF{\prop_item:Ne{\g_xpg_langsetup_prop}{\languagename/direction}}
{
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setnonlatin} % LTR -> RTL
}
{
- \__xpg_if_LR_str:eT{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setlatin} % RTL -> LTR
}
}
}
\polyglossia@set@language@name[#1]{#2}
% Set the language's/script's font families
- \str_if_eq:eeT{\prop_item:Nn{\polyglossia@langsetup}{#2/lcscript}} {latin}
+ \str_if_eq:eeT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/lcscript}} {latin}
{
\resetfontlatin
}
- \bool_if:NF \__xpg_inline_lang
+ \bool_if:NF \l__xpg_inline_lang_bool
{ % This for non-inline font switches
% in case a \<lang>font is defined
\xpg@set@normalfont{#2}
@@ -6482,7 +6487,7 @@ to track the issues and follow progress.
\__xpg_use_or_warn:c{#2@language}
\cs_if_exist_use:c{#2@numbers}
\use@localhyphenmins[#1]{#2}
- \xpg__french_spacing:n { #2 }
+ \__xpg_french_spacing:n { #2 }
}
@@ -6493,14 +6498,14 @@ to track the issues and follow progress.
%
\clist_new:N \l_xpg_lang_stack
-\cs_new:Nn \polyglossia@stack@language:nn
+\cs_new:Nn \__xpg_stack_language:nn
{
\clist_gpush:Nn \l_xpg_lang_stack {#1:#2}
}
-\cs_generate_variant:Nn \polyglossia@stack@language:nn {nx}
+\cs_generate_variant:Nn \__xpg_stack_language:nn {nx}
-\cs_new:Nn \polyglossia@unstack@language:n
+\cs_new:Nn \__xpg_unstack_language:n
{
\clist_gpop:NNTF \l_xpg_lang_stack \l_tmpa_tl {
% Stored format = options:language => split:
@@ -6510,7 +6515,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}}
- {\polyglossia@set@keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
+ {\__xpg_set_keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
\cs_if_exist_use:c{#1}[\l_tmpb_tl]{\l_tmpc_tl}
}
}
@@ -6521,17 +6526,19 @@ to track the issues and follow progress.
{
% Get real current (pre-switch) options (incl. defaults)
\clist_clear_new:N \l_xpg_current_options
+ \prop_if_exist:cF { xpg@current@options@\languagename }
+ { \prop_new:c {xpg@current@options@\languagename} }
\prop_map_inline:cn {xpg@current@options@\languagename}
{
\clist_put_right:Nn \l_xpg_current_options {##1=##2}
}
% Store current (pre-switch) options and language on stack
- \polyglossia@stack@language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
+ \__xpg_stack_language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
\selectlanguage[#1]{#2}
}
{
% restore previous language in aux file and remove closed one from stack
- \polyglossia@unstack@language:n{xpg@set@language@only@aux}
+ \__xpg_unstack_language:n{xpg@set@language@only@aux}
}
\newcommand{\setlocalhyphenmins}[3]{
@@ -6552,17 +6559,17 @@ to track the issues and follow progress.
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
\bgroup
- \polyglossia@error@iflangnotloaded:n{\xpg@tmp@lang}
- \polyglossia@set@keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
+ \xpg_error_if_lang_not_loaded:n{\xpg@tmp@lang}
+ \__xpg_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}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}{
\csedef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}
\csgdef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{{#3}{#4}}
\egroup
@@ -6571,17 +6578,17 @@ to track the issues and follow progress.
% \use@localhypenmins[options]{lang}
\newcommand*\use@localhyphenmins[2][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
% Use bcp47.tag@hypenmins
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@g.bcp47.tag}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}{
\csxdef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}
\egroup
\ifcsundef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{
@@ -6595,7 +6602,7 @@ to track the issues and follow progress.
}
\sys_if_engine_luatex:T{
% Set \totalhyphenmin if specified
- \prop_get:NeNTF \polyglossia@langsetup {#2/totalhyphenmin} \l_tmpa_tl
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#2/totalhyphenmin} \l_tmpa_tl
{
\xpg@info{totalhyphenmin: '\l_tmpa_tl'}
\expandafter\hyphenationmin \l_tmpa_tl
@@ -6615,7 +6622,7 @@ to track the issues and follow progress.
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
% Register the language options
- \polyglossia@set@lang@options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
% Now switch patterns
\__xpg_use_or_warn:c{\use:c{xpg@tmp@lang}@language}
% And activate hyphenmins
@@ -6624,10 +6631,10 @@ to track the issues and follow progress.
{ }
\AddToHook{begindocument/before}{
- \@ifpackageloaded{bidi}{
+ \IfPackageLoadedTF{bidi}{
\providecommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}
}{}
- \@ifpackageloaded{luabidi}{
+ \IfPackageLoadedTF{luabidi}{
\providecommand*{\aemph}[1]{$\overline{\hbox{\RL{#1}}}$}
}{}
}
@@ -6636,7 +6643,7 @@ to track the issues and follow progress.
% keys for main package
\keys_define:nn { polyglossia } {
verbose
- .bool_set:N = \l_polyglossia_verbose_bool,
+ .bool_set:N = \g_xpg_verbose_bool,
verbose
.default:n = true,
% compatibility
@@ -6644,7 +6651,7 @@ to track the issues and follow progress.
.meta:n = { verbose = false },
localmarks
- .bool_set:N = \l_polyglossia_localmarks_bool,
+ .bool_set:N = \g_xpg_localmarks_bool,
localmarks
.default:n = true,
% compatibility
@@ -6652,12 +6659,12 @@ to track the issues and follow progress.
.meta:n = { localmarks = false },
babelshorthands
- .bool_set:N = \l_polyglossia_babelshorthands_bool,
+ .legacy_if_set:n = system@babelshorthands, % compatibility
babelshorthands
.default:n = true,
luatexrenderer
- .cs_set:Np = \l_polyglossia_luatex_renderer,
+ .str_set:N = \g_xpg_luatex_renderer_str,
luatexrenderer
.value_required:n = true,
}
@@ -6677,14 +6684,14 @@ to track the issues and follow progress.
% Set the LuaTeX renderer. As opposed to fontspec, we use Harfbuzz by default.
% This can be changed via the luatexrenderer package option.
\sys_if_engine_luatex:T{
- \str_if_eq:eeF{\l_polyglossia_luatex_renderer}{none}
+ \str_if_eq:eeF{\g_xpg_luatex_renderer_str}{none}
{
- \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \l_polyglossia_luatex_renderer}
- \exp_args:Ne \defaultfontfeatures{Renderer=\l_polyglossia_luatex_renderer}
+ \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \g_xpg_luatex_renderer_str}
+ \exp_args:Ne \defaultfontfeatures{Renderer=\g_xpg_luatex_renderer_str}
}
}
-\bool_if:nF \l_polyglossia_verbose_bool {
+\bool_if:nF \g_xpg_verbose_bool {
\gdef\@latex@info#1{\relax} % no latex info
\gdef\@font@info#1{\relax} % no latex font info
\gdef\@font@warning#1{\relax} % no latex font warnings
@@ -6692,47 +6699,93 @@ to track the issues and follow progress.
\gdef\xpg@info#1{\relax} % no polyglossia info
}
-\bool_if:nT \l_polyglossia_localmarks_bool {
- \polyglossia@enable@local@marks:
+\bool_if:nT \g_xpg_localmarks_bool {
+ \__xpg_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
+\seq_new:N \g__xpg_active_shorthands_seq
\DeclareDocumentCommand \xpg@activate@shorthands { O{"} }
{
- \seq_if_in:NnF \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnF \g__xpg_active_shorthands_seq { #1 }
{
\bbl@activate{#1}
- \seq_gpush:Nn \__xpg_active_shorthands { #1 }
+ \seq_gpush:Nn \g__xpg_active_shorthands_seq { #1 }
}
}
\DeclareDocumentCommand \xpg@deactivate@shorthands { O{"} }
{
- \seq_if_in:NnT \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnT \g__xpg_active_shorthands_seq { #1 }
{
\cs_if_exist:cT{initiate@active@char}{\bbl@deactivate{#1}}
- \seq_remove_all:Nn \__xpg_active_shorthands {#1}
+ \seq_remove_all:Nn \g__xpg_active_shorthands_seq {#1}
}
}
-% compatibility
-\newif\ifsystem@babelshorthands
-\bool_if:nTF \l_polyglossia_babelshorthands_bool {
- \system@babelshorthandstrue
-}{
- \system@babelshorthandsfalse
+% Inherit shorthands in other languages
+\NewDocumentCommand \inheritbabelshorthands { m m }
+{
+ \AddToHook{begindocument/before}{
+ % Load the involved languages if necessary
+ % Error if they do not exist
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpa_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpa_lang_tl .ldf}
+ { \setotherlanguage{#1} }
+ { \xpg@error{ Source~ language~ #1,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ \tl_set:Nn \l__xpg_tmpb_lang_tl { \xpg_alias_base_lang:n{#2} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpb_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpb_lang_tl .ldf}
+ { \setotherlanguage{#2} }
+ { \xpg@error{ Target~ language~ #2,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ % Test whether the requested shorthands exist
+ \bool_if_exist:NF \l__xpg_no_shorthands_bool
+ { \bool_new:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { \l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { no\l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \bool_if:nT { \l__xpg_no_shorthands_bool }
+ {
+ \xpg@error{ No~ babel~ shorthands~ exist~ for~ language~ #1 }
+ }
+ % If so, apply:
+ \bool_if:nF { \l__xpg_no_shorthands_bool }
+ {
+ \exp_args:Ncc \addto { blockextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { inlineextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { noextras@\l__xpg_tmpb_lang_tl } { no\l__xpg_tmpa_lang_tl @shorthands }
+ }
+ }
}
-%
-% FIXME these should also be loaded \AtEndOfPackage !!!
-\def\xpg@option#1#2{
- \ifcsundef{xpg@main@language}{\setdefaultlanguage}{\setotherlanguage}
- [#1]{#2}}
+% Activate shorthands of a (loaded) language inline
+\NewDocumentCommand \usebabelshorthands { m }
+{
+ \str_if_eq:nnTF { #1 } { none }
+ {
+ % "none" deactivates any shorthands
+ \languageshorthands{none}
+ }
+ {
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \iflanguageloaded{\l__xpg_tmpa_lang_tl}{
+ \use:c{\l__xpg_tmpa_lang_tl @shorthands}
+ }{
+ \xpg@error{ Language~ #1,~ requested~ in~
+ \string\startbabelshorthands,~ is~ not~ loaded }
+ }
+ }
+}
% \end{macrocode}
% \iffalse
@@ -7441,7 +7494,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -7508,7 +7561,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct
% \begin{macrocode}
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
@@ -8126,7 +8179,7 @@ prepend_to_callback ("hpack_filter",
% \begin{macrocode}
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -8181,7 +8234,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -8549,7 +8602,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters
% \begin{macrocode}
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -8599,7 +8652,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct
% \begin{macrocode}
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -8702,7 +8755,7 @@ polyglossia.desactivate_tibt_eol = desactivate
% \begin{macrocode}
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -8728,20 +8781,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -8853,14 +8899,9 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
% \end{macrocode}
% \iffalse
%</polyglossia.lua>
@@ -10020,63 +10061,13 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \end{macrocode}
% \iffalse
%</xgreek-fixes.def>
-%<*gloss-latex.lde>
-% \fi
-% \clearpage
-%
-% \subsection{gloss-latex.lde}
-% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
-%
-\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/12/11}{v1.66}{polyglossia: module for default language}
-
-\PolyglossiaSetup{latex}{
- bcp47=en-US,
- bcp47-language=en,
- bcp47-region=US,
- bcp47-script=Latn,
- hyphennames={english},
- hyphenmins={2,3},
- langtag=ENG,
- fontsetup=true,
- % ignore command
- DefineCommandsCmd={use_none:n}
-}
-
-\def\captionslatex{%
- \def\prefacename{Preface}%
- \def\refname{References}%
- \def\abstractname{Abstract}%
- \def\bibname{Bibliography}%
- \def\chaptername{Chapter}%
- \def\appendixname{Appendix}%
- \def\contentsname{Contents}%
- \def\listfigurename{List of Figures}%
- \def\listtablename{List of Tables}%
- \def\indexname{Index}%
- \def\figurename{Figure}%
- \def\tablename{Table}%
- \def\partname{Part}%
- \def\enclname{encl}%
- \def\ccname{cc}%
- \def\headtoname{To}%
- \def\pagename{Page}%
- \def\seename{see}%
- \def\alsoname{see also}%
- \def\proofname{Proof}%
-}
-
-
-% \end{macrocode}
-% \iffalse
-%</gloss-latex.lde>
%<*gloss-acadien.ldf>
% \fi
% \clearpage
%
% \subsection{gloss-acadien.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-acadien.ldf}[polyglossia: module for Canadian (Acadian) French]
@@ -10093,7 +10084,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-aeb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-aeb.ldf}[polyglossia: module for aeb (Arabic)]
@@ -10110,7 +10101,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-af.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-af.ldf}[polyglossia: module for af (Afrikaans)]
@@ -10127,7 +10118,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-afb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afb.ldf}[polyglossia: module for afb (Arabic)]
@@ -10144,7 +10135,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-afrikaans.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afrikaans.ldf}[polyglossia: module for Afrikaans]
@@ -10249,7 +10240,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-albanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-albanian.ldf}[polyglossia: module for Albanian]
@@ -10306,7 +10297,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-am.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-am.ldf}[polyglossia: module for am (Amharic)]
@@ -10323,7 +10314,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-american.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-american.ldf}[polyglossia: module for American English]
@@ -10340,7 +10331,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-amharic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-amharic.ldf}[polyglossia: module for Amharic]
\PolyglossiaSetup{amharic}{
@@ -10560,7 +10551,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-apd.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-apd.ldf}[polyglossia: module for apd (Arabic)]
@@ -10577,7 +10568,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-IQ.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-IQ.ldf}[polyglossia: module for ar-IQ (Arabic)]
@@ -10596,7 +10587,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-JO.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-JO.ldf}[polyglossia: module for ar-JO (Arabic)]
@@ -10615,7 +10606,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-LB.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-LB.ldf}[polyglossia: module for ar-LB (Arabic)]
@@ -10634,7 +10625,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-MR.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-MR.ldf}[polyglossia: module for ar-MR (Arabic)]
@@ -10653,7 +10644,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-PS.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-PS.ldf}[polyglossia: module for ar-PS (Arabic)]
@@ -10672,7 +10663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-SY.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-SY.ldf}[polyglossia: module for ar-SY (Arabic)]
@@ -10691,7 +10682,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-YE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-YE.ldf}[polyglossia: module for ar-YE (Arabic)]
@@ -10710,7 +10701,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar.ldf}[polyglossia: module for ar (Arabic)]
@@ -10727,7 +10718,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arabic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arabic.ldf}[polyglossia: module for Arabic]
\RequireBidi
@@ -11117,7 +11108,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-armenian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-armenian.ldf}[polyglossia: module for Armenian]
@@ -11325,7 +11316,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arq.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arq.ldf}[polyglossia: module for arq (Arabic)]
@@ -11342,7 +11333,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ary.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ary.ldf}[polyglossia: module for ary (Arabic)]
@@ -11359,7 +11350,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arz.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arz.ldf}[polyglossia: module for arz (Arabic)]
@@ -11376,7 +11367,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ast.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ast.ldf}[polyglossia: module for ast (Asturian)]
@@ -11393,7 +11384,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-asturian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Xuacu <xuacusk8 at gmail dot com>
% Contributed by Kevin Godby <godbyk at gmail dot com>
@@ -11453,7 +11444,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-australian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-australian.ldf}[polyglossia: module for Australian English]
@@ -11470,7 +11461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-austrian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-austrian.ldf}[polyglossia: module for Austrian German (old spelling)]
@@ -11487,7 +11478,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ayl.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ayl.ldf}[polyglossia: module for ayl (Arabic)]
@@ -11504,7 +11495,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasa.ldf}[polyglossia: module for Bahasa Indonesia]
@@ -11521,7 +11512,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasai.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasai.ldf}[polyglossia: module for Bahasa Indonesia]
@@ -11539,7 +11530,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasam.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasam.ldf}[polyglossia: module for Bahasa Melayu]
@@ -11557,7 +11548,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-basque.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-basque.ldf}[polyglossia: module for Basque]
\PolyglossiaSetup{basque}{
@@ -11615,7 +11606,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-be-tarask.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be-tarask.ldf}[polyglossia: module for be-tarask (Belarusian)]
@@ -11632,7 +11623,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-be.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be.ldf}[polyglossia: module for be (Belarusian)]
@@ -11649,7 +11640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-belarusian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-belarusian.ldf}[polyglossia: module for Belarusian]
@@ -11977,7 +11968,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bengali.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by সাজেদুর রহিম জোয়ারদার <toshazed@gmail.com>
% TODO implement Bengali calendar
@@ -12118,7 +12109,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bg.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bg.ldf}[polyglossia: module for bg (Bulgarian)]
@@ -12135,7 +12126,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bn.ldf}[polyglossia: module for bn (Bengali)]
@@ -12152,7 +12143,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bo.ldf}[polyglossia: module for bo (Tibetan)]
@@ -12169,7 +12160,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bosnian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bosnian.ldf}[polyglossia: module for Bosnian]
@@ -12233,7 +12224,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-br.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-br.ldf}[polyglossia: module for br (Breton)]
@@ -12250,7 +12241,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-brazil.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-brazil.ldf}[polyglossia: module for Brazilian Portuguese]
@@ -12269,7 +12260,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-breton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-breton.ldf}[polyglossia: module for Breton]
\PolyglossiaSetup{breton}{
@@ -12377,7 +12368,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-british.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-british.ldf}[polyglossia: module for British English]
@@ -12394,7 +12385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bs.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bs.ldf}[polyglossia: module for bs (Bosnian)]
@@ -12411,7 +12402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bulgarian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bulgarian.ldf}[polyglossia: module for Bulgarian]
\PolyglossiaSetup{bulgarian}{
@@ -12513,7 +12504,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ca.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ca.ldf}[polyglossia: module for ca (Catalan)]
@@ -12530,7 +12521,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-canadian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadian.ldf}[polyglossia: module for Canadian English]
@@ -12547,7 +12538,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-canadien.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadien.ldf}[polyglossia: module for Canadian French]
@@ -12564,7 +12555,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-catalan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-catalan.ldf}[polyglossia: module for Catalan]
\PolyglossiaSetup{catalan}{
@@ -12733,7 +12724,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-chinese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-chinese.ldf}[polyglossia: module for Chinese]
@@ -13024,7 +13015,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Arab.ldf}[polyglossia: module for ckb-Arab (Kurdish)]
@@ -13041,7 +13032,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Latn.ldf}[polyglossia: module for ckb-Latn (Kurdish)]
@@ -13058,7 +13049,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb.ldf}[polyglossia: module for ckb (Kurdish)]
@@ -13075,7 +13066,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cop.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cop.ldf}[polyglossia: module for cop (Coptic)]
@@ -13092,7 +13083,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-coptic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-coptic.ldf}[polyglossia: module for Coptic]
\PolyglossiaSetup{coptic}{
@@ -13148,7 +13139,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-croatian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-croatian.ldf}[polyglossia: module for Croatian]
\PolyglossiaSetup{croatian}{
@@ -13424,7 +13415,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cy.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cy.ldf}[polyglossia: module for cy (Welsh)]
@@ -13441,7 +13432,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cz.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cz.ldf}[polyglossia: module for cz (Czech)]
@@ -13458,7 +13449,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-czech.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-czech.ldf}[polyglossia: module for Czech]
@@ -13717,7 +13708,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-da.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-da.ldf}[polyglossia: module for da (Danish)]
@@ -13734,7 +13725,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-danish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-danish.ldf}[polyglossia: module for Danish]
\PolyglossiaSetup{danish}{
@@ -13791,7 +13782,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901.ldf}[polyglossia: module for de-AT-1901 (Austrian German, old spelling)]
@@ -13808,7 +13799,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996.ldf}[polyglossia: module for de-AT-1996 (Austrian German)]
@@ -13825,7 +13816,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT.ldf}[polyglossia: module for de-AT (Austrian German)]
@@ -13842,7 +13833,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901.ldf}[polyglossia: module for de-CH-1901 (Swiss German, old spelling)]
@@ -13859,7 +13850,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996.ldf}[polyglossia: module for de-CH-1996 (Swiss German)]
@@ -13876,7 +13867,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH.ldf}[polyglossia: module for de-CH (Swiss German)]
@@ -13893,7 +13884,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901.ldf}[polyglossia: module for de-DE-1901 (Germany's German, old spelling)]
@@ -13910,7 +13901,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996.ldf}[polyglossia: module for de-DE-1996 (Germany's German)]
@@ -13927,7 +13918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE.ldf}[polyglossia: module for de-DE (Germany's German)]
@@ -13944,7 +13935,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901-Latf.ldf}[polyglossia: module for de-AT-1901-Latf (Austrian German, old spelling)]
@@ -13961,7 +13952,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996-Latf.ldf}[polyglossia: module for de-AT-1996-Latf (Austrian German)]
@@ -13978,7 +13969,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-Latf.ldf}[polyglossia: module for de-AT-Latf (Austrian German)]
@@ -13995,7 +13986,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901-Latf.ldf}[polyglossia: module for de-CH-1901-Latf (Swiss German, old spelling)]
@@ -14012,7 +14003,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996-Latf.ldf}[polyglossia: module for de-CH-1996-Latf (Swiss German)]
@@ -14029,7 +14020,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-Latf.ldf}[polyglossia: module for de-CH-Latf (Swiss German)]
@@ -14046,7 +14037,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901-Latf.ldf}[polyglossia: module for de-DE-1901-Latf (Germany's German, old spelling)]
@@ -14063,7 +14054,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996-Latf.ldf}[polyglossia: module for de-DE-1996-Latf (Germany's German)]
@@ -14080,7 +14071,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-Latf.ldf}[polyglossia: module for de-DE-Latf (Germany's German)]
@@ -14097,7 +14088,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-Latf.ldf}[polyglossia: module for de-Latf (German)]
@@ -14114,7 +14105,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de.ldf}[polyglossia: module for de (German)]
@@ -14131,7 +14122,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-divehi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-divehi.ldf}[polyglossia: module for Divehi]
@@ -14186,7 +14177,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dsb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dsb.ldf}[polyglossia: module for dsb (Sorbian)]
@@ -14203,7 +14194,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dutch.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dutch.ldf}[polyglossia: module for Dutch]
\PolyglossiaSetup{dutch}{
@@ -14413,7 +14404,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dv.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dv.ldf}[polyglossia: module for dv (Divehi)]
@@ -14430,7 +14421,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el-monoton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-monoton.ldf}[polyglossia: module for el-monoton (Greek)]
@@ -14447,7 +14438,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el-polyton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-polyton.ldf}[polyglossia: module for el-polyton (Greek)]
@@ -14464,7 +14455,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el.ldf}[polyglossia: module for el (Greek)]
@@ -14481,7 +14472,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-AU.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-AU.ldf}[polyglossia: module for en-AU (Australian English)]
@@ -14498,7 +14489,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-CA.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-CA.ldf}[polyglossia: module for en-CA (Canadan English)]
@@ -14515,7 +14506,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-GB.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-GB.ldf}[polyglossia: module for en-GB (British English)]
@@ -14532,7 +14523,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-NZ.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-NZ.ldf}[polyglossia: module for en-NZ (Newzealand English)]
@@ -14549,7 +14540,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-US.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-US.ldf}[polyglossia: module for en-US (American English)]
@@ -14566,7 +14557,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en.ldf}[polyglossia: module for en (English)]
@@ -14583,7 +14574,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-english.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-english.ldf}[polyglossia: module for English]
@@ -14794,7 +14785,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-eo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eo.ldf}[polyglossia: module for eo (Esperanto)]
@@ -14811,7 +14802,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es-ES.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-ES.ldf}[polyglossia: module for es-ES (Spain's Spanish)]
@@ -14828,7 +14819,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es-MX.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-MX.ldf}[polyglossia: module for es-MX (Mexican Spanish)]
@@ -14845,7 +14836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es.ldf}[polyglossia: module for es (Spanish)]
@@ -14862,7 +14853,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-esperanto.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-esperanto.ldf}[polyglossia: module for Esperanto]
\PolyglossiaSetup{esperanto}{
@@ -14942,7 +14933,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-estonian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-estonian.ldf}[polyglossia: module for Estonian]
\PolyglossiaSetup{estonian}{
@@ -14999,7 +14990,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-et.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-et.ldf}[polyglossia: module for et (Estonian)]
@@ -15016,7 +15007,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-eu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eu.ldf}[polyglossia: module for eu (Basque)]
@@ -15033,7 +15024,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fa.ldf}[polyglossia: module for fa (Persian)]
@@ -15050,7 +15041,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-farsi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-farsi.ldf}[polyglossia: module for Farsi]
@@ -15068,7 +15059,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fi.ldf}[polyglossia: module for fi (Finnish)]
@@ -15085,7 +15076,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-finnish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for Finnish]
\PolyglossiaSetup{finnish}{
@@ -15105,10 +15096,37 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
-\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{}
+\newif\if@finnish@schoolhyphens
+\newif\if@finnish@babelhyphens
+\define@choicekey*+{finnish}{hyphens}[\xpg@val\xpg@nr]{default,school,babel}[default]{%
+ \ifcase\xpg@nr\relax
+ % default:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphensfalse
+ \or
+ % school:
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \or
+ % babel:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphenstrue
+ \fi
+ \xpg@info{Option: Finnish, hyphens=\xpg@val}%
+}{\xpg@warning{Unknown Finnish hyphens `#1'}}
+
+% backwards compatibility
+\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{%
+ \iffinnish@schoolhyphens
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \else
+ \@finnish@schoolhyphensfalse
+ \fi
+}
% Register default options
-\xpg@initialize@gloss@options{finnish}{babelshorthands=false,schoolhyphens=false}
+\xpg@initialize@gloss@options{finnish}{babelshorthands=false,hyphens=default}
\ifsystem@babelshorthands
\setkeys{finnish}{babelshorthands=true}
@@ -15129,7 +15147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
\declare@shorthand{finnish}{""}{\hskip\z@skip}%
\declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
- \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
+ \declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}%
\declare@shorthand{finnish}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
}
@@ -15164,7 +15182,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
}
\def\finnish@language{%
- \iffinnish@schoolhyphens
+ \if@finnish@schoolhyphens
\xpg@ifdefined{schoolfinnish}{%
\polyglossia@setup@language@patterns{schoolfinnish}%
}{%
@@ -15177,6 +15195,28 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\fi
}
+% activate babel-style hyphen settings if requested
+\AtBeginDocument{%
+ \if@finnish@babelhyphens
+ \let\xpg@save@hyphenpenalty\hyphenpenalty%
+ \let\xpg@save@exhyphenpenalty\exhyphenpenalty%
+ \let\xpg@save@doublehyphendemerits\doublehyphendemerits%
+ \let\xpg@save@finalhyphendemerits\finalhyphendemerits%
+ \addto\blockextras@finnish{%
+ \hyphenpenalty=30%
+ \exhyphenpenalty=30%
+ \doublehyphendemerits=5000%
+ \finalhyphendemerits=5000%
+ }%
+ \addto\noextras@finnish{%
+ \let\hyphenpenalty\xpg@save@hyphenpenalty%
+ \let\exhyphenpenalty\xpg@save@exhyphenpenalty%
+ \let\doublehyphendemerits\xpg@save@doublehyphendemerits%
+ \let\finalhyphendemerits\xpg@save@finalhyphendemerits%
+ }%
+ \fi
+}
+
\def\datefinnish{%
\def\today{\number\day.~\ifcase\month\or
tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
@@ -15205,7 +15245,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CA-u-sd-canb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA-u-sd-canb.ldf}[polyglossia: module for fr-CA-u-sd-canb (Canadian French, Acadian subvariety)]
@@ -15222,7 +15262,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CA.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA.ldf}[polyglossia: module for fr-CA (Canadian French)]
@@ -15239,7 +15279,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CH.ldf}[polyglossia: module for fr-CH (Swiss French)]
@@ -15256,7 +15296,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-FR.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-FR.ldf}[polyglossia: module for fr-FR (France's French)]
@@ -15273,7 +15313,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr.ldf}[polyglossia: module for fr (French)]
@@ -15290,7 +15330,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-french.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-french.ldf}[polyglossia: module for French]
@@ -15765,8 +15805,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\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%
@@ -15836,7 +15874,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-friulan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulan.ldf}[polyglossia: module for Friulian]
@@ -15853,7 +15891,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-friulian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulian.ldf}[polyglossia: module for Friulian]
@@ -15939,7 +15977,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fur.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fur.ldf}[polyglossia: module for fur (Friulian)]
@@ -15956,7 +15994,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ga.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ga.ldf}[polyglossia: module for ga (Gaelic)]
@@ -15973,7 +16011,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gaelic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gaelic.ldf}[polyglossia: module for Gaelic]
@@ -16103,7 +16141,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-galician.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-galician.ldf}[polyglossia: module for Galician]
\PolyglossiaSetup{galician}{
@@ -16160,7 +16198,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gd.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gd.ldf}[polyglossia: module for gd (Gaelic)]
@@ -16177,7 +16215,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-georgian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-georgian.ldf}[polyglossia: module for Georgian]
@@ -16425,7 +16463,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-german.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-german.ldf}[polyglossia: module for German]
@@ -16658,6 +16696,11 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\declare@shorthand{german}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
+ \def\mkgender{*}%
+ \declare@shorthand{german}{":}{\nobreak:\bbl@allowhyphens}%
+ \declare@shorthand{german}{"*}{\nobreak*\bbl@allowhyphens}%
+ \declare@shorthand{german}{"_}{\nobreak\_\bbl@allowhyphens}%
+ \declare@shorthand{german}{"x}{\nobreak\mkgender\bbl@allowhyphens}%
}
\def\nogerman@shorthands{%
@@ -16774,7 +16817,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-germanb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-germanb.ldf}[polyglossia: module for German (old spelling)]
@@ -16791,7 +16834,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gl.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gl.ldf}[polyglossia: module for gl (Galician)]
@@ -16808,7 +16851,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-grc.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-grc.ldf}[polyglossia: module for grc (Greek)]
@@ -16825,7 +16868,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-greek.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-greek.ldf}[polyglossia: module for Greek]
@@ -17293,7 +17336,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-he.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-he.ldf}[polyglossia: module for he (Hebrew)]
@@ -17310,7 +17353,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hebrew.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for Hebrew]
@@ -17484,7 +17527,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hi.ldf}[polyglossia: module for hi (Hindi)]
@@ -17501,7 +17544,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hindi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by Zdenĕk Wagner, 10-03-2008
% with corrections and additional contributions by Anshuman Pandey
@@ -17620,7 +17663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hr.ldf}[polyglossia: module for hr (Croatian)]
@@ -17637,7 +17680,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hsb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hsb.ldf}[polyglossia: module for hsb (Higher Sorbian)]
@@ -17654,7 +17697,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hu.ldf}[polyglossia: module for hu (Hungarian)]
@@ -17671,7 +17714,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hungarian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hungarian.ldf}[polyglossia: module for Hungarian]
@@ -18070,7 +18113,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hy.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hy.ldf}[polyglossia: module for hy (Armenian)]
@@ -18087,7 +18130,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ia.ldf}[polyglossia: module for ia (Interlingua)]
@@ -18104,7 +18147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-icelandic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-icelandic.ldf}[polyglossia: module for Icelandic]
\PolyglossiaSetup{icelandic}{
@@ -18162,7 +18205,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-id.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-id.ldf}[polyglossia: module for id (Malay)]
@@ -18179,7 +18222,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-interlingua.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-interlingua.ldf}[polyglossia: module for Interlingua]
\PolyglossiaSetup{interlingua}{
@@ -18237,7 +18280,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-irish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-irish.ldf}[polyglossia: module for Irish]
@@ -18255,7 +18298,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-is.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-is.ldf}[polyglossia: module for is (Icelandic)]
@@ -18272,7 +18315,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-it.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-it.ldf}[polyglossia: module for it (Italian)]
@@ -18290,7 +18333,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.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian]
\PolyglossiaSetup{italian}{
@@ -18442,7 +18485,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ja.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ja.ldf}[polyglossia: module for ja (Japanese)]
@@ -18459,7 +18502,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-japanese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-japanese.ldf}[polyglossia: module for Japanese]
@@ -18469,6 +18512,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
bcp47-region=JP,
bcp47-script=Hrkt,
script=CJK,
+ scripttag=kana,
language=Japanese,
langtag=JAN,
hyphennames={nohyphenation},
@@ -18697,7 +18741,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ka.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ka.ldf}[polyglossia: module for ka (Georgian)]
@@ -18715,7 +18759,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-kannada.ldf}
% \begin{macrocode}
%% gloss-kannada.ldf
-%% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+%% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%%
%% Copyright 2011 Aravinda VK <hallimanearavind AT gmail.com>,
%% Shankar Prasad <prasad.mvs AT gmail.com>,
@@ -18838,7 +18882,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-khmer.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-khmer.ldf}[polyglossia: module for Khmer]
\PolyglossiaSetup{khmer}{
@@ -19021,7 +19065,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-km.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-km.ldf}[polyglossia: module for km (Khmer)]
@@ -19038,7 +19082,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Arab.ldf}[polyglossia: module for kmr-Arab (Kurdish)]
@@ -19055,7 +19099,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Latn.ldf}[polyglossia: module for kmr-Latn (Kurdish)]
@@ -19072,7 +19116,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr.ldf}[polyglossia: module for kmr (Kurdish)]
@@ -19089,7 +19133,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kn.ldf}[polyglossia: module for kn (Kannada)]
@@ -19106,7 +19150,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ko.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ko.ldf}[polyglossia: module for ko (Korean)]
@@ -19123,7 +19167,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-korean.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean]
@@ -19603,7 +19647,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Arab.ldf}[polyglossia: module for ku-Arab (Kurdish)]
@@ -19620,7 +19664,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Latn.ldf}[polyglossia: module for ku-Latn (Kurdish)]
@@ -19637,7 +19681,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku.ldf}[polyglossia: module for ku (Kurdish)]
@@ -19654,7 +19698,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kurdish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Created on September 1, 2019
% Last updated on May 17, 2020
@@ -20151,7 +20195,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kurmanji.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kurmanji.ldf}[polyglossia: module for Kurmanji Kurdish]
@@ -20168,7 +20212,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-classic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xclassic.ldf}[polyglossia: module for la-xclassic (Latin)]
@@ -20185,7 +20229,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-ecclesia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xecclesiastic.ldf}[polyglossia: module for la-xecclesiastic (Latin)]
@@ -20202,7 +20246,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-medieval.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xmedieval.ldf}[polyglossia: module for la-xmedieval (Latin)]
@@ -20219,7 +20263,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la.ldf}[polyglossia: module for la (Latin)]
@@ -20236,7 +20280,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lao.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao]
@@ -20341,13 +20385,63 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \end{macrocode}
% \iffalse
%</gloss-lao.ldf>
+%<*gloss-latex.ldf>
+% \fi
+% \clearpage
+%
+% \subsection{gloss-latex.ldf}
+% \begin{macrocode}
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
+%
+\ProvidesFile{gloss-latex.ldf}[polyglossia: module for default language]
+
+\PolyglossiaSetup{latex}{
+ bcp47=en-US,
+ bcp47-language=en,
+ bcp47-region=US,
+ bcp47-script=Latn,
+ hyphennames={english},
+ hyphenmins={2,3},
+ langtag=ENG,
+ fontsetup=true,
+ % ignore command
+ DefineCommandsCmd={use_none:n}
+}
+
+\def\captionslatex{%
+ \def\prefacename{Preface}%
+ \def\refname{References}%
+ \def\abstractname{Abstract}%
+ \def\bibname{Bibliography}%
+ \def\chaptername{Chapter}%
+ \def\appendixname{Appendix}%
+ \def\contentsname{Contents}%
+ \def\listfigurename{List of Figures}%
+ \def\listtablename{List of Tables}%
+ \def\indexname{Index}%
+ \def\figurename{Figure}%
+ \def\tablename{Table}%
+ \def\partname{Part}%
+ \def\enclname{encl}%
+ \def\ccname{cc}%
+ \def\headtoname{To}%
+ \def\pagename{Page}%
+ \def\seename{see}%
+ \def\alsoname{see also}%
+ \def\proofname{Proof}%
+}
+
+
+% \end{macrocode}
+% \iffalse
+%</gloss-latex.ldf>
%<*gloss-latin.ldf>
% \fi
% \clearpage
%
% \subsection{gloss-latin.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin]
@@ -21462,7 +21556,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinclassic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinclassic.ldf}[polyglossia: module for classic Latin]
@@ -21479,7 +21573,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinecclesiastic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinecclesiastic.ldf}[polyglossia: module for ecclesiastic Latin]
@@ -21496,7 +21590,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinmedieval.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinmedieval.ldf}[polyglossia: module for medieval Latin]
@@ -21513,7 +21607,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latvian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latvian.ldf}[polyglossia: module for Latvian]
\PolyglossiaSetup{latvian}{
@@ -21571,7 +21665,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lithuanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Paulius Sladkevičius <komsas@gmail.com>
@@ -21653,7 +21747,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lo.ldf}[polyglossia: module for lo (Lao)]
@@ -21670,7 +21764,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lowersorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lowersorbian.ldf}[polyglossia: module for Lower Sorbian]
@@ -21687,7 +21781,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lsorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lsorbian.ldf}[polyglossia: module for Lower Sorbian]
@@ -21705,7 +21799,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lt.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lt.ldf}[polyglossia: module for lt (Lithuanian)]
@@ -21722,7 +21816,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lv.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lv.ldf}[polyglossia: module for lv (Latvian)]
@@ -21739,7 +21833,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-macedonian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-macedonian.ldf}[polyglossia: module for Macedonian]
\PolyglossiaSetup{macedonian}{
@@ -21838,7 +21932,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-magyar.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-magyar.ldf}[polyglossia: module for Hungarian (Magyar)]
@@ -21855,7 +21949,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-malay.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malay.ldf}[polyglossia: module for Malay]
@@ -22054,7 +22148,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-malayalam.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for Malayalam]
@@ -22124,7 +22218,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-marathi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by Abhijit Navale <abhi_navale@live.in>
% Ordinals (1-100) added by Niranjan Tambe <niranjanvikastambe@gmail.com> on 14th December, 2019
@@ -22274,7 +22368,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mk.ldf}[polyglossia: module for mk (Macedonian)]
@@ -22291,7 +22385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ml.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ml.ldf}[polyglossia: module for ml (Malayalam)]
@@ -22308,7 +22402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mn.ldf}[polyglossia: module for mn (Mongolian)]
@@ -22325,7 +22419,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mongolian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mongolian.ldf}[polyglossia: module for Mongolian]
@@ -22564,7 +22658,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mr.ldf}[polyglossia: module for mr (Marathi)]
@@ -22581,7 +22675,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-naustrian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-naustrian.ldf}[polyglossia: module for Austrian German (current spelling)]
@@ -22598,7 +22692,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nb.ldf}[polyglossia: module for nb (Norwegian)]
@@ -22615,7 +22709,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-newzealand.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-newzealand.ldf}[polyglossia: module for Newzealand English]
@@ -22632,7 +22726,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ngerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ngerman.ldf}[polyglossia: module for German (current spelling)]
@@ -22649,7 +22743,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nko.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko]
\PolyglossiaSetup{nko}{%
@@ -22747,7 +22841,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-norsk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norsk.ldf}[polyglossia: module for Norwegian (Bokmal)]
@@ -22765,7 +22859,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-norwegian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norwegian.ldf}[polyglossia: module for Norwegian]
\PolyglossiaSetup{norwegian}{
@@ -22892,7 +22986,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nswissgerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nswissgerman.ldf}[polyglossia: module for Swiss German (current spelling)]
@@ -22909,7 +23003,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nynorsk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nynorsk.ldf}[polyglossia: module for Norwegian (Nynorsk)]
@@ -22927,7 +23021,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-occitan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%
%% This is file `gloss-occitan.ldf',
@@ -23108,7 +23202,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-odia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by ଅଶୋକ ଦାସ୍ <das@pas.rochester.edu> and ଅଭିଷେକ ଜେନା <avisekjena@gmail.com>
% TODO implement Odia calendar
@@ -23268,7 +23362,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-or.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-odia.ldf}[polyglossia: module for or (Odia)]
@@ -23285,7 +23379,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-pa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-pa.ldf}[polyglossia: module for pa (Punjabi)]
@@ -23302,7 +23396,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-persian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-persian.ldf}[polyglossia: module for Persian]
@@ -23543,7 +23637,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.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for Piedmontese]
\makeatletter
@@ -23673,7 +23767,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-polish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polish.ldf}[polyglossia: module for Polish]
@@ -23932,7 +24026,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-polutonikogreek.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polutonikogreek.ldf}[polyglossia: module for polytonic Greek]
@@ -23949,7 +24043,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-portuges.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuges.ldf}[polyglossia: module for Portuguese]
@@ -23969,7 +24063,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-portuguese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuguese.ldf}[polyglossia: module for Portuguese]
@@ -24200,7 +24294,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-punjabi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by
% Arvinder Singh Kang, <17-11-2022>
@@ -24308,7 +24402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-romanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romanian.ldf}[polyglossia: module for Romanian]
@@ -24367,7 +24461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-romansh.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romansh.ldf}[polyglossia: module for Romansh]
\makeatletter
@@ -24425,7 +24519,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-russian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-russian.ldf}[polyglossia: module for Russian]
@@ -24824,7 +24918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sami.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sami.ldf}[polyglossia: module for Sami]
@@ -24928,7 +25022,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-samin.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-samin.ldf}[polyglossia: module for Northern Sami]
@@ -24946,7 +25040,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sanskrit.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sanskrit.ldf}[polyglossia: module for Sanskrit]
@@ -25105,7 +25199,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-scottish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-scottish.ldf}[polyglossia: module for Scottish Gaelic]
@@ -25123,7 +25217,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-serbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbian.ldf}[polyglossia: module for Serbian]
%TODO split into gloss-serbiancyr.ldf and gloss-serbianlat.ldf
@@ -25546,7 +25640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-serbianc.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbianc.ldf}[polyglossia: module for Serbian (cyrillic)]
@@ -25563,7 +25657,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovak.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak]
@@ -25830,7 +25924,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovene.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovene.ldf}[polyglossia: module for Slovenian]
@@ -25847,7 +25941,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovenian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovenian.ldf}[polyglossia: module for Slovenian]
@@ -25939,7 +26033,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sorbian.ldf}[polyglossia: module for Sorbian]
@@ -26130,7 +26224,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-spanish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanish.ldf}[polyglossia: module for Spanish]
@@ -26370,7 +26464,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-spanishmx.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanishmx.ldf}[polyglossia: module for Mexican Spanish]
@@ -26387,7 +26481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-swedish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swedish.ldf}[polyglossia: module for Swedish]
@@ -26452,7 +26546,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-swissgerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swissgerman.ldf}[polyglossia: module for Swiss German (old spelling)]
@@ -26469,7 +26563,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-syriac.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac]
@@ -26742,7 +26836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-tamil.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tamil.ldf}[polyglossia: module for Tamil]
@@ -26812,7 +26906,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-telugu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-telugu.ldf}[polyglossia: module for Telugu]
@@ -26885,7 +26979,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-thai.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-thai.ldf}[polyglossia: module for Thai]
%% This is partly based on thai-latex for Babel:
@@ -27043,7 +27137,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-tibetan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for Tibetan]
%% Copyright 2013 Elie Roux
@@ -27269,7 +27363,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-turkish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkish.ldf}[polyglossia: module for Turkish]
\RequirePackage{hijrical}
@@ -27387,7 +27481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-turkmen.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkmen.ldf}[polyglossia: module for Turkmen]
%% Translations provided by Nazar Annagurban <nazartm at gmail dot com>
@@ -27445,7 +27539,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ug.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ug.ldf}[polyglossia: module for ug (Uyghur)]
% BCP 47 tag for Uyghur
@@ -27461,7 +27555,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ukrainian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ukrainian.ldf}[polyglossia: module for Ukrainian]
% Strings taken from Babel
@@ -27760,7 +27854,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-uppersorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uppersorbian.ldf}[polyglossia: module for Upper Sorbian]
@@ -27777,7 +27871,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-urdu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%% Adapted from a file contributed by Kamal Abdali
\ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu]
@@ -28027,7 +28121,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-usorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-usorbian.ldf}[polyglossia: module for Upper Sorbian]
@@ -28045,7 +28139,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-uyghur.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uyghur.ldf}[polyglossia: module for Uyghur]
%% Translations provided by Osman Tursun (Github Account: neouyghur)
@@ -28486,7 +28580,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-vietnamese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-vietnamese.ldf}[polyglossia: module for Vietnamese]
%% Strings contributed by Daniel Owens < dhowens . pmbx . net >
@@ -28545,7 +28639,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-welsh.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-welsh.ldf}[polyglossia: module for Welsh]
@@ -28645,7 +28739,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-zh-CN.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-CN.ldf}[polyglossia: module for zh-CN (Chinese)]
@@ -28662,7 +28756,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-zh-TW.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-TW.ldf}[polyglossia: module for zh-TW (Chinese)]
@@ -28856,7 +28950,7 @@ U+0039 <> U+0E59 ;
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -28923,7 +29017,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct
% \begin{macrocode}
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
@@ -29541,7 +29635,7 @@ prepend_to_callback ("hpack_filter",
% \begin{macrocode}
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -29596,7 +29690,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -29964,7 +30058,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters
% \begin{macrocode}
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -30014,7 +30108,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct
% \begin{macrocode}
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -30117,7 +30211,7 @@ polyglossia.desactivate_tibt_eol = desactivate
% \begin{macrocode}
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -30143,20 +30237,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -30268,14 +30355,9 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
% \end{macrocode}
% \iffalse
%</polyglossia.lua>
diff --git a/macros/unicodetex/latex/polyglossia/polyglossia.pdf b/macros/unicodetex/latex/polyglossia/polyglossia.pdf
index 6d76a007bd..1050ac71d1 100644
--- a/macros/unicodetex/latex/polyglossia/polyglossia.pdf
+++ b/macros/unicodetex/latex/polyglossia/polyglossia.pdf
Binary files differ