<refentry id="row.element">
<?dbhtml filename="row.html"?>
<refentryinfo>
<pubdate>$Date$</pubdate>
<releaseinfo>$Revision$</releaseinfo>
</refentryinfo>

<refmeta>
<indexterm><primary>elements</primary>
<secondary>row</secondary></indexterm>
<refentrytitle>row</refentrytitle>
<refmiscinfo>Element</refmiscinfo>
</refmeta>
<refnamediv>
<refname>row</refname>
<refpurpose>&row.purpose;</refpurpose>
</refnamediv>

&row.synopsis.gen;
<refsect1 condition='ref.description'><title>Description</title>

<para>
A <sgmltag>Row</sgmltag> is a row in a table.  It contains all of the cells
(<sgmltag>Entry</sgmltag>s or <sgmltag>EntryTbl</sgmltag>s)
that appear in that row.
</para>

<refsect2><title>Processing expectations</title>
<para>
&calssemantics;
</para>

<para>
Within a <sgmltag>Row</sgmltag>, cells are arranged horizontally from
the start of the row to the end.  Cells can, but are not
required to, specify the column in which they occur, so it is
possible for a row to contain fewer cells than there are columns
in the table. This introduces missing cells, which are assumed
to be empty. These missing cells can occur anywhere in the row.
</para>

<para>
Once a cell has been allocated to a column, subsequent cells may not
fill preceding columns.  In other words, while three cells can specify
that they occur in columns 1, 3, and 5, they cannot specify that they
occur in columns 1, 5, and 3.  Once a column is passed, you can never
go back.
</para>

<para>
If cells do not specify the column in which they occur, they are
placed in the next available column.  Calculation of the next
available column is complicated by horizontal and vertical
spanning.  Cells from preceding rows can have a vertical span
that causes them to extend into the current row, thus occupying space in
the current row.  These logically occupied cells are skipped
when looking for the next available column. Similarly, if a cell
has a horizontal span, it logically occupies the columns that
follow it. Cells can simultaneously span rows and columns.
</para>

<para>
Each of the following conditions is an error:

<itemizedlist>
<listitem><para>A cell spans beyond the boundries of the table.
</para></listitem>

<listitem><para>A row contains more cells than there are columns
in the table.
</para></listitem>

<listitem><para>The arrangement of cells in a row forces one or
more cells past the last column of the table.
</para></listitem>
</itemizedlist>
</para>

</refsect2>


&row.parents.gen;
&row.children.gen;
</refsect1>
<refsect1 condition='ref.elem.attrdesc'><title>Attributes</title>
<variablelist>
<varlistentry><term>rowsep</term>
<listitem>
<para>
If <sgmltag class="attribute">RowSep</sgmltag> has the value 1 (true), then a
rule will be drawn below all the cells in this <sgmltag>Row</sgmltag>
(unless other, interior elements, suppress some or all of the rules).
A value of 0 (false) suppresses the rule. The rule below the last row
in the table is controlled by the <sgmltag class="attribute">Frame</sgmltag>
attribute of the enclosing <sgmltag>Table</sgmltag> or
<sgmltag>InformalTable</sgmltag> and the <sgmltag class="attribute">RowSep</sgmltag>
of the last row is ignored. If unspecified, this attribute is
inherited from enclosing elements.
</para>
</listitem>
</varlistentry>
<varlistentry><term>valign</term>
<listitem>
<para>
<sgmltag class="attribute">VAlign</sgmltag> specifies the vertical alignment
of text (and other elements) within the cells of this <sgmltag>Row</sgmltag>.
If no alignment is specified, it is inherited from enclosing
elements.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 condition='ref.elem.seealso'><title>See Also</title>
&row.seealso.gen;
</refsect1>
<refsect1><title>Examples</title>

&row.example.seealso.gen;
</refsect1>
</refentry>

