在 ConTeXt 中设置特定的字体替代

在 ConTeXt 中设置特定的字体替代

我想了解如何使用 在 CoNTeXt 中设置字体\definefontfamily。它或多或少可以工作,只是我不明白 ConTeXt 如何找到字体以及如何指定字体名称。在下面的例子中,我想使用完全不同的字体作为倾斜的替代字体:

\definefontfamily [mainface] [rm] [PT Serif] [sl=file:PonomarUnicode]
\definefontfamily [mainface] [ss] [PT Sans]
\definefontfamily [mainface] [tt] [PT Mono]
\definefontfamily [mainface] [mm] [TeX Gyre Pagella Math]

\setupbodyfont[mainface]

\mainlanguage[russian]

\starttext
Немного {\em русского} текста для пробы.

And some English too, with a formula:
\startformula
  \frac{dU_i}{dt} = \int_0^\infty e^{-tx^2} \, dx.
\stopformula

\stoptext

我在 中安装了系统范围内的所有字体/Library/Fonts,PT 字体随 OS X 一起提供(我相信许多 Linux 发行版也附带)。TeX Gyre 和 Ponomar Unicode 是从 MacTeX 安装的,作为otf。Ponomar Unicode 可以在 中找到/Library/TeX/Root/texmf-dist/fonts/opentype/public/fonts-churchslavonic

当我编译上述文档时,它会获取除 Ponomar Unicode 之外的所有字体:

CoNTeXt fonts

如果一切正确的话,“русского”这个词应该被强调,如下所示:

Ponomar

显然,我搞错了“file:PonomarUnicode”部分。所以问题是如何让它工作,以及 ConTeXt 实际上如何将字体引用解析到\definefontfamily字体文件中?

答案1

我不确定问题是什么,也不知道到底是什么解决了它。我重新安装独立 ConTeXt,这次我还运行了. /Users/myname/context/tex/setuptex,正如安装结束时所建议的那样。在安装 ContTeXt 之前安装所有字体可能也很重要。

无论如何,对于如何引用文档中的字体的问题,可以使用以下命令检查 ConTeXt 可用的字体列表mtxrun

$ mtxrun --script fonts --list --all --pattern=* | grep Ponomar
ponomarunicode                               ponomarunicode                             /Library/Fonts/PonomarUnicode.otf
ponomarunicodenormal                         ponomarunicode                             /Library/Fonts/PonomarUnicode.otf
ponomarunicoderegular                        ponomarunicode                             /Library/Fonts/PonomarUnicode.otf

另外,一定要检查关于这个话题的另一个答案

更新。我安装了 Neo Euler,但情况还是一样,我无法使用它,甚至在之后也是如此mtxrun --script fonts --reload。我再次重新安装了 ConTeXt,它就可以正常工作了。

相关内容