替换 ConTeXt 中缺失的字体

替换 ConTeXt 中缺失的字体

我正在使用 ConTeXt 和 Palatino 字体写一些笔记。笔记包括包含 Unicode 字符的逐字 Coq 代码。问题是其中一些字符未显示在 PDF 输出中。如何在 ConTeXt 中替换缺失的字符?

以下是一个说明该问题的文件:

\usetypescript
  [pagella]

\setupbodyfont
  [pagella]

\enabletrackers
  [fonts.missing]

\starttext

Here is some code from {\tt https://github.com/UniMath/UniMath/blob/master/UniMath/Foundations/PartA.v}:

\starttyping
Definition rdistrtocoprod (X Y Z : UU) :
  X × (Y ⨿ Z) → (X × Y) ⨿ (X × Z).
\stoptyping

\stoptext

以下是该命令输出的相关部分context file.tex

PDF 输出缺少字体

输出中缺少字符 ⨿,这与 ConTeXt 输入中出现的字符相对应。日志文件显示:

fonts > checking > char ⨿ (U+02A3F) in font 'LMMono10-Regular' with id 5: missing

答案1

谢谢Aditya 的评论,我发现 STIX 字体有缺失的字符,并且能被 ConTeXt 识别。以下文件现在生成 PDF 输出,其中缺失的字符由 STIX 字体替换。

\usetypescript
  [pagella]

%% Unicode block `Supplemental Mathematical Operators', range
%% 2A00--2AFF, http://unicode.org/charts/PDF/Unicode-3.2/U32-2A00.pdf.

\definefontfallback
  [SupplementalMathematicalOperators]
  [STIXGeneralRegular]
  [supplementalmathematicaloperators]

\definefontsynonym
  [Mono]
  [pagella]
  [fallbacks=SupplementalMathematicalOperators]

\enabletrackers
  [fonts.missing]

\setupbodyfont
  [pagella]

\starttext

Here is some code from {\tt https://github.com/UniMath/UniMath/blob/master/UniMath/Foundations/PartA.v}:

\starttyping
Definition rdistrtocoprod (X Y Z : UU) :
  X × (Y ⨿ Z) → (X × Y) ⨿ (X × Z).
\stoptyping

\stoptext

以下是该命令输出的相关部分context file.tex

在此处输入图片描述

输出中不再缺少字符 ⨿。日志文件未报告任何缺失的字体,并显示:

system > 14: filename=/usr/share/fonts/opentype/stix/STIXGeneral-Regular.otf

因此context似乎从操作系统中获取了丢失的字体。

@Aditya 感谢您的评论。

相关内容