Skip to main content
Participating Frequently
September 17, 2024
Answered

Understanding InDesign's First Baseline Offset: Is Ascent Actually Aligned to the Em Square?

  • September 17, 2024
  • 5 replies
  • 3712 views

In Text Frame Options, Baseline Options there's an option to align the First Baseline Offset to a selection of Ascent, Cap Height, x-height, etc.

 

Left at the default (Ascent), swapping through typefaces it's clear the offset doesn't align to the ascent. As I understand it, it's meant to be the lowercase 'd'. Though I haven't seen an explanation as to why it doesn't align.

 

It makes me wonder if it instead is aligned to the top of the Em square defined in the design of the typeface. Would anyone have any confirmation or evidence of this?

 

 

<Title renamed by MOD>

Correct answer Peter Kahrel

" it's meant to be the lowercase 'd'. "

No. Ascent is the designed distance from the baseline to the top of any potential glyphs (accents, etc). Yes, in the old days, ascents were based on the tallest ascender (and any accented glyphs were placed above this line). Nowadays, the ascent is much larger to enclose these glyphs, and have become even bigger as fonts are getting more glyph support; they increase the ascent to accomoodate the new glyphs above the ascenders. Open source fonts are especially bad at this as they keep "tinkering" with the offsets, so the, say, Open Sans you used 2 years ago can be quite different than the one you can download today. This is troublesome for InDesign documents composed based on Ascent if they are opened by somoen using differently designed fonts.

Baselines are also all over the map due to the design of the font, so yes, in the traditional EM square sense, a font with larger descenders will have a higher baseline relative to a font with shorter descenders.


Nowadays, the ascent is much larger to enclose these glyphs, and have become even bigger as fonts are getting more glyph support; they increase the ascent to accomoodate the new glyphs above the ascenders.

 

Not exactly. In most fonts (that I have seen) some diacritics, especially complex ones, are above the font's ascender value:

 

5 replies

rob day
Community Expert
Community Expert
September 18, 2024

Hi @Ciaran25473599uu11 , Also, you can see that the ascender line is determined by the font’s designer (not InDesign), by comparing different versions of the same named font.

 

Here is the cloud activated Adobe Type version of Roboto compared to the Google freeware version, which I have installed in my user Fonts folder. The AdobeType version sets the Ascender line above the diacritic marks plus some padding, while the Google version sets it on the lowercase ascender:

 

Brad @ Roaring Mouse
Community Expert
Community Expert
September 18, 2024

What's particularly confusing to some users (who unkowingly have diffferent versions of the same font) is why a document they received from someone else will look fine when they open it, but the moment they attempt any edits, the first line will change position. It's because InDesign (and PageMaker before it) only recomposes the text when it needs to. So, the file has been composed and saved according to the first user's font, and any edits will elicit a recompose to the current user's fonts.

Speaking of PageMaker, this is kinda how we got here. When PM first came out, there was only one opton; the first line of text was always positioned according to the baseline of the first line's leading(line space). This annoyed most of us because there was always space above the characters at the top of stories, making it nigh impossible to line up the tops of stories on a page to the top margin. In later versions, PM tried to address that by coming up with what they called Proportional spacing, where the assumption was made that, on average, 2/3 of the linespace was above the baseline and 1/3 below, so this brought the first line up to eliminate* the space (*depending on the design of the typeface). This became PM's new default, and it annoyed even MORE people, particularly if Auto line spacing (ick) was used.  (There was also a Cap height option, but most usage fell between the other two.)  Thankfully, Proportional spacing didn't carry over to InDesign, but when I had to convert clients' old legacy PM files to InDesign who used Proportional, to make the layouts match, I needed to apply a Fixed space with a minimum equal to 2/3 of the first line leading and everything popped back into place.

mattk79
Participating Frequently
April 30, 2025

This is what I'm encountering. I've been updating the same document with the same fonts for the last 5 years. Now when I go to edit the same text It drops the First basedline down causing everything to be misaligned. Paragraphs are now showing overflow text. This is now very frustrating as I now have to go and change every text box to a CapX or realign everything in my booklet. This is a total time waste and I never had an issue before now. I can't stand this. 

