Why is the first footnotemark symbol (asterisk) missing?
With the current TU default encoding, \textasteriskcentered
is mapped to U+2217 ASTERISK OPERATOR which Times New Roman happens to miss.
The old EU1/EU2 encodings are based on xunicode
that mapped \textasteriskcentered
to U+002A ASTERISK, which was the wrong thing to do, since the output when used as a footnote marker is definitely bad:
Compare with the output we get with TeX Gyre Termes
If I add
\UndeclareTextCommand{\textasteriskcentered}{TU}
\DeclareRobustCommand{\textasteriskcentered}{%
\iffontchar\font"2217 \char"2217 \else\loweredasterisk\fi
}
\newcommand\loweredasterisk{\raisebox{-.5ex}{*}}
to the preamble, I get, with Times New Roman,
which is still not very good, but definitely better than the previous output.
An altogether different solution: use TeX Gyre Termes for the symbol. You could also add code for coping with different font families.
\documentclass{book}
\usepackage{fontspec}
\usepackage{etoolbox}
\usepackage[
main=english,
]{babel}
\setmainfont{Times New Roman}
\newfontfamily{\termes}{TeX Gyre Termes}% for the asterisk
\makeatletter
\patchcmd{\@fnsymbol}
{\textasteriskcentered}
{{\termes\textasteriskcentered}}
{}{\ddt}
\makeatother
\begin{document}
\renewcommand*{\thefootnote}{\fnsymbol{footnote}}
\chapter{Symbolic footnotes and Times New Roman or Arial}
First footnote\footnote{Hello World!}\\
Second footnote\footnote{Hello Again!}\\
Third footnote\footnote{Heeeeello Agaiiiiiinn!}
\bigskip
Question(s):
When I use TNR or Arial font for example, the first footnotemark symbol (asterisk) is missing. Why?
(Note: Using Latin Modern, the output is fine.)
\end{document}
Update
In the 2017/01/01 Patch Level 2 release of LaTeX (which is today's texlive update) The document as posted in the question works without missing footnotes.
Original Answer
You will have a warning in the log
Missing character: There is no ∗ (U+2217) in font TimesNewRoman:mode=node;scri
pt=latn;language=DFLT;+tlig;!
or if you have an earlier version of tuenc.def
(U+294E)
You could use *
(U+002A) which is available in all fonts but is a superscript asterisk.
so one of these:
\DeclareTextSymbol{\textasteriskcentered}{TU}{"204E} [⁎] [LOW ASTERISK]
\DeclareTextSymbol{\textasteriskcentered}{TU}{"2217}% [∗] [ASTERISK OPERATOR]
\DeclareTextSymbol{\textasteriskcentered}{TU}{"002A}% [*] [ASTERISK]
The tricky thing is to find a setup that works in all fonts, and gives a low asterisk.
Possibly as a default we will use
\DeclareTextCommand{\textasteriskcentered}{TU}{%
\iffontchar\font"2217 \char"2217 \else\raisebox{-.5ex}{*}\fi}
Current plan (in svn sources for the next release) is as below, but may adjust it a bit more before release.
% \end{macrocode}
% Not all fonts have U+2217 but using U+002A requires some adjustment.
% \begin{macrocode}
\DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{%
\iffontchar\font"2217 \char"2217 \else
\begingroup
\fontsize
{\the\dimexpr1.2\dimexpr\f@size pt\relax}%
{\f@baselineskip}%
\selectfont
\raisebox{-0.6ex}[\dimexpr\height-0.6ex][0pt]{*}%
\endgroup
\fi
}
% \end{macrocode}