这是我多年来一直存在的问题,也许你可以帮我解决。我使用最新版本的 polyglossia (v1.50a)、fontspec (v2.7i) 和 xetex (3.14159265-2.6-0.999992 (TeX Live 2020))。
我输入的每个希伯来语字符串都会出现一个寄生空格。阿拉伯语不会出现同样的问题。
这是一个仅包含可免费使用(且技术上可靠)的字体的最小示例:
\documentclass{book}
\usepackage{fontspec}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage[variant=usmax]{english}%
\setotherlanguage{hebrew}
\setotherlanguage[calendar=gregorian,hijricorrection=1,locale=mashriq]{arabic}
\newfontfamily{\hebrewfont}[Script=Hebrew,Extension=.ttf,Scale=1.2]{Tinos-Regular}
\newfontfamily{\arabicfont}[Script=Arabic,Extension=.ttf,Scale=1.2]{Amiri-Regular}
\begin{document}
Bla bla “\texthebrew{הכתובת הדו-לשונית (יוונית-ארמית) םארמאזי}” blabla.
Bla bla “\textarabic{أمين معلوف، الهويّات القاتلة، دار الفارابي، ترجمة نهلة بيضون}” blabla.
\end{document}
两个都蒂诺斯和阿米里可以从 Google 中获取。这是我得到的结果(红色箭头表示寄生空间):
请注意,我还收到一个编译错误:
(/usr/local/texlive/2020/texmf-dist/tex/xelatex/bidi/latex-xetex-bidi.def
! LaTeX Error: Command \XeTeX already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.139 ...di@reflect@box{E}}\kern-.1667em \TeX}}$}}
?
! LaTeX Error: Command \XeLaTeX already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.141 ...@reflect@box{E}}\kern-.1667em \LaTeX}}$}}
?
您知道如何避免这种寄生空白吗?或者我可能做错了什么?
答案1
不要使用 xltxtra 包,它已经过时了(并且会出现错误)。
该空间是一个已经报告的错误:https://github.com/reutenauer/polyglossia/issues/459
在 polyglossia 更新之前,您可以像这样隐藏空间:
\documentclass{book}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage[variant=usmax]{english}%
\setotherlanguage{hebrew}
\makeatletter\def\hebrew@ltr@numbers{%
\ifxetex
% Bidi inserts an RTL mark (0x200f) between number and number separator (- .),
% forcing numbers to RTL. This is wrong for Hebrew.
% So we defunc the respective command.
\renewcommand*{\DigitsDotDashInterCharToks}{}%<----
\fi%
}
\makeatother
\setotherlanguage[calendar=gregorian,hijricorrection=1,locale=mashriq]{arabic}
\newfontfamily{\hebrewfont}[Script=Hebrew,Extension=.ttf,Scale=1.2]{Tinos-Regular}
\newfontfamily{\arabicfont}[Script=Arabic,Extension=.ttf,Scale=1.2]{Amiri-Regular}
\begin{document}
Bla bla “\texthebrew{הכתובת הדו-לשונית (יוונית-ארמית) םארמאזי}” blabla.
Bla bla “\textarabic{أمين معلوف، الهويّات القاتلة، دار الفارابي، ترجمة نهلة بيضون}” blabla.
\end{document}