@Section
@Title { Rules }
@Tag { tbl_rule }
@Begin
@PP
There is a @Code "rule" option for drawing a rule around a cell:
@ID @OneRow @Code "@Cell rule { yes }"
The other possible values are {@Code no} (the default),
{@Code single} (the same as {@Code yes}), and {@Code double}, which
draws a double rule.
@PP
There are @Code "rulehorizontal" and @Code "rulevertical" options which
draw only horizontal or vertical rules, and also {@Code "ruleabove"},
{@Code "rulebelow"}, {@Code "ruleleft"}, and {@Code "ruleright"} options:
@ID @OneRow @Code @Verbatim {
@Tbl
aformat { @Cell A | @Cell B }
{
@Rowa
ruleabove { yes }
A { Commercial property }
B { 10% }
@Rowa
A { Stock market }
B { 15% }
rulebelow { yes }
}
}
produces
@CD @OneRow @Tbl
aformat { @Cell A | @Cell B }
{
@Rowa
ruleabove { yes }
A { Commercial property }
B { 10% }
@Rowa
A { Stock market }
B { 15% }
rulebelow { yes }
}
These options take the same values as {@Code "rule"}, but draw
along only one or two of the four edges.
@PP
Other options control the appearance of rules. Here they are with their
default values:
@ID @OneRow @Code @Verbatim {
@Tbl
rulewidth { 0.05f }
rulegap { 0.15f }
rulecolour { black }
}
These say that rules are to be @Code "0.05f" wide (thick), double rules
are to appear @Code "0.15f" apart, and the colour of rules is to be black.
Once again, more specific versions of these symbols exist for controlling
above, below, left, and right rules:
@ID @OneRow @Code @Tbl
aformat { @Cell ml { 0i } A | @Cell B | @Cell C }
marginvertical { 0.5vx }
{
@Rowa
A { rulehorizontalwidth }
B { rulehorizontalgap }
C { rulehorizontalcolour }
@Rowa
A { ruleabovewidth }
B { ruleabovegap }
C { ruleabovecolour }
@Rowa
A { rulebelowwidth }
B { rulebelowgap }
C { rulebelowcolour }
@Rowa
A { ruleverticalwidth }
B { ruleverticalgap }
C { ruleverticalcolour }
@Rowa
A { ruleleftwidth }
B { ruleleftgap }
C { ruleleftcolour }
@Rowa
A { rulerightwidth }
B { rulerightgap }
C { rulerightcolour }
}
As usual, all these options have abbreviated names; and @Code { colour }
may be spelt @Code { color } wherever it appears. Section
{@NumberOf tbl_summ} has a complete summary of all spellings of all
options.
@PP
To clarify exactly where the rules are drawn, let's start with
a cell with no rules at all:
@CD @Tbl
aformat { @Cell width { 3c } height { 1.5c } paint { lightgrey } A }
{
@Rowa
}
Above rules and left rules are drawn within the cell boundary, just
touching it, with any above rule overstriking any left rule:
@CD { @Tbl
aformat { @Cell width { 3c } height { 1.5c } paint { lightgrey } A }
{
@Rowa
}
@Background @Tbl
aformat { @Cell width { 3c } height { 1.5c } A }
ruleleft { yes }
ruleabove { yes }
rulehorizontalwidth { 0.8v }
ruleverticalwidth { 0.5v }
ruleverticalcolour { grey }
rulehorizontalcolour { black }
{
@Rowa
}
}
Below and right rules are drawn just outside the boundary of the
cell, also touching it:
@CD @Tbl aformat { @Cell A | @Cell | @Cell B }
{
@Rowa
A {
@Tbl
aformat { @Cell width { 3c } height { 1.5c } paint { lightgrey } A }
{
@Rowa
}
@Background
@Tbl
aformat { @Cell width { 3c } height { 1.5c } A }
rulebelow { yes }
rulehorizontalwidth { 0.8v }
ruleverticalwidth { 0.5v }
ruleverticalcolour { grey }
rulehorizontalcolour { black }
{
@Rowa
}
}
B {
@Tbl
aformat { @Cell width { 3c } height { 1.5c } paint { lightgrey } A }
{
@Rowa
}
@Background
@Tbl
aformat { @Cell width { 3c } height { 1.5c } A }
ruleright { yes }
rulehorizontalwidth { 0.8v }
ruleverticalwidth { 0.5v }
ruleverticalcolour { grey }
rulehorizontalcolour { black }
{
@Rowa
}
}
}
@DP
When a right rule is present, any above and below rules are extended
by the width of the right rule, and they overstrike it:
@CD {
@Tbl
aformat { @Cell width { 3c } height { 1.5c } paint { lightgrey } A }
{
@Rowa
}
@Background
@Tbl
aformat { @Cell width { 3c } height { 1.5c } A }
ruleabove { yes }
ruleright { yes }
rulebelow { yes }
rulehorizontalwidth { 0.8v }
ruleverticalwidth { 0.5v }
ruleverticalcolour { grey }
rulehorizontalcolour { black }
{
@Rowa
}
}
@DP
(These diagrams were produced by @Code "@Tbl" itself, using horizontal
rules of width @Code 0.8v drawn in black, and vertical rules of width
@Code 0.5v drawn in grey.) These arrangements ensure that even thick
rules produce clean corners, and also that a right rule and a neighbouring
left rule exactly overstrike each other, as do a below rule and its
neighbouring above rule.
@PP
For information about rules in plain text tables, consult Section
{@NumberOf tbl_plai}.
@End @Section