Problème entre babel-french et standalone

Bonjour

Voilà le fichier maitre.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{standalone}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
\input{test.tex}
\newpage
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

et voilà le fichier test.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
«Test»
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si je compile avec luaLaTeX, pas de problème.

Si compile avec pdfLaTeX, j’obtiens deux fois l’erreur :

! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.

l.12 \begin{document}

avec le File list :


File List
article.cls 2025/01/22 v1.4n Standard LaTeX document class
size10.clo 2025/01/22 v1.4n Standard LaTeX file (size option)
standalone.sty 2025/02/22 v1.5a Package to include TeX sub-files with
preamb
les
shellesc.sty 2023/07/08 v1.0d unified shell escape interface for LaTeX
ifluatex.sty 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
iftex.sty 2024/12/12 v1.0g TeX engine tests
xkeyval.sty 2022/06/16 v2.9 package option processing (HA)
xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
currfile.sty 2024/03/14 v1.0 Provides the file path elements of the
current
input file
kvoptions.sty 2022-06-15 v3.15 Key value format for package options (HO)
ltxcmds.sty 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
filehook.sty 2022/10/25 v0.8b Hooks for input files
filehook-2020.sty 2022/10/25 v0.8b Hooks for input files
gincltex.sty 2011/09/04 v0.3 Include external LaTeX files like graphics
svn-prov.sty 2010/04/24 v3.1862 Package Date/Version from SVN Keywords
adjustbox.sty 2025/02/26 v1.3c Adjusting TeX boxes (trim, clip, …)
adjcalc.sty 2012/05/16 v1.1 Provides advanced setlength with
multiple back-
ends (calc, etex, pgfmath)
trimclip.sty 2025/02/21 v1.2a Trim and clip general TeX material
graphicx.sty 2024/12/31 v1.2e Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty 2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2023/12/02 v1.11 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2024/04/13 v1.2c Graphics/color driver for pdftex
collectbox.sty 2022/10/17 v0.4c Collect macro arguments as boxes
tc-pdftex.def 2025/02/26 v2.3 Clipping driver for pdftex
ifoddpage.sty 2022/10/18 v1.2 Conditionals for odd/even page detection
varwidth.sty 2009/03/30 ver 0.92; Variable-width minipages
filemod-expmin.sty 2011/09/19 v1.2 Get and compare file modification
times (
expandable; minimal)
fontenc.sty 2024/12/21 v2.1c Standard LaTeX package
babel.sty 2025/08/03 v25.12 The multilingual framework for
LuaLaTeX, pdfL
aTeX and XeLaTeX
bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to “declared”
options of b
abel
french.ldf 2025-07-25 v3.7d French support from the babel system
babel-french.tex
scalefnt.sty
lmodern.sty 2015/05/01 v1.6.1 Latin Modern Fonts
t1lmr.fd 2015/05/01 v1.6.1 Font defs for Latin Modern
l3backend-pdftex.def 2025-06-09 L3 backend support: PDF output (pdfTeX)
supp-pdf.mkii
epstopdf-base.sty 2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg 2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
test.tex


Si je commente la ligne \frenchsetup{og=«,fg=»}, alors la compilation
avec pdfLaTeX se passe bien.

Il y a trois mois, il me semble que tout se passait sans problème.

Serait-ce un bug introduit dans la version 3.7d de frenchb ?

Cordialement,

François

Bonsoir,

Et en remplaçant [french]{babel} par e-french, qui traite mieux les
guillemets ?

Boone compil !

Le mardi 12 août 2025 Pétiard François a écrit ceci :

Bonjour

Voilà le fichier maitre.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{standalone}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
\input{test.tex}
\newpage
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

et voilà le fichier test.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
«Test»
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si je compile avec luaLaTeX, pas de problème.

Si compile avec pdfLaTeX, j’obtiens deux fois l’erreur :

! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.

l.12 \begin{document}

avec le File list :


