7

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.

Comparison of Open Type Fonts

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)

\setmainfont{Adobe Garamond Pro}
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)

\setmainfont{Adobe Caslon Pro}
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}
Jörg
  • 7,653
  • 2
    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 08 '12 at 10:28
  • 2
    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 08 '12 at 10:33
  • 2
    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 08 '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 08 '12 at 11:39
  • Why'd you want to switch fonts? Do you need a contrasting face in the running text (in addition to the italic/bold/bold italic/etc. cut of the main font)? Depending on what your document is about, its length etc., maybe you should stick to just one font. – morbusg Mar 08 '12 at 11:50
  • I don't think I made myself clear. It is about allowing the user of the template to easily switch the mainfont for the whole document. Not using different fonts within the document. The default font is Palatino, which has large x-heights. The question is whether I should scale optional fonts to match the x-height of Palatino. Assume you first write in Palatino, but later switch to Garamond. Because of the lower x-height document will look completely differently. The question is whether scaling fonts is a typographical no-no. – Jörg Mar 08 '12 at 11:54
  • 2
    @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 08 '12 at 12:03
  • @Jörg: You can find nice typography book recommendations in this questions answer. But I feel that I should warn you: That particular rabbit hole (typography) goes deep! ;-) – morbusg Mar 08 '12 at 18:33

1 Answers1

9

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:

enter image description here enter image description here

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.

enter image description here enter image description here

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.

morbusg
  • 25,490
  • 4
  • 81
  • 162
  • 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 08 '12 at 14:51
  • 1
    Is there a typographical rule how to calculate lead and indents? – Jörg Mar 08 '12 at 15:54
  • 2
    @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 08 '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 08 '12 at 18:08
  • @ienissei: I feel that Palatino needs a lot of air to give justice to its breathtakingly beautiful form; no way 1–2 points is going to cut it. :-) – morbusg Mar 08 '12 at 18:20
  • @morbusg Definitely, it was just an example :) A font like Minion or Garamond could do with a tad more leading, in my opinion, so that's really what I meant (give Palatino a fair leading and hope the others will still look good once scaled). – ienissei Mar 08 '12 at 19:27
  • 2
    @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 08 '12 at 20:05