我注意到,在用 Latex 编译的 pdf 文件中,从 pdf 文件中复制文本时,“field”中的“fi”不能分离为“f”和“i”。我想知道为什么,这是否可以改变?谢谢,问候!
答案1
以下内容逐字摘自 TeX Book(第9 TeX 的罗马字体,第 51 页):
\rm
让我们从普通罗马字体(或 )的规则开始\tenrm
;除非您另有说明,否则普通 TeX 将使用此字体进行所有操作。您需要的大多数普通符号都很容易获得,您可以用普通方式输入它们:没有什么特别的
A
致Z
和a
致的信z
- 数字
0
9
- 常见标点符号
:
;
!
?
(
)
[
]
‘
’
-
*
/
.
,
@
但 TeX 会将某些组合识别为连字
ff
产量ff
fi
产量fi
fl
产量fl
ffi
产量ffi
ffl
产量ffl
--
产量–
(短破折号)---
产生—
(破折号)‘‘
产量“
’’
产量”
!‘
产量¡
?‘
产量¿
当然,TeX 也为大多数重音符号写连字,例如\^o
。理解连字的最佳方式是,它们代表字体中的单个字符。因此,MS Word 的“插入符号”对话框可能很好地代表了这一点:
请注意,有些符号出现在一个框中,这意味着它们“紧密相连”,代表排版输出中的单个字符(或连字符)。此外,这是字体特定的,不同的字体有不同的(或多或少)连字符。
答案2
cmap 包就是为解决这个问题而编写的。摘自文档:
cmap 包旨在使 pdflatex 生成的 PDF 文件在 acrobat reader 和其他兼容的 PDF 查看器中“可搜索和复制”。
只需在序言的开头放置 \usepackage{cmap} 行,它将预先加载文档中使用的字体所需的 CMap 翻译,前提是存在字体编码的 .cmap 文件。
CMap 包的当前版本包括以下 LaTeX 字体编码的 CMap 文件:T1、T2A、T2B、T2C、T5、OT1、OT1tt、OT6、LGR、LAE、LFE。
这对我有用:
\documentclass{article}
\usepackage{cmap}
\usepackage[T1]{fontenc}
\begin{document}
final
\end{document}
更新:Ulrike Fisher 在评论中表示 pdfglyphtounicode 更好,请参阅使 Linux Libertine 中的连字符可复制(和可搜索)
答案3
你写了:
我注意到,在用 Latex 编译的 pdf 文件中,从 pdf 文件中复制文本时,“field”中的“fi”不能分离为“f”和“i”。我想知道为什么,是否可以更改这种情况?
如果它已经在编译的 pdf 中,那么您无能为力。考虑以下 MWE:
\documentclass{standalone}
\usepackage[OT1]{fontenc}
\begin{document}
iffy fig flat office baffle
\end{document}
如果你使用 pdflatex 编译该程序,你应该得到以下内容:
注意这五个连字符的外观。但是,如果你复制粘贴输出(我在写这篇文章时使用 TeXLive 2011 和 TeXworks 作为前端),你将得到:
iy g
at oce bae
恐怕这个网站的数据输入系统似乎无法正确呈现各种奇怪的符号,所以当我说我看到一对音符、一个阳性和一个阴性性别符号以及一些无法识别的形状时,你必须相信我。(有趣的是,“fl”字形似乎由一个不可见的换行符表示,因此字符“at”出现在第二线。)
但是,如果我在 MWE 中将“OT1”更改为“T1”(英语文本的更现代的字体编码方案 - 对于许多非英语语言也适用),重新编译它,然后将生成的 pdf 文件的输出复制并粘贴到 ascii 编辑器中,我得到:
iffy fig flat office baffle
正如人们希望的那样,所有五个连字符组合现在都已正确恢复。
我还没有用其他现代字体编码重复这个实验,但我怀疑问题——即从 pdf 文件复制到纯文本文件时,连字符呈现不正确——是特定于 OT1 字体编码方法。如果您遇到使用 latex 创建的 pdf 文件,并且连字符看起来很奇怪,并且如果有机会,您可能希望询问论文的作者是否愿意使用序言\usepackage[T1]{fontenc}
中的说明重新编译它...
答案4
仅供参考:以上方法都不适用于我,但是这个线程:http://www.latex-community.org/forum/viewtopic.php?f=5&t=953
正是这些行:
\usepackage{microtype}
\DisableLigatures[f]{encoding=T1}
在该\usepackage[T1]{fontenc}
线之前。
如果其他方法都失败了,这可能是一个快速而粗略的解决方案。
保重,B