File List
article.cls 2025/01/22 v1.4n Standard LaTeX document class
size10.clo 2025/01/22 v1.4n Standard LaTeX file (size option)
standalone.sty 2025/02/22 v1.5a Package to include TeX sub-files with
preamb
les
shellesc.sty 2023/07/08 v1.0d unified shell escape interface for LaTeX
ifluatex.sty 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
iftex.sty 2024/12/12 v1.0g TeX engine tests
xkeyval.sty 2022/06/16 v2.9 package option processing (HA)
xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
currfile.sty 2024/03/14 v1.0 Provides the file path elements of the
current
input file
kvoptions.sty 2022-06-15 v3.15 Key value format for package options (HO)
ltxcmds.sty 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
filehook.sty 2022/10/25 v0.8b Hooks for input files
filehook-2020.sty 2022/10/25 v0.8b Hooks for input files
gincltex.sty 2011/09/04 v0.3 Include external LaTeX files like graphics
svn-prov.sty 2010/04/24 v3.1862 Package Date/Version from SVN Keywords
adjustbox.sty 2025/02/26 v1.3c Adjusting TeX boxes (trim, clip, …)
adjcalc.sty 2012/05/16 v1.1 Provides advanced setlength with
multiple back-
ends (calc, etex, pgfmath)
trimclip.sty 2025/02/21 v1.2a Trim and clip general TeX material
graphicx.sty 2024/12/31 v1.2e Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty 2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2023/12/02 v1.11 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2024/04/13 v1.2c Graphics/color driver for pdftex
collectbox.sty 2022/10/17 v0.4c Collect macro arguments as boxes
tc-pdftex.def 2025/02/26 v2.3 Clipping driver for pdftex
ifoddpage.sty 2022/10/18 v1.2 Conditionals for odd/even page detection
varwidth.sty 2009/03/30 ver 0.92; Variable-width minipages
filemod-expmin.sty 2011/09/19 v1.2 Get and compare file modification
times (
expandable; minimal)
fontenc.sty 2024/12/21 v2.1c Standard LaTeX package
babel.sty 2025/08/03 v25.12 The multilingual framework for
LuaLaTeX, pdfL
aTeX and XeLaTeX
bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to “declared”
options of b
abel
french.ldf 2025-07-25 v3.7d French support from the babel system
babel-french.tex
scalefnt.sty
lmodern.sty 2015/05/01 v1.6.1 Latin Modern Fonts
t1lmr.fd 2015/05/01 v1.6.1 Font defs for Latin Modern
l3backend-pdftex.def 2025-06-09 L3 backend support: PDF output (pdfTeX)
supp-pdf.mkii
epstopdf-base.sty 2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg 2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
test.tex


Si je commente la ligne \frenchsetup{og=«,fg=»}, alors la compilation
avec pdfLaTeX se passe bien.

Il y a trois mois, il me semble que tout se passait sans problème.

Serait-ce un bug introduit dans la version 3.7d de frenchb ?

Cordialement,

François


Laurent Bloch - https://laurentbloch.net - xyz@xyz.tld
Si vous trouvez que l’éducation coûte cher, essayez l’ignorance !
(A. Lincoln)

Bonsoir,

Je n’ai pas testé, mais un truc m’intrigue fortement. Le document maître comporte un appel à \documentclass, et c’est parfaitement légitime.

Mais le fichier test.tex comporte aussi un \documentclass et son inclusion avec \input{test.tex} dans le document maître produirait donc un second appel à \documentclass. Et de même avec ce mécanisme il y a deux \begin{document}.

Je ne sais pas pourquoi avec lualatex cela fonctionne sans problème, ni pourquoi commenter la ligne (de quel fichier ?) \frenchsetup{og=«,fg=»} ne produit pas de problème avec pdfLaTeX.

En tout cas, il me semble que dans le cas présent, le fichier test.tex ne devrait comporter que :

%%%%%%%%%%%%%
«Test»
%%%%%%%%%%%%%

Et certainement pas le préambule ni un \begin{document} ni un \documentclass.

Mais comme vous êtes un habitué de la liste, qui s’y connaît bien en LaTeX, le cas que vous présentez est peut-être une sorte de test de torture pour LaTeX, pour mettre en lumière un comportement inhabituel ?

Le 12 août 2025 à 22:08, Pétiard François xyz@xyz.tld a écrit :

Bonjour

Voilà le fichier maitre.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{standalone}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
\input{test.tex}
\newpage
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

et voilà le fichier test.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
«Test»
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si je compile avec luaLaTeX, pas de problème.

Si compile avec pdfLaTeX, j’obtiens deux fois l’erreur :

! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.

l.12 \begin{document}

avec le File list :


