Unicode-Normalisierung und Hebräisch in ConTeXt

Unicode-Normalisierung und Hebräisch in ConTeXt

Ich setze ein Dokument auf Hebräisch, das Punkte enthält (z. B. Vokale, Shin- und Sin-Punkte, Dagesh usw.), mit ConTeXt. Der hebräische Text, den ich setzen möchte, wurde in die kanonische NFC-Form von Unicode normalisiert. Es ist bekannt, dass die kanonische Unicode-Reihenfolge hebräischer Punkte mit der empfohlenen Markierungsreihenfolge bestimmter Punkte auf der Grundlage ihrer Funktionen in Konflikt steht (siehehttps://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdffür weitere Informationen zu diesem Thema). Glücklicherweise ordnen viele Satzmaschinen die Punkte automatisch neu an, um sicherzustellen, dass sie gemäß den Spezifikationen vieler Schriftarten kombiniert werden. Ich bin ziemlich sicher, dass XeLaTeX eine dieser Maschinen ist, da es hebräische Buchstaben mit mehreren Punkten korrekt setzt, selbst wenn der hebräische Text im NFC-Format vorliegt.

Meine Frage ist, ob ConTeXt mit LuaTeX dieselbe Situation korrekt handhaben kann. Im folgenden Minimalbeispiel setzt ConTeXt Hebräisch korrekt, wenn die Zeichen in der typografisch empfohlenen Reihenfolge stehen, aber nicht, wenn sie in der kanonischen Unicode-Reihenfolge stehen:

%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

Ich habe dies mit ConTeXt Version 2020.03.10 gesetzt, wie sie mit TeXLive 2020 veröffentlicht wurde. Ich habe die hebräische Schriftart SBL vonhttps://www.sbl-site.org/educational/BiblicalFonts_SBLHebrew.aspx. Laut dem Benutzerhandbuch der Schriftart (siehe den Link über dem MWE) sollte die Schriftart in der Lage sein, die Zeichen unabhängig von ihrer Reihenfolge nach dem Konsonanten so zu kombinieren, dass sie die richtige Glyphe bilden. Dies scheint hier jedoch nicht der Fall zu sein.

Gibt es eine OpenType-Funktion, die ich in meinem \definefontfeatureAufruf aktivieren muss, um dies zu beheben, oder gibt es ein Modul oder eine Option, die ich einbinden kann, damit ConTeXt Unicode-normalisiertes Hebräisch so setzt, als wäre es in der empfohlenen Reihenfolge angeordnet, wie es XeLaTeX tut? Ich sehe, dass das Modul „uninormalize“ erwähnt wird inXeLaTeX, LuaLaTeX, Fontspec, Unicode und Normalisierung; kann das mit ConTeXt verwendet werden?

Antwort1

Ich habe diese Frage auf der ConTeXt-Mailingliste gepostet (https://www.mail-archive.com/[email geschützt]/), und von dort aus erfuhr ich, dass ConTeXt keinen Mechanismus implementiert hatte, um hebräische Punkte so neu anzuordnen, dass er mit den in den meisten hebräischen Schriftarten implementierten Ersetzungsregeln optimal funktionierte. Hans Hagen bot im Laufe mehrerer Tage freundlicherweise seine Hilfe an und fügte dem Standardfunktionssatz einen Neuordnungsmechanismus hinzu hebrew. Jetzt funktioniert das MWE in meiner Frage wie erwartet, wenn die Schriftartdeklaration in geändert wird \definefontfamily[hebrew] [rm] [SBL Hebrew] [features=hebrew].

Diese Funktion sollte in der neuesten Version von ConTeXt implementiert werden (http://www.pragma-ade.com/download-1.htm).

verwandte Informationen