带有/不带有 fontenc/inputenc 的嵌入字体

带有/不带有 fontenc/inputenc 的嵌入字体

好吧,让我解释一下。我尝试选择 PDF 文件中的一段文本进行复制和粘贴。我注意到,选中后,带重音符号的字母会消失,如下图所示。

在此处输入图片描述

因此,我决定查看 PDF 文件的属性以检查所使用的字体,我发现了这一点:

在此处输入图片描述

该 PDF 是pdflatex在 TeXLive 2011 上创建的,MWE 为:

\documentclass[11pt,a4paper]{report}
\usepackage[latin1]{inputenc}

\begin{document}\thispagestyle{empty}
dimensões 
\end{document}

PDF 查看器证据 3.2.1

使用latin1而不是utf8不允许utf8我插入重音字符,例如õ。它会产生错误

inputenc: Keyboard character used is undefined(inputenc) in inputencoding `utf8'. dimensõ

加载中fontenc

所以我latin1使用我也加载了fontenc带有选项的包。T1输出正常,现在我可以选择重音字母,如图所示:

在此处输入图片描述

然后我决定再次检查 PDF 属性,发现了令人惊讶的事实:嵌入的字体是另一种字体!为什么?

在此处输入图片描述

答案1

首先假设您不想在 PDF 中嵌入位图字体,以下是有关该问题的一些事实。我将处理 pdfLaTeX,对于 XeLaTeX 或 LuaLaTeX 来说,fontspec情况就不同了。

  1. 使用默认的 OT1 编码,重音符号是通过组合两个字符来实现的,这使得“复制粘贴”变得不可能。

  2. 字体必须为.pfb(或.pfa)格式。

  3. 为了从 PDF 进行“复制粘贴”,字体还应在字形和其名称之间具有正确的对应关系。

TeX 字体和其 Type1 对应字体之间的链接由文件提供pdftex.map。当您使用默认输出编码和 Computer Modern 字体时,相关行pdftex.map

cmr10 CMR10 <cmr10.pfb

第一列是 TeX 字体名称,第二列是加载文件中找到的 PostScript 名称,即cmr10.pfb。请注意,当使用 11pt 类型时,您实际上使用的是缩放的 10 点字体。

当选择 T1 输出编码时,将使用带重音字符的扩展:欧洲现代字体,而不是计算机现代字体。它们并不完全像 CM 字体,但出于实际目的,我们假设它们是相同的。相关行pdftex.map

ecrm1095 SFRM1095 " T1Encoding ReEncodeFont " <cm-super-t1.enc <sfrm1095.pfb

比另一个更复杂。sfrm1095.pfb字体文件确实包含大量字形:它还用于 TS1、T2A、T2B、T2C 和 X2 编码(文本伴侣和西里尔字体)。因此,只需选择其中的一部分,这是通过指令完成的ReEncodeFont

这些 Type1 对应欧洲现代字体由所谓的 CM-Super 字体提供,这些字体未包含在最小发行版中。因此,如果您希望人们能够编译相同的 TeX 文档并获得相同的结果,请确保他们拥有 TeX 发行版中的 (meta) 包。

另一种方法是使用拉丁现代字体。当您有这样的文档时

\documentclass[11pt,a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{lmodern}

\begin{document}
\thispagestyle{empty}
dimensões 
\end{document}

将根据行选择 Type1 字体

ec-lmr10 LMRoman10-Regular " enclmec ReEncodeFont " <lm-ec.enc <lmr10.pfb

如果没有该fontenc包,字体将由

rm-lmr10 LMRoman10-Regular " enclmrm ReEncodeFont " <lm-rm.enc <lmr10.pfb

lm-rm.enc文件还定义了字体表“上半部分”的字形,但对应关系仅类似于 Latin-1 编码。

如果你打算在 TeX 输入文件中使用重音字符,总是添加相应的调用inputenc 正确调用fontenc。否则,您可能会得到令人惊讶的结果,如以下 MWE 所示(请注意注释掉的行):

% -*- coding: latin-1 -*-
\documentclass[11pt,a4paper]{report}

%\usepackage[T1]{fontenc}
%\usepackage[latin1]{inputenc}

\usepackage{lmodern}

\begin{document}
\thispagestyle{empty}

dimensões 

«straße»
\end{document}

在此处输入图片描述

只需取消注释该fontenc行即可获得相同的结果。

相关内容