These kind of tables are very common in China, Korea, and Japan. Academia Sinica considers that it is an internationalization requirement to support them, and invites the XSL FO WG to consider the following proposal. Alphabetic scripts have longer words than ideographic scripts; consequently splitting header cells diagonally is not in important or common typographical practise for use with alphabetic scripts. However, it is a common practise in East Asia: one regularly sees publications in which every table is set with diagonally-split header-cells.
The definition of table-row should be changed to
( table-cell | table-split-cell-container )+
A table-split-cell-container cannot be spanned-into by another cell,
either vertically or horizontally. This requirement is provided to simplify
implementation and design consideration; it is reasonable because split-cells
are used for headers rather than data cells.
An advanced system would have a property to specify the point from which the diagonals radiate. In the description of table-split-cell below, the top left-hand corner is assumed, as that is the usual case in most modern CJK tables. However, tables read right-to-left with row headers on the right-hand-side are still found; these require a top-right radation point.
Within the polygon, various options are available for determining the size of the block area. The default method is that the largest available rectangle that can be fitted into the table-split-cell is used to determine the block size: this block size would be (closer to) the content-rectangle size rather than then padding rectangle as the purpose of these formatting objects is to utilize space more effectively for scripts with words that occupy a short measure.
(A more advanced formatting system could attempt to fit several block
areas into the available space. For ideographic text, these would give
the effect of text being written on a sloped line-progression angle, though
really it would be that each block has only one ideograph and is
placed going down a slope.)
At this end point, the polygon is completed by either creating a side which goes to the start-point, or by casting a line at 45 degrees going left and upward until it bisects the enclosing table-split-cell-container.
The last table-split-cell occupies the remaining area.
(More advanced formatting systems may adjust the boundary points of
each table-split-cell to give the more equal area to each. Thus there
can be some flexibility in both the start and end-point. Sophisticated
implementations may introduce mechanisms to avoid particularly steep or
low-rising diagonals by adusting column or row size or by altering the
angle of the diagonal somewhat.)
<table-and-caption><table-caption>What are they wearing?</table-caption>
<table>
<table-header>
<table-split-cell-container>
<table-split-cell>Age</table-split-cell>
<table-split-cell>Sex</table-split-cell>
</table-split-cell-container>
<table-cell>0 - 16</table-cell>
<table-cell>17-100</table-cell>
</table-header>
<table-body>
<table-row>
<table-cell class="header>Male</table-cell>
<table-cell>shorts</table-cell>
<table-cell>tattoos</table-cell>
</table-row>
<table-row>
<table-cell class="header>Female</table-cell>
<table-cell>skirt</table-cell>
<table-cell>perfume</table-cell>
</table-row>
</table-body>
</table>
</table-and-caption>