newtx 双射是

newtx 双射是

喂食

\documentclass{standalone}
\usepackage{newtxtext}%%% 2020/07/22 v1.628
\begin{document}
bijection
\end{document}

指向pdflatex一个 PDF 文档(这里是它的图片,

期望双射

),您无法使用 PDF 阅读器 Evince 或 Okular 单独复制bijection。如果您不使用 NewTX,则可以按预期选择并单独复制bijection。在我看来,字形ij是以图形方式使用的(尽管使用两个 PDF 查看器正确地从文本层复制整个单词会ij在单词内产生两个单独的字母)。

pdflatex同样地,

\documentclass{standalone}
\usepackage[T1]{fontenc}% 2021/04/29 v2.0v
\usepackage{newtx}% 2024/02/08 v1.738
\begin{document}
bijection
\end{document}

截至 2024-02-17 收益率

截至 2024-02-17 TeX Live 2023 的输出

在 Evince 或 Okular 中,您无法单独选择bijection。如果您不使用\usepackage[T1]{fontenc}或 NewTX,则可以按预期单独选择和复制bi或。虽然使用 Okular 从文本层复制整个单词会在单词内产生两个单独的字母,但使用 Evince 从文本层复制整个单词会在单词内产生连字。所以在我看来,字符或字形是以图形方式使用的。jectionijijij

如果这个字符或字形ij确实在这里使用,那么它就错误地跨越了语言词素边界;无论如何,您应该能够单独选择和复制“bi”部分。如何避免这种奇怪的行为?

更多信息:https://graphicdesign.stackexchange.com/questions/142681

NewTX 维护者已被告知。

答案1

更新

在 NewTX 字体的 1.631 版本(以及一些后续版本,不包括 v1.71)中,该问题已得到修复。

原始答案

当前版本的文本字体ntx-Regular-tlf-t1

   (LABEL C I)
   (LIG C J O 234)
   (STOP)
[...]
   (LABEL C i)
   (LIG C j O 274)
   (KRN O 224 R -0.03)
   (KRN C j R -0.035)
   (KRN C T R -0.03)
   (STOP)

上面的代码可能有点晦涩难懂,但这是我从中得到的,它以(几乎)人类可读的形式tftopl显示文件。该指令引入了连字和字距调整,以 ASCII 位置的字符作为第一个元素。tfmLABEL C ii

这里LIG C j O 274告诉 TeXi后面的j应该用位于八进制 274 位置的字形替换(在 T1 编码中,它确实是荷兰语的复合“ij”)。相反,KRN C T R -0.03告诉 TeX 在i和之间T应该有一个负的字距,其大小应为设计尺寸的 3/100(但这将根据字体加载时的放大倍数进行缩放)。有一个KRN C j R -0.035指令,但由于LIG C j先出现,后者被丢弃。

在以前版本的newtxtext字体中,没有连字符映射Ii我们读到

   (LABEL C i)
   (KRN C j R -0.035)
   (KRN O 224 R -0.03)
   (KRN C T R -0.03)
   (STOP)

添加连字符I+J映射到八进制 234 处的字符和i+j映射到八进制 274 处是错误的。

T1 编码确实在这些位置有字形“IJ”和“ij”,但它们是荷兰语及其大写规则所特有的。它们不应用作一般连字符。维护者必须修复此疏忽。

同时,您可以使用microtype禁用错误的连字符。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}%%% 2020/07/22 v1.628
\usepackage{microtype}

\DisableLigatures[I,i]{encoding=T1}

\begin{document}

bijection

\end{document}

在此处输入图片描述

请注意,字距仍然适用。禁用连字符会恢复上述字距。

答案2

如果你愿意使用 LuaLaTeX 来编译你的文档,你可以使用塞尔诺利格ij如果newtxtext正在使用文本字体包,则包会自动抑制连字。

在此处输入图片描述

如果比较每行中的第一个和第二个单词,您会注意到和之间的字距i不受jselnolig 包操作的影响,即使连字符不再存在。

ij据我所知,在英语文档中,-ligature没有什么好的用途,即使对于那些有拉丁词根的单词也是如此 -- 例如bijection-- 或者源自另一种现代语言的单词,例如,bijoujipijapa又名巴拿马草帽)和Marijuana(Maryjane -- 你还能想到什么?)。

% !TEX TS-program = lualatex
\documentclass{article} 
\usepackage{fontspec} % is required by 'selnolig'
\usepackage{newtxtext}
\usepackage{selnolig}

\begin{document}
bijection bi\kern0ptjection

\em bijection bi\kern0ptjection
\end{document}

相关内容