Great - Thanks Bob.
This all came about when I needed to render a table in PDF that had no borders, but had one cell on the bottom of the table that needed a bottom line, but I could not render it because the "rowsep" does not work on the bottom cell because the outer table line would overwrite it.
Sooo... I decided to try to render that particular table a bit different, hence the question. But since I got you on the line, wouldn't it make sense to allow a "rowsep" on a cell when the table has a frame="none" ?
Thanks,
Dean Nelson
In a message dated 09/05/09 16:26:20 Pacific Daylight Time, writes:
Hi Dean,
You could do it with a processing instruction, a tabstyle attribute is more appropriate. A tabstyle can be put on a table or informaltable element to indicate to the stylesheet that different styling is required.
If you go with tabstyle, you can call a utility template named 'tabstyle' that returns the value of the attribute for the current table. The tabstyle template is described here:
http://www.sagehill.net/docbookxsl/PrintTableStyles.html#TabstyleTemplate
To customize the frame borders, you would copy and edit the template named table.frame in fo/table.xsl to use an xsl:choose statement to select the frame thickness. An example of using xsl:choose with tabstyle for table cell properties is shown here:
http://www.sagehill.net/docbookxsl/PrintTableStyles.html#CustomCellProperties
In the table.frame template, you could do that once at the top of the template to fill a variable, and then use that variable in place of $table.frame.border.thickness in the long set of frame choices that follow:
<xsl:variable name="tabstyle">
<xsl:call-template name="tabstyle"/>
</xsl:variable>
<xsl:variable name="frame.thickness">
<xsl:choose>
<xsl:when test="$tabstyle='thickborder'">2pt</xsl:when>
<xsl:when test="$tabstyle='verythickborder'">4pt</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$table.frame.border.thickness"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
And then replace all other instances in the template of $table.frame.border.thickness with $frame.thickness.
If you need to also change the rowsep and colsep (cell borders), then customize the template named 'border' in fo/table.xsl with the same technique.
Bob Stayton
Sagehill Enterprises
----- Original Message -----
From:
To:
Sent: Thursday, September 03, 2009 5:34 PM
Subject: [docbook-apps] Table Line Thickness
Hello everyone,
Is there a way to control the thickness of the border of each table separately? The common parameter only applies to ALL tables.
Maybe an additional PI?
Thanks
Dean Nelson