好吧,让我解释一下。我尝试选择 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
情况就不同了。
使用默认的 OT1 编码,重音符号是通过组合两个字符来实现的,这使得“复制粘贴”变得不可能。
字体必须为
.pfb
(或.pfa
)格式。为了从 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
行即可获得相同的结果。