groff: update vendor branch to v1.20.1
[dragonfly.git] / contrib / groff / contrib / hdtbl / groff_hdtbl.man
1 .ig
2 Copyright (C) 2005, 2006, 2008, 2009
3   Free Software Foundation, Inc.
4
5 Written by Joachim Walsdorff <Joachim.Walsdorff@urz.uni-heidelberg.de>
6
7 This file is part of groff, the groff.
8
9 Permission is granted to copy, distribute and/or modify this document
10 under the terms of the GNU Free Documentation License, Version 1.3 or
11 any later version published by the Free Software Foundation; with the
12 Invariant Sections being this .ig-section and AUTHORS, with no
13 Front-Cover Texts, and with no Back-Cover Texts.
14
15 A copy of the Free Documentation License is included as a file called
16 FDL in the main directory of the groff source package.
17 ..
18 .
19 .
20 .
21 .TH GROFF_HDTBL @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
22 .
23 .
24 .SH NAME
25 groff_hdtbl \- groff `hdtbl' macros for generation of tables
26 .
27 .
28 .ig
29   Some simple formatting macros.  Note that we use `.ig' here and not a
30   comment to make `mandb' 2.4.1 (and probably more recent versions also)
31   happy; otherwise the `.char' lines and the stuff which follows is included
32   in the `whatis' database.
33 ..
34 .
35 .
36 .char \[lB] \F[\n[.fam]]\f[R][
37 .char \[rB] \F[\n[.fam]]\f[R]]
38 .
39 .char \[or] \F[\n[.fam]]\f[R]\||\|
40 .char \[ell] \F[\n[.fam]]\f[R].\|.\|.
41 .
42 .char \[oq] \F[\n[.fam]]\f[R]\[oq]
43 .char \[cq] \F[\n[.fam]]\f[R]\[cq]
44 .
45 .
46 .ie F CR \{\
47 .
48 .  \" We have to solve the following problem.  In this code
49 .  \"
50 .  \"   foo
51 .  \"   .CR bar
52 .  \"   foo
53 .  \"
54 .  \" the space immediately after `bar' should not be taken from the `C'
55 .  \" family.  At the same time, this
56 .  \"
57 .  \"   foo
58 .  \"   .CR bar\c
59 .  \"   foo
60 .  \"
61 .  \" should work also.  To fulfill both constraints we emit the
62 .  \" family changing commands both as escapes and macro calls.
63 .
64 .  de make-C-macro
65 .    de C\\$1
66 .      ds old-fam \\\\n[.fam]
67 .      fam C
68 .      \\$2 \&\\\\$*\F[]\F[\\\\*[old-fam]]
69 .      fam
70 \\..
71 .  .
72 .
73 .  make-C-macro R nop
74 .  make-C-macro B B
75 .  make-C-macro I I
76 .
77 .  de make-C-macro
78 .    de C\\$1
79 .      ds old-fam \\\\n[.fam]
80 .      fam C
81 .      \\$1 \\\\$@ \F[]\F[\\\\*[old-fam]]
82 .      fam
83 \\..
84 .  .
85 .
86 .  make-C-macro BI
87 .  make-C-macro IB
88 .  make-C-macro RI
89 .  make-C-macro IR
90 .  make-C-macro BR
91 .  make-C-macro RB
92 .\}
93 .el \{\
94 .  ftr CR R
95 .  ftr CI I
96 .  ftr CB B
97 .  ftr CBI BI
98 .
99 .  de CR
100 .    nop \&\\$*
101 .  .
102 .  als CB B
103 .  als CI I
104 .
105 .  als CBI BI
106 .  als CIB IB
107 .  als CRI RI
108 .  als CIR IR
109 .  als CBR BR
110 .  als CRB RB
111 .\}
112 .
113 .
114 .de TQ
115 .  br
116 .  ns
117 .  TP
118 ..
119 .
120 .
121 .de XB
122 .  B "\\$1"
123 .  shift
124 .  CR "\\$1\c"
125 .  shift
126 .  while \\n[.$] \{\
127 .    nop ,
128 .    CR "\\$1\c"
129 .    shift
130 .  \}
131 .  br
132 ..
133 .
134 .
135 .de XAA
136 .  TQ
137 .  CRI \\$@
138 ..
139 .
140 .
141 .de XDEF
142 .  br
143 .  B Default:
144 .  if !\\n[.$] \
145 .    return
146 .  CRI "\\$1" "\\$2"
147 ..
148 .
149 .
150 .de XDEFR
151 .  br
152 .  B Default:
153 .  CR "\[oq]\\$1\[cq]"
154 .  nop (register
155 .  CR "\[oq]\\$2\[cq]\c"
156 .  nop ).
157 ..
158 .
159 .
160 .de XDEFS
161 .  br
162 .  B Default:
163 .  CR "\[oq]\\$1\[cq]"
164 .  nop (string
165 .  CR "\[oq]\\$2\[cq]\c"
166 .  nop ).
167 ..
168 .
169 .
170 .
171 .SH DESCRIPTION
172 .
173 The
174 .B hdtbl
175 macros consist of four base and three optional macros, controlled by about
176 twenty arguments.
177 .
178 The syntax is simple and similar to the
179 .B HTML
180 table model and nearly as flexible: You can write sequences of tokens (macro
181 calls with their arguments and content data), separated by blanks and
182 beginning with a macro call, into the same line to get compact and cleanly
183 arrranged input.
184 .
185 An advantage of
186 .B hdtbl
187 is that the tables are constructed without calling a preprocessor; this
188 means that
189 .BR groff 's
190 full macro capabilities are available.
191 .
192 On the other hand, table processing with
193 .B hdtbl
194 is much slower than using the
195 .BR tbl (@MAN1EXT)
196 preprocessor.
197 .
198 A further advantage is that the HTML-like syntax of
199 .B hdtbl
200 will be easily converted to HTML; this is not implemented yet.
201 .
202 .
203 .SH USAGE
204 .
205 The simplest well-formed table consists of just single calls to the four
206 base table macros in the right order.
207 .
208 Here we construct a table with only one cell.
209 .
210 .PP
211 .RS
212 .nf
213 .CR .TBL
214 .CR .TR
215 .CR .TD
216 .CI contents of the table cell
217 .CR .ETB
218 .fi
219 .RE
220 .
221 .PP
222 Equivalent to the above is the following notation.
223 .
224 .PP
225 .RS
226 .CRI ".TBL .TR .TD " "contents of the table cell" " .ETB"
227 .RE
228 .
229 .PP
230 By default, the formatted table is inserted into the surrounding text at the
231 place of its definition.
232 .
233 If the vertical space isn't sufficient, it is placed at the top of the next
234 page.
235 .
236 Tables can also be stored for later insertion.
237 .
238 .PP
239 Using
240 .CIR \[oq]row-number * column-number\[cq]
241 as the data for the table cells, a table with two rows and two columns can
242 be written as
243 .
244 .PP
245 .RS
246 .nf
247 .CR ".TBL cols=2"
248 .CR ".  TR .TD 1*1 .TD 1*2"
249 .CR ".  TR .TD 2*1 .TD 2*2"
250 .CR ".ETB"
251 .fi
252 .RE
253 .
254 .PP
255 Here we see a difference to HTML tables: The number of columns must be
256 explicitly specified using the
257 .CRI \[oq]cols= m\[cq]
258 argument (or indirectly via the
259 .CR \[oq]width\[cq]
260 argument, see below).
261 .
262 .PP
263 The contents of a table cell is arbitrary; for example, it can be another
264 table, without restriction to the nesting depth.
265 .
266 A given table layout can be either constructed with suitably nested tables
267 or with proper arguments to
268 .CR .TD
269 and
270 .CR .TH\c
271 , controlling column and row spanning.
272 .
273 Note, however, that this table
274 .
275 .PP
276 .RS
277 .nf
278 .CR ".TBL"
279 .CR ".  TR"
280 .CR ".    TD"
281 .CR ".      nop 1*1 1*2"
282 .CR ".  TR"
283 .CR ".    TD"
284 .CR ".      TBL cols=2 border="
285 .CR ".        TR"
286 .CR ".          TD"
287 .CR ".            nop 2*1"
288 .CR ".          TD"
289 .CR ".            nop 2*2"
290 .CR ".      ETB"
291 .CR ".ETB"
292 .fi
293 .RE
294 .
295 .PP
296 and this table
297 .
298 .PP
299 .RS
300 .nf
301 .CR ".TBL cols=2"
302 .CR ".  TR"
303 .CR ".    TD colspan=2"
304 .CR ".      nop 1*1 1*2"
305 .CR ".  TR"
306 .CR ".    TD"
307 .CR ".      nop 2*1"
308 .CR ".    TD"
309 .CR ".      nop 2*2"
310 .CR ".ETB"
311 .fi
312 .RE
313 .
314 .PP
315 are similar but not identical.
316 .
317 .PP
318 Here the latter table in a more compact form.
319 .
320 .PP
321 .RS
322 .nf
323 .CR ".TBL cols=2 .TR \[dq].TD colspan=2\[dq] 1*1 1*2"
324 .CR ".            TR .TD 2*1 .TD 2*2 .ETB"
325 .fi
326 .RE
327 .
328 .PP
329 If a macro has one or more arguments, and it is not starting a line, it must
330 be enclosed in double quotes.
331 .
332 .
333 .SH MACROS AND ARGUMENTS
334 .
335 The order of macro calls and other tokens follows the HTML model.
336 .
337 In the following list, valid predecessors and successors of all
338 .B hdtbl
339 macros are given, together with the possible arguments.
340 .
341 .PP
342 Macro arguments are separated by blanks.
343 .
344 The order of arguments is arbitrary; they are of the form
345 .
346 .PP
347 .RS
348 .CRI key= value
349 .RE
350 .
351 .PP
352 or
353 .
354 .PP
355 .RS
356 .CRI key=\[aq] "value1 \[lB]value2 \[lB]\[ell]\[rB]\[rB]" \[aq]
357 .RE
358 .
359 .PP
360 with the only exception of the optional argument of the macro
361 .CR .ETB\c
362 , which is the string
363 .CR \[oq]hold\[cq]\c
364 \&.
365 .
366 Another possible form is
367 .
368 .PP
369 .RS
370 .CRI \[dq]key= "value1 \[lB]value2 \[lB]\[ell]\[rB]\[rB]" \[dq]
371 .RE
372 .
373 .PP
374 However, this is limited to the case where the macro is the first one in the
375 line and not already enclosed in double quotes.
376 .
377 .PP
378 Argument values specified below as\~\c
379 .CI c
380 are colors predefined by
381 .B groff
382 or colors defined by the user with the
383 .CR .defcolor
384 request.
385 .
386 Argument values\~\c
387 .CI d
388 are decimal numbers with or without decimal point.
389 .
390 Argument values\~\c
391 .CI m
392 are natural numbers.
393 .
394 Argument values\~\c
395 .CI n
396 are numerical values with the usual
397 .B groff
398 scaling indicators.
399 .
400 Some of the arguments are specific to one or two macros, but most of them
401 can be specified with
402 .CR .TBL\c
403 ,
404 .CR .TR\c
405 ,
406 .CR .TD\c
407 , and
408 .CR .TH\
409 \&.
410 .
411 These common arguments are explained in the next subsection.
412 .
413 .PP
414 Most of the argument default values can be changed by the user by setting
415 corresponding default registers or strings, as listed below.
416 .
417 .\"------------------------------------------------------------------
418 .
419 .TP
420 .CBI ".TBL " \[lB]args\[rB]
421 Begin a new table.
422 .
423 .IP
424 .RS
425 .XB predecessor: .TD .TH .ETB "cell contents"
426 .XB successor: .CPTN .TR
427 .XB arguments:
428 .
429 .RS
430 .XAA border= \[lB]n\[rB]
431 Thickness of the surrounding box border.
432 .
433 .CR \%\[oq]border=\[cq]
434 (no value) means neither a surrounding box border nor any horizontal or
435 vertical separator lines between the table rows and cells.
436 .
437 .CR \%\[oq]border=0\[cq]
438 suppresses the surrounding box border, but still allows separator lines
439 between cells and rows.
440 .
441 .XDEFR border=.1n t*b
442 .
443 .XAA bc= c
444 Border color.
445 .
446 .XDEFS bc=red4 t*bc
447 .
448 .XAA cols= m
449 Number of table columns.
450 .
451 This argument is necessary if more than one column is in the table and no
452 .CR \[oq]width\[cq]
453 arguments are present.
454 .
455 .XDEFR cols=1 t*cols
456 .
457 .XAA cpd= n
458 Cell padding, i.e., the extra space between the cell space border and
459 the cell contents.
460 .
461 .XDEFR cpd=.5n t*cpd
462 .
463 .XAA csp= n
464 Cell spacing, i.e., the extra space between the table border or
465 vertical or horizontal lines between cells and the cellspace.
466 .
467 .XDEFR csp=.5n t*csp
468 .
469 .XAA tal=l\[or]c\[or]r
470 Horizontal alignment of the table, if it is smaller than the line width.
471 .
472 .CR \[oq]tal=l\[cq]\c
473 : left alignment.
474 .
475 .CR \[oq]tal=c\[cq]\c
476 : centered alignment.
477 .
478 .CR \[oq]tal=r\[cq]\c
479 : right alignment.
480 .
481 .XDEFR tal=l t*tal
482 .
483 .XAA "width=\[aq]" "w1 \[lB]w2 \[lB]\[ell]\[rB]\[rB]" \[aq]
484 Widths of table cells.
485 .
486 .CI w1\c
487 ,
488 .CI w2\c
489 , \[ell] are either numbers of type\~\c
490 .CI n
491 or natural numbers with the pseudo-scaling indicator
492 .CR \[oq]%\[cq]\c
493 , with the meaning \[lq]percent of the actual line length (or column length
494 for inner tables, respectively)\[rq].
495 .
496 If there are less width values than table columns, the last width value is
497 used for the remaining cells.
498 .
499 The argument
500 .
501 .RS
502 .IP
503 .CR width=\[aq]1.5i 10%\[aq]
504 .RE
505 .
506 .IP
507 for example indicates that the first column is 1.5\|inches wide; the
508 remaining columns take 1/10 of the column length each.
509 .
510 .XDEF
511 The table width equals the outer line length or column length; the columns
512 have equal widths.
513 .
514 .XAA height= n
515 Height of the table.
516 .
517 If the table with its contents is lower than\~\c
518 .CI n\c
519 , the last row is stretched to this value.
520 .RE
521 .RE
522 .
523 .\"------------------------------------------------------------------
524 .
525 .TP
526 .CBI ".CPTN " \[lB]args\[rB]
527 Text of caption.
528 .
529 .IP
530 The (optionally numbered) table caption.
531 .
532 .CR .CPTN
533 is optional.
534 .
535 .IP
536 .RS
537 .XB predecessor: .TBL
538 .XB successor: .TR
539 .XB arguments:
540 .
541 .RS
542 .XAA val=t\[or]b
543 Vertical alignment of the table caption.
544 .
545 .CR \[oq]val=t\[cq]\c
546 : The caption is placed above the table.
547 .
548 .CR \[oq]val=b\[cq]\c
549 : The caption is placed below the table.
550 .
551 .XDEFS val=t t*cptn
552 .RE
553 .RE
554 .
555 .\"------------------------------------------------------------------
556 .
557 .TP
558 .CBI ".TR " \[lB]args\[rB]
559 Begin a new table row.
560 .
561 .IP
562 .RS
563 .XB predecessor: .TBL .CPTN .TD .TH .ETB "cell contents"
564 .XB successor: .TD .TH
565 .XB arguments:
566 .
567 .RS
568 .XAA height= n
569 The height of the row.
570 .
571 If a cell in the row is higher than\~\c
572 .CI n
573 this value is ignored; otherwise the row height is stretched to\~\c
574 .CI n\c
575 \&.
576 .RE
577 .RE
578 .
579 .\"------------------------------------------------------------------
580 .
581 .TP
582 .CBI ".TD " "\[lB]args \[lB]cell contents\[rB]\[rB]"
583 Begin a table data cell.
584 .TQ
585 .CBI ".TH " "\[lB]args \[lB]cell contents\[rB]\[rB]"
586 Begin a table header cell.
587 .
588 .IP
589 Arguments and cell contents can be mixed.
590 .
591 The macro
592 .CR .TH
593 is not really necessary and differs from
594 .CR .TD
595 only in three default settings, similar to the
596 .CR <TH>
597 and
598 .CR <TD>
599 HTML tags: The contents of
600 .CR .TH
601 is horizontally and vertically centered and typeset in boldface.
602 .
603 .IP
604 .RS
605 .XB predecessor: .TR .TD .TH .ETB "cell contents"
606 .XB successor: .TD .TH .TR .ETB "cell contents"
607 .XB arguments:
608 .
609 .RS
610 .XAA colspan= m
611 The width of this cell is the sum of the widths of the\~\c
612 .CI m
613 cells above and below this row.
614 .
615 .XAA rowspan= m
616 The height of this cell is the sum of the heights of the
617 .CI m
618 cells left and right of this column.
619 .
620 .IP
621 .B Remark:
622 Overlapping of column and row spanning, as in the following table fragment
623 (the overlapping happens in the second cell in the second row), is invalid
624 and causes incorrect results.
625 .
626 .RS
627 .IP
628 .nf
629 .CR ".TR .TD 1*1 \[dq].TD 1*2 rowspan=2\[dq] .TD 1*3"
630 .CR ".TR \[dq].TD 2*1 colspan=2\[dq]         .TD 2*3"
631 .fi
632 .RE
633 .RE
634 .RE
635 .
636 .\"------------------------------------------------------------------
637 .
638 .TP
639 .CB ".ETB \[lB]hold\[rB]"
640 End of the table.
641 .
642 .IP
643 This macro finishes a table.
644 .
645 It causes one of the following actions.
646 .
647 .RS
648 .IP \[bu] 3
649 If the argument
650 .CR \[oq]hold\[cq]
651 is given, the table is held until it is freed by calling the macro
652 .CR .t*free\c
653 , which in turn prints the table immediately, either at the current position
654 or at the top of the next page if its height is larger than the remaining
655 space on the page.
656 .
657 .IP \[bu] 3
658 Otherwise, if the table is higher than the remaining space on the page,
659 it is printed at the top of the next page.
660 .
661 .IP \[bu] 3
662 If none of the two above constraints hold, the table is printed immediately
663 at the place of its definition.
664 .RE
665 .
666 .IP
667 .RS
668 .XB predecessor: .TD .TH .ETB "cell contents"
669 .XB successor: .TBL .TR .TD .TH .ETB "cell contents"
670 .XB arguments:
671 .
672 .RS
673 .XAA hold
674 Prevent the table from being printed until it is freed by calling the
675 macro
676 .CR .t*free\c
677 \&.
678 .
679 This argument is ignored for inner (nested) tables.
680 .RE
681 .RE
682 .
683 .\"------------------------------------------------------------------
684 .
685 .TP
686 .CBI ".t*free " \[lB]n\[rB]
687 Free the next held table or
688 .CI n\c
689 \~held tables.
690 .
691 Call this utility macro to print tables which are held by using the
692 .CR \[oq]hold\[cq]
693 argument of the
694 .CR .ETB
695 macro.
696 .
697 .
698 .SS Arguments common to \f[CB].TBL\f[], \f[CB].TR\f[], \f[CB].TD\f[], and \f[CB].TH\f[]
699 .
700 The arguments described in this section can be specified with the
701 .CR .TBL
702 and
703 .CR .TR
704 macros, but they are eventually passed on to the table cells.
705 .
706 If omitted, the defaults take place, which the user can change by setting
707 the corresponding default registers or strings, as documented below.
708 .
709 Setting an argument with the
710 .CR .TBL
711 macro has the same effect as setting it for all rows in the table.
712 .
713 Setting an argument with a
714 .CR .TR
715 macro has the same effect as setting it for all the
716 .CR .TH
717 or
718 .CR .TD
719 macro in this row.
720 .
721 .IP
722 .XAA bgc= \[lB]c\[rB]
723 The background color of the table cells.
724 .
725 This includes the area specified with the
726 .CR \[oq]csp\[cq]
727 argument.
728 .
729 The argument
730 .CR \[oq]bgc=\[cq]
731 (no value) suppresses a background color; this makes the background
732 transparent.
733 .
734 .XDEFS bgc=bisque t*bgc
735 .
736 .XAA fgc= c
737 The foreground color of the cell contents.
738 .
739 .XDEFS fgc=red4 t*fgc
740 .
741 .XAA ff= name
742 The font family for the table.
743 .
744 .CI name
745 is one of the groff font families, for example
746 .CR A
747 for the AvantGarde fonts or
748 .CR HN
749 for Helvetica-Narrow.
750 .
751 .XDEF
752 The font family found before the table (string
753 .CR \[oq]t*ff\[cq]\c
754 ).
755 .
756 .XAA fst= style
757 The font style for the table.
758 .
759 One of
760 .CR R\c
761 ,
762 .CR I\c
763 ,
764 .CR B\c
765 , or
766 .CR BI
767 for roman,
768 .BR bold ,
769 .IR italic ,
770 or \f[BI]bold italic\f[], respectively.
771 .
772 As with 
773 .BR roff 's
774 .CR .ft
775 request the
776 .CR \[oq]fst\[cq]
777 argument can be used to specify the font family and font style together, for
778 example
779 .CR \[oq]fst=HNBI\[cq]
780 instead of
781 .CR \[oq]ff=HN\[cq]
782 and
783 .CR \[oq]fst=BI\[cq]\c
784 \&.
785 .
786 .XDEF
787 The font style in use right before the table (string
788 .CR \[oq]t*fst\[cq]\c
789 ).
790 .
791 .XAA "fsz=\[aq]" "d1 \[lB]d2\[rB]" \[aq]
792 A decimal or fractional factor
793 .CI d1\c
794 , by which the point size for the table is changed, and
795 .CI d2\c
796 , by which the vertical line spacing is changed.
797 .
798 If
799 .CI d2
800 is omitted, value
801 .CI d1
802 is taken for both.
803 .
804 .XDEFS "fsz=\[aq]1.0 1.0\[aq]" t*fsz
805 .
806 .XAA hal=l\[or]c\[or]b\[or]r
807 Horizontal alignment of the cell contents in the table.
808 .
809 .CR \[oq]hal=l\[cq]\c
810 : left alignment.
811 .
812 .CR \[oq]hal=c\[cq]\c
813 : centered alignment.
814 .
815 .CR \[oq]hal=b\[cq]\c
816 : both (left and right) alignment.
817 .
818 .CR \[oq]hal=r\[cq]\c
819 : right alignment.
820 .
821 .XDEFS hal=b t*hal
822 .
823 .XAA val=t\[or]m\[or]b
824 Vertical alignment of the cell contents in the table for cells lower
825 than the current row.
826 .
827 .CR \[oq]val=t\[cq]\c
828 : alignment below the top of the cell.
829 .
830 .CR \[oq]val=m\[cq]\c
831 : alignment in the middle of the cell.
832 .
833 .CR \[oq]val=b\[cq]\c
834 : alignment above the cell bottom.
835 .
836 .XDEFS val=t t*val
837 .
838 .XAA hl=\[lB]s\[or]d\[rB]
839 Horizontal line between the rows.
840 .
841 If specified with
842 .CR .TD
843 or
844 .CR .TH
845 this is a separator line to the cell below.
846 .
847 .CR \[oq]hl=\[cq]
848 (no value): no separator line.
849 .
850 .CR \[oq]hl=s\[cq]\c
851 : a single separator line between the rows.
852 .
853 .CR \[oq]hl=d\[cq]\c
854 : a double separator line.
855 .
856 .IP
857 The thickness of the separator lines is the half of the border thickness,
858 but at least 0.1\|inches.
859 .
860 The distance between the double lines is equal to the line thickness.
861 .
862 .IP
863 .B Remark:
864 Together with
865 .CR \[oq]border=0\[cq]
866 for proper formatting the value of
867 .CR \[oq]csp\[cq]
868 must be at least .05\|inches for single separator lines and .15\|inches for
869 double separator lines.
870 .
871 .XDEFS hl=s t*hl
872 .
873 .XAA vl=\[lB]s\[or]d\[rB]
874 Vertical separator line between the cells.
875 .
876 If specified with
877 .CR .TD
878 or
879 .CR .TH
880 this is a separator line to the cell on the right.
881 .
882 .CR \[oq]vl=s\[cq]\c
883 : a single separator line between the cells.
884 .
885 .CR \[oq]vl=d\[cq]\c
886 : a double separator line.
887 .
888 .CR \[oq]vl=\[cq]
889 (no value): no vertical cell separator lines.
890 .
891 For more information see the documentation of the
892 .CR \[oq]hl\[cq]
893 argument above.
894 .
895 .XDEFS vl=s t*vl
896 .
897 .
898 .SH HDTBL CUSTOMIZATION
899 .
900 A table which does not fit on a partially filled page is printed
901 automatically on the top of the next page if you append the little
902 utility macro
903 .CR t*hm
904 to the page header macro of your document's main macro package.
905 For example, say
906 .
907 .PP
908 .RS
909 .nf
910 .CR ".am pg@top"
911 .CR ".  t*hm"
912 .CR ".."
913 .fi
914 .RE
915 .
916 .PP
917 if you use the
918 .B ms
919 macro package.
920 .
921 .PP
922 .B hdtbl
923 has built-in page header and page footer macros,
924 .B HM
925 and
926 .BR BM .
927 If they interfere with your own header and footer macros, simply
928 say
929 .CR ".rm\ HM"
930 and
931 .CR ".rm\ BM"
932 to remove them.
933 .
934 .
935 .SH AUTHOR
936 .
937 .MT Joachim.Walsdorff@urz.uni-heidelberg.de
938 Joachim Walsdorff
939 .ME
940 .
941 .
942 .SH BUGS AND SUGGESTIONS
943 .
944 Please send your commments to the
945 .MT groff@gnu.org
946 groff mailing list
947 .ME
948 or directly to the author.
949 .
950 .\" EOF