是否可以autoinst
处理同一字体系列/子系列的不同设计大小,例如 Display、Regular、SubHead 和 Caption?
例如,我尝试运行autoinst
具有某些子系列(如和BulmerMTStd
)的 Display 大小的程序。如果你直接运行,程序会失败,并显示类似BulmerMTStd-BoldItalic.otf
BulmerMTStd-BoldItalicDisp.otf
autoinst BulmerMTStd-*.otf
[ERROR] I've parsed both BulmerMTStd-BoldItalicDisp.otf
and BulmerMTStd-BoldItalic.otf as
Family: Bulmer
Weight: bold
Width: regular
Shape: italic
Size: 0-0
Smallcaps: 0
看不出两者有什么区别。
otfinfo
没有给出尺寸范围对于两者,但它确实给出了设计尺寸:
$ otfinfo --size BulmerMTStd-BoldItalic.otf
design size 12 pt
$ otfinfo --size BulmerMTStd-BoldItalicDisp.otf
design size 24 pt
是否autoinst
有某种方法可以合并这两个,这样我就不必为不同的尺寸准备两个单独的包装了?如果没有,是否只需分别处理这两个尺寸,然后执行以下操作:
- 只需合并所有
.tfm
、.vf
、.pfb
、.enc
文件(如果您维护相同的输出目录,则会自动完成,并且最终也会得到一个统一的.map
文件) - 手动编辑
.fd
文件,无论 Display 系列和 Regular 系列之间有重叠,都可以\DeclareFontShape
通过设置尺寸范围来组合命令,例如
和\DeclareFontShape{LY1}{Bulmer-LF}{b}{it}{ <-> \Bulmer@@scale BulmerMTStd-BoldItalicDisp-lf-ly1 }{}
变成(任意选择 18pt,两个设计尺寸的平均值,作为截止值)\DeclareFontShape{LY1}{Bulmer-LF}{b}{it}{ <-> \Bulmer@@scale BulmerMTStd-BoldItalic-lf-ly1 }{}
\DeclareFontShape{LY1}{Bulmer-LF}{b}{it}{ <-18> \Bulmer@@scale BulmerMTStd-BoldItalic-lf-ly1 <18-> \Bulmer@@scale BulmerMTStd-BoldItalicDisp-lf-ly1 }{}
- 合并
.sty
文件中的差异。比较它们,我发现特别引用的 Display 和 Regular 版本\font\testfont=BulmerMTStd-Regular-osf-ot1 at \f@size pt\testfont x
最终会Bulmer@@scale
为.fd
文件定义。我想我可以为这个定义选择一个(Display 或 Regular),或者我可以尝试定义两个不同的版本,例如\Bulmer@@scale@Regular
和\Bulmer@@scale@Display
,然后相应地编辑.fd
文件。
我仍然想知道是否autoinst
应该自己处理这个问题——否则,我想我已经概述了我的方法,现在必须尝试一下。也许一些圣人会告诉我这种方法是否有效。或者选择18pt
作为截止点是否是一件好事。