如果pdftex.map在一个字体的条目中有两个编码文件,这是什么意思?
背景:我是 Python 绘图库 matplotlib 的维护者之一。matplotlib 的一个特性是它可以通过 TeX 处理所有文本字符串,读取生成的 dvi 文件并将结果嵌入到绘图中。在实现此功能时,我发现 dvi 文件中引用的字体必须在地图中查找;在典型的 TeX 发行版中可用的少数地图文件中,我选择了 pdftex.map,该文档在第 5 章中有记录pdftex 手册该手册为该映射文件中的每一行指定了以下格式:
tfmname basename fontflags special encodingfile fontfile
它说special
、encodingfile
和fontfile
字段可以按任何顺序排列,并且encodingfile
可以省略,但并没有说可以有多个encodingfile
。
现在有些用户报告TeX Live 2010 安装了一个 pdftex.map 文件,其中包含以下行:
pbkdo8y URWBookmanL-DemiBold ".167 SlantFont TeXnANSIEncoding ReEncodeFont" <texnansi.enc <8r.enc <ubkd8a.pfb
这是 TeX Live 中的一个错误吗?pdftex 会如何处理这些信息?它是否包含一个嵌入式 PostScript 解释器,该解释器读取两个编码文件、解析字段special
并确定 texnansi.enc 包含需要应用的编码?
答案1
我不知道额外的 enc 文件是否有任何危害(我对此表示怀疑),但它肯定是毫无意义的,很可能只是 map 文件中的拼写错误。首先,只有当它们是对应的声明时,8r.enc 才会起作用TeXBase1Encoding ReEncodeFont
。其次,字体不能同时以两种不同的方式编码。
答案2
韩世成报告pdftex 只是采用最后一个编码文件而不考虑输入TeXnANSIEncoding ReEncodeFont
。我认为这是 TeX Live 的一个错误,因为字体可能应该用其他编码进行编码。