3. rows

rows(row_spec, ..., row_spec, key, value, ..., key, value)

row(cell_spec, ..., cell_spec, key, value, ..., key, value)

cell(content, key, value, ..., key, value)

Layout content in a tabular way like in a XHTML tbody. See also rendering repeating elements as a table.

Content is either a single content object such as a string or a list of content objects. In the latter case, special syntax content(content, ..., content) must be used.

Key, value, ..., key, value specify optional style parameters. Specifying such pairs at the row level is equivalent to specifying them for each cell contained in the row. Specifying such pairs at the rows level allows even more factoring.

Therefore key, value, ..., key, value specify optional style parameters for cells but not for rows and row. This is different from the behavior of division and paragraph because unlike division and paragraph which are true containers, rows and row are just constructs used to group cells.

Example:

row(cell("Category", width, 20ex), cell("Choice #1"), 
    cell("Choice #2"), cell("Choice #3"),
    font-weight, bold, color, olive,
    padding-top, 2, padding-right, 2, 
    padding-bottom, 2, padding-left, 2, 
    border-width, 1, border-style, solid);