File List
article.cls 2025/01/22 v1.4n Standard LaTeX document class
size10.clo 2025/01/22 v1.4n Standard LaTeX file (size option)
standalone.sty 2025/02/22 v1.5a Package to include TeX sub-files with preamb
les
shellesc.sty 2023/07/08 v1.0d unified shell escape interface for LaTeX
ifluatex.sty 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
iftex.sty 2024/12/12 v1.0g TeX engine tests
xkeyval.sty 2022/06/16 v2.9 package option processing (HA)
xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
currfile.sty 2024/03/14 v1.0 Provides the file path elements of the current
input file
kvoptions.sty 2022-06-15 v3.15 Key value format for package options (HO)
ltxcmds.sty 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
filehook.sty 2022/10/25 v0.8b Hooks for input files
filehook-2020.sty 2022/10/25 v0.8b Hooks for input files
gincltex.sty 2011/09/04 v0.3 Include external LaTeX files like graphics
svn-prov.sty 2010/04/24 v3.1862 Package Date/Version from SVN Keywords
adjustbox.sty 2025/02/26 v1.3c Adjusting TeX boxes (trim, clip, …)
adjcalc.sty 2012/05/16 v1.1 Provides advanced setlength with multiple back-
ends (calc, etex, pgfmath)
trimclip.sty 2025/02/21 v1.2a Trim and clip general TeX material
graphicx.sty 2024/12/31 v1.2e Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty 2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2023/12/02 v1.11 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2024/04/13 v1.2c Graphics/color driver for pdftex
collectbox.sty 2022/10/17 v0.4c Collect macro arguments as boxes
tc-pdftex.def 2025/02/26 v2.3 Clipping driver for pdftex
ifoddpage.sty 2022/10/18 v1.2 Conditionals for odd/even page detection
varwidth.sty 2009/03/30 ver 0.92; Variable-width minipages
filemod-expmin.sty 2011/09/19 v1.2 Get and compare file modification times (
expandable; minimal)
fontenc.sty 2024/12/21 v2.1c Standard LaTeX package
babel.sty 2025/08/03 v25.12 The multilingual framework for LuaLaTeX, pdfL
aTeX and XeLaTeX
bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to “declared” options of b
abel
french.ldf 2025-07-25 v3.7d French support from the babel system
babel-french.tex
scalefnt.sty
lmodern.sty 2015/05/01 v1.6.1 Latin Modern Fonts
t1lmr.fd 2015/05/01 v1.6.1 Font defs for Latin Modern
l3backend-pdftex.def 2025-06-09 L3 backend support: PDF output (pdfTeX)
supp-pdf.mkii
epstopdf-base.sty 2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg 2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
test.tex


Si je commente la ligne \frenchsetup{og=«,fg=»}, alors la compilation avec pdfLaTeX se passe bien.

Il y a trois mois, il me semble que tout se passait sans problème.

Serait-ce un bug introduit dans la version 3.7d de frenchb ?

Cordialement,

François

Bonjour,

Avec e-french tout compile, me semble-t-il, correctement :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{standalone}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\usepackage{luahyphenrules} % pour efrench
\else
\usepackage{lmodern}
\fi
\usepackage{efrench}
\begin{document}
\input{test.tex}
\newpage
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\usepackage{luahyphenrules} % pour efrench
\else
\usepackage{lmodern}
\fi
\usepackage{efrench}
\begin{document}
« Test »
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Bonne soirée !

Le mardi 12 août 2025 Pétiard François a écrit ceci :

Bonjour

Voilà le fichier maitre.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{standalone}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
\input{test.tex}
\newpage
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

et voilà le fichier test.tex :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{iftex}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\ifluatex
\usepackage{fontspec}
\fontspec{CMU Serif Roman}
\else
\usepackage{lmodern}
\frenchsetup{og=«,fg=»}
\fi
\begin{document}
«Test»
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Si je compile avec luaLaTeX, pas de problème.

Si compile avec pdfLaTeX, j’obtiens deux fois l’erreur :

! LaTeX Error: Can be used only in preamble.
See the LaTeX manual or LaTeX Companion for explanation.
Type H for immediate help.

l.12 \begin{document}

avec le File list :


