![如何纠正 ConTeXt 中的“bodyfont '15pt' 已定义(最好全局定义)”错误?](https://linux22.com/image/350632/%E5%A6%82%E4%BD%95%E7%BA%A0%E6%AD%A3%20ConTeXt%20%E4%B8%AD%E7%9A%84%E2%80%9Cbodyfont%20'15pt'%20%E5%B7%B2%E5%AE%9A%E4%B9%89%EF%BC%88%E6%9C%80%E5%A5%BD%E5%85%A8%E5%B1%80%E5%AE%9A%E4%B9%89%EF%BC%89%E2%80%9D%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我有一个文档,我想对其进行优化以便在 eink 阅读器上查看。因此,我需要将字体设置得更大,将默认大小设置为 15 pt。页面上的其他项目(例如下标文本)会根据此大小进行缩放。我使用了以下代码:
\definefontfamily [sourcehansans] [sans] [sourcehansanssclight][features=chinese]
\definefontfamily [sourcehansans] [math] [modern]
\setupbodyfont [sourcehansans,ss,15pt]
\starttext
This is a test.
\stoptext
这会生成具有所需外观的 PDF,但是当我编译此代码时,却收到以下警告:
bodyfont '15pt' is defined (can better be done global)
对于长文档,此错误将会打印数千次。
我怎样才能修正我的代码,使默认字体大小为 15 点,但不会出现此错误?
答案1
要消除尺寸警告,请使用
\definebodyfontenvironment[15pt]
但你的字体定义仍然是错误的。要使用同义词,modern
你必须使用\definetypeface
。那么最好将其全部打包在专用的打字稿中。
\starttypescript[sourcehansans]
\definetypeface [\typescriptone] [rm] [serif] [modern] [default] [features=default]
\definetypeface [\typescriptone] [ss] [sans] [sourcehansanssclight] [default] [features=chinese]
\definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=none]
\definetypeface [\typescriptone] [mm] [math] [modern] [default]
\stoptypescript
\definebodyfontenvironment[15pt]
\setupbodyfont [sourcehansans,ss,15pt]
\starttext
This is a test.
\stoptext
这仍然会发出警告
fonts > typescripts > unknown library 'sourcehansanssclight'
你必须定义一个sourcehansanssclight
类似的打字稿
\starttypescript [sans] [sourcehansanssclight]
\definefontsynonym [Sans] [file:...]
\definefontsynonym [SansBold] [file:...]
\definefontsynonym [SansItalic] [file:...]
\definefontsynonym [SansBoldItalic] [file:...]
\definefontsynonym [SansSlanted] [file:...]
\definefontsynonym [SansBoldSlanted] [file:...]
\stoptypescript
在其中填写点的正确文件名。