<?xml version="1.0"?>

<reference xml:id="table-templates"><?dbhtml dir="fo"?>
  
  <info>
    <title>Formatting Object Table Reference</title>
    <releaseinfo role="meta">
      $Id: table.xsl 8392 2009-04-01 08:47:55Z bobstayton $
    </releaseinfo>
  </info>
  <partintro xml:id="partintro">
    <title>Introduction</title>
    
<para>This is technical reference documentation for the FO
      table-processing templates in the DocBook XSL Stylesheets.</para>

    
<para>This is not intended to be user documentation.  It is
      provided for developers writing customization layers for the
      stylesheets.</para>

  </partintro>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.calc.column.width">
<refnamediv>
<refname>calc.column.width</refname>
<refpurpose>Calculate an XSL FO table column width specification from a
CALS table column width specification.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template name="calc.column.width"&gt;
&lt;xsl:param name="colwidth"&gt;1*&lt;/xsl:param&gt;
  ...
&lt;/xsl:template&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>CALS expresses table column widths in the following basic
forms:</para>



<itemizedlist>
<listitem>

<para><emphasis>99.99units</emphasis>, a fixed length specifier.</para>

</listitem>
<listitem>

<para><emphasis>99.99</emphasis>, a fixed length specifier without any units.</para>

</listitem>
<listitem>

<para><emphasis>99.99*</emphasis>, a relative length specifier.</para>

</listitem>
<listitem>

<para><emphasis>99.99*+99.99units</emphasis>, a combination of both.</para>

</listitem>
</itemizedlist>



<para>The CALS units are points (pt), picas (pi), centimeters (cm),
millimeters (mm), and inches (in). These are the same units as XSL,
except that XSL abbreviates picas "pc" instead of "pi". If a length
specifier has no units, the CALS default unit (pt) is assumed.</para>



<para>Relative length specifiers are represented in XSL with the
proportional-column-width() function.</para>



<para>Here are some examples:</para>



<itemizedlist>
<listitem>

<para>"36pt" becomes "36pt"</para>

</listitem>
<listitem>

<para>"3pi" becomes "3pc"</para>

</listitem>
<listitem>

<para>"36" becomes "36pt"</para>

</listitem>
<listitem>

<para>"3*" becomes "proportional-column-width(3)"</para>

</listitem>
<listitem>

<para>"3*+2pi" becomes "proportional-column-width(3)+2pc"</para>

</listitem>
<listitem>

<para>"1*+2" becomes "proportional-column-width(1)+2pt"</para>

</listitem>
</itemizedlist>

</refsect1><refsect1><title>Parameters</title>

<variablelist>
<varlistentry><term>colwidth</term>
<listitem>

<para>The CALS column width specification.</para>

</listitem>
</varlistentry>
</variablelist>

</refsect1><refsect1><title>Returns</title>

<para>The XSL column width specification.</para>

</refsect1></refentry>
</reference>

