# Formatting Object Table Reference

### Norman Walsh

$Id: table.xsl 6337 2006-09-30 20:14:56Z nwalsh $

Copyright © 19992000 by Norman Walsh. No Warranty.

# Introduction

This is technical reference documentation for the DocBook XSL Stylesheets; it documents (some of) the parameters, templates, and other elements of the stylesheets.

This is not intended to be “user” documentation. It is provided for developers writing customization layers for the stylesheets, and for anyone who's interested in “how it works”.

Although I am trying to be thorough, this documentation is known to be incomplete. Don't forget to read the source, too :-)

## Name

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

## Synopsis

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

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.