OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] borders missing on continued tables



I solved the problem by copying the "table.frame" template (from table.xsl)
to my customization layer and changing
    <xsl:attribute name="border-top-width">
to
    <xsl:attribute name=" border-top-width.length">
and
    <xsl:attribute name="border-bottom-width">
to
    <xsl:attribute name="border-bottom-width.length">

("border-top-width" also appears in the "calsTable" template where I'm guessing
it comes into play if a table has more than one tgroup, but I didn't test this.)

In addition, I used this attribute set:

  <xsl:attribute-set name="table.table.properties">
    <xsl:attribute name=" border-before-width.length">0.5pt</xsl:attribute>
    <xsl:attribute name="border-after-width.length">0.5pt</xsl:attribute>
    <xsl:attribute name="border-before-width.conditionality ">retain</xsl:attribute>
    <xsl:attribute name="border-after-width.conditionality">retain</xsl:attribute>
  </xsl:attribute-set>


The idea for doing this came from this post:
http://www.mail-archive.com/fop-users@xmlgraphics.apache.org/msg07006.html
which says, among other things,

  "If you specify them by means of the shorthands (border, border- width...) or
  corresponding properties (border-top-width, border- bottom-width...), then the
  .conditionality component defaults to "discard" and cannot be overridden by
  using the extended, native XSL properties."

This is apparently based on a much stricter reading of the FO standard for
FOP 0.93.


On 4/30/07, Bob Stayton < bobs@sagehill.net> wrote:
I suspect it is a bug in the table handling code in FOP 0.93.  Other XSL-FO processors output the top rule on the continued tables.
 
Bob Stayton
Sagehill Enterprises
DocBook Consulting
bobs@sagehill.net
 
 
----- Original Message -----
Sent: Friday, April 27, 2007 11:00 PM
Subject: [docbook-apps] borders missing on continued tables


I had such a good response with my last problem (thanks, Bob!) that I thought
I'd try another.  On tables that continue across a page boundary the top
border on the second (and subsequent) pages is missing.  From some previous
posts I had the impression that setting "border-before-width.conditionality"
to "retain" was supposed to take care of this, but it doesn't seem to.
(See the attached .png file for a screenshot.)

I am using DocBook 4.12, docbook-xsl-1.72.0, FOP 0.93 (with the patch
that Bob Stayton mentioned in reply to me previous post), jre1.6.0, and
Windows XP.


I have the following table-related parameters and attributes set:

  <xsl:param name="default.table.width" select="'5in'"></xsl:param>
  <xsl:param name="tablecolumns.extension" select="'1'"></xsl:param>
  <xsl:param name="table.layout" select="'fixed'"></xsl:param>

  <xsl:attribute-set name="table.properties">
    <xsl:attribute name="keep-together.within-column ">auto</xsl:attribute>
    <xsl:attribute name="keep-with-next">always</xsl:attribute>
  </xsl:attribute-set>

  <xsl:attribute-set name="table.table.properties ">
    <xsl:attribute name="border-before-width.conditionality">retain</xsl:attribute>
    <xsl:attribute name="border-after-width.conditionality">retain</xsl:attribute>
    <xsl:attribute name="border-before-style">solid</xsl:attribute>
  </xsl:attribute-set>


The document source is as follows:

<chapter>
<title>A Chapter</title>
<sect1><title>A Sect1</title>
<para>aslkdjfal slasjk laskdj lskjdf lskjf</para>
<table frame = "all" colsep = "1" rowsep = "1">
<title>a table</title>
<tgroup cols = "3" colsep = "1" rowsep = "1">
<colspec colnum = "1" colname = "1" colwidth = "1.507in"/>
<colspec colnum = "2" colname = "2" colwidth = " 2.482in"/>
<colspec colnum = "3" colname = "3" colwidth = "1.011in"/>
<thead>
<row rowsep = "1">
<entry colname = "1">Foo and Bar</entry>
<entry colname = "2">Language or Function</entry>
<entry colname = "3">Command</entry>
</row>
</thead>
<tbody>
<row rowsep = "1">
<entry colname = "1">Apple</entry>
<entry colname = "2">aaaaaaaaaaaaa</entry>
<entry colname = "3">11111111</entry>
</row>
<row rowsep = "1">
<entry colname = "1">Orange</entry>
<entry colname = "2">bbbbbbbbbbbbbbbb</entry>
<entry colname = "3">2222222222</entry>
</row>
<row rowsep = "1" condition = "nonpvf">
<entry colname = "1">Banana</entry>
<entry colname = "2">cccccccccc</entry>
<entry colname = "3">333333333</entry>
</row>
<row rowsep = "1" condition = "nonpvf">
<entry colname = "1">Plantain</entry>
<entry colname = "2">ddddddddddd</entry>
<entry colname = "3">4444</entry>
</row>
<row rowsep = "1" condition = "nonpvf">
<entry colname = "1">Acerola</entry>
<entry colname = "2">eeeeeeeeeeeeeeeeeee </entry>
<entry colname = "3">55555555</entry>
</row>
<row rowsep = "1">
<entry colname = "1">Watermelon</entry>
<entry colname = "2">fffffffffffffffffff</entry>
<entry colname = "3">66666666</entry>
</row>
<row rowsep = "0">
<entry colname = "1">Kiwi</entry>
<entry colname = "2">gggggggggggggggggg</entry>
<entry colname = "3">7777777</entry>
</row>
</tbody>
</tgroup></table>
<para>sldkflskf</para>
<para>sldkflskf</para>
<para>sldkflskf</para>
<para>sldkflskf</para>
<para>sldkflskf</para>
<para>sldkflskf</para>
<para>sldkflskf</para>
<para>sldkflskf</para>
<table frame = "all" colsep = "1" rowsep = "1"><title id = "BABIBJJC">Banana
Options</title>
<tgroup cols = "8" colsep = "1" rowsep = "1">
<colspec colnum = "1" colname = "1" colwidth = "1.413in"/>
<colspec colnum = "2" colname = "2" colwidth = " 0.719in"/>
<colspec colnum = "3" colname = "3" colwidth = "0.541in"/>
<colspec colnum = "4" colname = "4" colwidth = "0.531in"/>
<colspec colnum = "5" colname = "5" colwidth = " 0.562in"/>
<colspec colnum = "6" colname = "6" colwidth = "0.561in"/>
<colspec colnum = "7" colname = "7" colwidth = "0.561in"/>
<colspec colnum = "8" colname = "8" colwidth = " 1.171in"/>
<thead>
<row rowsep = "1">
<entry colname = "1">Peel</entry>
<entry colname = "2">2-bit</entry>
<entry colname = "3">4-bit</entry>
<entry colname = "4">8-bit</entry>
<entry colname = "5">16-bit</entry>
<entry colname = "6">32-bit</entry>
<entry colname = "7">64-bit</entry>
<entry colname = "8">United Fruitcake</entry>
</row>
</thead>
<tbody>
<row rowsep = "1">
<entry colname = "1">Zipper</entry>
<entry colname = "2"><para></para></entry>
<entry colname = "3"><para></para></entry>
<entry colname = "4"><para></para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para></para></entry>
<entry colname = "8"><para>X</para></entry>
</row>
<row rowsep = "1">
<entry colname = "1">Velcro</entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para></para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para></para></entry>
<entry colname = "8">X</entry>
</row>
<row rowsep = "1">
<entry colname = "1"><para>Lacing</para></entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para>X</para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para>X</para></entry>
<entry colname = "8">X</entry>
</row>
<row rowsep = "0">
<entry colname = "1">Buttons</entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para>X</para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para>X</para></entry>
<entry colname = "8"><para>X</para></entry>
</row>
<row rowsep = "1">
<entry colname = "1">Zipper</entry>
<entry colname = "2"><para></para></entry>
<entry colname = "3"><para></para></entry>
<entry colname = "4"><para></para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para></para></entry>
<entry colname = "8"><para>X</para></entry>
</row>
<row rowsep = "1">
<entry colname = "1">Velcro</entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para></para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para></para></entry>
<entry colname = "8">X</entry>
</row>
<row rowsep = "1">
<entry colname = "1"><para>Lacing</para></entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para>X</para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para>X</para></entry>
<entry colname = "8">X</entry>
</row>
<row rowsep = "0">
<entry colname = "1">Buttons</entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para>X</para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para>X</para></entry>
<entry colname = "8"><para>X</para></entry>
</row>
<row rowsep = "1">
<entry colname = "1">Zipper</entry>
<entry colname = "2"><para></para></entry>
<entry colname = "3"><para></para></entry>
<entry colname = "4"><para></para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para></para></entry>
<entry colname = "8"><para>X</para></entry>
</row>
<row rowsep = "1">
<entry colname = "1">Velcro</entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para></para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para></para></entry>
<entry colname = "8">X</entry>
</row>
<row rowsep = "1">
<entry colname = "1"><para>Lacing</para></entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para>X</para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para>X</para></entry>
<entry colname = "8">X</entry>
</row>
<row rowsep = "0">
<entry colname = "1">Buttons</entry>
<entry colname = "2"><para>X</para></entry>
<entry colname = "3"><para>X</para></entry>
<entry colname = "4"><para>X</para></entry>
<entry colname = "5"><para></para></entry>
<entry colname = "6"><para>X</para></entry>
<entry colname = "7"><para>X</para></entry>
<entry colname = "8"><para>X</para></entry>
</row>
</tbody>
</tgroup></table></sect1></chapter>



The 'border-before-width.conditionality="retain"' is being passed through to the "fo:table" element:

<fo:table
border-before-width.conditionality="retain"
border-collapse="collapse"
border-after-width.conditionality="retain"
border-before-style="solid"
border-left-style="solid"
border-right-style="solid"
border-top-style="solid"
border-bottom-style="solid"
border-left-width="0.5pt"
border-right-width="0.5pt"
border-top-width="0.5pt"
border-bottom-width="0.5pt"
border-left-color="black"
border-right-color="black"
border-top-color="black"
border-bottom-color="black"
table-layout="fixed"
width="1.413in + 0.719in + 0.541in + 0.531in + 0.562in + 0.561in + 0.561in + 1.171in">


There is a second issue with this table that I don't think is related, which is
that it prints the thead at the bottom of the page, with no rows of data, which
seems rather useless, and then immediately prints it again at the start of the
next page.  I get the missing borders even when this doesn't occur, but this
seems rather odd.

Am I missing something somewhere ?  Any suggestions would be appreciated.


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




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]