Re: [XSL-FO] vertical alignment in sidebar
- laborde wrote:
> Okay, sorry. Below I have pasted in the generated FO. I *think* I amWhen I test your example with XSL Formatter V3 or XEP V4 the line height
> doing exactly what you're telling me, but apparently not because it
> still isn't working. Here, the definition for first-term runs 3 lines in
> the sidebar, and these lines are double spaced with same spacing between
> lines as in paragraphs. (Not to mention that the second and third lines
> of first definition are printing on top of the second definition.)
in the floats is as expected, so it looks like you're seeing a bug in
your FO implementation. You can try putting the property on the
block-container instead of the float (which is probably the better place
for it anyway).
However, in testing this I noticed that unless the float was the first
thing in the containing block that both XSL Formatter and XEP aligned
the float with the top of the *next* line.
I'm not sure why this is the case--I looked over the relevant stuff in
the XSL and CSS specs and didn't see anything that appeared to obviously
require this behavior but since both of them do it it's probably correct
per the spec.
I was able to put a negative space-before on the block container and
pull it up to the start of the line I wanted, i.e.:
You need to set the conditionality because by default space before is
conditional and the block container in the side float is the first thing
in its containing reference area and therefore its space before would be
discarded by default.
The 24pt value is 200% of 12pt.
W. Eliot Kimber
9390 Research Blvd, #410
Austin, TX 78759
- Eliot Kimber wrote:
> When I test your example with XSL Formatter V3 or XEP V4 the line heightI tried but with no luck, and I'm using XEP V4, so the bug has to be
> in the floats is as expected, so it looks like you're seeing a bug in
> your FO implementation. You can try putting the property on the
> block-container instead of the float (which is probably the better place
> for it anyway).
me. I apologize. I've stripped my test files to bare bones, but I must
have left something that is interfering. I'll start from scratch and
find it. But I'm very glad you tested this anyway because....
> However, in testing this I noticed that unless the float was the firstYes, and I thought that was getting out of line because of the whole
> thing in the containing block that both XSL Formatter and XEP aligned
> the float with the top of the *next* line.
other line-height issue. I would never have figured out how to fix this.
Your solution works perfectly. Thank you!
> You need to set the conditionality because by default space before isI didn't know and am very glad to learn that. Thanks so much for
> conditional and the block container in the side float is the first thing
> in its containing reference area and therefore its space before would be
> discarded by default.
*all* your help.
- Elliot, I got it! I was using <fo:inline>, which caused the side float
text to be double-spaced exactly like the body paragraph text. But the
other problem was that when 3 or more <term>s occur in one line, the
side float definitions printed on top of each other. After reading your
explanation, I realized that besides using the negative value for
"space-before" to pull up the definition to the correct line, I then
have to use a larger, positive, "space-after" value--and set the
conditionality there too--to keep the definitions from running over each
other. Until you told me, I didn't know about space getting discarded
by default. Now all the spacing and alignment is perfect. Again, my
...maybe this is a no-brainer to everyone else, but in case it's useful
to anyone, here's what I ended up with:
<fo:float float="end" clear="end">
font-family="Helvetica" font-size="8pt" font-style="italic"
start-indent="1em" end-indent="-20em" line-height="8pt"