File List
article.cls 2025/01/22 v1.4n Standard LaTeX document class
size10.clo 2025/01/22 v1.4n Standard LaTeX file (size option)
standalone.sty 2025/02/22 v1.5a Package to include TeX sub-files with
preamb
les
shellesc.sty 2023/07/08 v1.0d unified shell escape interface for LaTeX
ifluatex.sty 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
iftex.sty 2024/12/12 v1.0g TeX engine tests
xkeyval.sty 2022/06/16 v2.9 package option processing (HA)
xkeyval.tex 2014/12/03 v2.7a key=value parser (HA)
currfile.sty 2024/03/14 v1.0 Provides the file path elements of the
current
input file
kvoptions.sty 2022-06-15 v3.15 Key value format for package options (HO)
ltxcmds.sty 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
kvsetkeys.sty 2022-10-05 v1.19 Key value parser (HO)
filehook.sty 2022/10/25 v0.8b Hooks for input files
filehook-2020.sty 2022/10/25 v0.8b Hooks for input files
gincltex.sty 2011/09/04 v0.3 Include external LaTeX files like graphics
svn-prov.sty 2010/04/24 v3.1862 Package Date/Version from SVN Keywords
adjustbox.sty 2025/02/26 v1.3c Adjusting TeX boxes (trim, clip, …)
adjcalc.sty 2012/05/16 v1.1 Provides advanced setlength with
multiple back-
ends (calc, etex, pgfmath)
trimclip.sty 2025/02/21 v1.2a Trim and clip general TeX material
graphicx.sty 2024/12/31 v1.2e Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty 2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2023/12/02 v1.11 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2024/04/13 v1.2c Graphics/color driver for pdftex
collectbox.sty 2022/10/17 v0.4c Collect macro arguments as boxes
tc-pdftex.def 2025/02/26 v2.3 Clipping driver for pdftex
ifoddpage.sty 2022/10/18 v1.2 Conditionals for odd/even page detection
varwidth.sty 2009/03/30 ver 0.92; Variable-width minipages
filemod-expmin.sty 2011/09/19 v1.2 Get and compare file modification
times (
expandable; minimal)
fontenc.sty 2024/12/21 v2.1c Standard LaTeX package
babel.sty 2025/08/03 v25.12 The multilingual framework for
LuaLaTeX, pdfL
aTeX and XeLaTeX
bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to “declared”
options of b
abel
french.ldf 2025-07-25 v3.7d French support from the babel system
babel-french.tex
scalefnt.sty
lmodern.sty 2015/05/01 v1.6.1 Latin Modern Fonts
t1lmr.fd 2015/05/01 v1.6.1 Font defs for Latin Modern
l3backend-pdftex.def 2025-06-09 L3 backend support: PDF output (pdfTeX)
supp-pdf.mkii
epstopdf-base.sty 2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg 2021/03/18 v2.0 Configuration of epstopdf for MiKTeX
test.tex


Si je commente la ligne \frenchsetup{og=«,fg=»}, alors la compilation
avec pdfLaTeX se passe bien.

Il y a trois mois, il me semble que tout se passait sans problème.

Serait-ce un bug introduit dans la version 3.7d de frenchb ?

Cordialement,

François


Laurent Bloch - https://laurentbloch.net - xyz@xyz.tld
Si vous trouvez que l’éducation coûte cher, essayez l’ignorance !
(A. Lincoln)

Le 12/08/2025 à 23:28, quark67 a écrit :

Bonsoir,

Je n’ai pas testé, mais un truc m’intrigue fortement. Le document maître comporte un appel à \documentclass, et c’est parfaitement légitime.

Mais le fichier test.tex comporte aussi un \documentclass et son inclusion avec \input{test.tex} dans le document maître produirait donc un second appel à \documentclass. Et de même avec ce mécanisme il y a deux \begin{document}.

Je ne sais pas pourquoi avec lualatex cela fonctionne sans problème, ni pourquoi commenter la ligne (de quel fichier ?) \frenchsetup{og=«,fg=»} ne produit pas de problème avec pdfLaTeX.

En tout cas, il me semble que dans le cas présent, le fichier test.tex ne devrait comporter que :

%%%%%%%%%%%%%
«Test»
%%%%%%%%%%%%%

Et certainement pas le préambule ni un \begin{document} ni un \documentclass.

Mais comme vous êtes un habitué de la liste, qui s’y connaît bien en LaTeX, le cas que vous présentez est peut-être une sorte de test de torture pour LaTeX, pour mettre en lumière un comportement inhabituel ?

