使用 newtx 从 PDF 复制 \pdfgentounicode 时出现错误映射

使用 newtx 从 PDF 复制 \pdfgentounicode 时出现错误映射

这似乎newtx是目前 Times 字体的最佳选择,我想根据克罗地亚语的具体情况对其进行测试,也根据一些常见的数学符号对其进行测试,并从生成的 PDF 中复制内容。

考虑以下 MWE:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[croatian]{babel}

\input{glyphtounicode}
\pdfgentounicode=1

\usepackage{newtxtext}
\usepackage{newtxmath}


\begin{document}

a b c d e š đ č ć ž Š Đ Č Ć Ž

\bfseries
a b c d e š đ č ć ž Š Đ Č Ć Ž

\sffamily
a b c d e š đ č ć ž Š Đ Č Ć Ž

\ttfamily
a b c d e š đ č ć ž Š Đ Č Ć Ž

\[
  x \ne \neq y \quad
  x \le \leq \leqslant y \quad
  x \ge \geq \geqslant y
\]

\[
  x \coloneq \coloneqq y \quad
  y \eqcolon \eqqcolon x
\]

\end{document}

在最新的 Adob​​e Acrobat Reader DC 中打开生成的 PDF,并将内容复制到 Unicode 友好的编辑器中,我得到了以下信息:

a b c d e š đ č ć ž Š Ð Č Ć Ž
a b c d e š đ č ć ž Š Ð Č Ć Ž
a b c d e š đ č ć ž Š Ð Č Ć Ž
a b c d e š đ č ć ž Š Ð Č Ć Ž
x ,, y x ≤≤6 y x ≥≥> y
x BB y y CC x

十六进制转储

发现问题:

  • 我希望和都\ne映射\neqU+2260,但它们却映射到U+002C(常规逗号)。
  • \le( \ge) 和\leq( )都\le映射正确,但倾斜变体映射不正确 - 它们应该映射到U+2A7D( U+2A7E)。
  • \coloneq( \coloneqq) 和\eqcolon( )均未\eqqcolon正确映射到U+2254U+2255,但映射到常规BC
  • 尽管看起来đĐ被正确复制,但事实并非如此。đ被映射到U+0111Đ被映射到U+00D0(不是小写字母-大写字母对)。考虑这两对:
    • U+00D0 Ð c3 90 拉丁大写字母 ETH
    • U+00F0 ð c3 b0 拉丁小写字母 ETH
    • U+0110 Đ c4 90 带删除线的拉丁文大写字母 D
    • U+0111 đ c4 91 带删除线的拉丁文小写字母 D

... 我想说的是c3*s 是冰岛语中使用的,而后两个c4*s 对应于克罗地亚语。我还检查了我的源代码,并在此确认我的键盘上的 s 以 s 结尾,đ源文件使用 UTF-8 编码。Đc4*

问题:

  • \ne\neq:有人可以解释为什么映射是错误的吗?并且可以改进以便它们都被正确映射吗?
  • 倾斜的变体:有人可以解释为什么映射是错误的吗?并且可以改进以便正确映射吗?
  • \coloneq和其他人:有人可以解释为什么映射是错误的吗?并且可以改进以便正确映射吗?
  • đ以及Đ:有人可以解释为什么映射是错误的吗?并且可以改进以便正确映射吗?

我非常热衷于为所有问题的改善做出贡献。

谨致问候,伊万

đ编辑:关于和的问题Đ与 T1 字体编码有关,而不是newtx,如下面的评论所述。

答案1

glyphtounicode.tex 包含许多将字形名称映射到 unicode 点的声明。但它并不完整。要获得\ne例如复制为 ≠ 的内容,请添加合适的\pdfglyphtounicode

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[croatian]{babel}

\input{glyphtounicode}
\pdfgentounicode=1

\usepackage{newtxtext}
\usepackage{newtxmath}
\pdfglyphtounicode{nequal}{2260}

\begin{document}
$\ne$
\end{document}

(我nequal通过查看 txsyc.pfb 找到了)。

相关内容