我在使用梵文字体时遇到了一个奇怪的问题索比卡在 ConTeXt 中,一些字形中的 rakaara 形式未正确形成。
以下是我用来演示该问题的示例文档:
\setupbodyfont[shobhika]
\definehighlight
[wr]
[color=red]
\starttext
\startcolumns
दंष्ट्रा
ट्रा
ट्रि ट्री
ट्रो
ट्रौ
\column
त्रिदल \wr{त्रेता}
विक्रिय \wr{विक्रेता} क्रोड
प्रीति \wr{प्रेप्सित}
तच्छ्री \wr{श्रेष्ठ}
\stopcolumns
\stoptext
上面的打字稿‘shobhika’如下:
\starttypescript [serif] [shobhika]
\definefontsynonym
[Serif]
[name:shobhikaregular]
[features=devanagari-two]
\definefontsynonym
[SerifBold]
[name:shobhikabold]
[features=devanagari-two]
\stoptypescript
\starttypescript [shobhika]
\definetypeface [shobhika] [rm] [serif] [shobhika]
\stoptypescript
使用这个我称之为“dev2”的打字稿,我得到以下输出:
除了 ट-varga 之外,rakaar 形式并非在所有情况下都正确形成(以红色突出显示)。'devanagari-two' 功能使用 'dev2' 脚本标签。
现在,如果我改用以下 typescript(使用 'deva' 脚本标签而不是 'dev2'),
\starttypescript [serif] [shobhika]
\definefontsynonym
[Serif]
[name:shobhikaregular]
[features=devanagari-one]
\definefontsynonym
[SerifBold]
[name:shobhikabold]
[features=devanagari-one]
\stoptypescript
\starttypescript [shobhika]
\definetypeface [shobhika] [rm] [serif] [shobhika]
\stoptypescript
与文件
\setupbodyfont[shobhika]
\definehighlight
[wr]
[color=red]
\starttext
\startcolumns
\wr{%
दंष्ट्रा
ट्रा ट्रे
}
ट्रि ट्री
\wr{%
ट्रो
ट्रौ}
\column
त्रिदल त्रेता
विक्रिय विक्रेताक्रोड
प्रीति प्रेप्सित
\wr{तच्छ्री} श्रेष्ठ इन्द्रो
\stopcolumns
\stoptext
我得到以下输出:
在这里,对于ट-varga 以及一些涉及辅音छ 的字形,rakaar 形式形成不正确。
使用上面的“devanagari-one”打字稿,我可以通过编写如下形式来“规避”此问题
छ्र + ZWS + 天城文元音符号
其中 ZWS 是零宽度空格 U+200B。
我必须在此提及,在 XeLaTeX 中使用 Shobhika 字体时,无论是使用“deva”还是“dev2”脚本标签,我都没有遇到任何问题。我还必须提及,我在 ConTeXt 中尝试过其他一些梵文字体,没有遇到这样的问题。我还查看了 ConTeXt 源代码的 font-pre.mkiv,并尝试了混合使用功能和脚本标签,但不幸的是,没有成功。正如 ConTeXt wiki 所建议的那样,我还咨询了 MS页关于这个话题。
在过去的两年里,我已经完全转向使用 ConTeXt 进行大多数排版。我绝不是 ConTeXt 方面的专家,但同时,我谦虚地承认我也不是新手。作为一名学生,我使用 ConTeXt 制作出包含大量数学内容的令人惊叹的英文文档,没有遇到任何问题。
但是,我必须承认,我不确定这是 ConTeXt 的问题还是字体本身的问题。我将非常感谢这里的任何成员的帮助。
谢谢,Kauśika
答案1
我对天城文一无所知。但 xelatex 和 context 之间的区别就是 context 字体渲染器和 harfbuzz 之间的区别。
您可以通过明确设置渲染器来测试与 lualatex 的差异:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Shobhika-Regular.otf}[Script=Devanagari]
\setsansfont{Shobhika-Regular.otf}[Script=Devanagari,Renderer=Harfbuzz]
\def\wr{}
\begin{document}
\begin{minipage}{2cm}
त्रेता
\end{minipage}
\quad%
\begin{minipage}{2cm}
\sffamily
त्रेता
\end{minipage}
\end{document}
除了向 context 邮件列表报告此问题之外,您可能没有什么可以做的。context 不包含 harfbuzz,因此没有选项可以切换到此渲染器。