我正在尝试掌握 ConTeXt 中的打字脚本。在所有示例和所有文档中,我就是不清楚发生了什么。
我下载了一种新字体用于此示例这里.它被称为克莱米斯基输出mtxrun --script fonts --info
为这里。
我的测试文件如下:
\starttypescript[serif][kleymissky]
\setups[font:fallback:serif]
\definefontsynonym[Serif][name:kleymissky][features=default]
\stoptypescript
\starttypescript [myfont]
\definetypeface[myfont][rm][serif][kleymissky][default]
\definetypeface[myfont][ss][sans][modern][default]
\definetypeface[myfont][tt][mono][modern][default]
\stoptypescript
\usebodyfont[myfont]
\starttext
{\tf This is tf.}
{\ss This is ss.}
{\tt This is tt.}
{\definedfont[name:kleymissky] This is kleymissky.}
{\definedfont[name:modern] This is latin-modern.}
\stoptext
目的是使用 kleymissky 作为主衬线字体,但将 ss 和 tt 恢复为 Latin Modern 字体。但这不是行为:
为了进行比较,我尝试了该simplefonts
模块,它最终实现了我想要的效果:
\usemodule [simplefonts]
\setmainfont [kleymissky]
\starttext
{\tf This is tf.}
{\ss This is ss.}
{\tt This is tt.}
{\definedfont[name:kleymissky] This is kleymissky.}
{\definedfont[name:modern] This is latin-modern.}
\stoptext
我得到:
显然我做错了什么,但我不明白是什么。有人能帮我修复这个打字稿和/或帮助我了解发生了什么吗?
答案1
用以替换\usebodyfont[myfont]
示例中的行以\setupbodyfont[myfont]
启用您的字体。
该模块的替代方案simplefonts
是\definefontfamily
来自核心的命令,它允许您使用字体而无需编写打字稿。
\definefontfamily [kleymissky] [rm] [Kleymissky]
\definefontfamily [kleymissky] [ss] [Latin Modern Sans]
\definefontfamily [kleymissky] [tt] [Latin Modern Mono] [features=none]
\definefontfamily [kleymissky] [mm] [Latin Modern Math]
\setupbodyfont[kleymissky]
\starttext
This is rm.
{\ss This is ss.}
{\tt This is tt.}
\stoptext