Align to baseline grid questions/issues

Previous topic - Next topic


So I'm creating a book for print that has a 2 column layout. At first I had all the text as fixed linespacing and had everything set with styles etc. The headers, including the space before and after were easy to set up, and they looked good, but Of course the text wasn't aligned across the columns, which bugged me. So I changed it all to align to the baseline grid, which worked well, but then the header spacing got all messed up. Setting the amount of space before and after the headers became like guess work, because setting more space after a header would cause more space in front of the header and so forth. And sometimes the spacing would be different in the text even with the same style of header (when the regular text is set to align to baseline grid) which looks really bad. Any idea what's going on?


What's going on really depends on exactly how your document is set-up and it's very difficult to say without seeing it first-hand.

Scribus will follow a complicated set of rules that tell it where to place each character and those rules have many dependencies, such as whether the baseline grid is being used. How these rules interact is very much dependant on the various style and formatting settings. Without knowing all of these settings precisely, it's nigh-on impossible to interpret the situation correctly and, therefore, come up with a "fix".

It might be easier for people to say how to get what you want if you could supply an example - or mock-up - of what you're trying to achieve. If you can accurately describe what you want to happen then someone should be able to come up with something that will work for you. (And the act of precisely describing what you want might give you the insight into what's happening.)


Thanks, GarryP. Let me try to give some details, and if that's not enough I could upload a .sla file. 

So I used the wiki here to get started:

My body text is 11 pt Georgia Regular. My headers are Mr Eaves Small Caps font. Level 1 headers are 24 pt, level 2 20 pt, level 3 16 pt, level 4 14 pt (or something like that).

So I set the body to align to baseline grid.  I spaced out the baseline to 15 pts. Then I initially set the headers to align also but that didn't work too well. Since its a two column layout, the headers often need to run to the next line, and when they do, there is tons of space between the two lines of the headers, which looks bad. 

So I set the headers to fixed linespacing.  That caused different problems. My goal was to make the headers have decreasing amounts of space before them and to a lesser extent after them. So I wanted to just set the level 1 headers to for example 20 pt. before and 6 after, the L2 to 16 and 5, L3 to 14 and 4 and L4 to 10 and 3. But that didn't seem to work at all.  I would get wonky results.  To get the effect I wanted, I would have to seemingly randomly adjust the line spacing, and the before and after margins. For example, on a level 1 header, I would set it to 22 pt and 6 pt and it would increase the space after the header. So I would adjust it to 15 pt before and 3 after and it would increase the space after (these are theoretical examples).

And then on say a level 2 headers, I would get them set the way they want, and on some headers, there would be more space after the header for no discernible reason. Any idea why its doing this?


I'll try and give some quick explanations that will hopefully make things a bit clearer.

When you tell Scribus to use the baseline grid it tries to draw the text in the first place it can draw it while keeping the text within the frame and not overlapping other text.

In the first example image (top-left), the baseline grid size is smaller than the maximum height of the heading characters. This means that the heading text will always take up more than one "row" in the baseline grid.

Scribus looks at the first baseline row (1) and sees that the text would be drawn outside of the frame, so that's no good.
It then looks at the next baseline row (2) but that's no good either. The next row (3) is fine so that's where it starts.

After the heading Scribus needs to start drawing the body text and it does that same thing again, this time using the next baseline row as it's tall enough to draw the text.

In the second example image (top-right) I've set the style used for the headings to have a 1pt Space Below. When you do this you are effectively saying to Scribus "invalidate any baseline rows below this text that encompass the Space Below amount". In other words, when using the baseline grid, any Space Below setting greater than 0 will make Scribus skip at least one baseline row.

In the third example (bottom-right), the heading is Fixed Line Spacing rather than using the baseline grid. The fixed line spacing is 20pt while the text is 24pt (and the baseline grid is 15pt). Scribus moves down the page by 20p and then draws the 24pt text wherever that happens to be. This gives the overlap. Applying a Space Below size doesn't make a difference to the space between the lines of the heading as Space Below works on paragraphs rather than lines. Note that the body text continues on the next free baseline row. Setting a Space Below would, as earlier, invalidate the row after the heading and force Scribus to start the body text on the row after.

What happens when you mix baseline grid and fixed line spacing is that you are trying to tell Scribus to use two different layout systems at the same time. Sometimes you might be very lucky and things will work out okay but most of the time you will get problems.

Unfortunately there's no good way to get around this. The only option you have is to experiment and see what happens.

[attachment deleted by admin]


Thanks for the detailed response.  You're a big help to users on this forum.

For anyone else, I found a work around.  I set all text to align to baseline grid, including the headers.  Then I set the "before" and "after" spaces of all headers to 0. I went back and shortened the headers that would have gone more than one line. I then put in a manual return, ie. an extra line of blank space, before and after each header.  I then gave the blank lines a style.  Before each header I set the blank line to be styled as one header smaller.  I mean if it was a second level header, I styled the blank line above it to be third level header style.  I set all the blank lines below the headers to be body text style.  This produced a pleasing look where each header has slightly more space above it than below it, and the smaller headers have slightly less space before them than the larger headers.  And most importantly all the spacing is consistent. And it really wasn't that much work.


You're welcome.

I hope your work-around helps people who have the same issue.