如何在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,因此您应该让包处理这个问题。它已经知道另一种希伯来语排版方式,但您需要指定字体。这必须使用\hebrewfont
Polyglossia 才能正确选择它,因为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}