\selectlanguage is processed in the .toc file
Compilation is significantly slower in a document with many language switches and a table of contents.
This issue is very likely connected to #593 or latex3/latex2e/issues/1078. I might be mistaken, but I fear that 98ba2e022b671dffc1ae73fb03935b658ab81d45 might only have shifted the problem to another place, namely the .toc file (although I am not sure if this is something that should be handled by TeX or by polyglossia).
Consider the following example file. I have copy-pasted the contents of https://github.com/latex3/latex2e/issues/1078#issue-1732291867 multiple times to make the difference more noticeable.
Example.tex
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguage{english}
\begin{document}
\tableofcontents
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\chapter{Chapter Title}
\begin{english}[variant=american]%
\noindent{\small\textbf{The Adventure of the Empty House}}{\small}\\
{\small by Sir Arthur Conan Doyle}{\small\par}
{\small It was in the spring of the year 1894 that all London was interested,
which was only withdrawn upon the third of last month.}{\small\par}
\end{english}%
Voici un exemple
\begin{english}[variant=american]%
{\footnotesize It can be imagined that my close intimacy with Sherlock
they were known to the public at the conclusion of the inquest.}
\end{english}%
Vous pouvez avoir jusqu'à 10 colonnes si vous le désirez, mais ça
risque de ne pas être agréable à la lecture.
\begin{english}[variant=american]%
\end{english}%
Pour ajouter un texte en préface pour plusieurs colonnes, positionnez
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
exemple, la commande
\begin{english}[variant=american]%
\end{english}%
crée une sous-section.
\begin{english}[variant=american]%
{\small A minute examination of the circumstances served only to make
yards of the house. No one had heard a shot.}
\end{english}%
\begin{english}[variant=american]%
{\small On the evening of the crime, he returned from the club exactly
bullet, but no weapon of any sort was to be found in the room.}
\end{english}%
\end{document}
First run:
> time lualatex Example.tex
This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)
restricted system commands enabled.
(./Example.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-03-14>
[…]
No file Example.aux.
[…]
No file Example.toc.
[1{/usr/local/texlive/2024/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
[2] [3] [4] [5] [6] (./Example.aux))
439 words of node memory still in use:
3 hlist, 1 vlist, 1 rule, 3 glue, 4 kern, 1 penalty, 1 glyph, 7 attribute, 5
0 glue_spec, 5 attribute_list, 1 write nodes
avail lists: 1:6,2:481,3:201,4:4,5:237,6:53,7:4263,9:145,10:3,11:182
[…]
Output written on Example.pdf (6 pages, 31334 bytes).
Transcript written on Example.log.
lualatex Example.tex 1,47s user 0,04s system 98% cpu 1,537 total
Second run:
time lualatex Example.tex
This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)
restricted system commands enabled.
(./Example.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-03-14>
[…]
(./Example.aux)
[…]
(./Example.toc) [1{/usr/local/texlive/2024/texmf-var/fonts/map/pdftex/upd
map/pdftex.map}] [2] [3] [4] [5] [6] (./Example.aux))
434 words of node memory still in use:
3 hlist, 1 vlist, 1 rule, 3 glue, 4 kern, 1 penalty, 1 glyph, 7 attribute, 4
9 glue_spec, 5 attribute_list, 1 write nodes
avail lists: 1:3,2:477,3:195,4:12,5:235,6:52,7:4202,9:173,10:3,11:180
[…]
Output written on Example.pdf (6 pages, 34794 bytes).
Transcript written on Example.log.
lualatex Example.tex 2,58s user 0,05s system 97% cpu 2,690 total
The compilation process notably slows down at (./Example.toc and it takes a while before ) is printed.
If you remove \tableofcontents from Example.tex, compilation time stays constant on subsequent runs:
lualatex Example.tex 1,45s user 0,05s system 96% cpu 1,562 total
On a larger document with around 50 pages, many language switches, glossary, and bibliography (if run from scratch):
Without \tableofcontents:
latexmk Document.tex 170,59s user 4,62s system 104% cpu 2:47,76 total
With \tableofcontents:
latexmk Document.tex 243,48s user 5,06s system 101% cpu 4:03,67 total
In this case, it notably hangs at (./Document.toc and also after [1] (when it reaches the page where the ToC is typeset). Document.toc has 1760 lines. Of these, only 54 are \contentslines, the rest of them are \selectlanguage commands.
The example file does not compile (\chapter is not defined in article), did you mean to use the book document class?
I'm sorry, that should be \sections in Example.tex above. Either way, this makes no difference: The times I list above were with tested article/section; now I also tried with book/chapter:
First run (with \tableofcontents):
lualatex Example.tex 1,97s user 0,05s system 98% cpu 2,058 total
Second run (with \tableofcontents):
lualatex Example.tex 3,46s user 0,05s system 98% cpu 3,546 total
Without \tableofcontents, both the first and second runs are compiling in the same amount of time.
What do you propose? We need those language switches to have correct language markup in the TOC.
There are several things we can do. I don't think all the stuff that is currently written to the .toc file is needed, here is the .toc from the example:
\selectlanguage *[]{french}
\contentsline {section}{\numberline {1}Chapter Title}{1}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {2}Chapter Title}{2}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {3}Chapter Title}{2}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {4}Chapter Title}{3}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {5}Chapter Title}{3}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {6}Chapter Title}{4}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {7}Chapter Title}{4}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {8}Chapter Title}{5}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {9}Chapter Title}{5}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {10}Chapter Title}{6}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\contentsline {section}{\numberline {11}Chapter Title}{6}{}%
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
\selectlanguage *[variant=american]{english}
\selectlanguage *[variant=french,autospacing=true,thincolonspace=false,autospaceguillemets=true,autospacetypewriter=false,frenchfootnote=false,frenchitemlabels=false,itemlabels=\TU \textemdash ,itemlabeli=\TU \textemdash ,itemlabelii=\TU \textemdash ,itemlabeliii=\TU \textemdash ,itemlabeliv=\TU \textemdash ]{french}
\selectlanguage *[]{french}
notice how the french language is selected twice, and with different options. Instead of passing all of the current active options we can precompile the defualt values, this way we would not need to pass them each time which be faster. I believe using an innser command instead of wo variants of \selectlanguage would be better as well, as it will not need to read ahead and check for a star, or a square bracket.
The otherlanguage environment is writing to the .toc file twice to restore the former language in the .toc at the end of the group. Once with the \aftergroup from \selectlanguage (or with \group_insert_after:N \xpg_pop_language: to be precise)
https://github.com/reutenauer/polyglossia/blob/6a883958ca2af11b3314c5451b599dda012d9160/tex/polyglossia.sty#L2070-L2097
and once from its definition (specifically with \__xpg_unstack_language:n{xpg_set_language_only_aux:nn})
https://github.com/reutenauer/polyglossia/blob/6a883958ca2af11b3314c5451b599dda012d9160/tex/polyglossia.sty#L2526-L2543
@pcdi I've just pushed a commit to master that should speed things up, can you test it?
I suppose you have checked whether the bugs we had fixed with these writings (such as #309) haven't come back?
I suppose you have checked whether the bugs we had fixed with these writings (such as #309) haven't come back?
Yes, the problem was that we did not use the default settings for each use of \selectlanguage, this is also the problem discussed at https://github.com/reutenauer/polyglossia/issues/610#issuecomment-1868319218, but we also need to consider the values of keys in initialization time from the gloss.
I just need to consider keys of inherited glosses and I'm done, but the following fails in the released version:
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{acadien}
\stop
what should happen here?
Apart from the unclear and already existing problem, it seems to work (also tested the problem at #320)
Shouldn't that be acadian?
Shouldn't that be
acadian?
Yes, acadien is wrong.
Name fixed at 01f0c714a1c511.
I also updated the test files, but not the logs which are being compared.
On a larger document with around 50 pages, many language switches, glossary, and bibliography (if run from scratch):
Without
\tableofcontents:latexmk Document.tex 170,59s user 4,62s system 104% cpu 2:47,76 totalWith
\tableofcontents:latexmk Document.tex 243,48s user 5,06s system 101% cpu 4:03,67 totalIn this case, it notably hangs at
(./Document.tocand also after[1](when it reaches the page where the ToC is typeset).Document.tochas 1760 lines. Of these, only 54 are\contentslines, the rest of them are\selectlanguagecommands.
@pcdi Hopefully 964ba56 should speed things even more, especially with documents with many language switches, or many glosses loaded.
How do I test this correctly with the dev version?
You can install the development version by cloning the repository and run l3build install from your local clone.
In release version 2.3 (2024/09/23), there is a tremendous improvement, thanks a lot!
Without table of contents:
> latexmk -C && time latexmk Document
'lualatex': time = 28.56
'cusdep aux glstex Document': time = 6.64
'biber Document': time = 2.51
'lualatex': time = 37.46
'cusdep aux glstex Document': time = 6.56
'biber Document': time = 2.50
'lualatex': time = 37.79
'cusdep aux glstex Document': time = 6.80
'biber Document': time = 2.51
'lualatex': time = 37.94
'cusdep aux glstex Document': time = 6.82
'lualatex': time = 37.72
Processing time = 217.53, of which invoked processes = 213.81, other = 3.72.
Elapsed clock time = 205.13.
Number of rules run = 12
latexmk Document 211,27s user 6,40s system 106% cpu 3:25,24 total
With table of contents:
> latexmk -C && time latexmk Document
'lualatex': time = 28.93
'cusdep aux glstex Document': time = 5.46
'biber Document': time = 2.48
'lualatex': time = 48.80
'cusdep aux glstex Document': time = 6.98
'biber Document': time = 2.50
'lualatex': time = 53.62
'cusdep aux glstex Document': time = 6.36
'biber Document': time = 2.50
'lualatex': time = 53.64
'cusdep aux glstex Document': time = 7.05
'lualatex': time = 54.22
'cusdep aux glstex Document': time = 6.67
Processing time = 283.52, of which invoked processes = 279.21, other = 4.31.
Elapsed clock time = 272.14.
Number of rules run = 13
latexmk Document 276,60s user 7,03s system 104% cpu 4:32,25 total