XeTeX 和 Luatex 无法正确显示圣经希伯来字体

XeTeX 和 Luatex 无法正确显示圣经希伯来字体

我的问题与 XeTeX 和 LuaTeX 有关;两者都无法正确显示圣经希伯来字体。

更准确地说,文本在某个时候被截断,并且尼库德(意思类似于希伯来语中的重音符号)位置不正确,其他变音符号也是如此。

其他免费编辑器(如 OpenOffice 或 Notepad++)可以正确显示这些符号。

我安装了Shlomo 字体在我的计算机上。因此,我用 XeTeX 和 Luatex 编译了一个圣经片段,两个引擎都错误地定位了“nikud”和字母周围的变音符号。更重要的是,它们都损坏了圣经片段。我尝试了其他希伯来语字体,结果相同。以下是代码片段和处理后的结果(注意:希伯来语是从右到左书写的):

%%%%%%%%%%%%%%% XETEX %%%%%%%%%%%%%%%%%%%
% XETEX Version 3.1415926-2.3-0.9997.5 (MiKTeX 2.9)
\TeXXeTstate = 1

\font\Shlomofnt="Shlomo" at 14pt

\Shlomofnt

\beginR
א וַיִּשְׁלַ֣ח יְהוֹשֻֽׁעַ־בִּן־נ֠וּן מִֽן־הַשִּׁטִּ֞ים שְׁנַֽיִם־אֲנָשִׁ֤ים מְרַגְּלִים֙ חֶ֣רֶשׁ לֵאמֹ֔ר לְכ֛וּ רְא֥וּ אֶת־הָאָ֖רֶץ וְאֶת־יְרִיח֑וֹ וַיֵּ֨לְכ֜וּ וַ֠יָּבֹאוּ בֵּית־אִשָּׁ֥ה זוֹנָ֛ה וּשְׁמָ֥הּ רָחָ֖ב וַיִּשְׁכְּבוּ־שָֽׁמָּה׃ 
ב וַיֵּ֣אָמַ֔ר לְמֶ֥לֶךְ יְרִיח֖וֹ לֵאמֹ֑ר הִנֵּ֣ה אֲ֠נָשִׁים בָּ֣אוּ הֵ֧נָּה הַלַּ֛יְלָה מִבְּנֵ֥י יִשְׂרָאֵ֖ל לַחְפֹּ֥ר אֶת־הָאָֽרֶץ׃ 
ג וַיִּשְׁלַח֙ מֶ֣לֶךְ יְרִיח֔וֹ אֶל־רָחָ֖ב לֵאמֹ֑ר ה֠וֹצִיאִי הָֽאֲנָשִׁ֨ים הַבָּאִ֤ים אֵלַ֨יִךְ֙ אֲשֶׁר־בָּ֣אוּ לְבֵיתֵ֔ךְ כִּ֛י לַחְפֹּ֥ר אֶת־כָּל־הָאָ֖רֶץ בָּֽאוּ׃

\end
% Note : the fragment appears here written from right to left because my
% notepad++ editor automatically inverts the direction of writing when it sees
% hebrew characters, but in fact, it is written in logical order.

这是 XeTeX 处理后的结果;nikud 和变音符号的位置不正确,并且在某些时候,文本变得不可读:

以下是圣经片段在 OpenOffice 中的样子(“nikud” 的位置正确,变音符号也是如此):

类似地,在 Notepad++ 中,该段看起来相当不错:

现在,我使用以下代码并使用 Luatex(版本 beta- 0.70.1-2011080216(rev 4277))对其进行了编译:

%%%%%%%%%%%% LUATEX %%%%%%%%%%%%%%%%%
\input luaotfload.sty

\font\Shlomofnt={file:C:/Windows/Fonts/Shlomo.ttf} at 14pt
\Shlomofnt

{\pardir TRT \noindent {\textdir TRT
א וַיִּשְׁלַ֣ח יְהוֹשֻֽׁעַ־בִּן־נ֠וּן מִֽן־הַשִּׁים שְׁנַֽיִם־אֲנָשִׁ֤ים מְרַגְּלִים֙ חֶ֣רֶשׁ לֵאמֹ֔ר לְכ֛וּ רְא֥וּ אֶת־הָאָ֖רֶץ וְאֶת־יְרִיח֑וֹ וַיֵּ֨לְכ֜וּ וַ֠יָּבֹאוּ בֵּית־אִשָּׁ֥ה זוֹנָ֛ה וּשְׁמָ֥הּ רָחָ֖ב וַיִּשְׁכְּבוּ־שָֽׁמָּה׃ ב וַיֵּ֣אָמַ֔ר לְמֶ֥לֶךְ יְרִיח֖וֹ לֵאמֹ֑ר הִנֵּ֣ה אֲ֠נָשִׁים בָּ֣אוּ הֵ֧נָּה הַלַּ֛יְלָה מִבְּנֵ֥י יִשְׂרָאֵ֖ל לַחְפֹּ֥ר אֶת־הָאָֽרֶץ׃ ג וַיִּשְׁלַח֙ מֶ֣לֶךְ יְרִיח֔וֹ אֶל־רָחָ֖ב לֵאמֹ֑ר ה֠וֹצִיאִי הָֽאֲנָשִׁ֨ים הַבָּאִ֤ים אֵלַ֨יִךְ֙ אֲשֶׁר־בָּ֣אוּ לְבֵיתֵ֔ךְ כִּ֛י לַחְפֹּ֥ר אֶת־כָּל־הָאָ֖רֶץ בָּֽאוּ׃
}}

