自动安装和大小类别,如 Caption、SubHead、Display 等

自动安装和大小类别,如 Caption、SubHead、Display 等

是否可以autoinst处理同一字体系列/子系列的不同设计大小,例如 Display、Regular、SubHead 和 Caption?

例如,我尝试运行autoinst具有某些子系列(如和BulmerMTStd)的 Display 大小的程序。如果你直接运行,程序会失败,并显示类似BulmerMTStd-BoldItalic.otfBulmerMTStd-BoldItalicDisp.otfautoinst 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
    }{}
    
    \DeclareFontShape{LY1}{Bulmer-LF}{b}{it}{
      <-> \Bulmer@@scale BulmerMTStd-BoldItalic-lf-ly1
    }{}
    
    变成(任意选择 18pt,两个设计尺寸的平均值,作为截止值)
    \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作为截止点是否是一件好事。

相关内容