newtx bijection is bijection

UPDATE

Version 1.631 (and later) of the NewTX fonts have fixed the issue.

Original answer

The current version of the text font ntx-Regular-tlf-t1 has

   (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)

Maybe the code above is cryptic, but it's what I get from tftopl that shows tfm files in (nearly) human readable form. The LABEL C i instruction introduces ligatures and kerning for the character at ASCII position for i as the first element.

Here LIG C j O 274 tells TeX that i followed by j should be replaced with the glyph sitting at slot octal 274 (in T1 encoding it's indeed the composite “ij” for Dutch). Instead KRN C T R -0.03 tells TeX that between i and T there should be a negative kern amounting to 3/100 of the design size (but this will be scaled by the magnification factor the font is loaded at). There is a KRN C j R -0.035 instruction, but since LIG C j comes first, the latter is discarded.

In previous versions of newtxtext fonts there is no ligature map for I and for i we read

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

Adding the ligatures I+J mapping to the character at octal 234 and i+j mapping to octal 274 is wrong.

The T1 encoding has indeed glyphs “IJ” and “ij” at those positions, but they're specific for the Dutch language and its capitalization rules. They should not be used as general ligatures. This oversight has to be fixed by the maintainer.

In the meantime, you can use microtype to disable the wrong ligatures.

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

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

\begin{document}

bijection

\end{document}

enter image description here

Note that the kern is still applied. Disabling the ligature resurrects the kern mentioned above.


If you're free to employ LuaLaTeX to compile your document, you can employ the selnolig package to suppress the ij ligature automatically if the newtxtext text font package is in use.

enter image description here

If you compare the first and second word in each row, you'll notice that the kern between i and j is not affected by the operation of the selnolig package, even as the ligature is no longer there.

AFAICT, there are no good uses of the ij-ligature in English-language documents, even for words which have a Latin root -- e.g., bijection -- or which derive from another modern language, e.g., bijou, jipijapa (aka Panama hat), and Marijuana (Maryjane -- what else could you possibly have in mind?).

% !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}