# Formatting Object Table Reference

$Id: table.xsl 8814 2010-08-09 21:19:53Z bobstayton $

# Introduction

This is technical reference documentation for the FO table-processing templates in the DocBook XSL Stylesheets.

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

# calc.column.width

Calculate an XSL FO table column width specification from a CALS table column width specification.

    <xsl:template name="calc.column.width">
    <xsl:param name="colwidth">1*</xsl:param>
      ...
    </xsl:template>

## Description

CALS expresses table column widths in the following basic forms:

- 99.99units, a fixed length specifier.

- 99.99, a fixed length specifier without any units.

- 99.99*, a relative length specifier.

- 99.99*+99.99units, a combination of both.

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.

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

Here are some examples:

- "36pt" becomes "36pt"

- "3pi" becomes "3pc"

- "36" becomes "36pt"

- "3*" becomes "proportional-column-width(3)"

- "3*+2pi" becomes "proportional-column-width(3)+2pc"

- "1*+2" becomes "proportional-column-width(1)+2pt"

## Parameters

colwidth

  The CALS column width specification.

## Returns

The XSL column width specification.