
私はConTeXtを使用して、ポインティング(母音、シンとシンの点、ダゲシュなど)を含むヘブライ語の文書をタイプセットしています。タイプセットしたいヘブライ語のテキストは、UnicodeのNFC標準形式に正規化されています。ヘブライ語のポインティングのUnicode標準順序は、機能に基づいて特定のポインティングの推奨マーク順序と矛盾することがよく知られています(https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf詳しくは、このトピックを参照してください。ありがたいことに、多くのタイプセッティング エンジンは、ポイントを自動的に並べ替えて、多くのフォント仕様に従ってポイントが結合されるようにします。XeLaTeX は、ヘブライ語のテキストが NFC 形式であっても、複数のポイントを持つヘブライ文字を正しくタイプセットするので、これらの 1 つであることは間違いありません。
私の質問は、LuaTeX を使用した ConTeXt は同じ状況を正しく処理できるかどうかです。次の最小限の例では、文字が印刷上の推奨順序になっている場合は ConTeXt タイプセットによってヘブライ語が正しく示されますが、Unicode の標準順序になっている場合は示されません。
%Setup Hebrew text font:
\definefontfeature[f:pointedhebrew][default][
ccmp=yes,
mark=yes,
script=hebr
]
\definefontfamily[hebrew] [rm] [SBL Hebrew] [features=f:pointedhebrew]
%Set the body font:
\setupbodyfont[hebrew]
%Set up right-to-left alignment:
\setupalign[r2l]
\starttext
%Characters after normalization, in Unicode canonical order (bet + segol + dagesh + final nun):
בֶּן
%A word with characters in typographically recommended order (bet + dagesh + segol + final nun):
בֶּן
\stoptext
私はこれをTeXLive 2020でリリースされたConTeXtバージョン2020.03.10を使用してタイプセットしました。SBLヘブライ語フォントは以下から入手しました。https://www.sbl-site.org/educational/BiblicalFonts_SBLHebrew.aspxフォントのユーザー マニュアル (MWE の上のリンクを参照) によると、フォントは子音の後の順序に関係なく、マークを組み合わせて正しいグリフを形成できるはずですが、ここではそうではないようです。
これを修正するために、呼び出し時に有効にする必要があるOpenType機能はありますか\definefontfeature
、それとも、XeLaTeXのように、推奨される方法で順序付けされているかのようにConTeXtにUnicode正規化ヘブライ語をタイプセットさせるために含めることができるモジュールまたはオプションがありますか?uninormalizeモジュールは、XeLaTeX、LuaLaTeX、fontspec、Unicode、正規化; それは ConTeXt で使用できますか?
答え1
私はこの質問をConTeXtメーリングリストに投稿しました(メールアーカイブ[メールアドレス]/) について調べましたが、そこから、ConTeXt には、ほとんどのヘブライ語フォントに実装されている置換ルールで最適に機能する方法でヘブライ語のポイントを並べ替えるメカニズムが実装されていないことがわかりました。Hans Hagen は数日間にわたって親切に協力してくれて、並べ替えメカニズムを標準hebrew
機能セットに追加してくれました。これで、私の質問の MWE は、フォント宣言を に変更すれば期待どおりに動作するようになります\definefontfamily[hebrew] [rm] [SBL Hebrew] [features=hebrew]
。
この機能はConTeXtの最新バージョンに実装される予定です(http://www.pragma-ade.com/download-1.htm)。