如果主要语言是 RTL,polyglossia 无法与 hyperref 配合使用

如果主要语言是 RTL,polyglossia 无法与 hyperref 配合使用

亲爱的女士们,先生们,

如果 polyglossia 与 hyperref 一起使用,并且主要语言设置为阿拉伯语(一种 rtl 语言),则文件无法编译,如下例所示。如果主要语言是 ltr,则没有问题。有人知道这个问题的解决方案吗?

致以最良好的祝愿并感谢您的关注。

\documentclass[11pt,a4paper,twoside]{article}

\usepackage{polyglossia}

\usepackage[xetex]{hyperref}

\setmainlanguage{arabic}
\setmainfont[Script=Arabic,Scale=1.4]{Scheherazade}

\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.4]{Scheherazade}
\newfontfamily\englishfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}



\begin{document}

السلام عليكم

\begin{english}
\url{https://www.google.de}
\end{english}


\end{document}

答案1

在这种情况下,您可以使用\href而不是用于超链接文本。\url\englishfont

\documentclass[11pt,a4paper,twoside]{article}
\usepackage{hyperref}
\usepackage{polyglossia}


\setmainlanguage{arabic}
\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.4]{Scheherazade}
\newfontfamily\englishfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}



\begin{document}

السلام عليكم

\begin{english}
\href{https://www.google.de}{www.google.de}
\end{english}


\end{document} 

或者直接添加

\let\arabicfonttt\ttfamily

代码

\documentclass[11pt,a4paper,twoside]{article}
\usepackage{hyperref}
\usepackage{polyglossia}


\setmainlanguage{arabic}
\setotherlanguage{english}

\newfontfamily\arabicfont[Script=Arabic,Scale=1.4]{Scheherazade}
\newfontfamily\englishfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}

\let\arabicfonttt\ttfamily

\begin{document}

السلام عليكم

\begin{english}
\hrl{https://www.google.de}
\end{english}


\end{document}

相关内容