@Section @Title { Changing the style of rows } @Begin @PP Sometimes different rows need different formats, usually because they are headings. Although this can be done with style-changing symbols in the entries, it is probably better to use multiple format options: fmta @Index @Code "@Fmta" rowa @Index @Code "@Rowa" @ID @OneRow @Code { "@Tab" " @Fmta { @Col @Heading A ! @Col @Heading B }" " @Fmtb { @Col A ! @Col @CC B }" "{" " @Rowa A { Course } B { Enrolment }" " @Rowb A { Software Engineering } B { 174 }" " @Rowb A { Complexity Theory } B { 37 }" "}" } has result @CD { @Tab @Fmta { @Col @Heading A ! @Col @Heading B } @Fmtb { @Col A ! @Col @CC B } { @Rowa A { Course } B { Enrolment } @Rowb A { Software Engineering } B { 174 } @Rowb A { Complexity Theory } B { 37 } } } The @Code "@Heading" symbol is from Section {@NumberOf headings}. Each row appears in the format of the corresponding format option: @Code "@Rowa" rows in the format of {@Code "@Fmta"}, @Code "@Rowb" rows in the format of {@Code "@Fmtb"}, and so on. There may be up to ten different format options, from @Code "@Fmta" to {@Code "@Fmtj"}, and they may be used repeatedly and in any order. @PP There is an @Code "@Over" symbol for constructing over.tab @Index { @Code "@Over" in tables } spanning.col @Index { spanning columns } {@I{spanning columns}}: columns that spread over two or more following columns. For example, the Lout input @ID @OneRow @Code { "@I @Tab" " @Fmta { @Col @CC X @Over A,B ! @Col C }" " @Fmtb { @Col A ! @Col B ! @Col C }" "{" " @Rowa X { X } C { C }" " @Rowb A { A } B { B } C { C }" "}" } produces the table @CD { @I @Tab side { single } @Fmta { @Col @CC X @Over A,B !! @Col C } @Fmtb { @Col A !! @Col B !! @Col C } { @Rowa X { X } C { C } above { single } below { single } @Rowb A { A } B { B } C { C } below { single } } } (We will see how to get the lines later.) The @Code "@Over" symbol always comes directly after the column letter, and it is followed by one or more letters separated by commas indicating which columns in the following row this column is to span over. @PP With multiple row formats, especially those with spanning columns, it is important to take care that each row is compatible with the one preceding it, in the sense of having the same number of columns, taking @Code "@Over" symbols into account. For example, two successive @Code "@Rowa" rows would not be compatible in the example above, since the second has only two columns but the first prepares the way for three. @PP @Code "@Tab" does not provide a way to have spanning columns underneath the columns they span, so spanning columns are useful only for headings. This is unavoidable, because it is due to compromises made in the way that the Lout interpreter handles spanning columns. @End @Section