希伯来字体问题:字符被其后继者取代

希伯来字体问题:字符被其后继者取代

我曾经使用过这个宏来处理希伯来字体:

\newfontfamily\hebfont[Script=Hebrew]{DejaVuSans}
\newcommand{\hebrew}[1]{{{\textdir TRT\hebfont #1}}}

前段时间我不得不把它改成

\newfontfamily\hebfont
[
  Script=Hebrew,
  %Scale=MatchUppercase,
  %Ligatures=TeX,
  % Weird Bug with styled hebrew: The letter get replaced by their successor in the alphabet,
  %   e.g. aleph to bet, bet to gimmel
  ItalicFont=*,
  BoldFont=*,
  BoldItalicFont=*,
]{DejaVuSans}
\newcommand{\hebrew}[1]{{{\textdir TRT\hebfont #1}}}

因为字符被其后继字符替换(aleph 替换为 bet,bet 替换为 gimmel,……)。此修复在一段时间内有效,因为此错误仅出现在格式化文本中,但现在它也出现在正常字体中。当我选择并复制文本时,我得到了正确的文本。我不知道如何调试它。

\documentclass{scrreprt}
\usepackage{fontspec}
\newfontfamily\hebfont[Script=Hebrew]{DejaVuSans}
\newcommand{\hebrew}[1]{{{\textdir TRT\hebfont #1}}}

\begin{document}
  \hebrew{כל המקיים נפש אחת, כאילו קיים עולם מלא.‎}
\end{document}

生成:这

相关内容