Bonsoir,

C’est le package standalone qui permet cette manip (voir maitre.tex).

Voir :

En effet, j’ai oublié de préciser que je commente la ligne
\frenchsetup{…} dans maitre.tex. Merci d’avoir pointé cela.

François

Le 13/08/2025 à 16:49, Laurent Bloch a écrit :

Avec e-french tout compile, me semble-t-il, correctement :

Hum… à ceci près que les espaces dans les guillemets ne sont pas rendus
insécables (un \showoutput le montre) et que si on code «xxx» il n’y a
aucune espace ajoutée, insécable ou non.

Bonne soirée.

Daniel Flipo

Merci pour vos précisions.

Je connaissais \documentclass{standalone}, mais pas le package du même nom.

Je viens de tester et je confirme que la compilation fonctionne sans problème avec TeXLive 2024. Tandis qu’avec TexLive 2025, le problème soulevé se présente bien (je change de distribution avec TeX Live Utility, version graphique de tlmgr).
Ayant mis régulièrement à jour la TexLive 2024, notamment jusqu’à début 2025, le problème est lié à un changement postérieur au 20 février 2025 (date de ma dernière mise à jour pour TeX Live 2024).

Si ça peut aider…

Le 12 août 2025 à 23:36, Pétiard François xyz@xyz.tld a écrit :

Le 12/08/2025 à 23:28, quark67 a écrit :

Bonsoir,

Je n’ai pas testé, mais un truc m’intrigue fortement. Le document maître comporte un appel à \documentclass, et c’est parfaitement légitime.

Mais le fichier test.tex comporte aussi un \documentclass et son inclusion avec \input{test.tex} dans le document maître produirait donc un second appel à \documentclass. Et de même avec ce mécanisme il y a deux \begin{document}.

Je ne sais pas pourquoi avec lualatex cela fonctionne sans problème, ni pourquoi commenter la ligne (de quel fichier ?) \frenchsetup{og=«,fg=»} ne produit pas de problème avec pdfLaTeX.

En tout cas, il me semble que dans le cas présent, le fichier test.tex ne devrait comporter que :

%%%%%%%%%%%%%
«Test»
%%%%%%%%%%%%%

Et certainement pas le préambule ni un \begin{document} ni un \documentclass.

Mais comme vous êtes un habitué de la liste, qui s’y connaît bien en LaTeX, le cas que vous présentez est peut-être une sorte de test de torture pour LaTeX, pour mettre en lumière un comportement inhabituel ?
Bonsoir,

C’est le package standalone qui permet cette manip (voir maitre.tex).

Voir : http://mirrors.ctan.org/macros/latex/contrib/standalone/standalone.pdf

En effet, j’ai oublié de préciser que je commente la ligne \frenchsetup{…} dans maitre.tex. Merci d’avoir pointé cela.

François

Bonjour

Merci pour vos essais !

Comme ce type de compilation passait sans problème début juillet 2025,
que la dernière mise à jour de standalone date de février 2025 et celle
de babel-french date de fin juillet 2025, je soupçonne fortement ce
dernier…

François

Le 13/08/2025 à 00:03, quark67 a écrit :

Merci pour vos précisions.

Je connaissais \documentclass{standalone}, mais pas le package du même
nom.

Je viens de tester et je confirme que la compilation fonctionne sans
problème avec TeXLive 2024. Tandis qu’avec TexLive 2025, le problème
soulevé se présente bien (je change de distribution avec TeX Live
Utility, version graphique de tlmgr).
Ayant mis régulièrement à jour la TexLive 2024, notamment jusqu’à
début 2025, le problème est lié à un changement postérieur au 20
février 2025 (date de ma dernière mise à jour pour TeX Live 2024).

Si ça peut aider…

Le 12 août 2025 à 23:36, Pétiard François
xyz@xyz.tld a écrit :

Le 12/08/2025 à 23:28, quark67 a écrit :

Bonsoir,

Je n’ai pas testé, mais un truc m’intrigue fortement. Le document maître comporte un appel à \documentclass, et c’est parfaitement légitime.

Mais le fichier test.tex comporte aussi un \documentclass et son inclusion avec \input{test.tex} dans le document maître produirait donc un second appel à \documentclass. Et de même avec ce mécanisme il y a deux \begin{document}.

