← Prev in month ← Prev in thread

listitem not creating vertical space for mediaobject

From
Xmplar <>
Date
2012-07-07T07:07:35+00:00
ID
Thread
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:

    

    
    
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
  
   
   
   
   
   
   
   
   
   
   
   
  

    
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:

    

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

    

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

    

    
 

    
I get the same
        result in an
        itemizedlist:

    

    
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
← Prev in month ← Prev in thread