使用 newtxmath 时选择 PDF 中的数学模式文本

使用 newtxmath 时选择 PDF 中的数学模式文本

当我使用该newtxmath包并使用 pdflatex 进行编译时,输出的 PDF 看起来正确,但是当我选择 PDF 中的文本时,底层文本不正确。

以下是 MWE:

\documentclass{article}
\usepackage{newtxmath}

\begin{document}
Test \(a + b\)
\end{document}

输出的 PDF 看起来正确,但选择 PDF 中的文本(并将其复制到其他文本区域)会出现Test 푎 + 푏。我期望得到的结果是Test a + b或类似的结果。

我尝试过(但失败了)的事情:

  • 使用$ $而不是\( \)
  • 在 Overleaf 和我朋友的电脑上进行编译
  • 使用不同的 PDF 查看器(zathura、Firefox、Chromium)

我不知道这种行为是故意的还是错误。理想情况下,我想了解如何更改此行为,以便发生我期望发生的事情。

更新

我还就这个问题打扰了几个朋友,以下是我观察到的几件事:

  • 当使用 TeX Live(在 Linux 上测试)或 MiKTeX(在 Windows 上测试)编译 PDF 时会出现这种情况使用 zathura、Firefox 或 Chromium/Chrome 查看时。最初的错误发生在 TeX Live 和 zathura 上。
  • 使用 MacTeX 编译时似乎不会发生这种情况。更正:在 Mac 上使用 TeX Live 编译时不会发生这种情况。
  • 这在 Gmail 文件预览中不会发生。
  • 在 MacOS 的预览程序中查看 PDF 时不会出现这种情况。

答案1

字体NewTXMI.pfb使用非标准字符串作为字形名称,反映字符的预期 Unicode 含义。查看者无法识别此类字符串,因此不知道如何处理它。您可以使用它将它们映射到查看者知道的内容:

\documentclass{article}
\usepackage{newtxmath}
\pdfgentounicode=1
\input{glyphtounicode}
\pdfglyphtounicode{u1D44E}{0061}  %  0061= a
%\pdfglyphtounicode{u1D44F}{0062} % b
%\pdfglyphtounicode{u1D44F}{1D44F} % 1D44F= MATHEMATICAL ITALIC SMALL B, does probably nothing

\begin{document}
Test \(a + b\)
\end{document}

复制为 Test a +

相关内容