mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-26 11:47:31 +00:00
1386 lines
48 KiB
Plaintext
1386 lines
48 KiB
Plaintext
This is groff, produced by makeinfo version 4.3d from ./groff.texinfo.
|
||
|
||
This manual documents GNU `troff' version 1.19.
|
||
|
||
Copyright (C) 1994-2000, 2001, 2002, 2003 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 Typesetting
|
||
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.19.
|
||
|
||
Copyright (C) 1994-2000, 2001, 2002, 2003 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::
|
||
* Paper Size::
|
||
* 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.2/tmac
|
||
|
||
assuming that the version of `groff' is 1.18.2, 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: Paper Size, 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.2/font
|
||
|
||
assuming that the version of `groff' is 1.18.2, and the
|
||
installation prefix was `/usr/local'. It is possible to fine-tune
|
||
those directories during the installation process.
|
||
|
||
|
||
File: groff, Node: Paper Size, Next: Invocation Examples, Prev: Font Directories, Up: Invoking groff
|
||
|
||
Paper Size
|
||
==========
|
||
|
||
In groff, the page size for `gtroff' and for output devices are
|
||
handled separately. *Note Page Layout::, for vertical manipulation of
|
||
the page size. *Note Line Layout::, for horizontal changes.
|
||
|
||
A default paper size can be set in the device's `DESC' file. Most
|
||
output devices also have a command line option `-p' to override the
|
||
default paper size and option `-l' to use landscape orientation. *Note
|
||
DESC File Format::, for a description of the `papersize' keyword which
|
||
takes the same argument as `-p'.
|
||
|
||
A convenient shorthand to set a particular paper size for `gtroff'
|
||
is command line option `-dpaper=SIZE'. This defines string `paper'
|
||
which is processed in file `papersize.tmac' (loaded in the start-up
|
||
file `troffrc' by default). Possible values for SIZE are the same as
|
||
the predefined values for the `papersize' keyword (but only in
|
||
lowercase) except `a7'-`d7'. An appended `l' (ell) character denotes
|
||
landscape orientation.
|
||
|
||
For example, use the following for PS output on A4 paper in landscape
|
||
orientation:
|
||
|
||
|
||
groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
|
||
|
||
Note that it is up to the particular macro package to respect default
|
||
page dimensions set in this way (most do).
|
||
|
||
|
||
File: groff, Node: Invocation Examples, Prev: Paper Size, 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 and Macro 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'.
|
||
|
||
Different main macro packages can't be used at the same time; for
|
||
example
|
||
|
||
|
||
groff -m man foo.man -m ms bar.doc
|
||
|
||
doesn't work. Note that option arguments are processed before
|
||
non-option arguments; the above (failing) sample is thus reordered to
|
||
|
||
|
||
groff -m man -m ms foo.man bar.doc
|
||
|
||
* 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::
|
||
* Optional man extensions::
|
||
|