Biber changing \u{\i} to some strange value

Biber changes ASCII-TeX accents into their respective Unicode characters and while this works wonderfully well for most letters and accents -- it is a problem for accents on the "dotless i".

The problem resides on the fact that popular fonts like Times New Roman have coverage for the Unicode equivalent of

\u{i}
\"{i}


and do not have coverage for the Unicode equivalents of the "dotless"

\u{\i}
\"{\i}


even though under visual inspection they look exactly the same, as it can be seen on this MWE:

\documentclass{report}

\RequirePackage{fontspec}
\setmainfont{Times New Roman}

\begin{document}

Accent on dotless with ASCII TeX: Ole\u\i nik,  Ha\"\i ssinsky

Accent on dotted i: Olĭnk, Haïssinsky

Accent on dotless i: Oleı̆nik, Haı̈ssinsky

\end{document}


Some of this is covered in EGreg's answer to here. The same problem happens with several other accents of dotless-i, but amazingly not with accent acute (\'{\i}).

I have a few questions on the subject:

How come the the ASCII-TeX input works for \u{\i} if there is no coverage for this character on the font? Is TeX making a substitution and using the dotted character in the final output?

Observe that converting sources to accents-on-dotted-i will obviously work for LaTeX and produce the right look into the PDF, but it is the wrong thing to do, since the sources may be used by other programs besides TeX or the sources may be coming from places that are not willing to make a wrong-change.

For an example on how biber deal with it use:

\documentclass{report}
\RequirePackage{fontspec}
\usepackage{filecontents}
\setmainfont{Times New Roman}

\usepackage{biblatex}

\begin{filecontents}{\jobname.bib}
@unpublished{a,
author = {Ole\u\i nik and  Ha\"\i ssinsky and Sina\^\i},
title = {These display fine (dotted i):  Ole\u{i}nik and  Ha\"i{}ssinsky and Sina\^i},
}
\end{filecontents}

\begin{document}

\nocite{*}
\printbibliography

\end{document}

• your descriptions are a bit misleading "Accent on dotted i" is a single character U+00ef LATIN SMALL LETTER I WITH DIAERESIS and "Accent on dotless i" is two characters U+0131 LATIN SMALL LETTER DOTLESS I , U+0308 COMBINING DIAERESIS – David Carlisle Apr 22 '18 at 20:17
• Note that the two Unicode forms are not wrong or right, they are canonically equivalent, the single character version is in normal form "C" (NFC) and the two character version is in NFD, generally speaking NFC form is easier to handle as it does not required correct use of combining characters, but a full Unicode renderer will handle either form. – David Carlisle Apr 22 '18 at 20:24
• An example with a bib entry for a document using biblatex would make it possible to diagnose the issue, which seem to depend on how biber deals with \u{\i} – egreg Apr 22 '18 at 20:54
• I generally find that Biber only works properly if I use unicode characters in the .bib rather than macros. However, that's only for pdfTeX, which you're not using here and I'm not sure it would apply to a unicode engine. – cfr Apr 22 '18 at 21:40
• There are way too many questions here for one question! – cfr Apr 22 '18 at 21:41

This is a partial answer on why some accents are not showing, but not a full answer to the question brought up here. I still do not know why \u{\i} is typeset correctly even though the font is missing the glyph.

The problem of the glyphs entered in Unicode not being typeset properly is due to an old version of Times New Roman being distributed in the Microsoft TrueType Core Fonts package. The Version of Times NR being installed by that package is 2.95 which is too old and does not have the coverage for the accents on dotless-i.

From what I gather these old version of the fonts were distributed with a loose (or lousy) license and Microsoft has tightened it since.

What can you do to fix the problem?

2. Linux dual-boot You have the new fonts sitting in the Windows partition, just do a locate times.ttf and you can see it. Before copying them over to the Linux partition or using it within Linux -- you should consult the license.