Estonio - tipografía (o catcode10)

Estonio - tipografía (o catcode10)

Intenté adaptar estosoluciónpara usar en mi proyecto. UNO de mis problemas es que cuando uso estonianel lenguaje, los guiones en la macro de detección no se tratan correctamente, es decir, aparecen como un cuadro cuadrado (en lugar de -)

\documentclass[a4paper,11pt,estonian, naustrian]{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\hyp{}10\hyp{}2023}}). 

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

El código por sí solo funciona ya que la segunda aparición del texto se muestra -correctamente.ingrese la descripción de la imagen aquí

Observación: Cuando elimino naustrianel código no se compilará dos veces. Supongo que los problemas están relacionados. Si no, lo preguntaré por separado.

información relacionada