所包含 PDF 中的一些正常字母在编译后的文档中消失

所包含 PDF 中的一些正常字母在编译后的文档中消失

我在 Adob​​e Illustrator 中制作了一个图形,并将文件保存为 PDF 文件。此 PDF 在打开时运行正常。

我想将此图作为图片包含在我的 LaTeX 文件中,可以使用以下代码完成:

\documentclass{report}
\usepackage{graphicx}
\begin{document}
\begin{figure}[htb]
\centering
\includegraphics[width=.9\textwidth]{hparc}
\caption[Architecture of the simulation model]
{Architecture of the simulation model, connection between IDA~ICE and Matlab}
\label{fig:hparc}
\end{figure}
\end{document}

但是,当编译文档中包含 PDF 时,一些f字母l(不是全部)会丢失。为什么会发生这种情况?!我尝试在 Texmaker 和 Sharelatex 中进行编译。

编辑:Illustrator 中使用的字体是Latin Modern Roman 12 Regular
编辑 2:PDF 文件链接

已编译文档的图像

答案1

pdfTeX

文件hparc.pdf已将字体嵌入LMRoman12-Regular为 Adob​​e Illustrator 中使用的 OpenType 字体:

$ pdffonts hparc.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
PJUQXT+LMRoman12-Regular             Type 1C           yes yes no       5  0

当 pdfTeX 嵌入图形时,它首先检查是否知道字体,以便合并使用的字体字形,避免为同一字体添加多个字体文件。但是,它不知道连字符的指定字形名称(PDF 文件中的 Unicode 映射可能会有所帮助,请参阅输出的no列)并生成警告:unipdffonts

pdfTeX warning: pdflatex (file [...]/texmf-dist/font
s/type1/public/lm/lmr12.pfb): glyph `f_f' undefined

pdfTeX warning: pdflatex (file [...]/texmf-dist/font
s/type1/public/lm/lmr12.pfb): glyph `f_l' undefined

请记住,它无法使用字体的原始 OpenType 版本。因此这些字形会丢失。

有一个解决方法。如果 pdfTeX 不认识字体,它只会复制 PDF 文件中找到的字体。TeX 文件最开头的以下行在这里有效,map 行的其他字段似乎不需要:

\pdfmapline{-dummy LMRoman12-Regular}

完整示例:

\pdfmapline{-dummy LMRoman12-Regular}

\documentclass[12pt]{report}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\begin{document}
\begin{figure}[htb]
\centering
\includegraphics[width=.9\textwidth]{hparc}
\caption[Architecture of the simulation model]
{Architecture of the simulation model, connection between IDA~ICE and
Matlab}
\label{fig:hparc}
\end{figure}
\end{document}

结果

如果文档也使用相同的字体,则字体文件会嵌入两次。

LuaTeX 和 XeTeX

LuaTeX 和 XeTeX 都支持 OpenType 字体,并且无需任何解决方法即可显示连字。

暗示

图片的宽度为:705.77806 pt。文档中图片的嵌入宽度0.9\textwidth= 350.99762 pt。即缩放因子为 0.94732 ≈ 0.5。

设计尺寸为 12pt,但实际使用的尺寸为 6pt,相当小。因此我建议

  • 使用全部可用空间:\textwidth将缩放因子增加约 10%,达到 0.55(字体大小为 6.6pt),并且

  • 使用较小的设计尺寸,Latin Modern 8 Regular而不是Latin Modern 12 Regular

相关内容