----- Original Message -----
Sent: Saturday, July 07, 2012 12:07
AM
Subject: [docbook-apps] listitem not
creating vertical space for mediaobject
I cannot get screenshots (wrapped in mediaobject) to display
correctly with enough vertical space in either an orderedlist or itemizedlist.
I've compared the fo output for my customization and the standard stylesheets
(DB 1.76.1), looking closely at all markup for lists from the fo:list-block,
down to the fo:block surrounding each fo:external-graphic. Here's my debugging
so far:
Using DB 1.76.1
stylesheets
In the standard stylesheets, screenshots are formatted in
mediaobject (both with and without being wrapped in informalfigure) and appear
correctly within listitems:
<!--[if !vml]--><!--[endif]-->
The relevant FO for that listitem is:
<fo:list-item
space-before.optimum="1em"
space-before.minimum="0.8em"
space-before.maximum="1.2em" id="d0e975">
<fo:list-item-label
end-indent="label-end()">
<fo:block>3.</fo:block>
</fo:list-item-label>
<fo:list-item-body
start-indent="body-start()">
<fo:block><fo:block>In the final screen,
click on Install. That will launch Serna.
When Serna starts, a window titled <fo:inline>?Examples?</fo:inline> may
appear.
At the lower left, click on the checkbox <fo:inline>?Dont show this
dialog on
startup?</fo:inline>.</fo:block><fo:block
start-indent="0pt"
space-before.minimum="0.5em"
space-before.optimum="1em"
space-before.maximum="2em"
space-after.minimum="0.5em"
space-after.optimum="1em"
space-after.maximum="2em" id="d0e986"><fo:block id="d0e987"
text-align="center"
><fo:external-graphic src="url(images/4A.png)"
width="120mm" height="auto"
content-width="scale-to-fit"
content-height="scale-to-fit"
content-type="content-type:image/png"
text-align="center"
/></fo:block></fo:block><fo:block
space-before.optimum="1em"
space-before.minimum="0.8em"
space-before.maximum="1.2em">Close that window
and
exit Serna.</fo:block></fo:block>
</fo:list-item-body>
</fo:list-item>
Using customized
stylesheets
In my customization I have screenshots that are in a
mediaobject (I?ve also tried wrapping in informalfigure):
<!--[if !vml]--><!--[endif]-->
This is the following page where I?ve tested putting the
mediaobject outside an orderedlist (in body text). This does create space for
the screenshot (the section title 4.2 occurs below the screenshot):
<!--[if !vml]--><!--[endif]-->
I get the same result in an
itemizedlist:
<!--[if !vml]--><!--[endif]-->
The FO for that listitem
is:
<fo:list-item
space-before.optimum="1mm"
space-before.minimum="1mm"
space-before.maximum="1mm" id="d0e975">
<fo:list-item-label color="#000000"
font-size="12"
end-indent="label-end()">
<fo:block>3.</fo:block>
</fo:list-item-label>
<fo:list-item-body
start-indent="body-start()">
<fo:block><fo:block
space-before.optimum="0mm"
space-before.minimum="0mm"
space-before.maximum="0mm"
space-after.minimum="3mm"
space-after.optimum="5mm"
space-after.maximum="7mm"
line-stacking-strategy="font-height">In the final
screen, click on Install. That will launch Serna. When Serna starts, a
window
titled <fo:inline>?Examples?</fo:inline> may appear. At the
lower left, click on
the checkbox <fo:inline>?Don<fo:character
character="?"/>t show this dialog
on
startup?</fo:inline>.</fo:block><fo:block
start-indent="0pt" span="all"
padding-top="0mm"
padding-bottom="0mm"
margin-top="0mm"
margin-bottom="0mm"
space-before.minimum="0.5em"
space-before.optimum="1em"
space-before.maximum="2em"
space-after.minimum="0.5em"
space-after.optimum="1em"
space-after.maximum="2em"
font-size="10.5pt"
font-weight="bold"
font-style="normal" color="#000000"
text-align="justify"
space-before="0mm"
space-after="0mm" id="d0e986"><fo:block
id="d0e987"
text-align="center"
><fo:external-graphic
src="url(c:/xmplar/book_XML-concepts-in-practice/images/4A.png)"
width="120mm"
height="auto"
content-width="scale-to-fit"
content-height="scale-to-fit"
content-type="content-type:image/png"
text-align="center"/></fo:block></fo:block><fo:block
space-before.optimum="0mm"
space-before.minimum="0mm"
space-before.maximum="0mm"
space-after.minimum="3mm"
space-after.optimum="5mm"
space-after.maximum="7mm"
line-stacking-strategy="font-height">Close that window
and exit
Serna.</fo:block></fo:block>
</fo:list-item-body>
</fo:list-item>
I cheated a little by
adding a ?space-before? value in the fo:block (highlighted in yellow above)
preceding the external-graphic, and created space for the screenshot, but that
seems impractical. I?ve deleted attributes for line-stacking-strategy,
space-after and space-before values, with no effect.
Here?s the
markup:
<para><emphasis role="bold">Exercise
1</emphasis><orderedlist
numeration="arabic">
<listitem>
<para>In a web browser,
go to <link
xlink:href="http://downloads.syntext.com/serna-free/4.4.0-RELEASE/"/>. This has
different versions for Windows, Macintosh or Linux operating
systems.</para>
</listitem>
<listitem>
<para>Download the
respective file for your computer (.exe, .dmg or linux.tgz). Save the
file to your desktop or a convenient temporary directory. Double-click
on the downloaded
file and follow the instructions at each step to set up the software.
You can choose to
set up the software files in the Program Files directory (<emphasis>C:/Program
Files</emphasis>) or another convenient
directory that you have permission to access.
Use all the default settings in the screen <quote>Select
Additional
Tasks</quote>.</para>
</listitem>
<listitem>
<para>In the final
screen, click on Install. That will launch Serna. When Serna starts,
a
window titled <quote>Examples</quote> may appear. At the
lower left, click on the
checkbox <quote>Don<?apos?>t show this dialog on
startup</quote>.</para>
<informalfigure
pgwide="1">
<mediaobject>
<textobject>
<phrase>window showing example
documents</phrase>
</textobject>
<imageobject role="pdf">
<imagedata fileref="images/4A.png"
align="center" format="PNG"
width="120mm"/>
</imageobject>
<imageobject role="epub">
<imagedata fileref="images/4A.gif"
format="GIF" width="500px"/>
</imageobject>
<imageobject role="web">
<imagedata fileref="images/4A.gif"
format="GIF" width="500px"/>
</imageobject>
</mediaobject>
</informalfigure>
<para>Close that window
and exit Serna.</para>
</listitem>
<listitem>
<para>In your file
manager, create a directory (for example, under the
<emphasis>C:/</emphasis> drive) in which to put
the XML files that you will create in
the exercises. Name this directory <emphasis>xmlfiles</emphasis>.</para>
</listitem>
</orderedlist></para>
And part of my customization for orderedlist
properties:
<xsl:attribute-set name="orderedlist.properties"
use-attribute-sets="list.block.properties">
<xsl:attribute name="font-family">
<xsl:choose>
<!--for lists
within 'table' or 'example', use same font style as surrounding
text-->
<xsl:when test="ancestor-or-self::d:table">
<xsl:value-of
select="$graphictypeface"/>
</xsl:when>
<xsl:when test="ancestor-or-self::d:example">
<xsl:value-of
select="$graphictypeface"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of
select="$body.fontset"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="font-size">
<xsl:choose> <!--
change font size of text for numbered list
for formal objects (table and example) ******works 24/9/11
-->
<!--for lists
within 'table' or 'example', this sets the same font size as surrounding
text-->
<xsl:when test="ancestor-or-self::d:table">
<xsl:value-of
select="$graphicfontsize"/>
</xsl:when>
<xsl:when test="ancestor-or-self::d:example">
<xsl:value-of
select="$graphicfontsize"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of
select="$body.font.master"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="line-height">
<xsl:choose> <!--
change font size of text for numbered list
for formal objects (table and example) ******works 24/9/11
-->
<!--for lists
within 'table' or 'example', use same line height as surrounding
text-->
<xsl:when test="ancestor-or-self::d:table">
<xsl:value-of
select="'inherit'"/>
</xsl:when>
<xsl:when test="ancestor-or-self::d:example">
<xsl:value-of
select="'inherit'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of
select="'inherit'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="color">
<xsl:value-of
select="$orderedlistcolour"/>
</xsl:attribute> <!--
text colour: specify web colour, e.g. #ff0000*****works 24/9/11
-->
</xsl:attribute-set>
I'm sure that the "height" and
"contentheight" in the markup has no bearing on the result.
Thanks in advance.
--
Dave
Gardiner