11

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.

1
  • 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, 2011 at 13:58

3 Answers 3

13

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}
2
  • 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.) May 25, 2011 at 11:21
  • how to handle these when the font is not loaded with fontspec? For example \usepackage[urw-garamond]{mathdesign}?
    – Damitr
    Apr 3, 2020 at 11:44
2

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.

1

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}
1
  • 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. May 24, 2011 at 15:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .