summaryrefslogtreecommitdiffstats
path: root/contrib/groff/doc/groff-1
blob: 0f13ab318c80c8efeca1a22d91d35caa30a62e34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
This is groff, produced by makeinfo version 4.2 from ./groff.texinfo.

This manual documents GNU `troff' version 1.18.

   Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.1 or any later version published by the Free Software
     Foundation; with no Invariant Sections, with the Front-Cover texts
     being `A GNU Manual," and with the Back-Cover Texts as in (a)
     below.  A copy of the license is included in the section entitled
     `GNU Free Documentation License."

     (a) The FSF's Back-Cover Text is: `You have freedom to copy and
     modify this GNU Manual, like GNU software.  Copies published by
     the Free Software Foundation raise funds for GNU development."
   
INFO-DIR-SECTION Miscellaneous
START-INFO-DIR-ENTRY
* Groff: (groff).               The GNU troff document formatting system.
END-INFO-DIR-ENTRY


File: groff,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)

GNU troff
*********

This manual documents GNU `troff' version 1.18.

   Copyright (C) 1994-2000, 2001, 2002 Free Software Foundation, Inc.

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.1 or any later version published by the Free Software
     Foundation; with no Invariant Sections, with the Front-Cover texts
     being `A GNU Manual," and with the Back-Cover Texts as in (a)
     below.  A copy of the license is included in the section entitled
     `GNU Free Documentation License."

     (a) The FSF's Back-Cover Text is: `You have freedom to copy and
     modify this GNU Manual, like GNU software.  Copies published by
     the Free Software Foundation raise funds for GNU development."
   
* Menu:

* Introduction::
* Invoking groff::
* Tutorial for Macro Users::
* Macro Packages::
* gtroff Reference::
* Preprocessors::
* Output Devices::
* File formats::
* Installation::
* Copying This Manual::
* Request Index::
* Escape Index::
* Operator Index::
* Register Index::
* Macro Index::
* String Index::
* Glyph Name Index::
* Font File Keyword Index::
* Program and File Index::
* Concept Index::


File: groff,  Node: Introduction,  Next: Invoking groff,  Prev: Top,  Up: Top

Introduction
************

   GNU `troff' (or `groff') is a system for typesetting documents.
`troff' is very flexible and has been in existence (and use) for about
3 decades.  It is quite widespread and firmly entrenched in the UNIX
community.

* Menu:

* What Is groff?::
* History::
* groff Capabilities::
* Macro Package Intro::
* Preprocessor Intro::
* Output device intro::
* Credits::


File: groff,  Node: What Is groff?,  Next: History,  Prev: Introduction,  Up: Introduction

What Is `groff'?
================

   `groff' belongs to an older generation of document preparation
systems, which operate more like compilers than the more recent
interactive WYSIWYG(1) (*note What Is groff?-Footnote-1::) systems.
`groff' and its contemporary counterpart, TeX, both work using a
"batch" paradigm: The input (or "source") files are normal text files
with embedded formatting commands.  These files can then be processed
by `groff' to produce a typeset document on a variety of devices.

   Likewise, `groff' should not be confused with a "word processor",
since that term connotes an integrated system that includes an editor
and a text formatter.  Also, many word processors follow the WYSIWYG
paradigm discussed earlier.

   Although WYSIWYG systems may be easier to use, they have a number of
disadvantages compared to `troff':

   * They must be used on a graphics display to work on a document.

   * Most of the WYSIWYG systems are either non-free or are not very
     portable.

   * `troff' is firmly entrenched in all UNIX systems.

   * It is difficult to have a wide range of capabilities available
     within the confines of a GUI/window system.

   * It is more difficult to make global changes to a document.

     "GUIs normally make it simple to accomplish simple actions and
     impossible to accomplish complex actions."  -Doug Gwyn (22/Jun/91
     in `comp.unix.wizards')


File: groff,  Node: What Is groff?-Footnotes,  Up: What Is groff?

   (1) What You See Is What You Get


File: groff,  Node: History,  Next: groff Capabilities,  Prev: What Is groff?,  Up: Introduction

History
=======

   `troff' can trace its origins back to a formatting program called
`runoff', written by J. E. Saltzer, which ran on MIT's CTSS operating
system in the mid-sixties.  This name came from the common phrase of
the time "I'll run off a document."  Bob Morris ported it to the 635
architecture and called the program `roff' (an abbreviation of
`runoff').  It was rewritten as `rf' for the PDP-7 (before having
UNIX), and at the same time (1969), Doug McIllroy rewrote an extended
and simplified version of `roff' in the BCPL programming language.

   The first version of UNIX was developed on a PDP-7 which was sitting
around Bell Labs.  In 1971 the developers wanted to get a PDP-11 for
further work on the operating system.  In order to justify the cost for
this system, they proposed that they would implement a document
formatting system for the AT&T patents division.  This first formatting
program was a reimplementation of McIllroy's `roff', written by
J. F. Ossanna.

   When they needed a more flexible language, a new version of `roff'
called `nroff' ("Newer `roff'") was written.  It had a much more
complicated syntax, but provided the basis for all future versions.
When they got a Graphic Systems CAT Phototypesetter, Ossanna wrote a
version of `nroff' that would drive it.  It was dubbed `troff', for
"typesetter `roff'", although many people have speculated that it
actually means "Times `roff'" because of the use of the Times font
family in `troff' by default.  As such, the name `troff' is pronounced
`t-roff' rather than `trough'.

   With `troff' came `nroff' (they were actually the same program