Je ne sais pas pourquoi avec lualatex cela fonctionne sans problème, ni pourquoi commenter la ligne (de quel fichier ?) \frenchsetup{og=«,fg=»} ne produit pas de problème avec pdfLaTeX.

En tout cas, il me semble que dans le cas présent, le fichier test.tex ne devrait comporter que :

%%%%%%%%%%%%%
«Test»
%%%%%%%%%%%%%

Et certainement pas le préambule ni un \begin{document} ni un \documentclass.

Mais comme vous êtes un habitué de la liste, qui s’y connaît bien en LaTeX, le cas que vous présentez est peut-être une sorte de test de torture pour LaTeX, pour mettre en lumière un comportement inhabituel ?

Bonsoir,

C’est le package standalone qui permet cette manip (voir maitre.tex).

Voir :
http://mirrors.ctan.org/macros/latex/contrib/standalone/standalone.pdf

En effet, j’ai oublié de préciser que je commente la ligne
\frenchsetup{…} dans maitre.tex. Merci d’avoir pointé cela.

François

Bonjour,

Le 13/08/2025 à 09:39, Pétiard François a écrit :

Comme ce type de compilation passait sans problème début juillet 2025,
que la dernière mise à jour de standalone date de février 2025 et celle
de babel-french date de fin juillet 2025, je soupçonne fortement ce
dernier…

Je confirme que le message d’erreur est dû au passage à la version 3.7
de babel-french… mais les versions précédentes ignoraient (sans
message d’erreur) les commandes \frenchsetup{} du fichier esclave (pas
d’espace ajoutées autour des guillemets), ce qui n’est guère mieux me
semble-t-il.

Je joins un dossier “bac à sable” contenant french.ldf version 3.6c et
des variantes des fichiers proposés par François ; on pourra vérifier
que les options \frenchsetup{og=«,fg=»} et \frenchsetup{StandardLayout}
n’ont aucun effet en version 3.6c (pas d’espace ajoutée dans les
guillemets et nbp à la française).

La différence de comportement est due au fait que le traitement des
options déclarées avec \frenchsetup se passe désormais dans le “hook
env/document/before” (donc juste avant le \begin{document}) et plus
\AtBegin{doument}. Ce changement est nécessaire pour assurer la
compatibilité avec les nouvelles options de “tagging” de LaTeX
\DocumentMetaData{tagging=on}.

Le fait que la compilation avec lualatex ne produise pas de message
d’erreur avec la nouvelle version s’explique : sous lualatex la commande
\frenchsetup{og=«, fg=»} est sans effet (un avertissement le confirme).

Je pense pouvoir sortir une version de babel-french compatible avec
l’extension “standalone”, il me faut juste un peu de temps pour faire
les tests nécessaires, à suivre donc…

Merci à François de m’avoir signalé le problème.

Daniel Flipo

Bonjour

Le 13/08/2025 à 15:07, Daniel Flipo a écrit :

Bonjour,

Le 13/08/2025 à 09:39, Pétiard François a écrit :

Comme ce type de compilation passait sans problème début juillet
2025, que la dernière mise à jour de standalone date de février 2025
et celle de babel-french date de fin juillet 2025, je soupçonne
fortement ce dernier…

Je confirme que le message d’erreur est dû au passage à la version 3.7
de babel-french… mais les versions précédentes ignoraient (sans
message d’erreur) les commandes \frenchsetup{} du fichier esclave (pas
d’espace ajoutées autour des guillemets), ce qui n’est guère mieux me
semble-t-il.

Pas d’accord (voir ci-dessous).

Je joins un dossier “bac à sable” contenant french.ldf version 3.6c et
des variantes des fichiers proposés par François ; on pourra vérifier
que les options \frenchsetup{og=«,fg=»} et
\frenchsetup{StandardLayout} n’ont aucun effet en version 3.6c (pas
d’espace ajoutée dans les guillemets et nbp à la française).

Heu, désolé, mais si on décommente les deux lignes
\frenchsetup{og=«,fg=»} et \frenchsetup{StandardLayout} dans le fichier
esclave, les deux options fonctionnent.

