是否有可能在 dvips 中使用位图字体编码?

是否有可能在 dvips 中使用位图字体编码?

在创建文件的过程中.psdvips读取“.嗯嗯pk“字体。这些字体不能携带编码信息(与 Type3 或 Type1 字体不同)。但在.map文件中编码信息被给予。

是否可以使用文件将文件与给定的 PK 字体.map关联?.enc

.map文件允许“ReEncodeFont”参数,类似于以下内容:

lhr10 "Myenc ReEncodeFont" <my.enc

可以使用吗?或者也许可以使用其他方法,例如.ps直接破解文件?(不考虑将 PK 字体转换为 Type1 或 Type3)

更新

pdftex 手册第 12 页的以下引述看起来很有希望:

从版本 1.40.19 开始,还可以为位图 pk 字体指定编码文件。在这种情况下,它会从给定的编码向量中分配字形名称,该名称可与 \pdfglyphtounicode 原语 (qv) 一起使用。例如:...

是否可以使用类似的技巧dvips


以下是在 pdftex 中使用 PK 字体编码的完整示例:

从发行版复制tex256.enc到当前目录并将条目更改/idieresis % 239/uni044F,然后使用处理以下文件pdftex

\pdfcompresslevel=0 \pdfobjcompresslevel=0
\pdfmapline{lhr10 <tex256.enc}
\font\tenrm=lhr10 \tenrm
^^ef
\end

此后您将获得可复制的位图字符。

是否可以对创建的 pdf 进行逆向工程并直接将类似的东西添加到.ps制作中dvips


PDF 中的以下代码似乎负责将编码与 PK 文件关联:

/Type /Encoding
/Differences [239/uni044F]

此代码在 PostScript 中的对应内容是什么?

答案1

你真幸运! 的原作者dvipsTomas Rokicki 已经“复出”(可以这么说——我的意思是他有dvips一段时间没有工作了)来改变这种情况,并在 TUG 2019 上就此发表演讲。

你可以看看他的预印本这里以及包含源代码的 GitHub 仓库这里

您可以测试我对dvips输出文件提出的更改,而无需更新您的发行版或构建新版本dvips。Perl 脚本addencodings.pl读取标准输入上生成的 PostScript 文件dvips,并将修改后生成的 PostScript 文件写入dvips标准输出。此测试不需要其他文件;标准 TEX Live 字体的默认编码内置于 Perl 脚本中。

最新版本addencodings.pl这里(截至今日的最新消息永久链接:这里)。

相关内容