在以下示例中
\definefont[Shehkl][name:Scheherazade*arabic at 15pt] % or file:amiri-regular.ttf*... file:alq.ttf
\definestartstop[Arab][commands=\setups{Arabic}]
\def\Arab{\doArab}
\def\Arab[#1]{
\startArab
\noindentation
\setupalign[r2l]\Shehkl#1
\stopArab
}
\starttext
--------------------------------------------------------------------------------------------- (Fitra -\Arab[فطرة])
\stoptext
中的最后一个括号(Fitra -\Arab[فطرة])
被放到了下一行 - 当然是个错误。避免这种情况(由于没有正确处理阿拉伯语?)的一种方法是将其全部放入类似的东西中\neverbrakethis[]
- 我从 LaTeX 中知道,这里的等价物是什么 - 或者有更好的解决方案吗?
答案1
我不太了解阿拉伯语排版,但您的 ConTeXt 源似乎不正确。为什么不使用以下更简单、更直接的方法:
\usemodule[simplefonts]
\definesimplefont[arabicfont][Scheherazade][size=15pt, features=arabic]
\startsetups arabic
\righttoleft
\language[ar]
\stopsetups
\definestartstop
[arabic]
[commands=\setups{arabic}, style=\arabicfont]
\starttext
English text \arabic{arabic text} english text
\startarabic
.... arabic paragraph
\stoparabic
\stoptext
笔记:
理想情况下,在 ConTeXt 中,您希望切换到完整的 TypeScript,而不仅仅是切换主字体。使用 TypeScript,粗体、斜体、无粗体等字体变体可以正常工作。我不知道这些变体是否适用于阿拉伯语。
我使用 simplefonts 模块只是因为我发现它与低级字体命令相比更方便。