except for some `#ifdef's), which was for producing output for line
printers and character terminals.  It understood everything `troff'
did, and ignored the commands which were not applicable (e.g. font
changes).

   Since there are several things which cannot be done easily in
`troff', work on several preprocessors began.  These programs would
transform certain parts of a document into `troff', which made a very
natural use of pipes in UNIX.

   The `eqn' preprocessor allowed mathematical formulae to be specified
in a much simpler and more intuitive manner.  `tbl' is a preprocessor
for formatting tables.  The `refer' preprocessor (and the similar
program, `bib') processes citations in a document according to a
bibliographic database.

   Unfortunately, Ossanna's `troff' was written in PDP-11 assembly
language and produced output specifically for the CAT phototypesetter.
He rewrote it in C, although it was now 7000 lines of uncommented code
and still dependent on the CAT.  As the CAT became less common, and was
no longer supported by the manufacturer, the need to make it support
other devices became a priority.  However, before this could be done,
Ossanna was killed in a car accident.

   So, Brian Kernighan took on the task of rewriting `troff'.  The
newly rewritten version produced device independent code which was very
easy for postprocessors to read and translate to the appropriate
printer codes.  Also, this new version of `troff' (called `ditroff' for
"device independent `troff'") had several extensions, which included
drawing functions.

   Due to the additional abilities of the new version of `troff',
several new preprocessors appeared.  The `pic' preprocessor provides a
wide range of drawing functions.  Likewise the `ideal' preprocessor did
the same, although via a much different paradigm.  The `grap'
preprocessor took specifications for graphs, but, unlike other
preprocessors, produced `pic' code.

   James Clark began work on a GNU implementation of `ditroff' in
early 1989.  The first version, `groff' 0.3.1, was released June 1990.
`groff' included:

   * A replacement for `ditroff' with many extensions.

   * The `soelim', `pic', `tbl', and `eqn' preprocessors.

   * Postprocessors for character devices, POSTSCRIPT, TeX DVI, and
     X Windows.  GNU `troff' also eliminated the need for a separate
     `nroff' program with a postprocessor which would produce ASCII
     output.

   * A version of the `me' macros and an implementation of the `man'
     macros.

   Also, a front-end was included which could construct the, sometimes
painfully long, pipelines required for all the post- and preprocessors.

   Development of GNU `troff' progressed rapidly, and saw the additions
of a replacement for `refer', an implementation of the `ms' and `mm'
macros, and a program to deduce how to format a document (`grog').

   It was declared a stable (i.e. non-beta) package with the release of
version 1.04 around November 1991.

   Beginning in 1999, `groff' has new maintainers (the package was an
orphan for a few years).  As a result, new features and programs like
`grn', a preprocessor for gremlin images, and an output device to
produce HTML output have been added.


File: groff,  Node: groff Capabilities,  Next: Macro Package Intro,  Prev: History,  Up: Introduction

`groff' Capabilities
====================

   So what exactly is `groff' capable of doing?  `groff' provides a
wide range of low-level text formatting operations.  Using these, it is
possible to perform a wide range of formatting tasks, such as
footnotes, table of contents, multiple columns, etc.  Here's a list of
the most important operations supported by `groff':

   * text filling, adjusting, and centering

   * hyphenation

   * page control

   * font and glyph size control

   * vertical spacing (e.g. double-spacing)

   * line length and indenting

   * macros, strings, diversions, and traps

   * number registers

   * tabs, leaders, and fields

   * input and output conventions and character translation

   * overstrike, bracket, line drawing, and zero-width functions

   * local horizontal and vertical motions and the width function

   * three-part titles

   * output line numbering

   * conditional acceptance of input

   * environment switching

   * insertions from the standard input

   * input/output file switching

   * output and error messages


File: groff,  Node: Macro Package Intro,  Next: Preprocessor Intro,  Prev: groff Capabilities,  Up: Introduction

Macro Packages
==============

   Since `groff' provides such low-level facilities, it can be quite
difficult to use by itself.  However, `groff' provides a "macro"
facility to specify how certain routine operations (e.g. starting
paragraphs, printing headers and footers, etc.) should be done.  These
macros can be collected together into a "macro package".  There are a
number of macro packages available; the most common (and the ones
described in this manual) are `man', `mdoc', `me', `ms', and `mm'.


File: groff,  Node: Preprocessor Intro,  Next: Output device intro,  Prev: Macro Package Intro,  Up: Introduction

Preprocessors
=============

   Although `groff' provides most functions needed to format a
document, some operations would be unwieldy (e.g. to draw pictures).
Therefore, programs called "preprocessors" were written which
understand their own language and produce the necessary `groff'
operations.  These preprocessors are able to differentiate their own
input from the rest of the document via markers.

   To use a preprocessor, UNIX pipes are used to feed the output from
the preprocessor into `groff'.  Any number of preprocessors may be used
on a given document; in this case, the preprocessors are linked
together into one pipeline.  However, with `groff', the user does not
need to construct the pipe, but only tell `groff' what preprocessors to
use.

   `groff' currently has preprocessors for producing tables (`tbl'),
