----- 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