如何更改 pdflatex 中的字体编码?

如何更改 pdflatex 中的字体编码?

考虑两个相同的 tex 文件file1.texfile2.tex

\documentclass[10pt]{article}
\begin{document}
    Hello World
\end{document}

可以使用以下两种方法从这些相同的 tex 文件生成 pdf 文件

方法 1

pdflatex file1.tex

方法 2

latex file2.tex
dvips file2.dvi
ps2pdf file2.ps

在装有 TeX Live 2015 的机器上,这些方法生成具有不同字体编码的 pdf 文件,即输出

   pdffonts file1.pdf
   pdffonts file2.pdf

有不同的“编码”。虽然file1.pdfBuiltin编码,file2.pdf但有WinAnsi编码。texfile 中的哪些更改将强制 pdflatex 生成带有WinAnsi编码的 pdf?相关文章123, 和4,好像没什么帮助。

答案1

我要在这里进行框架挑战。你(实际上)永远都不想这样做。

在上述任何一种情况下,您的文件实际上都会使用 OT1 编码的字体。Windows-1252 编码中没有随 TeX 附带的字体。如果您的 PDF 阅读器认为文档使用的编码与实际不同,那就不好了。这可能没有那么糟糕(复制粘贴之类的操作会中断,但也许您可以忍受),但这并不好。

您能否在 Windows-1252 编码中创建自己的 Type-1 字体?从技术上讲您可以,但需要付出很多努力却没有任何好处。现代字体采用 Unicode 编码,而不是传统的 8 位代码页。较旧的 Windows 字体使用 Microsoft 的 TrueType,而不是 PDFTeX 使用的 Adob​​e Type-1 格式。没有任何免费的 Type-1 Windows-1252 字体可以合法地与文档源一起上传。如果您尝试使用现代字体的前 255 个字符,它们将映射到 Latin-1 编码,它是 Windows-1252 的一个子集,但缺少一些重要字符,例如开引号和闭引号或 em 和 en 破折号。

但是,如果您不需要提交以 PDFTeX 编译的源,则绝对没有任何强制要求您使用旧式 8 位字体。如果您能够使用 Windows-1252,那么您就可以将现代字体与 LuaLaTeX 和 一起使用unicode-math

相关内容