xelatex 中的内联希伯来语和通用 LaTeX 语法

xelatex 中的内联希伯来语和通用 LaTeX 语法

如何在tex文档中插入一些希伯来语字符,然后以文档的主要语言恢复?

也就是说——我正在创建一个tex最终将转换为 PDF 的文档。该文档将包含英文和希伯来文字符。借助其他一些问题我离我的目标越来越近了,但是我对 LaTeX 语法缺乏一般的了解似乎是一个主要的障碍。

我有以下tex文件

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{english}
\setotherlanguage{hebrew}

\setmainfont{Times New Roman}
\newfontfamily\hebrew{New Peninim MT}

\begin{document}

Hello World  

\hebrew{\RL{חַ}}

Goodbye World

\end{document}

当我使用 xelatex 将此文档转换为 pdf 时,我得到

那

也就是说 --Hello World用英语呈现 (yay!)。用希伯来语 ח 呈现 (yay!)。但是 --Goodbye World呈现为方块。

从概念上讲,我怀疑我(无意中)告诉 xelatexGoodbye World使用 以希伯来语呈现New Peninim MT。但是,我不确定为什么会这样。我天真的程序员思维告诉我,这

\hebrew{\RL{חַ}}

告诉 xelatex 什么里面括号应该以希伯来语从右到左的模式呈现。但是,xelatex 在处理文本时似乎停留在希伯来语呈现模式Goodbye World

所以——我当前的问题是:如何让 xelatex 以内联方式呈现这个单个希伯来字符并以主字体/字体/语言呈现英文文本。

我更大的问题是:基于上述内容——我对 LaTeX 语法有哪些不理解的地方?

答案1

您不应该明确切换字体或排版方向。您正在使用 Polyglossia,因此您应该让包处理这个问题。它已经知道另一种希伯来语排版方式,但您需要指定字体。这必须使用\hebrewfontPolyglossia 才能正确选择它,因为egreg建议

即使你没有使用\hebrewfont,你也应该不是使用\hebrew,因为这已由 Polyglossia 等人定义。‘Et al.’因为我还没有检查到底是什么负责什么,但它肯定涉及:

> \hebrew=macro:
->\@protected@testopt \hebrew \\hebrew {}.
l.223   \show\hebrew

\show\hebrew通过添加下面的代码获得。

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[variant=british]{english}
\setotherlanguage{hebrew}
\newfontfamily\hebrewfont{Noto Sans Hebrew}[Script=Hebrew]

\begin{document}
% uncomment the next line to see the definition shown above
%\show\hebrew

Hello world!

\begin{hebrew}
  עברית חַ
\end{hebrew}

Goodbye world!
\end{document}

英语和希伯来语

相关内容