# letterspacing italic small caps automatically

The MinionPro-It.otf file I am using contains italic small caps, confirmed with otfinfo -f MinionPro-It.otf and cfftot1 MinionPro-It.otf | t1testpage | epstopdf --filter > MinionPro-It.pdf.

The following code

\documentclass{scrbook}
\usepackage{fontspec}
\setmainfont[SmallCapsFeatures={Renderer=Basic}]{Minion Pro}
\usepackage[tracking=true]{microtype}
\SetTracking[no ligatures]{encoding = *, shape = sc*}{250}
\newcommand*\qbf{The quick brown fox jumps over the lazy dog.}
\begin{document}
\qbf

\textit{\qbf}

\textbf{\qbf}

\textbf{\textit{\qbf}}

\textsc{\qbf}

\textsc{\textbf{\qbf}}

\textsc{\textit{\qbf}}

\textls[250]{\textsc{\textit{\qbf}}}
\end{document}


produces using luatex 0.76 on a recenty updated TeXLive 2013.

The medium and bold small caps are letter spaced automatically, however the italic small caps in the second to last line are not. It is possible to explicitly specify letter spacing as seen in the last line. But I have found no way to enable automatic letter spacing of italic small caps.

Section 15.8.4 on page 167 of the microtype manual contains the code for setting the protrusion settings for the Minion italic small caps, hinting that the shape may be named scit or si. Unfortunately changing the \SetTracking parameters makes no difference. Any idea why it works for sc + bf but not for sc + it?

-
Have you tried using the package for MinionPro? There is a file MinionPro-FontDef.sty which looks as if it does a lot of the kind of set up you might need here. (Obviously, I'm not sure if it would actually solve this particular problem.) Because the shapes you are talking about are probably not going to be set up by default, since they are not default shapes at all. –  cfr Feb 3 at 23:23
@cfr I haven’t checked, but isn’t the package for the PostScript version of the font only? –  uli Feb 4 at 6:58
Probably you're right. I didn't investigate terribly closely. Possibly the names of packages are misleading (I saw it used otfontdef.) –  cfr Feb 4 at 17:06

By default, microtype will enable tracking for the fonts defined in the smallcaps set (see microtype.cfg), which includes all sc shape fonts, but not si, that is italic smallcaps. You should get what you want if you add the following to the preamble:

\DeclareMicrotypeSet*{smallcapsi}
{ encoding = {EU2},
shape    = {sc,si}
}


Why is si not included in the smallcaps set? Well, it probably will be in the next version, but to give some explanation let me say that the si shape is a rather recent, unofficial addition to LaTeX's font selection scheme. The NFSS ("new" font selection scheme) put small caps and italics on the same font axis, making it mutually exclusive, while bold is a different axis, so that it can be combined with small caps (or italics, for that matter). The fontspec package (and others) remedy this design flaw by introducing the si shape, which allows selecting italic smallcaps.

-

Yes, @Robert beat me to it by a few seconds.

Here is the version I had come up with in the mean time. Note, even if you use @Robert's answer, you still also need to modify your \SetTracking line as I've shown here to disable ligatures for shape si.

\documentclass{scrbook}
\usepackage{fontspec}
\setmainfont[SmallCapsFeatures={Renderer=Basic}]{Minion Pro}
\usepackage{microtype}
\DeclareMicrotypeSet{mysmallcaps}
{ encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
shape    = {sc*,si}
}
\microtypesetup{tracking=mysmallcaps}
\SetTracking[no ligatures]{encoding = *, shape = {sc*,si}}{250}
\newcommand*\qbf{The quick brown fox jumps over the lazy dog.}
\begin{document}
\qbf

\textit{\qbf}

\textbf{\qbf}

\textbf{\textit{\qbf}}

\textsc{\qbf}

\textsc{\textbf{\qbf}}

\textsc{\textit{\qbf}}

\textls[250]{\textsc{\textit{\qbf}}}
\end{document}


to get this:

-