我想使用 ConTeXt 和Husayni 字体。我可以看到 lfg 文件位于此处:
- /usr/share/texmf/tex/context/fonts/husayni.lfg
- /usr/local/context/tex/texmf-context/tex/context/fonts/mkiv/husayni.lfg
然而,我尝试过的所有方法都无法正确渲染简单的文档(尽管我能够使用 ConTeXt 和 Amiri 字体渲染出相同的阿拉伯语)。在谷歌上搜索了一下之后,问题可能出在文件husayni.ttf,引用自一些演示和源代码文件,但我的系统上找不到它。
该文件从未发布过吗?是不是字体不适合使用,还是我的设置有误?
答案1
- 首先,你必须调查一下你可以使用哪种字体来完成你的工作。然后,这里有一些在 ConTeXt Standalone 中可以正常工作的命令:
- 因此,您可以在系统上查找阿拉伯字体;为此,打开一个终端(Windows 上为 cmd,Linux 或 Mac OS X 上为 xterm),然后输入:
cd /context/tex/texmmf-win64/bin
[或可执行文件所在的目录mtxrun
,位于您的 ConTeXt 套件内]; - 重新加载字体数据库:
mtxrun --script fonts --reload
- 列出所有字体:
mtxrun --script fonts --list --all
。 - 搜索一种特殊的阿拉伯字体(这里是husayni.ttf):(
mtxrun --script fonts --list --pattern=husay* --all
请注意,您可以使用一些代码来搜索另一种字体--pattern=*font*
)。 - 现在,如果您的目标是用阿拉伯语以外的其他语言(例如:英语)编写文本,其中有一些阿拉伯语句子,最好的选择是在 ConTeXt 中使用一些序言,在其中设置主语言并使用命令
\definefallbackfamily
和\definefontfamily
命令。但是,要做到这一点,首先您必须确保您要使用的字体能够正确打印阿拉伯语。 - 如果您的系统上没有阿拉伯字体,请从这里下载并安装(c:\windows\fonts;Linux:~.fonts/Library):https://fontlibrary.org/fr/font/hussaini-nastaleeq
- 不要忘记使用“mtxrun”命令重新加载字体数据库。
并尝试此代码:
\definefallbackfamily [mainface] [sans] [hussaini-nastaleeq] [range=arabic]
\definefontfamily [mainface] [serif] [GFS Didot]
\setupbodyfont[mainface]
\setuplanguage[en][patterns={en}]
\startext
مرحبا يا عالم (Marhaba Ya Alam)
\stoptext