The <table-properties/> command

Declare table styling properties within a CALS table or HTML table mapping.

Where allowed

Within the $document mapping or any mapped tag that contains or declares a CALS or HTML table.

Range of effect

Tables rendered within the scope of the mapped tag.

Attributes

min-rowheight

By default, the height of a table row is calculated as follows:

row height = top cell indent + bottom cell indent + maximum vertical depth of the rendered table cell content within the row

This parameter allows you to specify a minimum row height for all rows in the current table, irrespective of whether the table cells contains content. The value declares a measure that must be greater than or equal to zero.

min-rowswithheader

Specifies the minimum number of rows kept with the initial table header. Note that this does not apply to subsequent table headers repeated at the top of a page. The default is 1.

split-rows

This parameter specifies where TopLeaf is permitted to insert a break point within the content of a table that continues across a column or page boundary. By default, TopLeaf will only insert a break point between table rows. When split-rows mode is yes, then a break across a column or page boundary may also occur within a table row. The default is no.

The following restrictions apply:

  • When tables are nested, table row splitting is a characteristic of the rows declared within the outermost table.

  • TopLeaf will not insert a page break separator rule when the content of a table row splits across a page or column boundary.

  • A table row cannot be split within the region specified by the split-rowkeepheight.

  • The position at which a row may split is influenced by any binding rules active within the table row. For example, you can use the paragraph widow/orphan settings to control where the content of a table row is permitted to split.

[Warning] Warning

Prior to build 8.0.004, the row splitting algorithm ignored widow/orphan settings within a table cell.

If you need to continue using the legacy row splitting algorithm then declare the command:

<table-properties split-rows="legacy" />

in your $document tag mapping.

split-rowkeepheight

If table row-splitting is enabled, specifies the depth of an implicitly bound region at the top of each table row in which a row split is not permitted. The value declares a measure that is greater than or equal to zero. The default split row keep height is 20pt.

When splitting a table row, a minimum portion of the row is always allocated to the top of the following column. The depth of the minimum split row overflow is calculated as minimum(split-rowkeepheight, 20pt).

split-offset

When a break point occurs within a split table row, the split-offset specifies the distance between the break point and the baseline of the content located immediately above it. If this option is not specified, then the current table style cell bottom indent is assumed.

Note that when a table row is split, any vertical rules or filled regions are clipped at the split row break point. Setting a non-zero split-offset means that split vertical rules and filled regions extend past the baseline of the content immediately before the table row break.

If you set the split-offset to 0 then split vertical rules and split filled regions will be clipped at the baseline of the content immediately before the table row break.

align

Specifies the table alignment for fixed width tables. The value is one of left, right, or center. The default implied table alignment is left. This value is ignored if the current table spacing specifies a non-zero left indent.

cell-align

Specifies the #IMPLIED horizontal alignment when setting CALS or HTML table cells. The value is one of left, right, or center. The default implied cell horizontal alignment is left.

cell-valign

Specifies the #IMPLIED vertical alignment when setting CALS or HTML table cells. The value is one of top, middle, or bottom. The default implied cell vertical alignment is top

cell-sides

Specifies the minimum distance between the cell contents and the sides of the table cell.

cell-left

Specifies the minimum distance between the cell contents and the left side of the table cell. If present, overrides the value of cell-sides.

cell-right

Specifies the minimum distance between the cell contents and the right side of the table cell. If present, overrides the value of cell-sides.

cell-top

Specifies the minimum distance between the cell contents and the top of the table cell.

cell-bottom

Specifies the minimum distance between the cell contents and the bottom of the table cell.

reset-margins

If set, and the table column widths specify one or more relative widths, then the table is constrained by the width of the current data column or fixed block. Otherwise, the table is constrained by the current left and right margins.

colsep

Sets the implied state for the table column separator that appear between table cells. This value will only be used if the table or DTD specification contains no other indication of whether column separators are required for a particular cell. The settings affect internal separators only, and have no effect on frame rules. Permitted values: 0 or 1

