当我使用创建 PDF 并pdflatex
从该 PDF 中复制文本时(在 Windows 10 上使用 Adobe Reader DC),一些空格丢失了。这是 MWE:
\documentclass{article}
\usepackage{newtxtext}
\begin{document}
Therefore, this work ... \hspace*{\linewidth}
\end{document}
当我从该 pdf 复制文本时,我得到的内容如下(1 为页码):
Therefore, thiswork ...
1
删除\hspace*
,或删除newtxtext
(或两者)解决了问题,但这当然不是我想要的(如\hspace*
“这项工作”后面的一些文本所示)。
我遇到过从 PDF 复制文本时出现问题 - 空格被删除和XeLaTeX 和 PDF 文本中缺少的空格,提议了\pdfgeninterwordspace
,现在是\pdfinterwordspaceon
(感谢@egreg)。所以我尝试了:
\documentclass{article}
\usepackage{newtxtext}
\pdfmapline{+dummy-space <dummy-space.pfb}
\pdfinterwordspaceon
\begin{document}
Therefore, this work ... \hspace*{\linewidth}
\end{document}
(看在 Windows 上使用 MiKTeX 的 pdfinterwordspaceon 和 pdflatex如果这对你来说编译不成功。)
现在,当我从该 pdf 复制文本时,我得到了以下内容:
Therefore, this work ...
1
因此,基本上,无论是否需要,都引入了额外的空格。是的,“thiswork”中缺少的空格已添加,这很好;但在“Therefore”、“work”和“...”之后有三个额外的空格,这并不好。
有没有更好的解决方案?我使用得\pdfinterwordspaceon
正确吗?
答案1
这至少是 Adobe Reader 的一个已知问题。在某些情况下,Adobe Reader 无法识别单词之间的空格(例如,当空格小于平均值时),或者将一个空格识别为多个空格(例如,当空格大于平均值时)。
这是查看器的问题,而不是文件的问题 - 其他查看器运行良好就证明了这一点 - 并且在 TeX 方面没有太多可做的事情。
答案2
旧线程,但我遇到了与您相同的问题,经过大量在线搜索后,我找到了真正对我有帮助的解决方案。
\fontdimen2
控制 LaTeX 中单词之间的间距,因此我们可以使用它来确保 PDF 阅读器可以分辨出一个单词在哪里开始,另一个单词在哪里结束。
这是一个使用环境来定义我们想要不同间距的区域的简单示例:
\documentclass{article}
\usepackage{newtxtext}
\newenvironment{goodspacing}{
\fontdimen2\font=0.5em
}
\begin{document}
\begin{goodspacing}
Therefore, this work ...
\end{goodspacing}
\end{document}
用这个环境包装您的内容应该足以使复制和粘贴正确进行。
将后面的数字调整\font=
为您想要的单词间距量。
答案3
因为这似乎是 PDF 查看器的问题,所以我尝试了不同的查看器,直到找到一个可以让我复制文本以及单词之间的空格的查看器。
答案4
我遇到过类似的问题,用户从 Adobe Reader 中查看的 PDF 复制文本。粘贴后,文本中的单词之间没有空格。
我找到了一种对她的情况有帮助的解决方法。在文件资源管理器中查看 PDF 时,右键单击文件并选择打开方式 > Word 2016。然后 Word 将打开并显示一条消息,提示它将把您的 PDF 转换为 Word 文档。单击“确定”让 Word 为您执行此操作。
Word 完成文件转换后(转换时间取决于 PDF 的大小),它正确识别并创建了空格。我通过复制此 Word 文档中的文本并将其粘贴到记事本中进行了验证,其中的空格仍然存在。
这个过程可能取决于 PDF 上空格之间的距离,以及 Word 是否能正确识别它们,但在这种情况下,这对最终用户来说是一个很大的帮助。