latex3 / babel

The babel system for LaTeX, LuaLaTeX and XeLaTeX
LaTeX Project Public License v1.3c
123 stars 34 forks source link

Estonia babel won't compile due to missing headtoname #294

Closed leomayer closed 2 months ago

leomayer commented 2 months ago

I tried to compile

\documentclass[a4paper,11pt,estonian]{article}
%\documentclass[a4paper,11pt,british]{article}
\usepackage[margin=2.5cm]{geometry} % for margins on a A4paper
\usepackage[tracking=true,factor=1100,stretch=10,shrink=10,final]{microtype} % have some better layout of individual chars
\usepackage[shorthands=off]{babel}
\directlua{luaotfload.add_fallback("fntFallback",{
    "DejaVu Sans:mode=harf",
    "NotoColorEmoji:mode=harf"})}
\babelfont{rm}%
[RawFeature={fallback=fntFallback},SmallCapsFont={TeX Gyre Termes},SmallCapsFeatures={Letters=SmallCaps}% fonts for small caps
]{Liberation Sans}% Ligatures=TeX ist set automatically (used to have the automatics ligatures of TeX)
\usepackage{hyphenat} % allows hyphenation of compound words like 'Test- und Produktivszenarien' (see source code)

\def\linkText#1{\xscan#1\relax}% calls xscan which looks ahead one token, #1
\def\xscan{\afterassignment\xxscan\let\token= }% assign single token to \token and call \xxscan
\def\xxscan{%
    \ifx\token\relax\else%test for end-of-line or end of group and switch to ttfamily
    \ifcat\token\space%
    \token% token is catcode 10
    \spaceskip=.5em% remove glue from space for fixed-width space
    \xspaceskip=.5em% remove glue from space for fixed-width space
    \else%
    \token\hskip 0pt plus 1sp minus 1sp % add glue to any non-catcode 10 (space)
    \fi
    \spaceskip=0pt% reset space skip
    \expandafter\xscan% feed next token to \xscan, which is effectively a recursive call
    \fi} 

\usepackage[pdfa, unicode]{hyperref}
\begin{document}
\section{test}
Kant ipsum test 1 (\hyperlink{l4194-c8833}{\linkText{AA 27-10-2023}}). 

\begin{itemize}
\item 
{\hypertarget{l4194-c8833}{}}XX - 
{\selectlanguage{naustrian}Test für Österreich}
(27-10-2023): 

\end{itemize}
\end{document}

(see as Stackblitz). As Ulrike Fischer analyzed the compilation fails due to missing content in the definiton of headtoname.

Changing it to \def\headtoname{Kell}% solves the issue - although I'm not pretty sure if this translation is accurate. At least this works.

u-fischer commented 2 months ago

A shorter example is

\documentclass{article}
\usepackage[estonian]{babel}
%\addto\captionsestonian{\def\headtoname{Kell}}
\begin{document}

\selectlanguage{naustrian}Test 

\end{document}

which errors at the second compilation.

jbezos commented 2 months ago

A wrong test. I’ll fix it in the next release.