阿拉伯字体和 URL 链接选择

阿拉伯字体和 URL 链接选择

我有一些包含阿拉伯字符的链接,这些字符无法在我当前的字体中正确显示。因此,我在使用链接之前选择阿拉伯语。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

然后你会得到这个:

在此处输入图片描述

相关内容