texlive[57098] Master/texmf-dist: polyglossia (7dec20)

commits+karl at tug.org commits+karl at tug.org
Tue Dec 8 23:04:49 CET 2020


Revision: 57098
          http://tug.org/svn/texlive?view=revision&revision=57098
Author:   karl
Date:     2020-12-08 23:04:48 +0100 (Tue, 08 Dec 2020)
Log Message:
-----------
polyglossia (7dec20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/polyglossia/README.md
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
    trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/polyglossia/README.md	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/doc/latex/polyglossia/README.md	2020-12-08 22:04:48 UTC (rev 57098)
@@ -1,4 +1,4 @@
-# THE POLYGLOSSIA PACKAGE v1.50a
+# THE POLYGLOSSIA PACKAGE v1.51
 ## Multilingual typesetting with XeLaTeX and LuaLaTeX
 
 This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex	2020-12-08 22:04:48 UTC (rev 57098)
@@ -968,6 +968,13 @@
 		\charifavailable{01C6}{dž}) will be replaced by single characters. This can
 		be useful if the ligatures on your font are broken (if the font does not
 		have them, they are automatically replaced).
+    \item \xpgboolkeytrue[1.51]{splithyphens}
+	    According to Croatian typesetting conventions, if a word with a hard hyphen (such as \emph{je-li})
+	    is hyphenated at this hyphen, a second hyphenation character is to be inserted at the beginning
+	    of the line that follows the hyphenation (\emph{je-/-li}).
+	    By default, this is done automatically (if you are using \LuaTeX, the \pkg{luavlna} package is
+	    loaded to achieve this).
+	    Set this option to ¦false¦ to disable the feature.
 \end{itemize}
 
 \subsection{czech}\label{czech}
@@ -1085,7 +1092,7 @@
 			enabled, spacing in typewriter context is the same as with roman and sans
 			serif font, depending on the \xpgvalue{autospacing} and
 			\xpgvalue{autospaceguillemets} settings (note that this was the default up
-			to v.~1.44).	
+			to v.~1.44).
 		\item \xpgboolkeyfalse{frenchfootnote}
 			If \xpgvalue{true}, footnotes start with a non-superscripted number
 			followed by a dot, as common in French typography. Note that this might
@@ -1097,6 +1104,14 @@
 			in French typography.  Note that this option is only functional (by
 			design) if French is the main language. Also, it might interfere with
 			list packages such as \pkg{enumitem}.
+		\item \xpgboolkeytrue[1.51]{frenchpart}
+			By default, \pkg{polyglossia} modifies part headings to match French conventions
+			(\emph{Première partie} rather than \emph{Partie I}). Next to the standard classes,
+			specifics of \pkg{KOMA-script}, \pkg{memoir} and the \pkg{titlesec} package are
+			taken into account. With other classes or packages, redefinition might fail if these
+			have particular part settings.
+			In such case, or if you don't want the redefinition, you can switch off the feature
+			by passing \textit{false} to this option.
 		\item \xpgcodekey[1.46]{itemlabels}¦\textemdash¦
 			If \emph{frenchitemlabels} is true, you can customize here the used item
 			label of all levels.

Modified: trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx	2020-12-08 22:04:48 UTC (rev 57098)
@@ -8,7 +8,7 @@
 \iffalse
 %</internal>
 %<*README>
-# THE POLYGLOSSIA PACKAGE v1.50a
+# THE POLYGLOSSIA PACKAGE v1.51
 ## Multilingual typesetting with XeLaTeX and LuaLaTeX
 
 This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -1350,6 +1350,13 @@
 % 		\charifavailable{01C6}{dž}) will be replaced by single characters. This can
 % 		be useful if the ligatures on your font are broken (if the font does not
 % 		have them, they are automatically replaced).
+%     \item \xpgboolkeytrue[1.51]{splithyphens}
+% 	    According to Croatian typesetting conventions, if a word with a hard hyphen (such as \emph{je-li})
+% 	    is hyphenated at this hyphen, a second hyphenation character is to be inserted at the beginning
+% 	    of the line that follows the hyphenation (\emph{je-/-li}).
+% 	    By default, this is done automatically (if you are using \LuaTeX, the \pkg{luavlna} package is
+% 	    loaded to achieve this).
+% 	    Set this option to ¦false¦ to disable the feature.
 % \end{itemize}
 % 
 % \subsection{czech}\label{czech}
