JD Daniels wrote:
I have changed it so that the template that figures out the width uses a
param i pass it, but how can I figure out if the table is inside a table
cell, and pass it the value of the parent table cells parent fo:table-column
width?
Use something like
<xsl:if test="ancestor::table">
Better yet, always pass the current block width down through all
templates matching block level elements, and pass the page width
in the top level template.
I mean
<xsl:template match="table|tbody">
<xsl:param name="blockwidth"/>
<fo:table>
...
<xsl:call-template name="process-col-width">
...
<xsl:with-param name="parentblockwidth"
select="$blockwidth"/>
...
<fo:table-body>
<xsl:apply-templates>
<xsl:with-param name="blockwidth"
select="$blockwidth"/>
</xsl:apply-templates>
</fo:table-body>
Watch out for default templates, they will ruin it.
J.Pietschmann
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list