typesetting equations (`eqn'), drawing pictures (`pic' and `grn'), and
for processing bibliographies (`refer').  An associated program which
is useful when dealing with preprocessors is `soelim'.

   A free implementation of `grap', a preprocessor for drawing graphs,
can be obtained as an extra package; `groff' can use `grap' also.

   There are other preprocessors in existence, but, unfortunately, no
free implementations are available.  Among them are preprocessors for
drawing mathematical pictures (`ideal') and chemical structures
(`chem').


File: groff,  Node: Output device intro,  Next: Credits,  Prev: Preprocessor Intro,  Up: Introduction

Output Devices
==============

   `groff' actually produces device independent code which may be fed
into a postprocessor to produce output for a particular device.
Currently, `groff' has postprocessors for POSTSCRIPT devices, character
terminals, X Windows (for previewing), TeX DVI format, HP LaserJet 4
and Canon LBP printers (which use CAPSL), and HTML.


File: groff,  Node: Credits,  Prev: Output device intro,  Up: Introduction

Credits
=======

   Large portions of this manual were taken from existing documents,
most notably, the manual pages for the `groff' package by James Clark,
and Eric Allman's papers on the `me' macro package.

   The section on the `man' macro package is partly based on Susan G.
Kleinmann's `groff_man' manual page written for the Debian GNU/Linux
system.

   Larry Kollar contributed the section in the `ms' macro package.


File: groff,  Node: Invoking groff,  Next: Tutorial for Macro Users,  Prev: Introduction,  Up: Top

Invoking `groff'
****************

   This section focuses on how to invoke the `groff' front end.  This
front end takes care of the details of constructing the pipeline among
the preprocessors, `gtroff' and the postprocessor.

   It has become a tradition that GNU programs get the prefix `g' to
distinguish it from its original counterparts provided by the host (see
*Note Environment::, for more details).  Thus, for example, `geqn' is
GNU `eqn'.  On operating systems like GNU/Linux or the Hurd, which
don't contain proprietary versions of `troff', and on
MS-DOS/MS-Windows, where `troff' and associated programs are not
available at all, this prefix is omitted since GNU `troff' is the only
used incarnation of `troff'.  Exception: `groff' is never replaced by
`roff'.

   In this document, we consequently say `gtroff' when talking about
the GNU `troff' program.  All other implementations of `troff' are
called AT&T `troff' which is the common origin of all `troff' derivates
(with more or less compatible changes).  Similarly, we say `gpic',
`geqn', etc.

* Menu:

* Groff Options::
* Environment::
* Macro Directories::
* Font Directories::
* Invocation Examples::


File: groff,  Node: Groff Options,  Next: Environment,  Prev: Invoking groff,  Up: Invoking groff

Options
=======

   `groff' normally runs the `gtroff' program and a postprocessor
appropriate for the selected device.  The default device is `ps' (but
it can be changed when `groff' is configured and built).  It can
optionally preprocess with any of `gpic', `geqn', `gtbl', `ggrn',
`grap', `grefer', or `gsoelim'.

   This section only documents options to the `groff' front end.  Many
of the arguments to `groff' are passed on to `gtroff', therefore those
are also included.  Arguments to pre- or postprocessors can be found in
*Note Invoking gpic::, *Note Invoking geqn::, *Note Invoking gtbl::,
*Note Invoking ggrn::, *Note Invoking grefer::, *Note Invoking
gsoelim::, *Note Invoking grotty::, *Note Invoking grops::, *Note
Invoking grohtml::, *Note Invoking grodvi::, *Note Invoking grolj4::,
*Note Invoking grolbp::, and *Note Invoking gxditview::.

   The command line format for `groff' is:


     groff [ -abceghilpstvzCEGNRSUVXZ ] [ -FDIR ] [ -mNAME ]
           [ -TDEF ] [ -fFAM ] [ -wNAME ] [ -WNAME ]
           [ -MDIR ] [ -dCS ] [ -rCN ] [ -nNUM ]
           [ -oLIST ] [ -PARG ] [ -LARG ] [ -IDIR ]
           [ FILES... ]

   The command line format for `gtroff' is as follows.


     gtroff [ -abcivzCERU ] [ -wNAME ] [ -WNAME ] [ -dCS ]
            [ -fFAM ] [ -mNAME ] [ -nNUM ]
            [ -oLIST ] [ -rCN ] [ -TNAME ]
            [ -FDIR ] [ -MDIR ] [ FILES... ]

Obviously, many of the options to `groff' are actually passed on to
`gtroff'.

   Options without an argument can be grouped behind a single `-'.  A
filename of `-' denotes the standard input.  It is possible to have
whitespace between an option and its parameter.

   The `grog' command can be used to guess the correct `groff' command
to format a file.

   Here's the description of the command-line options:

`-h'
     Print a help message.

`-e'
     Preprocess with `geqn'.

`-t'
     Preprocess with `gtbl'.

`-g'
     Preprocess with `ggrn'.

`-G'
     Preprocess with `grap'.

`-p'
     Preprocess with `gpic'.

`-s'
     Preprocess with `gsoelim'.

`-c'
     Suppress color output.

`-R'
     Preprocess with `grefer'.  No mechanism is provided for passing
     arguments to `grefer' because most `grefer' options have
     equivalent commands which can be included in the file.  *Note
     grefer::, for more details.

     Note that `gtroff' also accepts a `-R' option, which is not
     accessible via `groff'.  This option prevents the loading of the
     `troffrc' and `troffrc-end' files.

`-v'
     Make programs run by `groff' print out their version number.

`-V'
     Print the pipeline on `stdout' instead of executing it.

`-z'
     Suppress output from `gtroff'.  Only error messages are printed.

`-Z'
     Do not postprocess the output of `gtroff'.  Normally `groff'
     automatically runs the appropriate postprocessor.

`-PARG'
     Pass ARG to the postprocessor.  Each argument should be passed
     with a separate `-P' option.  Note that `groff' does not prepend
     `-' to ARG before passing it to the postprocessor.

`-l'
     Send the output to a spooler for printing.  The command used for
     this is specified by the `print' command in the device description
     file (see *Note Font Files::, for more info).  If not present,
     `-l' is ignored.

`-LARG'
     Pass ARG to the spooler.  Each argument should be passed with a
     separate `-L' option.  Note that `groff' does not prepend a `-' to
     ARG before passing it to the postprocessor.  If the `print'
     keyword in the device description file is missing, `-L' is ignored.

`-TDEV'
     Prepare output for device DEV.  The default device is `ps', unless
     changed when `groff' was configured and built.  The following are
     the output devices currently available:

    `ps'
          For POSTSCRIPT printers and previewers.

    `dvi'
          For TeX DVI format.

    `X75'
          For a 75dpi X11 previewer.

    `X75-12'
          For a 75dpi X11 previewer with a 12pt base font in the
          document.

    `X100'
          For a 100dpi X11 previewer.

    `X100-12'
          For a 100dpi X11 previewer with a 12pt base font in the
          document.

    `ascii'
          For typewriter-like devices using the (7-bit) ASCII character
          set.

    `latin1'
          For typewriter-like devices that support the Latin-1
          (ISO 8859-1) character set.

    `utf8'
          For typewriter-like devices which use the Unicode (ISO 10646)
          character set with UTF-8 encoding.

    `cp1047'
          For typewriter-like devices which use the EBCDIC encoding IBM
          cp1047.

    `lj4'
          For HP LaserJet4-compatible (or other PCL5-compatible)
          printers.

    `lbp'
          For Canon CAPSL printers (LBP-4 and LBP-8 series laser
          printers).

    `html'
          To produce HTML output.  Note that the HTML driver consists
          of two parts, a preprocessor (`pre-grohtml') and a
          postprocessor (`post-grohtml').

     The predefined `gtroff' string register `.T' contains the current
     output device; the read-only number register `.T' is set to 1 if
     this option is used (which is always true if `groff' is used to
     call `gtroff').  *Note Built-in Registers::.

     The postprocessor to be used for a device is specified by the
     `postpro' command in the device description file.  (*Note Font
     Files::, for more info.)  This can be overridden with the `-X'
     option.

`-X'
     Preview with `gxditview' instead of using the usual postprocessor.
     This is unlikely to produce good results except with `-Tps'.

     Note that this is not the same as using `-TX75' or `-TX100' to
     view a document with `gxditview': The former uses the metrics of
     the specified device, whereas the latter uses X-specific fonts and
     metrics.

`-N'
     Don't allow newlines with `eqn' delimiters.  This is the same as
     the `-N' option in `geqn'.

`-S'
     Safer mode.  Pass the `-S' option to `gpic' and disable the
     `open', `opena', `pso', `sy', and `pi' requests.  For security
     reasons, this is enabled by default.

`-U'
     Unsafe mode.  This enables the `open', `opena', `pso', `sy', and
     `pi' requests.

`-a'
     Generate an ASCII approximation of the typeset output.  The
     read-only register `.A' is then set to 1.  *Note Built-in
     Registers::.  A typical example is


          groff -a -man -Tdvi troff.man | less

     which shows how lines are broken for the DVI device.  Note that
     this option is rather useless today since graphic output devices
     are available virtually everywhere.

`-b'
     Print a backtrace with each warning or error message.  This
     backtrace should help track down the cause of the error.  The line
     numbers given in the backtrace may not always be correct: `gtroff'
     can get confused by `as' or `am' requests while counting line
     numbers.

`-i'
     Read the standard input after all the named input files have been
     processed.

`-wNAME'
     Enable warning NAME.  Available warnings are described in *Note
     Debugging::.  Multiple `-w' options are allowed.

`-WNAME'
     Inhibit warning NAME.  Multiple `-W' options are allowed.

`-E'
     Inhibit all error messages.

`-C'
     Enable compatibility mode.  *Note Implementation Differences::,
     for the list of incompatibilities between `groff' and AT&T `troff'.

`-dCS'
`-dNAME=S'
     Define C or NAME to be a string S.  C must be a one-letter name;
     NAME can be of arbitrary length.  All string assignments happen
     before loading any macro file (including the start-up file).

`-fFAM'
     Use FAM as the default font family.  *Note Font Families::.

`-mNAME'
     Read in the file `NAME.tmac'.  Normally `groff' searches for this
     in its macro directories.  If it isn't found, it tries `tmac.NAME'
     (searching in the same directories).

`-nNUM'
     Number the first page NUM.

`-oLIST'
     Output only pages in LIST, which is a comma-separated list of page
     ranges; `N' means print page N, `M-N' means print every page
     between M and N, `-N' means print every page up to N, `N-' means
     print every page beginning with N.  `gtroff' exits after printing
     the last page in the list.  All the ranges are inclusive on both
     ends.

     Within `gtroff', this information can be extracted with the `.P'
     register.  *Note Built-in Registers::.

     If your document restarts page numbering at the beginning of each
     chapter, then `gtroff' prints the specified page range for each
     chapter.

`-rCN'
`-rNAME=N'
     Set number register C or NAME to the value N.  C must be a
     one-letter name; NAME can be of arbitrary length.  N can be any
     `gtroff' numeric expression.  All register  assignments happen
     before loading any macro file (including the start-up file).

`-FDIR'
     Search `DIR' for subdirectories `devNAME' (NAME is the name of the
     device), for the `DESC' file, and for font files before looking in
     the standard directories (*note Font Directories::).  This option
     is passed to all pre- and postprocessors using the
     `GROFF_FONT_PATH' environment variable.

`-MDIR'
     Search directory `DIR' for macro files before the standard
     directories (*note Macro Directories::).

`-IDIR'
     This option is as described in *Note gsoelim::.  It implies the
     `-s' option.


File: groff,  Node: Environment,  Next: Macro Directories,  Prev: Groff Options,  Up: Invoking groff

Environment
===========

   There are also several environment variables (of the operating
system, not within `gtroff') which can modify the behavior of `groff'.

`GROFF_COMMAND_PREFIX'
     If this is set to X, then `groff' runs `Xtroff' instead of
     `gtroff'.  This also applies to `tbl', `pic', `eqn', `grn',
     `refer', and `soelim'.  It does not apply to `grops', `grodvi',
     `grotty', `pre-grohtml', `post-grohtml', `grolj4', and `gxditview'.

     The default command prefix is determined during the installation
     process.  If a non-GNU troff system is found, prefix `g' is used,
     none otherwise.

`GROFF_TMAC_PATH'
     A colon-separated list of directories in which to search for macro
     files (before the default directories are tried).  *Note Macro
     Directories::.

`GROFF_TYPESETTER'
     The default output device.

`GROFF_FONT_PATH'
     A colon-separated list of directories in which to search for the
     `dev'NAME directory (before the default directories are tried).
     *Note Font Directories::.

`GROFF_BIN_PATH'
     This search path, followed by `PATH', is used for commands executed
     by `groff'.

`GROFF_TMPDIR'
     The directory in which `groff' creates temporary files.  If this is
     not set and `TMPDIR' is set, temporary files are created in that
     directory.  Otherwise temporary files are created in a
     system-dependent default directory (on Unix and GNU/Linux systems,
     this is usually `/tmp').  `grops', `grefer', `pre-grohtml', and
     `post-grohtml' can create temporary files in this directory.

   Note that MS-DOS and MS-Windows ports of `groff' use semi-colons,
rather than colons, to separate the directories in the lists described
above.


File: groff,  Node: Macro Directories,  Next: Font Directories,  Prev: Environment,  Up: Invoking groff

Macro Directories
=================

   All macro file names must be named `NAME.tmac' or `tmac.NAME' to
make the `-mNAME' command line option work.  The `mso' request doesn't
have this restriction; any file name can be used, and `gtroff' won't
try to append or prepend the `tmac' string.

   Macro files are kept in the "tmac directories", all of which
constitute the "tmac path".  The elements of the search path for macro
files are (in that order):

   * The directories specified with `gtroff''s or `groff''s `-M'
     command line option.

   * The directories given in the `GROFF_TMAC_PATH' environment
     variable.

   * The current directory (only if in unsafe mode using the `-U'
     command line switch).

   * The home directory.

   * A platform-dependent directory, a site-specific
     (platform-independent) directory, and the main tmac directory; the
     default locations are


          /usr/local/lib/groff/site-tmac
          /usr/local/share/groff/site-tmac
          /usr/local/share/groff/1.18/tmac

     assuming that the version of `groff' is 1.18, and the installation
     prefix was `/usr/local'.  It is possible to fine-tune those
     directories during the installation process.


File: groff,  Node: Font Directories,  Next: Invocation Examples,  Prev: Macro Directories,  Up: Invoking groff

Font Directories
================

   Basically, there is no restriction how font files for `groff' are
named and how long font names are; however, to make the font family
mechanism work (*note Font Families::), fonts within a family should
start with the family name, followed by the shape.  For example, the
Times family uses `T' for the family name and `R', `B', `I', and `BI'
to indicate the shapes `roman', `bold', `italic', and `bold italic',
respectively.  Thus the final font names are `TR', `TB', `TI', and
`TBI'.

   All font files are kept in the "font directories" which constitute
the "font path".  The file search functions will always append the
directory `dev'NAME, where NAME is the name of the output device.
Assuming, say, DVI output, and `/foo/bar' as a font directory, the font
files for `grodvi' must be in `/foo/bar/devdvi'.

   The elements of the search path for font files are (in that order):

   * The directories specified with `gtroff''s or `groff''s `-F'
     command line option.  All device drivers and some preprocessors
     also have this option.

   * The directories given in the `GROFF_FONT_PATH' environment
     variable.

   * A site-specific directory and the main font directory; the default
     locations are


          /usr/local/share/groff/site-font
          /usr/local/share/groff/1.18/font

     assuming that the version of `groff' is 1.18, and the installation
     prefix was `/usr/local'.  It is possible to fine-tune those
     directories during the installation process.


File: groff,  Node: Invocation Examples,  Prev: Font Directories,  Up: Invoking groff

Invocation Examples
===================

   This section lists several common uses of `groff' and the
corresponding command lines.


     groff file

This command processes `file' without a macro package or a
preprocessor.  The output device is the default, `ps', and the output
is sent to `stdout'.


     groff -t -mandoc -Tascii file | less

This is basically what a call to the `man' program does.  `gtroff'
processes the manual page `file' with the `mandoc' macro file (which in
turn either calls the `man' or the `mdoc' macro package), using the
`tbl' preprocessor and the ASCII output device.  Finally, the `less'
pager displays the result.


     groff -X -m me file

Preview `file' with `gxditview', using the `me' macro package.  Since
no `-T' option is specified, use the default device (`ps').  Note that
you can either say `-m me' or `-me'; the latter is an anachronism from
the early days of UNIX.(1) (*note Invocation Examples-Footnote-1::)


     groff -man -rD1 -z file

Check `file' with the `man' macro package, forcing double-sided
printing - don't produce any output.

* Menu:

* grog::


File: groff,  Node: Invocation Examples-Footnotes,  Up: Invocation Examples

   (1) The same is true for the other main macro packages that come
with `groff': `man', `mdoc', `ms', `mm', and `mandoc'.  This won't work
in general; for example, to load `trace.tmac', either `-mtrace' or
`-m trace' must be used.


File: groff,  Node: grog,  Prev: Invocation Examples,  Up: Invocation Examples

`grog'
------

   `grog' reads files, guesses which of the `groff' preprocessors
and/or macro packages are required for formatting them, and prints the
`groff' command including those options on the standard output.  It
generates one or more of the options `-e', `-man', `-me', `-mm',
`-mom', `-ms', `-mdoc', `-mdoc-old', `-p', `-R', `-g', `-G', `-s', and
`-t'.

   A special file name `-' refers to the standard input.  Specifying no
files also means to read the standard input.  Any specified options are
included in the printed command.  No space is allowed between options
and their arguments.  The only options recognized are `-C' (which is
also passed on) to enable compatibility mode, and `-v' to print the
version number and exit.

   For example,


     grog -Tdvi paper.ms

guesses the appropriate command to print `paper.ms' and then prints it
to the command line after adding the `-Tdvi' option.  For direct
execution, enclose the call to `grog' in backquotes at the UNIX shell
prompt:


     `grog -Tdvi paper.ms` > paper.dvi

As seen in the example, it is still necessary to redirect the output to
something meaningful (i.e. either a file or a pager program like
`less').


File: groff,  Node: Tutorial for Macro Users,  Next: Macro Packages,  Prev: Invoking groff,  Up: Top

Tutorial for Macro Users
************************

   Most users tend to use a macro package to format their papers.  This
means that the whole breadth of `groff' is not necessary for most
people.  This chapter covers the material needed to efficiently use a
macro package.

* Menu:

* Basics::
* Common Features::


File: groff,  Node: Basics,  Next: Common Features,  Prev: Tutorial for Macro Users,  Up: Tutorial for Macro Users

Basics
======

   This section covers some of the basic concepts necessary to
understand how to use a macro package.(1) (*note Basics-Footnote-1::)
References are made throughout to more detailed information, if desired.

   `gtroff' reads an input file prepared by the user and outputs a
formatted document suitable for publication or framing.  The input
consists of text, or words to be printed, and embedded commands
("requests" and "escapes"), which tell `gtroff' how to format the
output.  For more detail on this, see *Note Embedded Commands::.

   The word "argument" is used in this chapter to mean a word or number
which appears on the same line as a request, and which modifies the
meaning of that request.  For example, the request


     .sp

spaces one line, but


     .sp 4

spaces four lines.  The number 4 is an argument to the `sp' request
which says to space four lines instead of one.  Arguments are separated
from the request and from each other by spaces (_no_ tabs).  More
details on this can be found in *Note Request Arguments::.

   The primary function of `gtroff' is to collect words from input
lines, fill output lines with those words, justify the right-hand margin
by inserting extra spaces in the line, and output the result.  For
example, the input:


     Now is the time
     for all good men
     to come to the aid
     of their party.
     Four score and seven
     years ago, etc.

is read, packed onto output lines, and justified to produce:

     Now is the time for all good men to come to the aid of their party.
     Four score and seven years ago, etc.

   Sometimes a new output line should be started even though the current
line is not yet full; for example, at the end of a paragraph.  To do
this it is possible to cause a "break", which starts a new output line.
Some requests cause a break automatically, as normally do blank input
lines and input lines beginning with a space.

   Not all input lines are text to be formatted.  Some input lines are
requests which describe how to format the text.  Requests always have a
period (`.') or an apostrophe (`'') as the first character of the input
line.

   The text formatter also does more complex things, such as
automatically numbering pages, skipping over page boundaries, putting
footnotes in the correct place, and so forth.

   Here are a few hints for preparing text for input to `gtroff'.

   * First, keep the input lines short.  Short input lines are easier to
     edit, and `gtroff' packs words onto longer lines anyhow.

   * In keeping with this, it is helpful to begin a new line after every
     comma or phrase, since common corrections are to add or delete
     sentences or phrases.

   * End each sentence with two spaces - or better, start each sentence
     on a new line.  `gtroff' recognizes characters that usually end a
     sentence, and inserts sentence space accordingly.

   * Do not hyphenate words at the end of lines - `gtroff' is smart
     enough to hyphenate words as needed, but is not smart enough to
     take hyphens out and join a word back together.  Also, words such
     as "mother-in-law" should not be broken over a line, since then a
     space can occur where not wanted, such as "mother- in-law".

   `gtroff' double-spaces output text automatically if you use the
request `.ls 2'.  Reactivate single-spaced mode by typing `.ls 1'.(2)
(*note Basics-Footnote-2::)

   A number of requests allow to change the way the output looks,
sometimes called the "layout" of the output page.  Most of these
requests adjust the placing of "whitespace" (blank lines or spaces).

   The `bp' request starts a new page, causing a line break.

   The request `.sp N' leaves N lines of blank space.  N can be omitted
(meaning skip a single line) or can be of the form Ni (for N inches) or
Nc (for N centimeters).  For example, the input:


     .sp 1.5i
     My thoughts on the subject
     .sp

leaves one and a half inches of space, followed by the line "My
thoughts on the subject", followed by a single blank line (more
measurement units are available, see *Note Measurements::).

   Text lines can be centered by using the `ce' request.  The line
after `ce' is centered (horizontally) on the page.  To center more than
one line, use `.ce N' (where N is the number of lines to center),
followed by the N lines.  To center many lines without counting them,
type:


     .ce 1000
     lines to center
     .ce 0

The `.ce 0' request tells `groff' to center zero more lines, in other
words, stop centering.

   All of these requests cause a break; that is, they always start a new
line.  To start a new line without performing any other action, use
`br'.


File: groff,  Node: Basics-Footnotes,  Up: Basics

   (1) This section is derived from `Writing Papers with nroff using
-me' by Eric P. Allman.

   (2) If you need finer granularity of the vertical space, use the
`pvs' request (*note Changing Type Sizes::).


File: groff,  Node: Common Features,  Prev: Basics,  Up: Tutorial for Macro Users

Common Features
===============

   `gtroff' provides very low-level operations for formatting a
document.  There are many common routine operations which are done in
all documents.  These common operations are written into "macros" and
collected into a "macro package".

   All macro packages provide certain common capabilities which fall
into the following categories.

* Menu:

* Paragraphs::
* Sections and Chapters::
* Headers and Footers::
* Page Layout Adjustment::
* Displays::
* Footnotes and Annotations::
* Table of Contents::
* Indices::
* Paper Formats::
* Multiple Columns::
* Font and Size Changes::
* Predefined Strings::
* Preprocessor Support::
* Configuration and Customization::


File: groff,  Node: Paragraphs,  Next: Sections and Chapters,  Prev: Common Features,  Up: Common Features

Paragraphs
----------

   One of the most common and most used capability is starting a
paragraph.  There are a number of different types of paragraphs, any of
which can be initiated with macros supplied by the macro package.
Normally, paragraphs start with a blank line and the first line
indented, like the text in this manual.  There are also block style
paragraphs, which omit the indentation:


     Some   men  look   at  constitutions   with  sanctimonious
     reverence, and deem them like the ark of the covenant, too
     sacred to be touched.

And there are also indented paragraphs which begin with a tag or label
at the margin and the remaining text indented.


     one   This is  the first paragraph.  Notice  how the first
           line of  the resulting  paragraph lines up  with the
           other lines in the paragraph.


     longlabel
           This  paragraph   had  a  long   label.   The  first
           character of text on the first line does not line up
           with  the  text  on  second  and  subsequent  lines,
           although they line up with each other.

   A variation of this is a bulleted list.


     .     Bulleted lists start with a bullet.   It is possible
           to use other glyphs instead of the bullet.  In nroff
           mode using the ASCII character set for output, a dot
           is used instead of a real bullet.


File: groff,  Node: Sections and Chapters,  Next: Headers and Footers,  Prev: Paragraphs,  Up: Common Features

Sections and Chapters
---------------------

   Most macro packages supply some form of section headers.  The
simplest kind is simply the heading on a line by itself in bold type.
Others supply automatically numbered section heading or different
heading styles at different levels.  Some, more sophisticated, macro
packages supply macros for starting chapters and appendices.


File: groff,  Node: Headers and Footers,  Next: Page Layout Adjustment,  Prev: Sections and Chapters,  Up: Common Features

Headers and Footers
-------------------

   Every macro package gives some way to manipulate the "headers" and
"footers" (also called "titles") on each page.  This is text put at the
top and bottom of each page, respectively, which contain data like the
current page number, the current chapter title, and so on.  Its
appearance is not affected by the running text.  Some packages allow
for different ones on the even and odd pages (for material printed in a
book form).

   The titles are called "three-part titles", that is, there is a
left-justified part, a centered part, and a right-justified part.  An
automatically generated page number may be put in any of these fields
with the `%' character (see *Note Page Layout::, for more details).


File: groff,  Node: Page Layout Adjustment,  Next: Displays,  Prev: Headers and Footers,  Up: Common Features

Page Layout
-----------

   Most macro packages let the user specify top and bottom margins and
other details about the appearance of the printed pages.


File: groff,  Node: Displays,  Next: Footnotes and Annotations,  Prev: Page Layout Adjustment,  Up: Common Features

Displays
--------

   "Displays" are sections of text to be set off from the body of the
paper.  Major quotes, tables, and figures are types of displays, as are
all the examples used in this document.

   "Major quotes" are quotes which are several lines long, and hence
are set in from the rest of the text without quote marks around them.

   A "list" is an indented, single-spaced, unfilled display.  Lists
should be used when the material to be printed should not be filled and
justified like normal text, such as columns of figures or the examples
used in this paper.

   A "keep" is a display of lines which are kept on a single page if
possible.  An example for a keep might be a diagram.  Keeps differ from
lists in that lists may be broken over a page boundary whereas keeps are
not.

   "Floating keeps" move relative to the text.  Hence, they are good for
things which are referred to by name, such as "See figure 3".  A
floating keep appears at the bottom of the current page if it fits;
otherwise, it appears at the top of the next page.  Meanwhile, the
surrounding text `flows' around the keep, thus leaving no blank areas.


File: groff,  Node: Footnotes and Annotations,  Next: Table of Contents,  Prev: Displays,  Up: Common Features

Footnotes and Annotations
-------------------------

   There are a number of requests to save text for later printing.

   "Footnotes" are printed at the bottom of the current page.

   "Delayed text" is very similar to a footnote except that it is
printed when called for explicitly.  This allows a list of references to
appear (for example) at the end of each chapter, as is the convention in
some disciplines.

   Most macro packages which supply this functionality also supply a
means of automatically numbering either type of annotation.


File: groff,  Node: Table of Contents,  Next: Indices,  Prev: Footnotes and Annotations,  Up: Common Features

Table of Contents
-----------------

   "Tables of contents" are a type of delayed text having a tag
(usually the page number) attached to each entry after a row of dots.
The table accumulates throughout the paper until printed, usually after
the paper has ended.  Many macro packages provide the ability to have
several tables of contents (e.g. a standard table of contents, a list
of tables, etc).


File: groff,  Node: Indices,  Next: Paper Formats,  Prev: Table of Contents,  Up: Common Features

Indices
-------

   While some macro packages use the term "index", none actually
provide that functionality.  The facilities they call indices are
actually more appropriate for tables of contents.

   To produce a real index in a document, external tools like the
`makeindex' program are necessary.


File: groff,  Node: Paper Formats,  Next: Multiple Columns,  Prev: Indices,  Up: Common Features

Paper Formats
-------------

   Some macro packages provide stock formats for various kinds of
documents.  Many of them provide a common format for the title and
opening pages of a technical paper.  The `mm' macros in particular
provide formats for letters and memoranda.


File: groff,  Node: Multiple Columns,  Next: Font and Size Changes,  Prev: Paper Formats,  Up: Common Features

Multiple Columns
----------------

   Some macro packages (but not `man') provide the ability to have two
or more columns on a page.


File: groff,  Node: Font and Size Changes,  Next: Predefined Strings,  Prev: Multiple Columns,  Up: Common Features

Font and Size Changes
---------------------

   The built-in font and size functions are not always intuitive, so all
macro packages provide macros to make these operations simpler.


File: groff,  Node: Predefined Strings,  Next: Preprocessor Support,  Prev: Font and Size Changes,  Up: Common Features

Predefined Strings
------------------

   Most macro packages provide various predefined strings for a variety
of uses; examples are sub- and superscripts, printable dates, quotes and
various special characters.


File: groff,  Node: Preprocessor Support,  Next: Configuration and Customization,  Prev: Predefined Strings,  Up: Common Features

Preprocessor Support
--------------------

   All macro packages provide support for various preprocessors and may
extend their functionality.

   For example, all macro packages mark tables (which are processed with
`gtbl') by placing them between `TS' and `TE' macros.  The `ms' macro
package has an option, `.TS H', that prints a caption at the top of a
new page (when the table is too long to fit on a single page).


File: groff,  Node: Configuration and Customization,  Prev: Preprocessor Support,  Up: Common Features

Configuration and Customization
-------------------------------

   Some macro packages provide means of customizing many of the details
of how the package behaves.  This ranges from setting the default type
size to changing the appearance of section headers.


File: groff,  Node: Macro Packages,  Next: gtroff Reference,  Prev: Tutorial for Macro Users,  Up: Top

Macro Packages
**************

   This chapter documents the main macro packages that come with
`groff'.

* Menu:

* man::
* mdoc::
* ms::
* me::
* mm::


File: groff,  Node: man,  Next: mdoc,  Prev: Macro Packages,  Up: Macro Packages

`man'
=====

   This is the most popular and probably the most important macro
package of `groff'.  It is easy to use, and a vast majority of manual
pages are based on it.

* Menu:

* Man options::
* Man usage::
* Man font macros::
* Miscellaneous man macros::
* Predefined man strings::
* Preprocessors in man pages::


File: groff,  Node: Man options,  Next: Man usage,  Prev: man,  Up: man

Options
-------

   The command line format for using the `man' macros with `groff' is:


     groff -m man [ -rLL=LENGTH ] [ -rLT=LENGTH ]
           [ -rcR=1 ] [ -rC1 ] [ -rD1 ] [ -rPNNN ]
           [ -rSXX ] [ -rXNNN ] [ FILES... ]

It is possible to use `-man' instead of `-m man'.

`-rLL=LENGTH'
     Set line length to LENGTH.  If not specified, the line length
     defaults to 78 en in nroff mode (this is 78 characters per line)
     and 6.5 inch otherwise.

`-rLT=LENGTH'
     Set title length to LENGTH.  If not specified, the title length
     defaults to 78 en in nroff mode (this is 78 characters per line)
     and 6.5 inch otherwise.

`-rcR=1'
     This option (the default if a TTY output device is used) creates a
     single, very long page instead of multiple pages.  Use `-rcR=0' to
     disable it.

`-rC1'
     If more than one manual page is given on the command line, number
     the pages continuously, rather than starting each at 1.

`-rD1'
     Double-sided printing.  Footers for even and odd pages are
     formatted differently.

`-rPNNN'
     Page numbering starts with NNN rather than with 1.

`-rSXX'
     Use XX (which can be 10, 11, or 12pt) as the base document font
     size instead of the default value of 10pt.

`-rXNNN'
     After page NNN, number pages as NNNa, NNNb, NNNc, etc.  For
     example, the option `-rX2' produces the following page numbers: 1,
     2, 2a, 2b, 2c, etc.

OpenPOWER on IntegriCloud