![如何更改 pdflatex 中的字体编码?](https://linux22.com/image/424561/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20pdflatex%20%E4%B8%AD%E7%9A%84%E5%AD%97%E4%BD%93%E7%BC%96%E7%A0%81%EF%BC%9F.png)
考虑两个相同的 tex 文件file1.tex
和file2.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.pdf
有Builtin
编码,file2.pdf
但有WinAnsi
编码。texfile 中的哪些更改将强制 pdflatex 生成带有WinAnsi
编码的 pdf?相关文章1,2,3, 和4,好像没什么帮助。
答案1
我要在这里进行框架挑战。你(实际上)永远都不想这样做。
在上述任何一种情况下,您的文件实际上都会使用 OT1 编码的字体。Windows-1252 编码中没有随 TeX 附带的字体。如果您的 PDF 阅读器认为文档使用的编码与实际不同,那就不好了。这可能没有那么糟糕(复制粘贴之类的操作会中断,但也许您可以忍受),但这并不好。
您能否在 Windows-1252 编码中创建自己的 Type-1 字体?从技术上讲您可以,但需要付出很多努力却没有任何好处。现代字体采用 Unicode 编码,而不是传统的 8 位代码页。较旧的 Windows 字体使用 Microsoft 的 TrueType,而不是 PDFTeX 使用的 Adobe Type-1 格式。没有任何免费的 Type-1 Windows-1252 字体可以合法地与文档源一起上传。如果您尝试使用现代字体的前 255 个字符,它们将映射到 Latin-1 编码,它是 Windows-1252 的一个子集,但缺少一些重要字符,例如开引号和闭引号或 em 和 en 破折号。
但是,如果您不需要提交以 PDFTeX 编译的源,则绝对没有任何强制要求您使用旧式 8 位字体。如果您能够使用 Windows-1252,那么您就可以将现代字体与 LuaLaTeX 和 一起使用unicode-math
。