@@ -1467,7 +1474,7 @@
 % 			enabled, spacing in typewriter context is the same as with roman and sans
 % 			serif font, depending on the \xpgvalue{autospacing} and
 % 			\xpgvalue{autospaceguillemets} settings (note that this was the default up
-% 			to v.~1.44).	
+% 			to v.~1.44).
 % 		\item \xpgboolkeyfalse{frenchfootnote}
 % 			If \xpgvalue{true}, footnotes start with a non-superscripted number
 % 			followed by a dot, as common in French typography. Note that this might
@@ -1479,6 +1486,14 @@
 % 			in French typography.  Note that this option is only functional (by
 % 			design) if French is the main language. Also, it might interfere with
 % 			list packages such as \pkg{enumitem}.
+% 		\item \xpgboolkeytrue[1.51]{frenchpart}
+% 			By default, \pkg{polyglossia} modifies part headings to match French conventions
+% 			(\emph{Première partie} rather than \emph{Partie I}). Next to the standard classes,
+% 			specifics of \pkg{KOMA-script}, \pkg{memoir} and the \pkg{titlesec} package are
+% 			taken into account. With other classes or packages, redefinition might fail if these
+% 			have particular part settings.
+% 			In such case, or if you don't want the redefinition, you can switch off the feature
+% 			by passing \textit{false} to this option.
 % 		\item \xpgcodekey[1.46]{itemlabels}¦\textemdash¦
 % 			If \emph{frenchitemlabels} is true, you can customize here the used item
 % 			label of all levels.
@@ -2686,7 +2701,7 @@
 % \subsection{polyglossia.sty}
 %    \begin{macrocode}
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{polyglossia}[2020/10/15 v1.50a
+\ProvidesPackage{polyglossia}[2020/12/08 v1.51
   Modern multilingual typesetting with XeLaTeX and LuaLaTeX]
 \RequirePackage{etoolbox}
 \RequirePackage{makecmds}
@@ -2697,19 +2712,23 @@
 \RequirePackage{expl3}
 \RequirePackage{l3keys2e}
 \RequirePackage{xparse}
-\RequirePackage{filehook}
 
+% fontspec now uses LaTeX3 packages such as expl3, so we need this:
+\ExplSyntaxOn
+
+% Execute code #3 if package #1 has been loaded already, else
+% add to package hook #2
+\newcommand\xpg at at@package[3]{%
+    \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}%
+}
+
 % correct a bug in tracklang
