# Is there a way out of my small-cap conniptions?

I'm having difficulty getting small-caps to render properly in my (XeLaTeX compiled) document. I want to render a certain level of heading with a different font th at the default document font and in small-caps. The tricky part for my scenario is that I'm working with Turkish and it needs to correctly case i→İ and ı→I even for small-caps.

Here's what works:

1. Set document language
2. Set main document font to the font that properly supports small-caps.
3. Use \scshape to switch to small caps

Here's what doesn't work:

1. Set document language
2. Set main document font to the font I actually want to use
4. Switch to that font for any instances that are going to be small-caps

Here is an MWE that illustrates the problem:

\documentclass[20pt]{scrartcl}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{turkish}
\setmainfont{Libertine Serif}
\newfontface\reffont{Libertine Serif}[Letters=SmallCaps]
\begin{document}
Elçilerin İşleri

{\scshape Elçilerin İşleri}

{\reffont Elçilerin İşleri}
\end{document}


This produces something like this:

My issue is I actually need something like the second format to work because I want to set my body font to Crimson.

\setmainfont{Crimson}


When I do that, the example above comes out like this:

Of course the second instance is not expected to work because that font doesn't have good small-caps glyphs. But the second example needs to work.

I've tried a number of combinations including using \scshape instead of the open-type font feature, setting the font inline instead of setting up the face ahead of time, etc. In no permutation was I able to get the main font to be Crimson and still set some headings using Libertine Serif with Turkish small-caps. What am I missing?

I'm not quite sure that I understood your problem. But imho you are simply missing the language setting in your \reffont:

\documentclass[20pt]{scrartcl}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{turkish}
\setmainfont{Linux Libertine O}
\newfontface\reffont{Linux Libertine O}[Language=Turkish,Letters=SmallCaps]
\begin{document}
Elçilerin İşleri

{\scshape Elçilerin İşleri}

{\reffont Elçilerin İşleri}
\end{document}


• It fas a language setting!? «hiss, splutter, mumble» Well I'll be jiggered, you know how much time I spent fiddling with this? Why does it go with the document language when you set in the first time but not inherit that for subsequent fonts? – Caleb Oct 14 '15 at 13:42
• Fonts set with \newfontface ignore \addfontfeature settings. – Ulrike Fischer Oct 14 '15 at 13:52