从 pdf 复制的文本缺少空格,或者有多余的空格

从 pdf 复制的文本缺少空格,或者有多余的空格

当我使用创建 PDF 并pdflatex从该 PDF 中复制文本时(在 Windows 10 上使用 Adob​​e 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

这至少是 Adob​​e 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

我遇到过类似的问题,用户从 Adob​​e Reader 中查看的 PDF 复制文本。粘贴后,文本中的单词之间没有空格。

我找到了一种对她的情况有帮助的解决方法。在文件资源管理器中查看 PDF 时,右键单击文件并选择打开方式 > Word 2016。然后 Word 将打开并显示一条消息,提示它将把您的 PDF 转换为 Word 文档。单击“确定”让 Word 为您执行此操作。

Word 完成文件转换后(转换时间取决于 PDF 的大小),它正确识别并创建了空格。我通过复制此 Word 文档中的文本并将其粘贴到记事本中进行了验证,其中的空格仍然存在。

这个过程可能取决于 PDF 上空格之间的距离,以及 Word 是否能正确识别它们,但在这种情况下,这对最终用户来说是一个很大的帮助。

相关内容