如何更改内部字体名称?

如何更改内部字体名称?

我喜欢控制创建的 PDF 文件中的字体名称(我使用 LuaTeX)。

以下代码可以很容易地显示字体名称,如图所示。有没有办法,我可以为每个字体设置一个固定的字体名称,而无需使用 FontForge 等进行更改?

\documentclass[a4paper]{article}
\usepackage{fontspec}

\begin{document}

    \setmainfont[]{XITS-Regular.otf}

    Example

\end{document}

揭露

答案1

  • 评论中指出我原来的方法(方法 2)可能并不总是合法的字体许可,所以我添加了“方法 1”。

方法 1:将 PDF 转换为图像并将其包含在新的 PDF 中

  • 对于可嵌入 PDF 文件的所有字体来说,这应该是合法的。
  • pdfpages可用于将生成的图像文件再次包含在新的 PDF 文件中,保持相同的光学特性。

方法 2:修补 PDF 文件(当许可证允许时;例如 SIL 开放字体许可证)

感谢 Ulrike Fischer 的评论,我能够在未压缩模式下编译时找到相关的字符串:

\edef\pdfcompresslevel{\pdfvariable compresslevel}
\pdfcompresslevel=0
\documentclass[a4paper]{article}
\usepackage{fontspec}

\begin{document}

    \setmainfont[]{XITS-Regular.otf}

    Example

\end{document}

然后,简单的搜索和替换就可以了。对于通用解决方案,我将实现解压缩器和重新压缩器,或者在未压缩模式下编译,并pdfpages在第二次运行中使用和重新压缩未压缩的 PDF 文件。

修补后的 PDF 文件如下所示:

修补字体名称

相关内容