
Este es un MWE:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[german,hungarian]{babel}
\begin{document}
babel test
\end{document}
Cuando ejecuto pdflatex en este MWE, el programa se detiene con:
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
?
¿A qué se debe esto y cómo puedo solucionarlo? Acabo de instalar TeXLive 2022 en Linux.
Gracias.
Respuesta1
magyar.ldf parchea el comando latex (interno) \@begindocumenthook
para inyectar algo de código en el archivo auxiliar:
{\toks@\expandafter{\expandafter\@@magyar@protect@backtick\@begindocumenthook}%
\xdef\@begindocumenthook{\the\toks@}}% Dat: \@begindocumenthook has #1 #2 etc.
Con la introducción del nuevo sistema de ganchos de látex, esto ya no funciona como estaba previsto. El cambio de catcode llega demasiado tarde.
El autor fue notificado hace dos años sobre esto pero magyar.ldf no ha sido adaptado.
Como solución alternativa, puede restablecer el catcode problemático antes de \begin{document}:
\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}
Eliminé la línea inputenc porque ya no es necesaria: utf8 es el valor predeterminado desde hace algunos años.