In the CALS table model, internal table column separators are declared using the colsep attribute. This is interpreted as adding a single ruling to the right side of a table cell.

In the HTML table model, internal table rules are declared using the rules attribute. The state of the implied column separator is used when processing vertical rules that appear between table cells, or column groups.

rowsep

Sets the implied state for the table row separator that appears below a table cell. This value will only be used if the table or table DTD specification contains no other indication of whether row separators are required for a particular cell. The settings affect internal separators only, and have no effect on frame rules. Permitted values: 0 or 1

In the CALS table model, internal table row separators are declared using the rowsep attribute. This is interpreted as adding a single ruling below the table cell.

In the HTML table model, internal table rules are declared using the rules attribute. The state of the implied row separator is used when processing rules that appear below table cells, or row groups.

consep

Sets the state for the column or page break table row separator. When a table continues across a column or page boundary, and the table break point occurs between two adjacent table rows, you can automatically insert a separator rule immediately before and after the table break point (for example, when a break occurs between two columns, a separator rule will appear at the bottom of the first, and the top of the following column). If set, then a separator rule is generated. If unset, a separator rule will only be rendered below a table cell if explicitly requested in the markup. Permitted values: 0 or 1.

frame

Sets the implied table frame for your table. This value will only be used if the table or DTD specification contains no other indication of the implied table frame.

Permitted values:

  • none — frame rules are disabled;

  • top — enable top rule only;

  • bottom — enable bottom rule only;

  • topbot — enable top and bottom rules;

  • sides — enable left and right rules;

  • all — enable all frame rules (the default).

frame-mask

Sets a table frame mask that determines which table frame rules will be rendered.

Permitted values:

  • none — frame rules are disabled;

  • top — enable top rule only;

  • bottom — enable bottom rule only;

  • topbot — enable top and bottom rules;

  • sides — enable left and right rules;

  • all — enable all frame rules (the default).

It is important to note that a frame rule will not appear unless it is specified in the CALS or HTML table markup. The frame mask allows you to suppress these rules, but there is no way to force a rule to appear if the markup does not specify a frame in the first place.

frame-width

Specifies a measure that defines the thickness of the rules in the table frame. The default frame weight is calculated using the value of the table frame weight and frame style declared in the current table style.

rules

When rendering HTML tables, set this value to groups if you want the implied internal table rule state to generate visible horizontal rules between table row groups or visible vertical rules between table column groups.

The use of other values, or when rendering CALS tables, is not supported and may lead to unpredictable results.

rule-mask

Sets a table rule mask that determines which internal table rules will be rendered.

Permitted values:

  • none — all internal rules are disabled

  • rows — internal rules between rows are enabled

  • cols — internal rules between columns are enabled

  • all — enable all internal table rules (the default).

It is important to note that an internal rule will not appear unless it is specified or implied by the table markup, or current table properties. The rules mask allows you to suppress these rules, but there is no way to force an internal rule to appear if the markup does not specify or imply internal rules.

rule-width

Specifies a measure that defines the thickness of the internal table row and column separator rules. The default rule weight is the value of the normal frame weight declared in the current table style.

rule-color

Sets the color of the rules in the frame (if any), as well as internal row and column separators. See “Colors” for a description of how colors are specified.

header-bgcolor

Allows you to select a background color for header cells. Note that this can only be used to apply a header fill to the content of a table thead block. See “Colors” for a description of how colors are specified.

[Note] Note

Setting a background color of “white” (or “#FFFFFF”) disables any background fill.

top-margin

Specifies the space to be left above the table.

bottom-margin

Specifies the space to be left below the table.

left-margin

Specifies the sets the table left indent.

direction

Specifies the base direction (let-to-right, or right-to-left) of a table. The value is one of LTR (left-to-right), RTL (right-to-left) or default (the base direction is determined by the natural direction of the current text language).

By default, the directionality of a table is the inherited directionality. For a left-to-right table, column zero is on the left side and row zero is at the top. For a right-to-left table, column zero is on the right side and row zero is at the top.