Next in thread →
Next in month →
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/[email protected]/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 <
> 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
----- Original Message -----
From:
Robert
Sleator
To:
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:
For
additional commands, e-mail:
Next in thread →
Next in month →