ConTeXt 中的 Unicode 規範化和希伯來語

ConTeXt 中的 Unicode 規範化和希伯來語

我正在使用 ConTeXt 排版希伯來語文檔,其中包括指向(例如,元音、脛骨和罪點、dagesh 等)。我想要排版的希伯來文字已標準化為 Unicode 的 NFC 規範形式。眾所周知,希伯來語點的 Unicode 規範排序與基於其功能的特定點的建議標記排序相衝突(請參閱https://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdf有關此主題的更多資訊)。值得慶幸的是,許多排版引擎會自動對點重新排序,以確保它們根據許多字體的規格進行組合。我非常確定 XeLaTeX 就是其中之一,因為即使希伯來文本採用 NFC 形式,它也可以正確地用多個點排版希伯來字母。

我的問題是,ConTeXt 與 LuaTeX 能否正確處理相同的情況?在下面的最小範例中,當字元採用印刷推薦順序時,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

我使用 ConTeXt 2020.03.10 版(與 TeXLive 2020 一起發布)進行排版。https://www.sbl-site.org/educational/BiblicalFonts_SBLHebrew.aspx。根據字體的使用手冊(請參閱 MWE 上方的連結),字體應該能夠組合標記以形成正確的字形,無論它們在輔音之後的順序如何,但這裡的情況似乎並非如此。

我是否需要在呼叫中啟用 OpenType 功能來\definefontfeature解決此問題,或者是否可以包含一些模組或選項來讓 ConTeXt 排版 Unicode 規範化希伯來語,就像按照推薦方式排序一樣,就像 XeLaTeX 一樣?我看到 unnormalize 模組被提到XeLaTeX、LuaLaTeX、fontspec、unicode 和標準化;可以與 ConTeXt 一起使用嗎?

答案1

我在 ConTeXt 郵件列表上發布了這個問題(https://www.mail-archive.com/[電子郵件受保護]/),從那裡我了解到 ConTeXt 沒有實現一種機制來重新排序希伯來語點,這種機制最適合大多數希伯來語字體中實現的替換規則。漢斯·哈根在幾天的時間裡慷慨地提供了幫助,他在標準hebrew功能集中添加了重新排序機制。現在,如果字體聲明更改為\definefontfamily[hebrew] [rm] [SBL Hebrew] [features=hebrew].

此功能應該在最新版本的 ConTeXt 中實作(http://www.pragma-ade.com/download-1.htm)。

相關內容