Peter Kahrel
Community Expert
Community Expert
September 18, 2024

Just in case you want to align the first line's ascent with the top of the text frame, first get the real ascent's value. You can use the following script. Select an ascender letter and run the script. Note the value.

 

Then set the text frame's first baseline offset to Fixed and the Min: value to the value you recorded.

 

if (app.selection.length === 0 
			|| !(app.selection[0] instanceof Character)) {
	alert ('Please select a single character', '', true);
	exit();
}

ch = app.selection[0]
bline = ch.baseline;
x = ch.createOutlines()[0];
realAscent = bline - x.geometricBounds[0];
app.activeDocument.undo();
alert (realAscent.toPrecision(4), 'Real ascent');

 

Community Expert
September 18, 2024

@Ciaran25473599uu11 asked: "… Is Ascent Actually Aligned to the Em Square?"

 

Well, the only thing I have to add is that there is also an option to the First Baseline Offset that is not available through the user interface; it can be assigned by scripting with e.g. ExtendScript (JavaScript). Here all the possible options for scripting:

https://www.indesignjs.de/extendscriptAPI/indesign-latest/#FirstBaseline.html#d1e76521

 

The one that is missing in the user interface is: FirstBaseline.EMBOX_HEIGHT

 

If one selects a text frame (not the text, the frame itself) one could apply the value with the following script code:

app.selection[0].textFramePreferences.firstBaselineOffset = FirstBaseline.EMBOX_HEIGHT;

 

From my German InDesign 2024 where the selected text frame is showing first baseline set to EMBOX height. No idea why this option is not available in the user interface, when applied you see an empty field for "Offset" ("Versatz" in German):

 

Regards,
Uwe Laubender
( Adobe Community Expert )

Peter Kahrel
Community Expert
Community Expert
September 18, 2024

O, yes, that one. I've never found any use for it. It's available also for anchored frames (to position them vertically relative to the anchor point). InDesign's em corresponds to the point size, so in 10-points text the em is 10 points.

Peter Kahrel
Community Expert
Community Expert
September 17, 2024

It's built into the font. Some fonts set the ascent to the highest ascent, others leave some space. This screenshot is from the Minion Pro in a font editor, which shows that its top is a bit below the ascent value set for the font. The ascent is the top horizontal rule labelled A in the light-blue box on the left.

 

 

Participating Frequently
September 17, 2024

Interesting! Peter, thank you.

 

If I understand that correctly, an ascent value (line A) is listed as part of the fonts' features, which InDesign can read. But it doesn't necessarily refer to the ascenders in the font, nor does it mean the ascenders align to this value.

 

Is this just one of those odd quirks in font design? 

Peter Kahrel
Community Expert
Community Expert
September 17, 2024

Correct, it is one of those.

Willi Adelberger
Community Expert
Community Expert
September 17, 2024

Ascent uses the highest letter. It is different in different fonts. More reliable results you will get with cap height (= H-height). 

Scott Falkner
Community Expert
Community Expert
April 30, 2025

Agreed. I use Cap Height so often I made it the default. To do that cahnge the first baseline offfset while no document is open. This will become the default nor all new documents you create on that device. It will not affect documents you ahve already made.

mattk79
Participating Frequently
April 30, 2025
Scott,

Thanks for this. I was wondering how to make it default as it’s not in Preferences. But if it doesn’t affect old docs, if I open an old one and want to make changes and it was set to Ascent as default will it then be reapplied as CapX or just stay the same?

I’ve made some painful alignment changes already, but I have tables and every cell is now affected by this. I’m using Sans Source Pro which is ironic because nothing been updated with this font. This is an ID thing trying to simulate font adjustments as it didn’t happen with all my fonts in the document. But now you can’t get a true text center alignment with Ascent. They always mess up what has worked for decades. That’s why I hate updating anything.

Matt Kornegay