10

Suppose that one likes the "upright" shape of the font Sabon Next LT Pro, but prefers the "italic" shape of the font Garamond Premier Pro over the italic shape of Sabon Next. (Both fonts are Garamond-style fonts, by the way.) Unfortunately, the x-heights of these fonts are quite different, creating some visual unpleasantness when they're typeset side by side.

I know of the option

Scale = MatchLowercase

when loading sans-serif and typewriter fonts via \setsansfont and \setmonofont statements; these options serve to scale the sans-serif and typewriter fonts to the x-height of the main text font in use. Unfortunately, there seems to be no (documented) way to set the x-height of an italics text font in the same easy way. Is this impression incorrect?

In short, how should I go about scaling my italics text font to equate its x-height to that of the main (Roman/upright) text font?

11

You can set the main font first to set the x-height; then you can reset it.

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Lucida Bright OT}
\setmainfont[Ligatures=TeX,
  ItalicFeatures={Scale=MatchLowercase},
  ItalicFont={EB Garamond 12 Italic},
]{Lucida Bright OT}

\begin{document}
Abc\emph{def}

%% We check what the normal choice would be    
{\fontspec{Lucida Bright OT}Abc}{\fontspec{EB Garamond}\itshape def}

\end{document}

Apologies for the terrible font combination: I chose a font with a large x-height (Lucida Bright) for better comparison.

I learned the trick of setting twice the main font from Silex (see https://tex.stackexchange.com/a/104000/4427)

enter image description here

  • Many thanks! The solution turns out to be much easier than I thought it'd be. – Mico May 20 '13 at 20:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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