# Open Type Fonts have different scale in XeLaTeX

I am trying to create a template that allows easy switching of the main font using fontspec. I have noticed that the size of different fonts varies greatly, as the picture below illustrates. If we take the Palatino fonts as the benchmark, Adobe Garamond Pro and Linux Libertine are much smaller and Minion Pro and Adobe Caslon Pro are slightly larger than those, but still smaller than Palatino.

I always thought that open type fonts are somewhat "normalised" so that this does not occur. I could now use trial and error with fontspec's scale option, but maybe there are some guidelines out there that tell me what I am supposed to do to scale fonts to the same size.

This has been generated with the following MWE (except Pazo Math):

\documentclass{scrartcl}
\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}

\begin{document}

\setmainfont{TeX Gyre Pagella}
The quick brown fox jumps over the lazy dog (TeX Gyre Pagella)

The quick brown fox jumps over the lazy dog (Adobe Garamond Pro)

\setmainfont{Linux Libertine O}
The quick brown fox jumps over the lazy dog (Linux Libertine)

The quick brown fox jumps over the lazy dog (Adobe Caslon Pro)

\setmainfont{Minion Pro}
The quick brown fox jumps over the lazy dog (Minion Pro)

\end{document}

-
The x-height depends on font design. Some fonts (like palatino) simply have higher x-height than others. The bigger the x-height the more you need to account for that in leading. –  morbusg Mar 8 '12 at 10:28
If only one of the fonts is set using \setmainfont, you can say scale=MatchLowercase which should standardise the x-heights (but the fonts still won't have the same width, indeed, as their proportions differ). –  ienissei Mar 8 '12 at 10:33
At first you need a good definition of "the same size". What do you want to compare and use for normalization? The height of the "x"? The height of an "("? The width of some words? –  Ulrike Fischer Mar 8 '12 at 10:40
I mean the x-heights. The default font of the template is Palatino, and I was surprised about how big the difference in x-heights is with Palatino and Adobe Garamond Pro. So I wanted to allow for a more "uniform" design when switching fonts by normalising x-heights. The answer of ienissei standardises x-heights, but I am now wondering if it is typographically the correct decision to scale up certain fonts. As you see, I am a laymen when it comes to fonts, so some more advice would be appreciated. –  Jörg Mar 8 '12 at 11:39
@Jörg: Aaaaah, then yeah, definitely a big “no” for scaling (well it ain't that straightforward, but for the sake of simplicity let's say it is). They all are the same size (kinda), but differing x-height. Which means the document design has to change depending on the selected font. I'll scribble something in an answer, but it'll take a while since this just became a rather wide-area question. –  morbusg Mar 8 '12 at 12:03

The question appears to boil down to font design x-heights. A x-height is the height of the letter x, that is, without ascender ( like in d ), or descender ( like in g ). Some font designs, like the mentioned Palatino design by Hermann Zapf, have a larger x-height than some other font designs. As a consequence, it needs to be taken into account when designing the page.

I feel it is easy to think about in this way: How high does the majority of the ink reach on a line. Perhaps it would be good to visualize the difference as well. First, a page set “solid” (the font size is the same as the leading). TeX Gyre Pagella 11/11*24 on the left, and 11/15 on the right:

You can see that a font with a larger x-height needs more air to breathe.

Contrast this to a font with a smaller x-height: Minion Pro 11/11*24 on the left, with 11/12 on the right.

Now, ofcourse you almost always want some lead, because as you can see, the page turns rather black when there is no extra space between the lines.

-
Generally speaking, I agree with you that setting the x-height of a font is wrong – one should also specify a good leading for the font in question. But in that particular case, fontspec will only scale the font and not touch the leading. So, for instance, the font will become {10.5}{12} instead of {10}{12}. Hence it will have a proportionally smaller leading than a font with a larger x-height, so it should be all right at most normal sizes if the leading is carefully chosen. –  ienissei Mar 8 '12 at 14:51
Is there a typographical rule how to calculate lead and indents? –  Jörg Mar 8 '12 at 15:54
@Jörg Indents are usually set to 1em or 1.5em (an em is the width of the capital M character). The leading is usually something between 120% and 150% of the point size… but as shown by morbusg, it depends on the font and (also) on your personal preferences. I find it can also depend on the line length (if I am stuck with overlong lines, I will want a somewhat bigger leading so the page looks less crammed). –  ienissei Mar 8 '12 at 16:12
@Jörg: indent width depends on the measure width and can be anything from 1em to 3em; if you have for example two columns on a A4 paper, you'd probably want to go for ~1em indent lest you have problems with justifying the first row of the paragraph. Same thing with the leading, the wider the measure (typeblock width), the more you'd want to increase the leading so that the eyes won't loose track of the next line. –  morbusg Mar 8 '12 at 18:08
@ienissei: Ah, I see, makes sense. Might not be the optimal solution, but a solution nonetheless. It'd be nice if the user could choose the baselineskip in addition to the font and its size (I'm thinking about calculations based on \fontdimen5 if it'd be automatic). –  morbusg Mar 8 '12 at 20:05