
Estoy escribiendo un documento en hebreo que incluye señalar (por ejemplo, vocales, puntos shin y sin, dagesh, etc.) usando ConTeXt. El texto hebreo que quiero componer se ha normalizado en la forma canónica NFC de Unicode. Es bien sabido que el orden canónico Unicode de los puntos hebreos entra en conflicto con el orden de marcas recomendado para puntos específicos según sus funciones (verhttps://www.sbl-site.org/Fonts/SBLHebrewUserManual1.5x.pdfpara más información sobre este tema). Afortunadamente, muchos motores de composición reordenan automáticamente los puntos para garantizar que se combinen de acuerdo con las especificaciones de muchas fuentes. Estoy bastante seguro de que XeLaTeX es uno de estos, ya que escribe letras hebreas con múltiples puntos correctamente incluso cuando el texto hebreo está en formato NFC.
Mi pregunta es, ¿puede ConTeXt con LuaTeX manejar correctamente la misma situación? En el siguiente ejemplo mínimo, las composiciones tipográficas de ConTeXt señalaron el hebreo correctamente cuando los caracteres están en el orden tipográfico recomendado, pero no cuando están en el orden canónico 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
Escribí esto usando la versión 2020.03.10 de ConTeXt, publicada con TeXLive 2020. Obtuve la fuente hebrea SBL dehttps://www.sbl-site.org/educational/BiblicalFonts_SBLHebrew.aspx. Según el manual de usuario de la fuente (consulte el enlace arriba del MWE), la fuente debería poder combinar las marcas para formar el glifo correcto independientemente de su orden después de la consonante, pero ese no parece ser el caso aquí.
¿Hay alguna función OpenType que deba habilitar en mi \definefontfeature
llamada para solucionar este problema, o hay algún módulo u opción que pueda incluir para que ConTeXt escriba hebreo normalizado Unicode como si estuviera ordenado de la manera recomendada, como lo hace XeLaTeX? Veo que el módulo uninormalize se menciona enXeLaTeX, LuaLaTeX, fontspec, unicode y normalización; ¿Se puede usar con ConTeXt?
Respuesta1
Publiqué esta pregunta en la lista de correo de ConTeXt (https://www.mail-archive.com/[correo electrónico protegido]/), y a partir de ahí aprendí que ConTeXt no tenía implementado un mecanismo para reordenar los puntos hebreos de una manera que funcionara mejor con las reglas de sustitución implementadas en la mayoría de las fuentes hebreas. Hans Hagen ofreció amablemente su ayuda a lo largo de varios días y añadió un mecanismo de reordenamiento al hebrew
conjunto de funciones estándar. Ahora, el MWE en mi pregunta funcionará como se esperaba si la declaración de fuente se cambia a \definefontfamily[hebrew] [rm] [SBL Hebrew] [features=hebrew]
.
Esta característica debe implementarse en la última versión de ConTeXt (http://www.pragma-ade.com/download-1.htm).