[Tex/LaTex] Letterspacing, Minion Pro, and Tufte-LaTeX (problem with running header)

fontspecletterspacingmathspectufte

I'm trying to use Minion Pro with the Tufte-LaTeX class. Basically, I've got it working, but I have a problem with letterspacing the small caps for the running header. Rather than appearing in small caps (as it does if I use the Tufte-LaTeX default Palatino), it appears in regular lower case.

Here's a minimal example:

\documentclass[nols,nofonts]{tufte-book}
\usepackage[MnSymbol]{mathspec}
\setprimaryfont{Minion Pro}
\setmainfont[Mapping=tex-text]{Minion Pro}
\usepackage{lipsum}

\title{Lorem ipsum}

\begin{document}
\mainmatter
\chapter{The origins of Lorem Ipsum}
\lipsum

\end{document}

This warning appears in the console: "Class tufte-book Warning: Proper spacing of small-caps letters has not been set up on input line 16" which is clear enough, but I don't know how to fix it. The Tufte-LaTeX sample book states "The Tufte-LATEX classes try to load the appropriate letterspacing package (either pdfTEX’s letterspace package or the soul package). If you’re using XeLaTeX with fontenc, however, you should configure your own letterspacing." but (reasonably enough) doesn't provide any more detail.

I've found examples of how to use fontspec (which is loaded by mathspec in my example) to change the letterspacing of specific blocks of text, but I haven't been able to figure out how to set the letterspacing for small caps text globally.

Any help would be appreciated.

Best Answer

The Tufte-LaTeX classes define two commands that set up the spacing for \allcaps and \smallcaps. These commands are called \allcapsspacing and \smallcapsspacing. (I'm not terribly creative, I admit.)

You can define these commands to use the letterspacing feature provided by the fontspec package. Here's a complete example. Feel free to adjust the spacing to suit your typeface.

\documentclass{tufte-handout}

\usepackage{fontspec}
\setmainfont{Linux Libertine O}% or Minion Pro or what have you

% Set up the spacing using fontspec features
\renewcommand\allcapsspacing[1]{{\addfontfeature{LetterSpace=15}#1}}
\renewcommand\smallcapsspacing[1]{{\addfontfeature{LetterSpace=10}#1}}

\begin{document}

NATIVE ALL CAPS WITHOUT SPACING

\allcaps{ALL CAPS WITH SPACING}

{\scshape Native small caps without spacing}

\smallcaps{Small caps with spacing}

\end{document}