这似乎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}
在最新的 Adobe 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
映射\neq
到U+2260
,但它们却映射到U+002C
(常规逗号)。 \le
(\ge
) 和\leq
( )都\le
映射正确,但倾斜变体映射不正确 - 它们应该映射到U+2A7D
(U+2A7E
)。\coloneq
(\coloneqq
) 和\eqcolon
( )均未\eqqcolon
正确映射到U+2254
和U+2255
,但映射到常规B
和C
。- 尽管看起来
đ
和Đ
被正确复制,但事实并非如此。đ
被映射到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 找到了)。