xfc_pro_java fo2docx and fo2odt render list-item with leading minus sign incorrectly

David Clunie <[email protected]> Thu, 09 Jul 2015 12:12:44 -0400
Newsgroups gmane.text.xml.xfc.general
Message-ID <[email protected]>
Hi Hussein

I came across an issue where a '-1' in a DocBook <variablelist/>
<varlistentry/> <term/> that is rendered in the FO as a
<fo:list-block/> <fo:list-item/> <fo:block/> <fo:inline/> text
value is being rendered in the DOCX or ODT as '2', not '-1'.

The Word output looks like:

Enumerated Values:
1	Lower pixel values correspond to less X-Ray beam intensity
2	Higher pixel values correspond to less X-Ray beam intensity

whereas it should be:

Enumerated Values:
1	Lower pixel values correspond to less X-Ray beam intensity
-1	Higher pixel values correspond to less X-Ray beam intensity

and I notice that it is using the Word bullet numbering feature for
these, which is perhaps (incorrectly) automatically detected in this
case.

I have attached an FO object that demonstrates the problem (towards
the end of the file):

       <fo:block xmlns:d="http://docbook.org/ns/docbook" 
xmlns:rx="http://www.renderx.com/XSL/Extensions" 
space-before.optimum="1em" space-before.minimum="0.8em" 
space-before.maximum="1.2em" 
keep-with-next.within-column="always">Enumerated Values:</fo:block>
       <fo:list-block id="idp140441762944656" 
provisional-distance-between-starts="2em * 0.60+1em" 
provisional-label-separation="1em" space-before.optimum="0.5em" 
space-before.minimum="0.4em" space-before.maximum="0.6em" 
space-after.optimum="0.5em" space-after.minimum="0.4em"
       space-after.maximum="0.6em">
         <fo:list-item id="idp140441762961952" 
space-before.optimum="0em" space-before.minimum="0em" 
space-before.maximum="0.2em">
           <fo:list-item-label end-indent="label-end()" text-align="start">
             <fo:block hyphenate="false" font-weight="bold">
               <fo:inline>1</fo:inline>
             </fo:block>
           </fo:list-item-label>
           <fo:list-item-body start-indent="body-start()">
             <fo:block>
               <fo:block 
id="para_53931309-ab74-4e67-8066-e7b0b19b66d5">Lower pixel values 
correspond to less X-Ray beam intensity</fo:block>
             </fo:block>
           </fo:list-item-body>
         </fo:list-item>
         <fo:list-item id="idp140441763193200" 
space-before.optimum="0em" space-before.minimum="0em" 
space-before.maximum="0.2em">
           <fo:list-item-label end-indent="label-end()" text-align="start">
             <fo:block hyphenate="false" font-weight="bold">
               <fo:inline>-1</fo:inline>
             </fo:block>
           </fo:list-item-label>
           <fo:list-item-body start-indent="body-start()">
             <fo:block>
               <fo:block 
id="para_44931a0f-f13b-4d9a-97ea-fe0e2884cf1a">Higher pixel values 
correspond to less X-Ray beam intensity</fo:block>
             </fo:block>
           </fo:list-item-body>
         </fo:list-item>
       </fo:list-block>

and

I assume this is a consequence of what is described in the documentation
(section 4.2 "XFC automatically tries to infer the numbering style from
the label of the first list item")

If I put a space before the minus sign in the second list item, it renders
as expected (as ' -1'), in case that helps diagnose the problem, but then
that creates an unwanted space in the output.

David


--
XMLmind FO Converter Support List
[email protected]
http://www.xmlmind.com/mailman/listinfo/xfc-support
testvariablelistsignedentries.zip (application/x-zip-compressed, 13.2 KB) - not displayed