私はこれを応用しようとした解決私のプロジェクトで使用するために。私の問題の1つは、言語を使用するとき、検出マクロ内のハイフンが適切に処理されないことですestonian
。つまり、ハイフンは四角いボックスとして表示されます(代わりに-
)
\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}
テキストの2回目の出現は-
適切にレンダリングされるため、コード自体は機能します。
naustrian
注:コードを削除すると、 2 回コンパイルされなくなります。問題は関連していると思います。そうでない場合は、別途質問します。