reutenauer / polyglossia

An alternative to Babel for XeLaTeX and LuaLaTeX
http://www.ctan.org/pkg/polyglossia
MIT License
185 stars 52 forks source link

French language crash #630

Closed Euan-Wall closed 4 months ago

Euan-Wall commented 4 months ago

Without having changed my code, the document will no longer compile, the problem seems to come from the gloss-french.ldf file. This MWE produces the following log:

MWE :

`\documentclass{minimal}

\usepackage{polyglossia}
    \setmainlanguage{french}

\begin{document}

Ceci est un test.

\end{document}`

Log:

`This is XeTeX, Version 3.141592653-2.6-0.999995 (MiKTeX 24.1) (preloaded format=xelatex 2024.2.19)  19 FEB 2024 10:18
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**./Test.tex
(Test.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-13>
(C:\Users\euanw\MiKTeX\tex/latex/base\minimal.cls
Document Class: minimal 2001/05/25 Standard LaTeX minimal class
) (C:\Users\euanw\MiKTeX\tex/latex/polyglossia\polyglossia.sty
Package: polyglossia 2023/12/11 v1.66 Modern multilingual typesetting with XeLa
TeX and LuaLaTeX

(C:\Users\euanw\MiKTeX\tex/latex/etoolbox\etoolbox.sty
Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count184
)
(C:\Users\euanw\MiKTeX\tex/latex/xkeyval\xkeyval.sty
Package: xkeyval 2022/06/16 v2.9 package option processing (HA)

(C:\Users\euanw\MiKTeX\tex/generic/xkeyval\xkeyval.tex
(C:\Users\euanw\MiKTeX\tex/generic/xkeyval\xkvutils.tex
\XKV@toks=\toks17
\XKV@tempa@toks=\toks18

(C:\Users\euanw\MiKTeX\tex/generic/xkeyval\keyval.tex))
\XKV@depth=\count185
File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
))
(C:\Users\euanw\MiKTeX\tex/latex/fontspec\fontspec.sty
(C:\Users\euanw\MiKTeX\tex/latex/l3packages/xparse\xparse.sty
(C:\Users\euanw\MiKTeX\tex/latex/l3kernel\expl3.sty
Package: expl3 2024-02-13 L3 programming layer (loader) 

(C:\Users\euanw\MiKTeX\tex/latex/l3backend\l3backend-xetex.def
File: l3backend-xetex.def 2024-01-04 L3 backend support: XeTeX
\g__graphics_track_int=\count186
\l__pdf_internal_box=\box51
\g__pdf_backend_object_int=\count187
\g__pdf_backend_annotation_int=\count188
\g__pdf_backend_link_int=\count189
))
Package: xparse 2024-02-13 L3 Experimental document command parser
)
Package: fontspec 2024/02/13 v2.9a Font selection for XeLaTeX and LuaLaTeX

(C:\Users\euanw\MiKTeX\tex/latex/fontspec\fontspec-xetex.sty
Package: fontspec-xetex 2024/02/13 v2.9a Font selection for XeLaTeX and LuaLaTe
X
\l__fontspec_script_int=\count190
\l__fontspec_language_int=\count191
\l__fontspec_strnum_int=\count192
\l__fontspec_tmp_int=\count193
\l__fontspec_tmpa_int=\count194
\l__fontspec_tmpb_int=\count195
\l__fontspec_tmpc_int=\count196
\l__fontspec_em_int=\count197
\l__fontspec_emdef_int=\count198
\l__fontspec_strong_int=\count199
\l__fontspec_strongdef_int=\count266
\l__fontspec_tmpa_dim=\dimen140
\l__fontspec_tmpb_dim=\dimen141
\l__fontspec_tmpc_dim=\dimen142

(C:\Users\euanw\MiKTeX\tex/latex/base\fontenc.sty
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
)
(C:\Users\euanw\MiKTeX\tex/latex/fontspec\fontspec.cfg)))
(C:\Users\euanw\MiKTeX\tex/generic/iftex\iftex.sty
Package: iftex 2022/02/03 v1.0f TeX engine tests
)
\xpg@normalclass=\XeTeXcharclass1

(C:\Users\euanw\MiKTeX\tex/latex/polyglossia\gloss-latex.lde
Package: gloss-latex 2023/12/11 v1.66 polyglossia: module for default language
)
Package polyglossia Info: Default language is latex.
)
(C:\Users\euanw\MiKTeX\tex/latex/polyglossia\gloss-french.ldf
File: gloss-french.ldf polyglossia: module for French
\french@openbrackets=\XeTeXcharclass2
\french@closebrackets=\XeTeXcharclass3
\french@questionexclamation=\XeTeXcharclass4
\french@punctthin=\XeTeXcharclass5
\french@punctthick=\XeTeXcharclass6
\french@punctguillstart=\XeTeXcharclass7
\french@punctguillend=\XeTeXcharclass8
Package polyglossia Info: Option: French, variant=french.

! Use of \__prop_put_linked:wnnN doesn't match its definition.
<recently read> \xpg@alias@keyvals@french@acadian 

l.171 ...alues{french}{variant}{canadian}{acadian}

If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.171 ...alues{french}{variant}{canadian}{acadian}

You're in trouble here.  Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.

! Undefined control sequence.
\expand@font@defaults ->\edef \rmdef@ult 
                                         {\rmdefault }\edef \sfdef@ult {\sfd...
l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
\expand@font@defaults ...efault }\edef \sfdef@ult 
                                                  {\sfdefault }\edef \ttdef@...
l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
\expand@font@defaults ...efault }\edef \ttdef@ult 
                                                  {\ttdefault }\series@maybe...
l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Illegal parameter number in definition of \par.
<to be read again> 
                   1
l.176     \let\ttfamily
                       \french@ttfamilyFB
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.

! Undefined control sequence.
<argument> \bfdef@ult 

l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Illegal parameter number in definition of \par.
<to be read again> 
                   1
l.176     \let\ttfamily
                       \french@ttfamilyFB
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.

! Undefined control sequence.
<argument> \mddef@ult 

l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
\prepare@family@series@update ...get@series@value 
                                                  \@empty \def \target@meta@...
l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
\prepare@family@series@update ...eta@family@value 
                                                  {#1}\expandafter \edef \cs...
l.176     \let\ttfamily
                       \french@ttfamilyFB
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Illegal parameter number in definition of \par.
<to be read again> 
                   1
l.176     \let\ttfamily
                       \french@ttfamilyFB
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.

! Undefined control sequence.
l.457        \let\@makefntext
                             \xpg@orig@makefntext%
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.457        \let\@makefntext\xpg@orig@makefntext
                                                 %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.459     \@xpg@french@footnote@settrue
                                       %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.463 \newif
            \if@xpg@french@itemlabels@set
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.463 \newif\if@xpg@french@itemlabels@set

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.464 \@xpg@french@itemlabels@setfalse

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.483 \def
          \noextras@french{%
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.483 \def\noextras@french
                          {%
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.484    \nofrench@punctuation
                              %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.485    \nofrench@fontsetup
                            %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.486    \nofrench@capsformat
                             %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.489 \def
          \blockextras@french{%
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.489 \def\blockextras@french
                             {%
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.497       \french@punctuation
                               %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.499    \french@fontsetup
                          %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.501      \french@capsformat
                             %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.505 \def
          \inlineextras@french{%
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.505 \def\inlineextras@french
                              {%
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.507       \french@punctuation
                               %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.509    \french@fontsetup
                          %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.512 \def
          \NoAutoSpacing{%
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.512 \def\NoAutoSpacing
                        {%
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.513   \nofrench@punctuation
                             %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.516 \def
          \AutoSpacing{%
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.516 \def\AutoSpacing
                      {%
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Undefined control sequence.
l.517   \french@punctuation
                           %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.520 \def
          \ier{\textsuperscript{er}}
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.520 \def\ier
              {\textsuperscript{er}}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <7> on input line 520.
LaTeX Font Info:    External font `cmex10' loaded for size
(Font)              <5> on input line 520.
! Use of \par doesn't match its definition.
l.533 \def
          \mme{M\textsuperscript{me}\space}
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Undefined control sequence.
l.533 \def\mme
              {M\textsuperscript{me}\space}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

! Use of \par doesn't match its definition.
l.538 \endinput

If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

)
Package polyglossia Info: Default language is french.

! Use of \par doesn't match its definition.
l.6 \begin
          {document}
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Use of \par doesn't match its definition.
l.8 C
     eci est un test.
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Use of \par doesn't match its definition.
l.10 \end
         {document}
If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

)
! Emergency stop.
<*> ./Test.tex

*** (job aborted, no legal \end found)

Here is how much of TeX's memory you used:
 4200 strings out of 409593
 125031 string characters out of 5777810
 1917650 words of memory out of 5000000
 26347 multiletter control sequences out of 15000+600000
 558093 words of font info for 39 fonts, out of 8000000 for 9000
 1348 hyphenation exceptions out of 8191
 93i,4n,107p,297b,78s stack positions out of 10000i,1000n,20000p,200000b,200000s
No pages of output.
`
reutenauer commented 4 months ago

Thank you for the report. There is a known issue with Polyglossia version 1.66 that has been fixed with the release of v2.0 over the weekend. If you’re not using version 2, can you please update and try again?

jspitz commented 4 months ago

IOW duplicate of #626.