\end

结果再次被截断并且不正确:

(这个问题也可以在Google Docs 为 PDF

答案1

使用 XeTeX 0.9998 时,我没有得到方框,使用 LuaTeX 0.70.2 时也没有得到截断的线条。对于 nikud 放置问题,您必须告诉引擎要使用哪种 OpenType 脚本(它们不会自动选择;必须明确设置)。使用此测试文件,我使用两个引擎获得了相同的输出:

% allow the test file to work with both engines to easily compare the result
\input ifluatex.sty
\ifluatex
  \input luaotfload.sty
  \def\setRTL{\pardir TRT\textdir TRT}
  \def\endLTR{\pardir TLT\textdir TLT}
\else
  \input bidi
\fi

\font\Shlomofnt="Shlomo:script=hebr" at 14pt
\Shlomofnt

\setRTL
\noindent
א וַיִּשְׁלַ֣ח יְהוֹשֻׁעַ־בִּן־נ֠וּן מִֽן־הַשּׁטִּים שְׁנַֽיִם־אֲנָשִׁים מְרַגְּלִים֙ חֶ֣רֶשׁ לֵאמֹ֔ר לְכ֛וּ רְא֥וּ אֶת־הָאָ֖רֶץ וְאֶת־יְרִיח֑וֹ וַיֵּלְכ֜וּ וַ֠יָּבֹאוּ בֵּית־אִשּׁה זוֹנָ֛ה וּשְׁמָ֥הּ רָחָ֖ב וַיִּשְׁכְּבוּ־שָׁמָּה׃
ב וַיֵּאָמַ֔ר לְמֶ֥לֶךְ יְרִיח֖וֹ לֵאמֹ֑ר הִנֵּה אֲ֠נָשִׁים בָּאוּ הֵ֧נָּה הַלַּיְלָה מִבְּנֵ֥י יִשְׂרָאֵ֖ל לַחְפֹּר אֶת־הָאָֽרֶץ׃
ג וַיִּשְׁלַח֙ מֶ֣לֶךְ יְרִיח֔וֹ אֶל־רָחָ֖ב לֵאמֹ֑ר ה֠וֹצִיאִי הָֽאֲנָשִׁים הַבָּאִ֤ים אֵלַ֨יִךְ֙ אֲשֶׁר־בָּאוּ לְבֵיתֵ֔ךְ כִּי לַחְפֹּר אֶת־כָּל־הָאָ֖רֶץ בָּאוּ׃
\bye

输出样本

答案2

你能使用 xelatex 吗?我猜它工作得很好:

在此处输入图片描述

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Shlomo}
\usepackage{polyglossia}
\setmainlanguage{hebrew}

\begin{document}
א וַיִּשְׁלַ֣ח יְהוֹשֻֽׁעַ־בִּן־נ֠וּן מִֽן־הַשִּׁטִּ֞ים שְׁנַֽיִם־אֲנָשִׁ֤ים מְרַגְּלִים֙ חֶ֣רֶשׁ לֵאמֹ֔ר לְכ֛וּ רְא֥וּ אֶת־הָאָ֖רֶץ וְאֶת־יְרִיח֑וֹ וַיֵּ֨לְכ֜וּ וַ֠יָּבֹאוּ בֵּית־אִשָּׁ֥ה זוֹנָ֛ה וּשְׁמָ֥הּ רָחָ֖ב וַיִּשְׁכְּבוּ־שָֽׁמָּה׃ 
ב וַיֵּ֣אָמַ֔ר לְמֶ֥לֶךְ יְרִיח֖וֹ לֵאמֹ֑ר הִנֵּ֣ה אֲ֠נָשִׁים בָּ֣אוּ הֵ֧נָּה הַלַּ֛יְלָה מִבְּנֵ֥י יִשְׂרָאֵ֖ל לַחְפֹּ֥ר אֶת־הָאָֽרֶץ׃ 
ג וַיִּשְׁלַח֙ מֶ֣לֶךְ יְרִיח֔וֹ אֶל־רָחָ֖ב לֵאמֹ֑ר ה֠וֹצִיאִי הָֽאֲנָשִׁ֨ים הַבָּאִ֤ים אֵלַ֨יִךְ֙ אֲשֶׁר־בָּ֣אוּ לְבֵיתֵ֔ךְ כִּ֛י לַחְפֹּ֥ר אֶת־כָּל־הָאָ֖רֶץ בָּֽאוּ׃
\end{document}

相关内容