我注意到,polyglossia
呈现字母数字的方式受到默认语言的影响,但我认为不应该如此。
例如,当我将希伯来语设置为默认语言时,\alph{counter}
即使在英语块中,也始终会呈现为希伯来语数字。反之亦然,polyglossia
确实会识别希伯来语块(当英语为默认语言时)并相应地呈现其数字。
最小工作示例如下:
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
\newfontfamily\englishfont{Times New Roman}
\begin{document}
\newcounter{counter}
\setcounter{counter}{5}
\begin{english}
A number: \alph{counter}
\end{english}
\begin{hebrew}
מספר בעברית:
\alph{counter}
\end{hebrew}
\end{document}
当我将英语设为默认语言(如上所示)时,代码的呈现方式可能与您预期的一样:
但是,如果将希伯来语设为默认设置(切换main
和other
语言),我就会遇到以下问题(请注意,英文块中的数字被设置为希伯来语数字):
这是一个错误,还是我误解了它polyglossia
的工作原理?
答案1
我认为这是一个错误。你可以报告它:https://github.com/reutenauer/polyglossia
作为一种解决方法,您可以重置数字命令:
\documentclass{article}
\usepackage{polyglossia}
\setotherlanguage{english}
\setmainlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew]{Arial Unicode MS}
\newfontfamily\englishfont{Times New Roman}
\makeatletter
\hebrew@numbers
\gappto\noextras@hebrew{\let\@alph\@origalph}
\makeatother
\begin{document}
\newcounter{counter}
\setcounter{counter}{5}
\alph{counter}
\begin{english}
A number: \alph{counter}
\end{english}
\begin{hebrew}
מספר בעברית:
\alph{counter}
\end{hebrew}
\end{document}