# How to change \textsc to output petite caps instead of small caps?

I am using FF Hertz to typeset a document. FF Hertz has both small caps and petite caps of which the latter suits my work better.

How can I redefine \textsc to load petite caps instead of small caps?

\documentclass[oneside, 11pt, a4paper]{memoir}
\usepackage[english]{babel}
\usepackage{fontspec}

\setmainfont[Ligatures={Required,Common,Contextual,TeX},Numbers=OldStyle,
ItalicFont={HertzPro-BookItalic}, BoldFont={HertzPro-Bold}]{HertzPro-Book}

\newfontfamily{\petite}[Letters=PetiteCaps]{HertzPro-Book}

\begin{document}

This is \textsc{small caps} and this is {\petite petite caps}

\end{document}


• Something like \renewcommand\textsc[1]{\bgroup\petite#1\egroup}? – Steven B. Segletes Aug 14 '17 at 11:26
• Why don't you add Letters=PetiteCaps to the SmallCapsFeatures directly? – Ulrike Fischer Aug 14 '17 at 11:30
• @Ulrike Fischer, how do I do that? please? – AK16 Aug 14 '17 at 11:35
• Check the documentation. – Ulrike Fischer Aug 14 '17 at 13:39
• Have you tried providing the option SmallCapsFeatures={Letters=PetiteCaps} to the \setmainfont directive? (I can't try it out on my system since I don't have the "Hertz Pro" font family.) – Mico Aug 20 '17 at 8:43

I would like to suggest you provide the option

SmallCapsFeatures={Letters=PetiteCaps}


to the \setmainfont directive:

\setmainfont[Ligatures={Required,Common,Contextual,TeX},
Numbers=OldStyle,
ItalicFont={HertzPro-BookItalic},
BoldFont={HertzPro-Bold},
SmallCapsFeatures={Letters=PetiteCaps}
]{HertzPro-Book}


The \newfontfamily{\petite}[Letters=PetiteCaps]{HertzPro-Book} directive won't be needed anymore.