I have a 40 pixel font that I'm trying to translate into custom images. I'm trying to match the size of the image exactly, but I'm having some problems getting exactly the right size. Basically, what it comes down to is this. When a font says it is size X (12, for instance), what does this physically mean?
-
in font we have a terminology of x height, are you talking about the same??– JackOct 8, 2011 at 5:09
-
6If you are typing a document, a font size 12 is typically used. What does the 12 mean?– PearsonArtPhotoOct 8, 2011 at 13:45
-
12 = 12pt type (typically)– DA01Oct 11, 2011 at 0:17
-
have a look at w3.org/Style/Examples/007/units.en.html#font-size– JackOct 11, 2011 at 4:57
-
A good read on this is “Point Size and the Em Square: Not What People Think”, by Thomas Phinney, a font guru at Adobe and FontLab.– typoDec 27, 2020 at 23:07
5 Answers
This is an excellent question, which has a rather unsatisfactory answer.
The size of type, whether specified in pixels, points (1/72") or millimetres, is the height of an em-square, an invisible box which is typically a bit larger than the distance from the tallest ascender to the lowest descender.
Given this is a somewhat arbitrary measure which
- is dependent on the exact technical design of the font
- can't be precisely measured from a printed or rasterized sample
it's not very meaningful or useful, other than as an approximation.
In your case, work out what size you need to specify in Photoshop to match the browser's rendering by experimentation. You should find this to be a constant ratio for any font, but I wouldn't expect this to be the case if you change browser or OS.
ASCII Time! Pretend the two boxes below are pieces of lead type from 1900 or so. Back then, typefaces were cast in lead (or routed in wood). For the type to be set into a printing lock-up, they had to be connected to solid blocks. This is where the dimension of the type (in points) comes from:
+--------------+ +-------------+ <----+
| | | | |
| XX | | | |
| X X | | | |
| XX XX | | | |
| XX XX | | X |
| XXXXXX | | X X | Point size of the type
| XX XX | | XXX |
| XX XX | | X X | |
| XX XX | | X X | |
| XX XX | | | |
| | | | |
+--------------+ +-------------+ <----+
Note the two letters above are different sizes, but their bounding box is the same. As such, in terms of points, both of those fonts are the same size.
Nowadays, we don't make much type in lead and wood and most of it is digital. However, the concept of the point sizing still exists in that there is a virtual box that is the same height for every letter that the type is placed on. Again, it's this virtual box that defines the point size rather than the physical measurements of the letterforms themselves. The actual size of the letterforms are often smaller than the point size (but can also be larger as well).
Measuring type in pixels doesn't work because of that, however, you can 'set' type in pixels in CSS and the like. The browser does a translation as best it can between the px size declared. But it's always a fuzzy estimation.
Ultimately, there's no accurate way to get two typefaces letterforms exactly the same size short of looking at them visually and changing the size of each until you see them as being the same size.
-
In your computer you calculate Points to Pixels like this PX = Points * SystemDPI / 72. DPI in a video world (monitor) is a pure arbitrary value introduced by Apple in 1984. Video devices use only pixels; DPI doesn't exist in video/image world. Modern fonts is based on this concept where 1 point, 1/72 is defined as 1/72 of an inch.– user7179Nov 1, 2012 at 21:37
-
5@AbdiasSoftware Yes, 1 point has been averaged to 1/72 of an inch and the first Mac had a 72 ppi screen. But not sure what that has to do with the question asked or the answer I gave. The fact remains that fonts, be them digital or analog, have a bounding box and that bounding box is what the size is referring to.– DA01Nov 1, 2012 at 21:51
The "font size" of a font refers to the font's "em height", which isn't necessarily the same as the height of particular characters in the font.
Usually the em height of a font adheres to the same basic idea - it'll be roughly set to the distance from the lowest descender (such as the bottom of the letter g
) to the highest ascender (such as the top of the letter h
):
As you can see, there are no common characters that cover that entire span.
With digital fonts, the "em height" of a font is a choice made by the font designer, and does not have to conform to this convention at all: a digital type designer can pick any foundation for their em size. However, fonts still tend to adhere, at least roughly, to the sort of convention described above. In old days when type consisted of metal blocks, the "em height" was the height of one of those blocks - naturally those blocks had to be big enough to fit all the ascenders, descenders, and accents.
Confusingly, many fonts now contain characters that do extend out of the em height. For example, it's common for modern typefaces to include capital letters with accents (such as Ć
) - these accents extend outside the traditional typographical ascender and thus these (and possibly other special characters) fall outside the top of the "em". To maintain consistency with older type, we don't adjust the em size to allow these - we keep the em size and just have these extend out of it. Any typographer using such accents will need to ensure there is space for them to extend into, though usually the line gap is adequate in body text.
The line gap in body text is a space left between the descender of one line of text and the ascender of the line below it. The quoted "font size" of text does not include the line gap in its measurement. This is why, when you choose a 12 point size, the lines are not exactly 12 points (1/6 inch) apart.
The line gap for any text can be influenced by many factors, including the software that is displaying it. It can be influenced by the CSS field line-height
, where 1.4
means that the line gap is 0.4 times the em height, and thus an entire line of body text will take up 1.4 times the em height including the line gap. In other applications, the line gap can be specified differently: word processors often specify a "line spacing" value as a multiple of some "single line spacing", but unlike in CSS, "single" spacing does not mean no line gap, but some "default" line gap, where the application tries to come up with a default based on metadata in the font file if it exists there. There are multiple standards for specifying metrics in the font (eg in Truetype, there are different Mac and Windows/OS2 standards) so the default line gap can vary between applications and operating systems.
Now, even if a designer does follow a predictable convention for their em height, this still doesn't tell you the size of capital letters (cap-height) or lower case letters like "x" (x-height or midline) as these can vary freely between typefaces in relation to the ascender height. Within a font family, these will usually be consistent. So for example, Times New Roman Bold and Times New Roman Regular have the same cap-height and x-height, and the ascenders, descenders and baseline will all match up between the bold and non-bold sections.
-
2Yes - there are conventions (such as em being from bottom of 'g' to top of 'h') but there is still variance, and font formats do not hold designers to these conventions at all. Nov 2, 2012 at 7:36
Try typing in the vertical bar character ('|') and measure that. If I duplicated your situation correctly and your antialiasing isn't blurring it too much, it should be 22px.
22px represents the height of the block of type. But each character fills the block differently. A 'g' or 'q' will occupy the lower region of that 22px, while capital letters and lowercase letters like 'b' or 'd' will occupy the upper portions. '|' is one of the only (if not the only) character that will entirely fill the 22px space.
I don't know about how to compare to your CSS settings, but that explains how Photoshop interprets text height.
-
1Furthermore, you can set two fonts at the same size and you'll often see that the letterforms, themselves, are not. They simply have the same 'block' size.– DA01Aug 10, 2012 at 21:20
-
3The pipe does not always fill the total space allotted. It's purely a preference by the type designer. It'll often match the top of the ascenders and bottom of the descenders, but even then, the space allotted for the characters can still be much larger.– DA01Aug 14, 2012 at 18:36
-
2The vertical bar character is not always equal to the em size (eg "full height") of the font, no. In fact, usually it will be less. Aug 15, 2012 at 11:38
-
2The vertical box-drawing characters should theoretically cover the entire em-height (and probably overlap it a small amount). But very few fonts include these characters. The normal vertical bar (
|
) will NOT usually equal the em size. It doesn't even do this in the Microsoft core fonts (Arial, Georgia etc). Sep 7, 2012 at 5:01 -
2The vertical bar character doesn't fill the whole height. Accents for uppercase characters, e.g. "Á" are positioned higher. Compare yourself: "Á" "|"– znqNov 1, 2012 at 9:48
Are you sure your font is measured in pixels? Most of the time fonts are measured in points. A point is 1/72 of an inch. So a 40 pt font is 40/72" or 5/9" tall. The kicker is that that is the dimension from the top of the ascenders on tall letters to the bottom of the descenders on letters that hang below the baseline. That's why the x-height is sometimes used, as mentioned above. That is the height of the lower-case letters that don't stick up or down.
Either way, the measurements are never exact anyway, unfortunately. You'll just have to some measuring and figuring (and/or trial-and-error) to accomplish what you're trying.
-
But points are only relevant to physical type (printed, carved, engraved etc).– e100Oct 10, 2011 at 11:38
-
Not entirely correct. Type isn't measured from top of the ascenders to the bottom of the descenders, but rather it's measured by a bounding box that may or may not correlate to the ascender/descender height. This goes back to the days of lead and wood type where type was put on a block. It was the height of this block that dictated what size the type was labeled as. As such, two fonts, both set at 12pt may be very different sizes compared to each other. (I won't get into that fact that 1pt doesn't traditionally = 1/72 of an inch... ;)– DA01Oct 10, 2011 at 19:59