Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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.

share|improve this question
    
This is a Markdown-enabled wiki. You can format snippets of code by adding 4 spaces or use the 101010 button in the edit window. –  chl May 24 '11 at 13:58
add comment

3 Answers 3

up vote 10 down vote accepted

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}
share|improve this answer
    
Perfect! Thanks for the help. (By the way, part of the solution was to remove the 'nols' option from my call of the tufte-book class.) –  Todd Hufnagel May 25 '11 at 11:21
add comment

Maybe if you want to enable spacing by default:

\renewcommand{\allcapsspacing}[1]{{\addfontfeature{LetterSpace=20.0}#1}}
\renewcommand{\smallcapsspacing}[1]{{\addfontfeature{LetterSpace=5.0}#1}}
\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{#1}}}
\renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{#1}}}

This way all small caps will be automatically spaced.

share|improve this answer
add comment

I don't have your fonts here. But features for small caps can be set with (surprise) SmallCapsFeatures.

\documentclass{article}
\usepackage{fontspec}
\setmainfont[SmallCapsFeatures={LetterSpace=50}]{Linux Libertine O}
\begin{document}
abc  \textsc{Abc}

\end{document}
share|improve this answer
    
Thanks, that works for the article class but not for the tufte-book class (at least not for the running headers). Apparently there is some other conflict. –  Todd Hufnagel May 24 '11 at 15:06
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.