pdflatex stoppt, wenn in babel sowohl die deutsche als auch die ungarische Sprache eingestellt sind

pdflatex stoppt, wenn in babel sowohl die deutsche als auch die ungarische Sprache eingestellt sind

Dies ist ein MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,hungarian]{babel}

\begin{document}

babel test

\end{document}

Wenn ich pdflatex auf diesem MWE ausführe, stoppt das Programm mit:

pdflatex babel-test.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./babel-test.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-04-10>
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
Document Class: article 2021/10/04 v1.4n Standard LaTeX document class
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty)
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/inputenc.sty)
(/usr/local/texlive/2022/texmf-dist/tex/generic/babel/babel.sty
(/usr/local/texlive/2022/texmf-dist/tex/generic/babel/txtbabel.def)
(/usr/local/texlive/2022/texmf-dist/tex/generic/babel-german/german.ldf
(/usr/local/texlive/2022/texmf-dist/tex/generic/babel-german/germanb.ldf))
(/usr/local/texlive/2022/texmf-dist/tex/generic/babel-hungarian/magyar.ldf))
(/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
(./babel-test.aux)
(/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls) [1{/usr/local
/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./babel-test.aux
! Missing number, treated as zero.
<to be read again>
                   \hskip
l.4 \catcode `"
               \active
?                                      

Warum ist das so und wie kann ich es beheben? Ich habe TeXLive 2022 neu unter Linux installiert.

Danke.

Antwort1

magyar.ldf patcht den (internen) Latex-Befehl, \@begindocumenthookum Code in die AUX-Datei einzufügen:

{\toks@\expandafter{\expandafter\@@magyar@protect@backtick\@begindocumenthook}%
   \xdef\@begindocumenthook{\the\toks@}}% Dat: \@begindocumenthook has #1 #2 etc.

Mit der Einführung des neuen Hook-Systems in Latex funktioniert dies nicht mehr wie vorgesehen. Die Catcode-Änderung kommt zu spät.

Der Autor wurde vor zwei Jahren darüber informiert, aber magyar.ldf wurde nicht angepasst.

Als Workaround können Sie den problematischen Catcode vor \begin{document} zurücksetzen:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[german,hungarian]{babel}

\AddToHook{begindocument}[test]{\catcode\string``=12 }
\DeclareHookRule{begindocument}{test}{before}{babel}

\begin{document}
babel test
\end{document}

Ich habe die Inputenc-Zeile entfernt, da sie nicht mehr benötigt wird: UTF-8 ist seit einigen Jahren der Standard.

verwandte Informationen