\documentclass[DIV=13,%
               BCOR=0mm,%
               headinclude=false,%
               footinclude=false,%
               fontsize=10pt,%
               oneside,%
               paper=a5]%
               {scrartcl}


\usepackage{microtype}
\usepackage{graphicx}
\usepackage{alltt}
\usepackage{verbatim}
\usepackage[shortlabels]{enumitem}
\usepackage{tabularx}
\usepackage[normalem]{ulem}
\def\hsout{\bgroup \ULdepth=-.55ex \ULset}
% https://tex.stackexchange.com/questions/22410/strikethrough-in-section-title
% Unclear if \protect \hsout is needed. Doesn't looks so
\DeclareRobustCommand{\sout}[1]{\texorpdfstring{\hsout{#1}}{#1}}
\usepackage{wrapfig}

% avoid breakage on multiple <br><br> and avoid the next [] to be eaten
\newcommand*{\forcelinebreak}{\strut\\*{}}

\newcommand*{\hairline}{%
  \bigskip%
  \noindent \hrulefill%
  \bigskip%
}

% reverse indentation for biblio and play

\newenvironment*{amusebiblio}{
  \leftskip=\parindent
  \parindent=-\parindent
  \smallskip
  \indent
}{\smallskip}

\newenvironment*{amuseplay}{
  \leftskip=\parindent
  \parindent=-\parindent
  \smallskip
  \indent
}{\smallskip}

\newcommand*{\Slash}{\slash\hspace{0pt}}


% http://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url
\PassOptionsToPackage{hyphens}{url}\usepackage[hyperfootnotes=false,hidelinks,breaklinks=true]{hyperref}
\usepackage{bookmark}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont{texgyrepagella-regular.otf}[Script=Latin,%
 Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/,%
 BoldFont=texgyrepagella-bold.otf,%
 BoldItalicFont=texgyrepagella-bolditalic.otf,%
 ItalicFont=texgyrepagella-italic.otf]
\setmonofont{cmuntt.ttf}[Script=Latin,%
 Scale=MatchLowercase,%
 Path=/usr/share/fonts/truetype/cmu/,%
 BoldFont=cmuntb.ttf,%
 BoldItalicFont=cmuntx.ttf,%
 ItalicFont=cmunit.ttf]
\setsansfont{cmunss.ttf}[Script=Latin,%
 Scale=MatchLowercase,%
 Path=/usr/share/fonts/truetype/cmu/,%
 BoldFont=cmunsx.ttf,%
 BoldItalicFont=cmunso.ttf,%
 ItalicFont=cmunsi.ttf]
\newfontfamily\englishfont{texgyrepagella-regular.otf}[Script=Latin,%
 Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/,%
 BoldFont=texgyrepagella-bold.otf,%
 BoldItalicFont=texgyrepagella-bolditalic.otf,%
 ItalicFont=texgyrepagella-italic.otf]
% footnote handling
\usepackage[fragile]{bigfoot}
\usepackage{perpage}
\DeclareNewFootnote{default}




\let\chapter\section


% global style

\pagestyle{plain}




\usepackage{indentfirst}

% remove the numbering
\setcounter{secnumdepth}{-2}

% remove labels from the captions
\renewcommand*{\captionformat}{}
\renewcommand*{\figureformat}{}
\renewcommand*{\tableformat}{}
\KOMAoption{captions}{belowfigure,nooneline}
\addtokomafont{caption}{\centering}








\DeclareNewFootnote{B}
\MakeSorted{footnoteB}
\renewcommand*\thefootnoteB{(\arabic{footnoteB})}

\deffootnote[3em]{0em}{4em}{\textsuperscript{\thefootnotemark}~}


\addtokomafont{disposition}{\rmfamily}
\addtokomafont{descriptionlabel}{\rmfamily}


\frenchspacing
% avoid vertical glue
\raggedbottom

% this will generate overfull boxes, so we need to set a tolerance
% \pretolerance=1000
% pretolerance is what is accepted for a paragraph without
% hyphenation, so it makes sense to be strict here and let the user
% accept tweak the tolerance instead.
\tolerance=200
% Additional tolerance for bad paragraphs only
\setlength{\emergencystretch}{30pt}

% (try to) forbid widows/orphans
\clubpenalty=10000
\widowpenalty=10000





% given that we said footinclude=false, this should be safe
\setlength{\footskip}{2\baselineskip}

\title{Bug with French and XeLaTeX}
\date{}
\author{}
\subtitle{}




% https://groups.google.com/d/topic/comp.text.tex/6fYmcVMbSbQ/discussion
\hypersetup{%
pdfencoding=auto,
pdftitle={Bug with French and XeLaTeX},%
pdfauthor={},%
pdfsubject={},%
pdfkeywords={doc}%
}


\begin{document}






\thispagestyle{empty}


  \strut\vskip 2em
  \begin{center}

  {\usekomafont{title}{\huge Bug with French and XeLaTeX\par}}%
  \vskip 1em
  
  \vskip 2em
  
  \vskip 1.5em





  
    \strut\par
  


  \end{center}


  \vskip 3em
  \par





The polyglossia package shipped with Debian 9 (current stable) is hit by this bug: \href{https://tex.stackexchange.com/questions/330844/prevent-line-break-before/330848\#330848}{tex.stackexchange.com} (missing no-break spaces in French punctuation).


You can work around it in two ways:


\begin{itemize}
\item\relax 
Use LuaTeX instead of XeTeX (root users have access to the switch in the admin).



\item\relax 
Patch polyglossia (see below).




\end{itemize}
\subsubsection{Patching polyglossia}


This is experimental but appears to work:


Copy the file `gloss-french.ldf` into the local tree.


\begin{alltt}
\# amusewiki shell
\$ mkdir -p texmf/tex/latex/polyglossia
\$ cp /usr/share/texlive/texmf-dist/tex/latex/polyglossia/gloss-french.ldf \textbackslash{}
     texmf/tex/latex/polyglossia/gloss-french.ldf
\$ texhash `kpsewhich -var-value TEXMFHOME`
\end{alltt}


And patch the new gloss-french.ldf with this:


\begin{alltt}
--- /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 @@
       \textbackslash{}XeTeXinterchartoks \textbackslash{}french@punctguillend \textbackslash{}french@punctthin = \{\textbackslash{}nobreak\textbackslash{}thinspace\}\% "»;" -> "» ;"
       \textbackslash{}XeTeXinterchartoks \textbackslash{}french@punctguillend \textbackslash{}french@punctthick = \{\textbackslash{}nobreakspace\}\% "»:" -> "» :"
       \textbackslash{}XeTeXinterchartoks \textbackslash{}french@punctthin \textbackslash{}french@punctguillend  = \{\textbackslash{}nobreakspace\}\% "?»" -> "? »"
+
+      \% see https://tex.stackexchange.com/questions/330844/prevent-line-break-before/330848\#330848
+      \textbackslash{}XeTeXinterchartoks 4095 \textbackslash{}french@punctthin = \{\textbackslash{}xpg@unskip\textbackslash{}nobreak\textbackslash{}thinspace\}\%
+      \textbackslash{}XeTeXinterchartoks 4095 \textbackslash{}french@punctthick = \{\textbackslash{}xpg@unskip\textbackslash{}nobreakspace\}\%
+      \textbackslash{}XeTeXinterchartoks 4095 \textbackslash{}french@punctguillend = \{\textbackslash{}xpg@unskip\textbackslash{}nobreakspace\}\% "  »" -> "\textasciitilde{}»"
+      \textbackslash{}XeTeXinterchartoks \textbackslash{}french@punctguillstart 4095 = \{\textbackslash{}nobreakspace\textbackslash{}xpg@nospace\}\% "«  " -> "«\textasciitilde{}"
+
     \textbackslash{}fi
     \}


\end{alltt}




% begin final page

\clearpage



% new page for the colophon

\thispagestyle{empty}

\begin{center}





\bigskip
\includegraphics[width=0.25\textwidth]{logo-amw.pdf}
\bigskip

\end{center}

\strut

\vfill

\begin{center}




Bug with French and XeLaTeX






\bigskip



   

       

       

       

       

       
   



\bigskip
\textbf{amusewiki.org}


\end{center}

% end final page with colophon


\end{document}


% No format ID passed.



