Hi Bob

Exactly, just making the border of the block visible (red line) will change the 
inner block behavior:
- With the visible border, I assume the inner block is using the standard top 
spacing before the preceding content (equivalent to the spacing between two 
para elements in normal content).
- Without the border there is no spacing before.

To be more precise in my requirement: The baseline oft the first line should be 
a good reference. This line should be aligned whether the middle of the graphic 
or with its bottom line. It depends on what is looking best at the end.

I am using FOP 1.1.

regards,
Ben

-----Ursprüngliche Nachricht-----
Von: Bob Stayton [mailto:b...@sagehill.net] 
Gesendet: Freitag, 17. April 2015 18:36
An: Kallauch, Benjamin (EEIN); docbook-apps@lists.oasis-open.org
Betreff: Re: [docbook-apps] AW: Graphical admonition in FO: Alignment?

Hi,
The way I interpret your examples is that just adding the red border to 
the block in the list-item-body changes the alignment of the 
list-item-label.  Is that right?  That should not happen.   What FO 
processor are you using?

Can you be a bit more precise on your need: "What I need is to align the 
list body text with the middle of the graphic, not the top." The "middle 
of the graphic" is a precise point, but the text can span multiple 
lines.  Do you mean the baseline of the first line of the body?

Bob Stayton
Sagehill Enterprises
b...@sagehill.net

On 4/17/2015 12:02 AM, Kallauch, Benjamin (EEIN) wrote:
> Dear all,
>
> I made some further tests on the admonition alignment and incidentally
> discovered a strange behavior.
>
> If I made the <fo:block> inside  the item body visible with a red dotted
> line, the inner block (built through <apply-templates>) is rendered on
> the bottom of its outer block. Here is an example code:
> <fo:list-item-body start-indent="body-start()">
>
> <fo:block xsl:use-attribute-sets="admonition.properties" border="thin
> dotted red">
>
>                                 <xsl:apply-templates/>
>
>                  </fo:block>
>
> </fo:list-item-body>
>
> As soon as the <fo:block> is empty and without any graphical content it
> seems to be not considered as rendered block. That's ok, but then the
> inner content (apply-templates) ist rendered differently:
>
> <fo:list-item-body start-indent="body-start()">
>
> <fo:block xsl:use-attribute-sets="admonition.properties">
>
>                                 <xsl:apply-templates/>
>
>                  </fo:block>
>
> </fo:list-item-body>
>
> Any suggestions, how I can control the behavior? Maybe leave out the
> <fo:block> element, because a block will already be rendered due to
> apply-templates?
>
> best regards, Ben
>
> *Von:*Kallauch, Benjamin (EEIN)
> *Gesendet:* Donnerstag, 16. April 2015 11:25
> *An:* docbook-apps@lists.oasis-open.org
> *Betreff:* [docbook-apps] Graphical admonition in FO: Alignment?
>
> Dear all,
>
> I have some difficulties to understand how to align the List Item
> Graphic with the first text line in the list body. In my example
> (attachment) the list body seems to be aligned with the top of the
> graphic (the graphic has actually no surrounding white space around).
> The background colors and line are set manually to see better what's
> going on. What I need is to align the list body text with the middle of
> the graphic, not the top.
>
> Several tests with the fo-attribute "alignment-baseline" did not bring
> any solution. Here is my current stylesheet code for generating this
> type of admonition:
>
> <xsl:template match="tip" name="volkswagen.tip.graphical.admonition">
>
>          <xsl:variable name="id">
>
>                  <xsl:call-template name="object.id"/>
>
>          </xsl:variable>
>
>          <xsl:variable name="graphic.width">
>
>                  <xsl:apply-templates select="."
> mode="admon.graphic.width"/>
>
>          </xsl:variable>
>
>          <fo:block id="{$id}"
> xsl:use-attribute-sets="graphical.admonition.properties" border="thin
> dotted black">
>
>                  <fo:list-block
> provisional-distance-between-starts="{$graphic.width} + 6pt"
> provisional-label-separation="6pt">
>
>                          <fo:list-item>
>
>                                  <fo:list-item-label
> end-indent="label-end()">
>
>                                          <fo:block
> background-color="#EEFFEE">
>
>                                                  <fo:external-graphic
> width="auto" height="auto" content-width="{$graphic.width}">
>
>                                                          <xsl:attribute
> name="src">
>
>
> <xsl:call-template name="admon.graphic"/>
>
>                                                          </xsl:attribute>
>
>                                                  </fo:external-graphic>
>
>                                          </fo:block>
>
>                                  </fo:list-item-label>
>
>                                  <fo:list-item-body
> start-indent="body-start()">
>
>                                          <fo:block
> xsl:use-attribute-sets="admonition.properties" background-color="#FFEEEE">
>
>                                                  <xsl:apply-templates/>
>
>                                          </fo:block>
>
>                                  </fo:list-item-body>
>
>                          </fo:list-item>
>
>                  </fo:list-block>
>
>          </fo:block>
>
> </xsl:template>
>
> Does anyone has a good idea how to control alignment between list item
> labels and their body text?
>
> Thanks, Ben.
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: docbook-apps-unsubscr...@lists.oasis-open.org
> For additional commands, e-mail: docbook-apps-h...@lists.oasis-open.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: docbook-apps-unsubscr...@lists.oasis-open.org
For additional commands, e-mail: docbook-apps-h...@lists.oasis-open.org

Reply via email to