-\AtBeginOfPackageFile*{tracklang}{
+\xpg at at@package{tracklang}{file/after/tracklang.sty}{%
   \@ifpackagelater{tracklang}{2019/08/30}{}{\global\def\AddTrackedLangage{\AddTrackedLanguage}}
 }
 
 
-% fontspec now uses LaTeX3 packages such as expl3, so we need this:
-\ExplSyntaxOn
-
 %% This is for compatibility with Babel-aware package:
-\cslet{ver at babel.sty}{\@empty} % this "fakes" babel
 \def\languageshorthands#1{\relax} %this is for scrlttr2 class
 \def\bbl at cs#1{\csname bbl@#1\endcsname}%
 \AtEndPreamble{\let\bbl at set@language\xpg at set@language at aux} %for biblatex
@@ -2855,7 +2874,7 @@
      {}%
      {\xpg at error{Unknown~ language~ direction~ #1 ~(base~ wrapper)}}%
 }
-\AtEndOfPackageFile*{bidi}{%
+\xpg at at@package{bidi}{package/after/bidi}{%
   \ExplSyntaxOn%
   \cs_gset_nopar:Nn{\polyglossia at setpardirection:n}{%
     \str_case_e:nnTF{#1}{%
@@ -2875,7 +2894,7 @@
   }%
   \ExplSyntaxOff%
 }
-\AtEndOfPackageFile*{luabidi}{%
+\xpg at at@package{luabidi}{package/after/luabidi}{%
   \ExplSyntaxOn%
   \cs_gset_nopar:Nn{\polyglossia at setpardirection:n}{%
     \str_case_e:nnTF{#1}{%
@@ -3840,6 +3859,16 @@
 
 
 \newcommand{\setdefaultlanguage}[2][]{%
+  % latex is an internal language, so do not record
+  \ifstrequal{#2}{latex}{}{%
+     % register polyglossia language name
+     \ifcsundef{#2 at registered}{%
+       \global\edef\xpg at loaded{%
+           \ifx\xpg at loaded\@empty\else\xpg at loaded,\fi #2%
+        }%
+     }{}%
+     \csgdef{#2 at registered}{}%
+  }%
   \ifcsundef{#2 at loaded}%
   {
     \polyglossia_load_lang_definition:nn{#1}{#2}
@@ -8408,7 +8437,7 @@
    \def\prefacename{Parathenia}%
    \def\chaptername{Kapitulli}%
    \def\appendixname{Shtesa}%
-   \def\contentsname{Përmbajta}%
+   \def\contentsname{Përmbajtja}%
    \def\listfigurename{Figurat}%
    \def\listtablename{Tabelat}%
    \def\indexname{Indeksi}%
@@ -10720,12 +10749,18 @@
 % BCP-47 compliant aliases
 \setlanguagealias*{croatian}{hr}
 
+\ifluatex
+  \RequirePackage{luavlna}
+\fi
+
 \define at boolkey{croatian}[croatian@]{babelshorthands}[true]{}
 
 \define at boolkey{croatian}[croatian@]{disableligatures}[true]{}
 
+\define at boolkey{croatian}[croatian@]{splithyphens}[true]{}
+
 % Register default options
-\xpg at initialize@gloss at options{croatian}{babelshorthands=false,disableligatures=false}
+\xpg at initialize@gloss at options{croatian}{babelshorthands=false,disableligatures=false,splithyphens=true}
 
 \ifsystem at babelshorthands
   \setkeys{croatian}{babelshorthands=true}
@@ -10739,6 +10774,19 @@
   \shorthandoff{"}%
 }{}
 
+\def\croatian@@splhyphen#1{%
+  \ifnum\hyphenchar \font>0%
+    \kern\z@\discretionary{-}{\char\hyphenchar\the\font}{#1}%
+    \nobreak\hskip\z@%
+  \else%
+    #1%
+  \fi%
+}
+
+\def\croatian at splhyphen{%
+  \croatian@@splhyphen{-}%
+}
+
 \def\croatian at shorthands{%
   \bbl at activate{"}%
   \def\language at group{croatian}%
@@ -10768,6 +10816,32 @@
   \@ifundefined{initiate at active@char}{}{\bbl at deactivate{"}}%
 }
 
+\ifxetex
+  % splithyphens
+  \newXeTeXintercharclass\croatian at hyphen % -
+  \newXeTeXintercharclass\croatian at nonsyllabicpreposition%
+\fi
+
+\def\croatian at hyphens{%
+    \ifluatex
+      \AfterPreamble{\enablesplithyphens{croatian}}%
+    \else
+      \XeTeXinterchartokenstate=1
+      \XeTeXcharclass `\- \croatian at hyphen
+      \XeTeXinterchartoks \z@ \croatian at hyphen = {\croatian@@splhyphen}% "-" -> "\croatian@@splhyphen-"
+      % necessary if used together with vlna:
+      \XeTeXinterchartoks \croatian at nonsyllabicpreposition \croatian at hyphen = {\croatian@@splhyphen}% "-" -> "\croatian@@splhyphen-"
+    \fi%
+}
+
+\def\nocroatian at hyphens{%
+    \ifluatex
+      \AfterPreamble{\disablesplithyphens{croatian}}%
+    \else
+      \XeTeXcharclass `\- \z@
+    \fi%
+}
+
 \newcommand*\hr at charifavailable[2]{%
    \ifcroatian at disableligatures
      \bgroup#2\egroup%
@@ -10872,14 +10946,17 @@
 
 \def\noextras at croatian{%
   \ifcroatian at babelshorthands\nocroatian at shorthands\fi%
+  \nocroatian at hyphens%
 }
 
 \def\blockextras at croatian{%
   \ifcroatian at babelshorthands\croatian at shorthands\fi%
+  \ifcroatian at splithyphens\croatian at hyphens\else\nocroatian at hyphens\fi%
 }
 
 \def\inlineextras at croatian{%
   \ifcroatian at babelshorthands\croatian at shorthands\fi%
+  \ifcroatian at splithyphens\croatian at hyphens\else\nocroatian at hyphens\fi%
 }
 
 %    \end{macrocode}
@@ -12595,6 +12672,9 @@
 \define at boolkey{french}[french@]{autospacing}[true]{}
 \french at autospacingtrue
 
+\define at boolkey{french}[french@]{frenchpart}[true]{}
+\french at frenchparttrue
+
 \newif\iffrench at autospaceguillemets
 \define at boolkey{french}[french@]{autospaceguillemets}[true]{}
 \french at autospaceguillemetstrue
@@ -12694,7 +12774,7 @@
   \let\ttfamily\french at ttfamilyORI
 }
 
-\def\xpg at french@thinsp{\kern 0.5\fontdimen2\font}
+\def\xpg at french@thinsp{\kern 0.5\fontdimen2\font\nobreak\hskip\z at skip}
 
 \def\french at punctuation{%
     \lccode"2019="2019
@@ -12817,14 +12897,11 @@
    \def\indexname{Index}%
    \def\figurename{\textsc{Fig.}}%
    \def\tablename{\textsc{Tab.}}%
-   \def\@Fpt{\ifcase\value{part}\or Première\or Deuxième\or
-   Troisième\or Quatrième\or Cinquième\or Sixième\or
-   Septième\or Huitième\or Neuvième\or Dixième\or Onzième\or
-   Douzième\or Treizième\or Quatorzième\or Quinzième\or
-   Seizième\or Dix-septième\or Dix-huitième\or Dix-neuvième\or
-   Vingtième\fi\space}%
-   \def\thepart{\@Fpt partie}%
-   \def\partname{}%
+   \iffrench at frenchpart
+     \def\partname{partie}%
+   \else
+     \def\partname{Partie}%
+   \fi%
    \def\pagename{page}%
    \def\seename{\emph{voir}}%
    \def\alsoname{\emph{voir aussi}}%
@@ -12844,9 +12921,83 @@
       décembre\fi
       \space \number\year}}
 
+\def\xpg at french@part{\ifcase\value{part}\or Première\or Deuxième\or%
+   Troisième\or Quatrième\or Cinquième\or Sixième\or%
+   Septième\or Huitième\or Neuvième\or Dixième\or Onzième\or%
+   Douzième\or Treizième\or Quatorzième\or Quinzième\or%
+   Seizième\or Dix-septième\or Dix-huitième\or Dix-neuvième\or%
+   Vingtième\fi}%
+
+\def\french at capsformat{%
+   % Change part heading
+   % With titlesec
+   \ifcsdef{titleformat}{%
+     \ifcsdef{@part}{%
+        \let\xpg at save@part at format\@part%
+        \patchcmd{\@part}%
+                  {\partname\nobreakspace\thepart}%
+                  {\xpg at french@part\nobreakspace\partname}%
+                  {}%
+                  {\xpg at warning{Failed to patch part for French}}%
+     }{}%
+   }{% (not \ifdefined\titleformat)
+     % With KOMA
+     \ifcsdef{sectionformat}{%
+        \ifcsdef{partformat}{%
+          \let\xpg at save@part at format\partformat%
+          \renewcommand{\partformat}{\xpg at french@part~\partname}%
+        }{}%
+     }{%  (not \ifdefined\sectionformat)
+       % With memoir
+       \ifcsdef{@memptsize}{%
+         \ifcsdef{@part}{%
+           \let\xpg at save@part at format\@part%
+           \patchcmd{\@part}{\printpartname \partnamenum \printpartnum}%
+                            {\partnamefont\xpg at french@part\partnamenum\printpartname}%
+                            {}%
+                            {\xpg at warning{Failed to patch part for French}}%
+          }{}%
+       }{%  (not \ifdefined\@memptsize)
+         % With standard classes
+         \ifcsdef{@part}{%
+           \let\xpg at save@part at format\@part%
+           \patchcmd{\@part}%
+                    {\partname\nobreakspace\thepart}%
+                    {\xpg at french@part\nobreakspace\partname}%
+                    {}%
+                    {\xpg at warning{Failed to patch part for French}}%
+         }{}%  (end \ifdefined\@part)
+       }% (end \ifdefined\@memptsize)
+     }% (end \ifdefined\sectionformat)
+   }% (end \ifdefined\titleformat)
+}
+
+\def\nofrench at capsformat{%
+   % Reset chapter and part heading
+   \ifcsdef{titleformat}{%
+      % With titlesec
+     \ifcsdef{xpg at save@part at format}{%
+        \let\@part\xpg at save@part at format
+     }{}%
+   }{% (not \ifdefined\titleformat)
+     \ifcsdef{sectionformat}{%
+        % With KOMA
+        \ifcsdef{xpg at save@part at format}{%
+           \let\partformat\xpg at save@part at format
+        }{}%
+     }{%
+        % With memoir and standard classes
+        \ifcsdef{xpg at save@part at format}{%
+           \let\@part\xpg at save@part at format
+        }{}%
+     }% (end \ifdefined\sectionformat)
+   }% (end \ifdefined\titleformat)
+}
+
 \def\noextras at french{%
    \nofrench at punctuation%
    \nofrench at fontsetup%
+   \nofrench at capsformat%
 }
 
 \def\blockextras at french{%
@@ -12854,6 +13005,9 @@
       \french at punctuation%
    \fi
    \french at fontsetup%
+   \iffrench at frenchpart
+     \french at capsformat%
+   \fi%
 }
 
 \def\inlineextras at french{%
@@ -14383,7 +14537,7 @@
        % Bidi inserts an RTL mark (0x200f) between number and number separator (- .),
        % forcing numbers to RTL. This is wrong for Hebrew.
        % So we defunc the respective command.
-       \renewcommand*{\DigitsDotDashInterCharToks}{}
+       \renewcommand*{\DigitsDotDashInterCharToks}{}%
     \fi%
 }
 
@@ -24997,6 +25151,25 @@
 % 
 % \iffalse
 %<*Changelog>
+1.51 (08-12-2020)
+
+New features:
+   * New option "frenchpart" for French (#458).
+   * New option "splithyphens" for Croatian (#454).
+
+Bug fixes:
+
+   * Use new LaTeX core hooks rather than filehook package. This fixes
+     a recent breakage of filehook with other external packages (#453).
+   * Remove very old code that pretends polyglossia is babel (#455).
+   * Fix spelling of Albanian contentsname (#456).
+   * Fix part heading modification in French (#458).
+   * Fix extra space in Hebrew (#459).
+   * Register main polyglossia language earlier (#461).
+   * Allow for hyphenations in words following opening guillemet in French
+     with XeTeX (#462).
+
+
 1.50a (15-10-2020)
 
 Bug fixes:

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf	2020-12-08 22:04:48 UTC (rev 57098)
@@ -19,7 +19,7 @@
    \def\prefacename{Parathenia}%
    \def\chaptername{Kapitulli}%
    \def\appendixname{Shtesa}%
-   \def\contentsname{Përmbajta}%
+   \def\contentsname{Përmbajtja}%
    \def\listfigurename{Figurat}%
    \def\listtablename{Tabelat}%
    \def\indexname{Indeksi}%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf	2020-12-08 22:04:48 UTC (rev 57098)
@@ -12,12 +12,18 @@
 % BCP-47 compliant aliases
 \setlanguagealias*{croatian}{hr}
 
+\ifluatex
+  \RequirePackage{luavlna}
+\fi
+
 \define at boolkey{croatian}[croatian@]{babelshorthands}[true]{}
 
 \define at boolkey{croatian}[croatian@]{disableligatures}[true]{}
 
+\define at boolkey{croatian}[croatian@]{splithyphens}[true]{}
+
 % Register default options
-\xpg at initialize@gloss at options{croatian}{babelshorthands=false,disableligatures=false}
+\xpg at initialize@gloss at options{croatian}{babelshorthands=false,disableligatures=false,splithyphens=true}
 
 \ifsystem at babelshorthands
   \setkeys{croatian}{babelshorthands=true}
@@ -31,6 +37,19 @@
   \shorthandoff{"}%
 }{}
 
+\def\croatian@@splhyphen#1{%
+  \ifnum\hyphenchar \font>0%
+    \kern\z@\discretionary{-}{\char\hyphenchar\the\font}{#1}%
+    \nobreak\hskip\z@%
+  \else%
+    #1%
+  \fi%
+}
+
+\def\croatian at splhyphen{%
+  \croatian@@splhyphen{-}%
+}
+
 \def\croatian at shorthands{%
   \bbl at activate{"}%
   \def\language at group{croatian}%
@@ -60,6 +79,32 @@
   \@ifundefined{initiate at active@char}{}{\bbl at deactivate{"}}%
 }
 
+\ifxetex
+  % splithyphens
+  \newXeTeXintercharclass\croatian at hyphen % -
+  \newXeTeXintercharclass\croatian at nonsyllabicpreposition%
+\fi
+
+\def\croatian at hyphens{%
+    \ifluatex
+      \AfterPreamble{\enablesplithyphens{croatian}}%
+    \else
+      \XeTeXinterchartokenstate=1
+      \XeTeXcharclass `\- \croatian at hyphen
+      \XeTeXinterchartoks \z@ \croatian at hyphen = {\croatian@@splhyphen}% "-" -> "\croatian@@splhyphen-"
+      % necessary if used together with vlna:
+      \XeTeXinterchartoks \croatian at nonsyllabicpreposition \croatian at hyphen = {\croatian@@splhyphen}% "-" -> "\croatian@@splhyphen-"
+    \fi%
+}
+
+\def\nocroatian at hyphens{%
+    \ifluatex
+      \AfterPreamble{\disablesplithyphens{croatian}}%
+    \else
+      \XeTeXcharclass `\- \z@
+    \fi%
+}
+
 \newcommand*\hr at charifavailable[2]{%
    \ifcroatian at disableligatures
      \bgroup#2\egroup%
@@ -164,14 +209,17 @@
 
 \def\noextras at croatian{%
   \ifcroatian at babelshorthands\nocroatian at shorthands\fi%
+  \nocroatian at hyphens%
 }
 
 \def\blockextras at croatian{%
   \ifcroatian at babelshorthands\croatian at shorthands\fi%
+  \ifcroatian at splithyphens\croatian at hyphens\else\nocroatian at hyphens\fi%
 }
 
 \def\inlineextras at croatian{%
   \ifcroatian at babelshorthands\croatian at shorthands\fi%
+  \ifcroatian at splithyphens\croatian at hyphens\else\nocroatian at hyphens\fi%
 }
 
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf	2020-12-08 22:04:48 UTC (rev 57098)
@@ -104,6 +104,9 @@
 \define at boolkey{french}[french@]{autospacing}[true]{}
 \french at autospacingtrue
 
+\define at boolkey{french}[french@]{frenchpart}[true]{}
+\french at frenchparttrue
+
 \newif\iffrench at autospaceguillemets
 \define at boolkey{french}[french@]{autospaceguillemets}[true]{}
 \french at autospaceguillemetstrue
@@ -203,7 +206,7 @@
   \let\ttfamily\french at ttfamilyORI
 }
 
-\def\xpg at french@thinsp{\kern 0.5\fontdimen2\font}
+\def\xpg at french@thinsp{\kern 0.5\fontdimen2\font\nobreak\hskip\z at skip}
 
 \def\french at punctuation{%
     \lccode"2019="2019
@@ -326,14 +329,11 @@
    \def\indexname{Index}%
    \def\figurename{\textsc{Fig.}}%
    \def\tablename{\textsc{Tab.}}%
-   \def\@Fpt{\ifcase\value{part}\or Première\or Deuxième\or
-   Troisième\or Quatrième\or Cinquième\or Sixième\or
-   Septième\or Huitième\or Neuvième\or Dixième\or Onzième\or
-   Douzième\or Treizième\or Quatorzième\or Quinzième\or
-   Seizième\or Dix-septième\or Dix-huitième\or Dix-neuvième\or
-   Vingtième\fi\space}%
-   \def\thepart{\@Fpt partie}%
-   \def\partname{}%
+   \iffrench at frenchpart
+     \def\partname{partie}%
+   \else
+     \def\partname{Partie}%
+   \fi%
    \def\pagename{page}%
    \def\seename{\emph{voir}}%
    \def\alsoname{\emph{voir aussi}}%
@@ -353,9 +353,83 @@
       décembre\fi
       \space \number\year}}
 
+\def\xpg at french@part{\ifcase\value{part}\or Première\or Deuxième\or%
+   Troisième\or Quatrième\or Cinquième\or Sixième\or%
+   Septième\or Huitième\or Neuvième\or Dixième\or Onzième\or%
+   Douzième\or Treizième\or Quatorzième\or Quinzième\or%
+   Seizième\or Dix-septième\or Dix-huitième\or Dix-neuvième\or%
+   Vingtième\fi}%
+
+\def\french at capsformat{%
+   % Change part heading
+   % With titlesec
+   \ifcsdef{titleformat}{%
+     \ifcsdef{@part}{%
+        \let\xpg at save@part at format\@part%
+        \patchcmd{\@part}%
+                  {\partname\nobreakspace\thepart}%
+                  {\xpg at french@part\nobreakspace\partname}%
+                  {}%
+                  {\xpg at warning{Failed to patch part for French}}%
+     }{}%
+   }{% (not \ifdefined\titleformat)
+     % With KOMA
+     \ifcsdef{sectionformat}{%
+        \ifcsdef{partformat}{%
+          \let\xpg at save@part at format\partformat%
+          \renewcommand{\partformat}{\xpg at french@part~\partname}%
+        }{}%
+     }{%  (not \ifdefined\sectionformat)
+       % With memoir
+       \ifcsdef{@memptsize}{%
+         \ifcsdef{@part}{%
+           \let\xpg at save@part at format\@part%
+           \patchcmd{\@part}{\printpartname \partnamenum \printpartnum}%
+                            {\partnamefont\xpg at french@part\partnamenum\printpartname}%
+                            {}%
+                            {\xpg at warning{Failed to patch part for French}}%
+          }{}%
+       }{%  (not \ifdefined\@memptsize)
+         % With standard classes
+         \ifcsdef{@part}{%
+           \let\xpg at save@part at format\@part%
+           \patchcmd{\@part}%
+                    {\partname\nobreakspace\thepart}%
+                    {\xpg at french@part\nobreakspace\partname}%
+                    {}%
+                    {\xpg at warning{Failed to patch part for French}}%
+         }{}%  (end \ifdefined\@part)
+       }% (end \ifdefined\@memptsize)
+     }% (end \ifdefined\sectionformat)
+   }% (end \ifdefined\titleformat)
+}
+
+\def\nofrench at capsformat{%
+   % Reset chapter and part heading
+   \ifcsdef{titleformat}{%
+      % With titlesec
+     \ifcsdef{xpg at save@part at format}{%
+        \let\@part\xpg at save@part at format
+     }{}%
+   }{% (not \ifdefined\titleformat)
+     \ifcsdef{sectionformat}{%
+        % With KOMA
+        \ifcsdef{xpg at save@part at format}{%
+           \let\partformat\xpg at save@part at format
+        }{}%
+     }{%
+        % With memoir and standard classes
+        \ifcsdef{xpg at save@part at format}{%
+           \let\@part\xpg at save@part at format
+        }{}%
+     }% (end \ifdefined\sectionformat)
+   }% (end \ifdefined\titleformat)
+}
+
 \def\noextras at french{%
    \nofrench at punctuation%
    \nofrench at fontsetup%
+   \nofrench at capsformat%
 }
 
 \def\blockextras at french{%
@@ -363,6 +437,9 @@
       \french at punctuation%
    \fi
    \french at fontsetup%
+   \iffrench at frenchpart
+     \french at capsformat%
+   \fi%
 }
 
 \def\inlineextras at french{%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf	2020-12-08 22:04:48 UTC (rev 57098)
@@ -115,7 +115,7 @@
        % Bidi inserts an RTL mark (0x200f) between number and number separator (- .),
        % forcing numbers to RTL. This is wrong for Hebrew.
        % So we defunc the respective command.
-       \renewcommand*{\DigitsDotDashInterCharToks}{}
+       \renewcommand*{\DigitsDotDashInterCharToks}{}%
     \fi%
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty	2020-12-08 22:04:13 UTC (rev 57097)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty	2020-12-08 22:04:48 UTC (rev 57098)
@@ -1,5 +1,5 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{polyglossia}[2020/10/15 v1.50a
+\ProvidesPackage{polyglossia}[2020/12/08 v1.51
   Modern multilingual typesetting with XeLaTeX and LuaLaTeX]
 \RequirePackage{etoolbox}
 \RequirePackage{makecmds}
@@ -10,19 +10,23 @@
 \RequirePackage{expl3}
 \RequirePackage{l3keys2e}
 \RequirePackage{xparse}
-\RequirePackage{filehook}
 
+% fontspec now uses LaTeX3 packages such as expl3, so we need this:
+\ExplSyntaxOn
+
+% Execute code #3 if package #1 has been loaded already, else
+% add to package hook #2
+\newcommand\xpg at at@package[3]{%
+    \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}%
+}
+
 % correct a bug in tracklang
-\AtBeginOfPackageFile*{tracklang}{
+\xpg at at@package{tracklang}{file/after/tracklang.sty}{%
   \@ifpackagelater{tracklang}{2019/08/30}{}{\global\def\AddTrackedLangage{\AddTrackedLanguage}}
 }
 
 
-% fontspec now uses LaTeX3 packages such as expl3, so we need this:
-\ExplSyntaxOn
-
 %% This is for compatibility with Babel-aware package:
-\cslet{ver at babel.sty}{\@empty} % this "fakes" babel
 \def\languageshorthands#1{\relax} %this is for scrlttr2 class
 \def\bbl at cs#1{\csname bbl@#1\endcsname}%
 \AtEndPreamble{\let\bbl at set@language\xpg at set@language at aux} %for biblatex
@@ -168,7 +172,7 @@
      {}%
      {\xpg at error{Unknown~ language~ direction~ #1 ~(base~ wrapper)}}%
 }
-\AtEndOfPackageFile*{bidi}{%
+\xpg at at@package{bidi}{package/after/bidi}{%
   \ExplSyntaxOn%
   \cs_gset_nopar:Nn{\polyglossia at setpardirection:n}{%
     \str_case_e:nnTF{#1}{%
@@ -188,7 +192,7 @@
   }%
   \ExplSyntaxOff%
 }
-\AtEndOfPackageFile*{luabidi}{%
+\xpg at at@package{luabidi}{package/after/luabidi}{%
   \ExplSyntaxOn%
   \cs_gset_nopar:Nn{\polyglossia at setpardirection:n}{%
     \str_case_e:nnTF{#1}{%
@@ -1153,6 +1157,16 @@
 
 
 \newcommand{\setdefaultlanguage}[2][]{%
+  % latex is an internal language, so do not record
+  \ifstrequal{#2}{latex}{}{%
+     % register polyglossia language name
+     \ifcsundef{#2 at registered}{%
+       \global\edef\xpg at loaded{%
+           \ifx\xpg at loaded\@empty\else\xpg at loaded,\fi #2%
+        }%
+     }{}%
+     \csgdef{#2 at registered}{}%
+  }%
   \ifcsundef{#2 at loaded}%
   {
     \polyglossia_load_lang_definition:nn{#1}{#2}



More information about the tex-live-commits mailing list.