La différence de comportement est due au fait que le traitement des
options déclarées avec \frenchsetup se passe désormais dans le “hook
env/document/before” (donc juste avant le \begin{document}) et plus
\AtBegin{doument}. Ce changement est nécessaire pour assurer la
compatibilité avec les nouvelles options de “tagging” de LaTeX
\DocumentMetaData{tagging=on}.
OK, mais ce qui est étrange, c’est que le message d’erreur dit que
quelque chose est « only preamble », donc justement avant
\begin{document} (il semble que ce quelque chose soit les commandes
\DeclareUnicodeCharacter{00AB}{\FB@@og}%
et \DeclareUnicodeCharacter{00BB}{\FB@@fg}%).

Le fait que la compilation avec lualatex ne produise pas de message
d’erreur avec la nouvelle version s’explique : sous lualatex la
commande \frenchsetup{og=«, fg=»} est sans effet (un avertissement le
confirme).

Oui, en effet, j’avais repéré ça.

Je pense pouvoir sortir une version de babel-french compatible avec
l’extension “standalone”, il me faut juste un peu de temps pour faire
les tests nécessaires, à suivre donc…

Merci ! Et merci pour tout le boulot fourni !

François

Bonsoir,

Le 13/08/2025 à 15:07, Daniel Flipo a écrit :

La différence de comportement est due au fait que le traitement des
options déclarées avec \frenchsetup se passe désormais dans le “hook
env/document/before” (donc juste avant le \begin{document}) et plus
\AtBegin{doument}. Ce changement est nécessaire pour assurer la
compatibilité avec les nouvelles options de “tagging” de LaTeX
\DocumentMetaData{tagging=on}.

Il est facile de ne faire exécuter qu’une seule fois le code ajouté dans
le “hook env/document/before”, je n’en avais pas vu l’utilité, les
documents classiques n’ayant qu’un seul \begin{document}… mais il y a
effectivement des exceptions (le package standalone en est une, la
classe dtk en est une autre, etc.).

J’ai donc rectifié dans la version de babel-french (4.0e 2025/08/15) que
je viens d’envoyer sur CTAN, elle devrait être disponible demain dans
TeXLive, MikTeX, etc.

Bonne soirée,

Daniel Flipo

Bonsoir,

Le 13/08/2025 à 19:05, Pétiard François a écrit :

Je confirme que le message d’erreur est dû au passage à la version 3.7
de babel-french… mais les versions précédentes ignoraient (sans
message d’erreur) les commandes \frenchsetup{} du fichier esclave (pas
d’espace ajoutées autour des guillemets), ce qui n’est guère mieux me
semble-t-il.

Pas d’accord (voir ci-dessous).

Je joins un dossier “bac à sable” contenant french.ldf version 3.6c et
des variantes des fichiers proposés par François ; on pourra vérifier
que les options \frenchsetup{og=«,fg=»} et
\frenchsetup{StandardLayout} n’ont aucun effet en version 3.6c (pas
d’espace ajoutée dans les guillemets et nbp à la française).

Heu, désolé, mais si on décommente les deux lignes
\frenchsetup{og=«,fg=»} et \frenchsetup{StandardLayout} dans le fichier
esclave, les deux options fonctionnent.

Même si ces mêmes lignes sont en commentaires dans le fichier master ?
[c’est ma faute j’ai oublié de les mettre en commentaires dans mon .zip]

La différence de comportement est due au fait que le traitement des
options déclarées avec \frenchsetup se passe désormais dans le “hook
env/document/before” (donc juste avant le \begin{document}) et plus
\AtBegin{doument}. Ce changement est nécessaire pour assurer la
compatibilité avec les nouvelles options de “tagging” de LaTeX
\DocumentMetaData{tagging=on}.

OK, mais ce qui est étrange, c’est que le message d’erreur dit que
quelque chose est « only preamble », donc justement avant
\begin{document} (il semble que ce quelque chose soit les commandes
\DeclareUnicodeCharacter{00AB}{\FB@@og}%
et \DeclareUnicodeCharacter{00BB}{\FB@@fg}%).

Oui, dans la version 3.6 les choses se passent au \begin{document} et
apparemment standalone avale tout ça (sans en tenir compte et sans
râler). Avec la version 3.7, les choses se passent juste avant le
\begin{document} et là, standalone veut les exécuter mais comme il a
déjà vu un \begin{document} avant (celui du fichier maître), il grogne
avec un « Only preamble » pas très clair puisqu’on ne dit pas
précisémment quelle commande est en cause.

