在混合语言文档中,我尝试使用 URL。以下是演示的最小输入
\documentclass{article} % compile with xelatex
\usepackage{hyperref}
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\setotherlanguage{english}
\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}% or{SBL Hebrew}
\begin{document}
\begin{english}English separates Yankees and Brits?
\url{http://www.google.com}
\end{english}
\end{document}
现在,polyglosssia 对此非常不满,并抱怨道:
! Package polyglossia Error:
The current roman font does not contain the Hebrew script!
Please define \hebrewfont with \newfontfamily.
See the polyglossia package documentation for explanation.
Type H <return> for immediate help.
...
l.9 \url{http://www.google.com}
我糊涂了。我不是在第 8 行就切换到英文了吗?
答案1
如果您将链接更改为 \href{http://www.google.com}{Google}
而不是使用,\url
它可以正常工作。
但是,这实际上并不能直接解决问题。基于 Leo 的答案,但使用polyglossia
方法(和 LaTeX 语法),正确的解决方案如下:
\renewcommand\UrlFont{\ttfamilylatin}
答案2
它与 hyperref 无关。\url
用作\ttfamily
字体。如果您只是调用,则会收到相同的消息\ttfamily
。在我看来,这是 polyglossia 字体切换系统的一个错误。切换语言后,script=hebrew 选项仍然存在。
答案3
这不是url
软件包的错误。默认情况下\url
使用\ttfamily
,但是默认打字机字体lmtt
不适用于默认语言希伯来语。只需重新定义\UrlFont
即可修复它。
\def\UrlFont{\usefont{EU1}{lmtt}{m}{n}}