最小 ConTeXt 和 Husayni 示例

最小 ConTeXt 和 Husayni 示例

我想使用 ConTeXt 和Husayni 字体。我可以看到 lfg 文件位于此处:

  1. /usr/share/texmf/tex/context/fonts/husayni.lfg
  2. /usr/local/context/tex/texmf-context/tex/context/fonts/mkiv/husayni.lfg

然而,我尝试过的所有方法都无法正确渲染简单的文档(尽管我能够使用 ConTeXt 和 Amiri 字体渲染出相同的阿拉伯语)。在谷歌上搜索了一下之后,问题可能出在文件husayni.ttf,引用自一些演示源代码文件,但我的系统上找不到它。

该文件从未发布过吗?是不是字体不适合使用,还是我的设置有误?

答案1

  1. 首先,你必须调查一下你可以使用哪种字体来完成你的工作。然后,这里有一些在 ConTeXt Standalone 中可以正常工作的命令:
  2. 因此,您可以在系统上查找阿拉伯字体;为此,打开一个终端(Windows 上为 cmd,Linux 或 Mac OS X 上为 xterm),然后输入:cd /context/tex/texmmf-win64/bin[或可执行文件所在的目录mtxrun,位于您的 ConTeXt 套件内];
  3. 重新加载字体数据库:mtxrun --script fonts --reload
  4. 列出所有字体:mtxrun --script fonts --list --all
  5. 搜索一种特殊的阿拉伯字体(这里是husayni.ttf):(mtxrun --script fonts --list --pattern=husay* --all请注意,您可以使用一些代码来搜索另一种字体--pattern=*font*)。
  6. 现在,如果您的目标是用阿拉伯语以外的其他语言(例如:英语)编写文本,其中有一些阿拉伯语句子,最好的选择是在 ConTeXt 中使用一些序言,在其中设置主语言并使用命令\definefallbackfamily\definefontfamily命令。但是,要做到这一点,首先您必须确保您要使用的字体能够正确打印阿拉伯语。
  7. 如果您的系统上没有阿拉伯字体,请从这里下载并安装(c:\windows\fonts;Linux:~.fonts/Library):https://fontlibrary.org/fr/font/hus​​saini-nastaleeq
  8. 不要忘记使用“mtxrun”命令重新加载字体数据库。

并尝试此代码:

\definefallbackfamily [mainface] [sans] [hussaini-nastaleeq] [range=arabic]
\definefontfamily [mainface] [serif] [GFS Didot]
\setupbodyfont[mainface]
\setuplanguage[en][patterns={en}]
\startext

مرحبا يا عالم (Marhaba Ya Alam)
\stoptext

相关内容