C’est au moins ce que j’ai compris, je peux me tromper…


Daniel Flipo

Bonsoir

Merci !

François

Le 15/08/2025 à 19:12, Daniel Flipo a écrit :

Bonsoir,

Le 13/08/2025 à 15:07, Daniel Flipo a écrit :

La différence de comportement est due au fait que le traitement des
options déclarées avec \frenchsetup se passe désormais dans le “hook
env/document/before” (donc juste avant le \begin{document}) et plus
\AtBegin{doument}. Ce changement est nécessaire pour assurer la
compatibilité avec les nouvelles options de “tagging” de LaTeX
\DocumentMetaData{tagging=on}.

Il est facile de ne faire exécuter qu’une seule fois le code ajouté
dans le “hook env/document/before”, je n’en avais pas vu l’utilité,
les documents classiques n’ayant qu’un seul \begin{document}… mais il
y a effectivement des exceptions (le package standalone en est une, la
classe dtk en est une autre, etc.).

J’ai donc rectifié dans la version de babel-french (4.0e 2025/08/15)
que je viens d’envoyer sur CTAN, elle devrait être disponible demain
dans TeXLive, MikTeX, etc.

Bonne soirée,

Bonsoir

Le 13/08/2025 à 21:36, Daniel Flipo a écrit :

Bonsoir,

Le 13/08/2025 à 19:05, Pétiard François a écrit :

Je confirme que le message d’erreur est dû au passage à la version
3.7 de babel-french… mais les versions précédentes ignoraient
(sans message d’erreur) les commandes \frenchsetup{} du fichier
esclave (pas d’espace ajoutées autour des guillemets), ce qui n’est
guère mieux me semble-t-il.

Pas d’accord (voir ci-dessous).

Je joins un dossier “bac à sable” contenant french.ldf version 3.6c
et des variantes des fichiers proposés par François ; on pourra
vérifier que les options \frenchsetup{og=«,fg=»} et
\frenchsetup{StandardLayout} n’ont aucun effet en version 3.6c (pas
d’espace ajoutée dans les guillemets et nbp à la française).

Heu, désolé, mais si on décommente les deux lignes
\frenchsetup{og=«,fg=»} et \frenchsetup{StandardLayout} dans le
fichier esclave, les deux options fonctionnent.

Même si ces mêmes lignes sont en commentaires dans le fichier master ?
[c’est ma faute j’ai oublié de les mettre en commentaires dans mon .zip]
standalone recommande d’avoir le même préambule, donc soit les deux
options sont décommentées dans les deux fichiers (maître-esclave) et,
avec la version 3.6c, ça marche, soit elles sont commentées dans les
deux fichiers et alors, il n’y a aucune raison que ça marche…

La différence de comportement est due au fait que le traitement des
options déclarées avec \frenchsetup se passe désormais dans le “hook
env/document/before” (donc juste avant le \begin{document}) et plus
\AtBegin{doument}. Ce changement est nécessaire pour assurer la
compatibilité avec les nouvelles options de “tagging” de LaTeX
\DocumentMetaData{tagging=on}.

OK, mais ce qui est étrange, c’est que le message d’erreur dit que
quelque chose est « only preamble », donc justement avant
\begin{document} (il semble que ce quelque chose soit les commandes
\DeclareUnicodeCharacter{00AB}{\FB@@og}%
et \DeclareUnicodeCharacter{00BB}{\FB@@fg}%).

Oui, dans la version 3.6 les choses se passent au \begin{document} et
apparemment standalone avale tout ça (sans en tenir compte et sans
râler). Avec la version 3.7, les choses se passent juste avant le
\begin{document} et là, standalone veut les exécuter mais comme il a
déjà vu un \begin{document} avant (celui du fichier maître), il grogne
avec un « Only preamble » pas très clair puisqu’on ne dit pas
précisémment quelle commande est en cause.

C’est au moins ce que j’ai compris, je peux me tromper…

J’avoue avoir un peu de mal à comprendre ce qui se passe. En tout cas,
si on commente, dans french3.ldf (version 3.7) les deux lignes avec
\DeclareUnicodeCharacter, ça ne grogne plus (mais évidemment, ça ne
fonctionne pas comme attendu).

François