如何加载 Source Sans Pro Context

如何加载 Source Sans Pro Context

我确实没有看到任何关于如何在 Context 中加载字体的正确指南。字体、系列和 Typescript 有很多不同的功能,但没有关于如何使用它们或它们之间区别的正确解释。

如果我想将 Source Sans Pro 作为无衬线字体与 charter 和 mathdesign 一起使用,我该怎么做?

\loadtypescriptfile[mathdesign]
\definefontfamily [mainface] [rm]       [charter]
\definefontfamily [mainface] [ss]       [Source Sans Pro]
\definefontfamily [mainface] [math]     [charter]
% These don't work either
%\definefontfamily [mainface] [mm]      [charter]
%\definefontfamily [mainface] [mm]      [mathdesign]
\setupbodyfont[mainface,10pt]

从没有编译时错误的意义上来说,它不起作用。它只是用默认字体编译文档。

答案1

Charter 和 Source Sans Pro 的 Typescript 在 ConTeXt 系统中随时可用。因此,利用它们是很自然的。然而,这种幼稚的方法行不通:

\definetypeface [mainface] [rm] [serif] [charter] [default]
\definetypeface [mainface] [ss] [sans]  [source]  [default]
\definetypeface [mainface] [tt] [mono]  [source]  [default]
\definetypeface [mainface] [mm] [math]  [charter] [default]
\setupbodyfont [mainface]

\starttext

\samplefile{knuth}

\sans{\samplefile{knuth}}

\stoptext

生成的文件将以所有宪章形式排版,并且日志包含以下消息:

fonts           > defining > forced type 'ttf' of 'SourceSansPro-Regular' not found
fonts           > defining > font with asked name 'SourceSansPro-Regular' is not found using lookup 'file'
fonts           > defining > unknown font 'SourceSansPro-Regular', loading aborted

这是因为type-imp-source.mkivtypescript 对.ttf扩展名进行了硬编码,但文件使用.otf扩展名通过 TeX Live 进行分发。要解决此问题,只需将 typescript 复制到工作目录并删除所有.ttf扩展名。在 Linux(可能还有 Mac OS)上,您可以使用这两个命令执行此操作。

$ cp `kpsewhich type-imp-source.mkiv` .
$ sed -i 's/\.ttf//g' type-imp-source.mkiv

之后它应该可以正常排版。要确保 ConTeXt 使用编辑后的打字稿文件,请检查日志中是否有类似这样的行

open source     > level 3, order 5, name 'type-imp-source.mkiv'

在此处输入图片描述

相关内容