如何在 ConTeXt 中写入阿拉伯字体(ttf)?

如何在 ConTeXt 中写入阿拉伯字体(ttf)?

我是 ConTeXt 的新手。我想使用玛贾拉位于"C:\Context\tex\texmf\fonts\truetype\public"。我想不加修改地使用它。我看过https://wiki.contextgarden.net/Arabic_fonts,但看起来非常混乱。顺便说一句,我正在使用:

mtx-context     | ConTeXt Process Management 1.04
mtx-context     |
mtx-context     | main context file: C:/Context/tex/texmf-context/tex/context/base/mkiv/context.mkiv
mtx-context     | current version: 2020.11.19 11:28
mtx-context     | main context file: C:/Context/tex/texmf-context/tex/context/base/mkiv/context.mkxl
mtx-context     | current version: 2020.11.19 11:28
sakkalmajalla          sakkalmajalla   sakkalmajalla       c:/windows/fonts/majalla.ttf
sakkalmajallabold      sakkalmajalla   sakkalmajallabold   c:/windows/fonts/majallab.ttf
sakkalmajallanormal    sakkalmajalla   sakkalmajalla       c:/windows/fonts/majalla.ttf
sakkalmajallaregular   sakkalmajalla   sakkalmajalla       c:/windows/fonts/majalla.ttf
\mainlanguage[arabic]
\setupbodyfont[majalla]
\starttext
أهلاً وسهلاً
\stoptext

日志文件是:https://gofile.io/d/fc5RbG

答案1

编辑(14:15 GMT -05:00):您可以使用预定义的阿拉伯语功能(因此您不需要先定义它):

\mainlanguage[arabic]
\definefontfamily[main][serif][sakkalmajalla][features=arabic]
\setupbodyfont[main]
\setupdirections[bidi=global]
\starttext
أهلاً وسهلاً
\stoptext

Hans 已经修复了 LMTX 中的连字和变音符号,因此仅使用context <myfilename>.tex应该可以。如果您有错误要报告,请考虑加入ConTeXt 邮件列表

旧答案:

ConTeXt 已经找到了您的字体,sakkalmajalla您应该使用该字体名称来代替majalla。如果您不想像 Wiki 中那样使用打字稿,以下内容似乎适用于 ConTeXt MkIV ( context --luatex <myfilename>.tex)。在最新的 LMTX 中,lam-alif 连字符似乎不起作用,所以我要报告它以防它是一个错误,所以我们需要一点耐心,直到它被修复。

\mainlanguage[arabic]
\definefontfeature
  [arabic]
  [mode=node,language=dflt,script=arab,
   init=yes,medi=yes,fina=yes,isol=yes,
   liga=yes,dlig=yes,rlig=yes,clig=yes,
   mark=yes,mkmk=yes,kern=yes,curs=yes]
\definefontfamily[main][serif][sakkalmajalla][features=arabic]
\setupbodyfont[main]
\setupdirections[bidi=global]
\starttext
أهلاً وسهلاً
\stoptext

相关内容