Upstream bugs

    Russian: undefined \chapterformat

    French: missing spacing after punctuation

      Patching polyglossia

This is a legacy page which only applies to older installations, with a old TeXlive! installation


The current approach is to patch the files system-wide so on upgrade these changes will be overwritten by versions shipped by Debian.

The long term plan is to repackage texlive in a minimal package, so we can ship the latest versions.

Russian: undefined \chapterformat

On Debian 10 (Buster), Russian documents are hitting this bug: https://github.com/reutenauer/polyglossia/issues/210

commit d2f383ee4b84bbed78a618fc1261f7fb3ccf9447
Author: Maksim Zholudev <maximzms@gmail.com>
Date:   Tue Aug 14 08:35:00 2018 +0300

    Fix Russian language for KOMA-Script classes without chapters

diff --git a/tex/gloss-russian.ldf b/tex/gloss-russian.ldf
index d2c86a3..5d207ff 100644
--- a/tex/gloss-russian.ldf
+++ b/tex/gloss-russian.ldf
@@ -170,7 +170,8 @@
 % The following is based on some ideas from ruscor.sty
 \def\russian@capsformat{%
    \ifdef{\KOMAScript}{%
-      \renewcommand{\chapterformat}{\prechapter\thechapter\postchapter}%
+      \ifdef{\chapterformat}{%
+        \renewcommand{\chapterformat}{\prechapter\thechapter\postchapter}}{}%
       \renewcommand{\sectionformat}{\presection\thesection\postsection}%
       \renewcommand{\subsectionformat}{\presubsection\thesubsection\postsubsection}%
       \renewcommand{\subsubsectionformat}{\presubsubsection\thesubsubsection\postsubsubsection}%
@@ -224,7 +225,8 @@

 \def\noextras@russian{%
    \ifdef{\KOMAScript}{%
-      \renewcommand{\chapterformat}{\thechapter\autodot\enskip}%
+      \ifdef{\chapterformat}{%
+        \renewcommand{\chapterformat}{\thechapter\autodot\enskip}}{}%
       \renewcommand{\sectionformat}{\thesection\autodot\enskip}%
       \renewcommand{\subsectionformat}{\thesubsection\autodot\enskip}%
       \renewcommand{\subsubsectionformat}{\thesubsubsection\autodot\enskip}%

You need to patch gloss-russian.ldf file. Save the patch in, e.g. russian.patch and then as root execute:

patch -p1 /usr/share/texlive/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf russian.patch

French: missing spacing after punctuation

The polyglossia package shipped with Debian 9 (Stretch) is hit by this bug: tex.stackexchange.com (missing no-break spaces in French punctuation).

You can work around it in two ways:

Patching polyglossia

--- /usr/share/texlive/texmf-dist/tex/latex/polyglossia/gloss-french.ldf        2016-03-25 23:06:03.000000000 +0100
+++ texmf/tex/latex/polyglossia/gloss-french.ldf        2018-10-14 09:45:47.171843623 +0200
@@ -54,6 +54,13 @@
       \XeTeXinterchartoks \french@punctguillend \french@punctthin = {\nobreak\thinspace}% "»;" -> "» ;"
       \XeTeXinterchartoks \french@punctguillend \french@punctthick = {\nobreakspace}% "»:" -> "» :"
       \XeTeXinterchartoks \french@punctthin \french@punctguillend  = {\nobreakspace}% "?»" -> "? »"
+
+      % see https://tex.stackexchange.com/questions/330844/prevent-line-break-before/330848#330848
+      \XeTeXinterchartoks 4095 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
+      \XeTeXinterchartoks 4095 \french@punctthick = {\xpg@unskip\nobreakspace}%
+      \XeTeXinterchartoks 4095 \french@punctguillend = {\xpg@unskip\nobreakspace}% "  »" -> "~»"
+      \XeTeXinterchartoks \french@punctguillstart 4095 = {\nobreakspace\xpg@nospace}% "«  " -> "«~"
+
     \fi
     }

Save the patch in a file, e.g. french.patch and then as root execute:

patch -p1 /usr/share/texlive/texmf-dist/tex/latex/polyglossia/gloss-french.ldf french.patch