我正在使用 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
:
输出中缺少字符 ⨿,这与 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 感谢您的评论。