[Tex/LaTex] Times New Roman and small caps

fontstypography

Consider the following code:

\documentclass{report}
\usepackage[utf8]{inputenc} 
\usepackage{fontspec} %compile with xelatex
%\setmainfont{Times New Roman}                                                                                                                                                                              
\begin{document}
\textsc{Small Caps}
\end{document}

No small caps are obtained when I uncomment the line \setmainfont{Times New Roman}. There is a warning:

LaTeX Font Warning: Font shape `TU/TimesNewRoman(0)/m/sc' undefined
(Font)              using `TU/TimesNewRoman(0)/m/n' instead on input line 6.

How to both have Times New Roman font style and small caps?

Best Answer

This is a problem on Macs as well as Linux. Newer versions of Times New Roman have small capitals as well as lowercase/old-style numerals as OpenType features. Unfortunately, other operating systems still tend to distribute older versions. The version of Times New Roman bundled with macOS, 5.01.3x, doesn't include small caps; but Office for Mac has version 7.00, which includes the newer OpenType features.

Alternatively, as already suggested in the comments, you could use the TeX Gyre Termes clone of Times:

\documentclass{report}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}

\begin{document}
\textsc{Small Caps}
\end{document}