我有一些包含阿拉伯字符的链接,这些字符无法在我当前的字体中正确显示。因此,我在使用链接之前选择阿拉伯语。MWE 看起来像
\documentclass[a4paper,11pt,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{fontspec}
\usepackage[shorthands=off,bidi=basic]{babel}
\directlua{luaotfload.add_fallback("fntFallback",{
"DejaVu Sans:mode=harf",
"NotoColorEmoji:mode=harf"})}
\setmainfont{Liberation Sans}% Ligatures=TeX ist set automatically (used to have the automatics ligatures of TeX)
[RawFeature={fallback=fntFallback}
,SmallCapsFont={TeX Gyre Termes},SmallCapsFeatures={Letters=SmallCaps}% fonts for small caps
]
\usepackage{xurl}
\urlstyle{same}
\babelprovide[import=ar]{arabic}
\babelfont[arabic]{rm}[Renderer=HarfBuzz, Language=Default]{Amiri}
\usepackage[pdfa, unicode]{hyperref}
\begin{document}
\begin{itemize}
\item
Wasserknappheit - with more text - as link,
{\selectlanguage{arabic}\href{https://www.alsumaria.tv/news/محليات/352690/ماء-النجف-توضح-أسباب-شح-المياه-في-المحافظة}{\nolinkurl{https://www.aaaralsumaria.tv/news/محليات/352690/ماء-النجف-توضح-أسباب-شح-المياه-في-المحافظة}}}%
, additional text;
\item
Wasserknappheit - with more text - but the text is not as link %
\href{https://www.alsumaria.tv/news/محليات/352690/ماء-النجف-توضح-أسباب-شح-المياه-في-المحافظة}{\nolinkurl{https://www.alsumaria.tv/news/محليات/352690/ماء-النجف-توضح-أسباب-شح-المياه-في-المحافظة}}%
, additional text
\end{itemize}
\end{document}
编译后为
可以看到,选择语言时,几乎整个项目都会创建链接。如果我不选择语言,则不会出现此问题。
有没有办法设置阿拉伯语并为该\href
项目仅提供超链接?
运行
This is LuaHBTeX, Version 1.15.0 (TeX Live 2022/TeX Live for SUSE Linux) (format=lualatex 2023.1.15) 20 JAN 2023 09:46
答案1
这是引擎问题,如果方向发生变化,它无法正确处理链接区域。因此,目前 hyperref 或 babel 能做的事情不多。但我写信给 luatex 列表并报告了这个问题。
为了演示该问题,使用 luatex 进行编译:
\hsize=5cm \parskip=1em
OK:
{abc \textdir TRT
\pdfextension startlink
attr {/Border[0 0 1]}
user{
/Subtype/Link/A<</S/URI/URI(blub)>>
}
x y y y z
\pdfextension endlink
abc
} end
Wrong:
{abc \textdir TRT
\pdfextension startlink
attr {/Border[0 0 1]}
user{
/Subtype/Link/A<</S/URI/URI(blub)>>
}
x y y y y y y y y y y y y y y y z
\pdfextension endlink
abc
} end
\pardir TRT \textdir TRT
OK:
\pdfextension startlink
attr {/Border[0 0 1]}
user{
/Subtype/Link/A<</S/URI/URI(blub)>>
}
x y y y y y y y y y y y y y y y z
\pdfextension endlink
end
\bye
然后你会得到这个: