我看到过类似的问题这和这但我认为我的问题不同,因为它处于 RTL 环境中并且使用非罗马文字。
我的 Chrome 浏览器地址栏中有一个显示为混合脚本的 URL。当我从浏览器地址栏复制/粘贴 URL 时,它会转换非 ASCII 字符。并且 hyperref 很开心。
https://ar.wikisource.org/wiki/%D8%A5%D9%86%D9%88%D9%85%D8%A7_%D8%A5%D9%84%D9%8A%D8%B4
但在我的 pdf 中,我想让 URL 的标签看起来像是混合脚本 URL,就像它在浏览器中显示的那样。因此,hyperreff 中的 URL 标签需要包含罗马字符和阿拉伯字符。我不知道如何让它工作。下面脚本中注释掉的行大致说明了我想要什么,但当包含它们时,会产生错误,这是可以理解的。
这是我的 MWE:
\documentclass{article}
\usepackage{polyglossia}
\usepackage{hyperref}
\setmainlanguage{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Scheherazade}
\let\arabicfonttt\ttfamily
\begin{document}
\href{https://ar.wikisource.org/wiki/%D8%A5%D9%86%D9%88%D9%85%D8%A7_%D8%A5%D9%84%D9%8A%D8%B4}{test}
% attempt 1
% \href{https://ar.wikisource.org/wiki/%D8%A5%D9%86%D9%88%D9%85%D8%A7_%D8%A5%D9%84%D9%8A%D8%B4}{إنوما_إليش}
% attempt 2
% \href{https://ar.wikisource.org/wiki/%D8%A5%D9%86%D9%88%D9%85%D8%A7_%D8%A5%D9%84%D9%8A%D8%B4}{\textarabic{إنوما_إليش}}
\end{document}
答案1
您的超链接名称中有一个下划线 (_),这会产生错误。您可能没有注意到它,因为您的编辑器认为它是注释的一部分。您只需将其转义即可:\_
尝试这个:
\documentclass{article}
\usepackage{polyglossia}
\usepackage{hyperref}
\setmainlanguage{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Scheherazade}
\let\arabicfonttt\ttfamily
\begin{document}
\href{https://ar.wikisource.org/wiki/%D8%A5%D9%86%D9%88%D9%85%D8%A7_%D8%A5%D9%84%D9%8A%D8%B4}{إنوما\_إليش}
\end{document}