在希伯来语文本中将变音符号与虚线圆圈相结合

在希伯来语文本中将变音符号与虚线圆圈相结合

我想演示希伯来语中的各种变音符号。

Unicode 包含一个虚线圆圈U+25CC符号,用于此目的。但是,当我尝试将它们组合在一起时,\texthebrew这些字符却无法组合(与希伯来字母中的相同变音符号不同)。

错位

奇怪的是,它们在外面使用时确实可以结合\texthebrew

对齐

但是,我将无法使用不支持希伯来语作为主要字体的字体。

如何在希伯来语文本中实现相同的组合行为?

现场演示:https://www.overleaf.com/read/pnzryjjgdgjs

完整可重现的示例:

\documentclass{article}

\usepackage{fontspec}
\setmainfont{Cardo}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\hebrewfont[Script=Hebrew, Scale=MatchUppercase, Ligatures=TeX]{Cardo}

\title{hebrew combining circ}

\begin{document}
Here the diacritics render correctly: \texthebrew{בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים}

Here they are misaligned: \texthebrew{ְ◌}

It works outside of \textbackslash{}texthebrew: ְ◌

But then I cannot use a different font (Gentium).

\end{document}

我正在使用 LuaLaTeX。

答案1

在 Unicode 中,组合字符必须始终跟随它们应该与之组合的字母。因此,如果你想要将代码点 U+25CC(虚线圆圈)和 U+05B0(希伯来点 SHEVA)组合起来,你必须第一的写入 U+25CC,然后U+05B0。

另一方面,您的示例对它们的排序不同:首先是组合字符,然后是虚线圆圈。因此它们不组合。

如果你纠正顺序,你会得到

\documentclass{article}

\usepackage{fontspec}
\setmainfont[Script=Hebrew]{Cardo}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguage{hebrew}
\newfontfamily\hebrewfont[Renderer=HarfBuzz,Script=Hebrew, Scale=MatchUppercase, Ligatures=TeX]{Cardo}

\title{hebrew combining circ}

\begin{document}
\showoutput
Here the diacritics render correctly: \texthebrew{בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים}

Here they are misaligned: \texthebrew{◌ְ}

It works outside of \textbackslash{}texthebrew: ◌ְ

But then I cannot use a different font (Gentium).

\end{document}

在此处输入图片描述

现在您可能想知道为什么它在 之外不再起作用\texthebrew:由于 HEBREW POINT SHEVA 仅用于希伯来语,因此该字体仅包含针对希伯来语脚本的定位规则。因此,在 之外的放置\texthebrew(脚本设置为拉丁语)基本上是随机的。

相关内容