Small caps (missing) and font choice with fontspec

fontsfontspecoctavosmall-capstimes

The octavo package is supposed to print headings in small caps but I'm probably using a font that does not allow small caps? Or what am I doing wrong because even in the text I cannot set small caps. The command \textsc{word} does nothing. My document is in Italian (main language) and Hebrew. This is my MWE:


\documentclass[crown]{octavo}
\usepackage{xcolor}
\usepackage[marginparwidth=40pt]{geometry}
\usepackage[italian]{varioref}
\usepackage{microtype}
\usepackage{tikz}
\usetikzlibrary{mindmap}

\usepackage{lipsum}  

\usepackage{relsize,etoolbox}% http://ctan.org/pkg/{relsize,etoolbox}
\AtBeginEnvironment{quote}{\smaller}% Step font down one size relative to current font.

\usepackage{quoting}
\quotingsetup{font=small}

\usepackage{imakeidx}\makeindex[name=concetti,title=Indice dei concetti,columns=3]
\makeindex[name=tecniche,title=Indice delle techniche,columns=3]

\usepackage{graphicx,wrapfig}
\graphicspath{/Users/haimbook/Desktop/}

\usepackage{reledmac}
\Xarrangement[A]{paragraph}

\Xlemmafont{\bfseries}
\Xnotefontsize[A]{\scriptsize}

\fnpos{critical-familiar}
\Xbeforenotes[A]{1.8em}
\beforenotesX[A]{1.8em}
\beforenotesX[B]{1.8em}
\Xafterrule[A]{7pt}
\afterruleX[A]{7pt}
\afterruleX[B]{7pt}


\firstlinenum{100000}

\usepackage{hyperref}


\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{italian}
\setotherlanguage{hebrew}

\setmainfont{Times New Roman}

\newfontfamily{\hebrewfont}{New Peninim MT}

\usepackage[style=verbose-trad3, doi=false,isbn=false,url=false,eprint=false]{biblatex}

\bibliography{Midrash.bib}


\begin{document}



%\renewcommand*{\thefootnoteA}{\arabic{footnoteA}}
\renewcommand*{\thefootnoteB}{\alph{footnoteB}}



%%%%%%%%%%%%%%%%%%%%%%%%%STARTHERE%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Introduction}
\lipsum[2-4]


\part{Bibliografia}
\printbibliography[heading=none]




%\indexprologue{\small Questo indice contiene nomi di persone famose.}
\printindex[concetti]
\printindex[tecniche]

 \tableofcontents
\end{document}

Best Answer

Thanks for editing the example. Your hunch was correct, there seems to be a problem with the font that I could replicate (and is actually quite common).

(Caveat: "missing font" warnings are system-dependent, they can vary from user to user, if they have different fonts installed. So they're not always replicable when sharing code, as in a MWE!)

Older versions of Times New Roman are known to lack the small capitals feature. In fact, the minimal example

\documentclass[crown]{octavo}
\usepackage{fontspec}

\setmainfont{Times New Roman}

\begin{document}
\chapter{Introduction}
Hello {\scshape world} and \textsc{goodbye}.
\end{document}

gives the warning (in the .log) LaTeX Font Warning: Font shape TU/TimesNewRoman(0)/m/sc' undefined (Font) using TU/TimesNewRoman(0)/m/n' instead on input line 8. and prints the text accordingly. You might have an old implementation of the font too.

Unfortunately, Times New Roman is a proprietary font. But the clone font developed for TeX, TeX Gyre Termes, is free and provides all text styles. Install it via tlmgr or as you would any font in your specific system.

Then you can either set it as your main font entirely

\setmainfont{TeX Gyre Termes}

or selectively for small capitals, keeping Times for all other uses:

\setmainfont{Times New Roman}[
  SmallCapsFont={TeX Gyre Termes},
  SmallCapsFeatures={Letters=SmallCaps},
]

(Note that the issue occurs independent of the document class – in your case, octavo.)

Related Question