summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwlemb <wlemb>2000-05-10 00:05:12 +0000
committerwlemb <wlemb>2000-05-10 00:05:12 +0000
commitbdab8af0849ce5a1679eb94ed9d25ee7f7838b0b (patch)
treeef40daf961d811452cd62f10290aee895568d9fc
parentbf9e80a7ecb7b0f14e56887291c973c2582f948c (diff)
downloadgroff-bdab8af0849ce5a1679eb94ed9d25ee7f7838b0b.tar.gz
* man/groff.man, man/roff.man, tmac/groff_tmac.man: Minor
improvements. * doc/groff.texinfo: Extended history section. More conversion to @Deffn macros. More .tr documentation. * font/devcp1047/R.proto, font/devcp1047/Makefile.sub, font/devcp1047/DESC.proto: New files. * font/*/*: Change it.
-rw-r--r--ChangeLog14
-rw-r--r--doc/groff.texinfo494
-rw-r--r--man/groff.man154
-rw-r--r--man/roff.man23
-rwxr-xr-xtmac/groff_tmac.man32
5 files changed, 541 insertions, 176 deletions
diff --git a/ChangeLog b/ChangeLog
index 77112bb6..fd664af9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2000-05-09 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff.man, man/roff.man, tmac/groff_tmac.man: Minor
+ improvements.
+
+ * doc/groff.texinfo: Extended history section. More conversion to
+ @Deffn macros. More .tr documentation.
+
2000-05-07 Werner LEMBERG <wl@gnu.org>
* doc/groff.texinfo: Completed tab section. Added info about
@@ -89,8 +97,8 @@
Adding EBCDIC code page 1047.
- * fonts/devcp1047/R.proto, fonts/devcp1047/Makefile.sub,
- fonts/devcp1047/DESC.proto: New files.
+ * font/devcp1047/R.proto, font/devcp1047/Makefile.sub,
+ font/devcp1047/DESC.proto: New files.
* aclocal.m4 (GROFF_EBCDIC): Introduce TTYDEVDIRS which can be
either ascii/latin1 or cp1047.
@@ -100,7 +108,7 @@
Replacing and/or adding `md' (mathdot) glyph with `pc'
(periodcentered) in all text fonts.
- * fonts/*/*: Change it.
+ * font/*/*: Change it.
2000-04-27 Werner LEMBERG <wl@gnu.org>
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index 9e47a23c..e58efd88 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -646,18 +646,22 @@ an editor and a text formatter. Also, many word processors follow the
Although @acronym{WYSIWYG} systems may be easier to use, they have a
number of disadvantages compared to @code{troff}:
-@itemize @bullet{}
+@itemize @bullet
@item
They must be used on a graphics display to do any operations on a
document.
+
@item
Most of the @acronym{WYSIWYG} systems are either non-free or are not
very portable.
+
@item
@code{troff} is firmly entrenched in all @acronym{UNIX} systems.
+
@item
It is difficult to have a wide range of capabilities available within
the confines of a GUI/window system.
+
@item
It is more difficult to make global changes to a document.
@end itemize
@@ -674,9 +678,16 @@ impossible to accomplish complex actions.'' --Doug Gwyn (22/Jun/91 in
@cindex history
@cindex @code{runoff}
+@cindex @code{rf}
@code{troff} can trace its origins back to a formatting program called
-@code{runoff} which ran on MIT's CTSS system. This name came from the
-common phrase of the time ``I'll run off a document.''
+@code{runoff}, written by J.@w{ }E.@w{ }Saltzer, which ran on MIT's CTSS
+system. 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 @code{roff} (an abbreviation of @code{runoff}). It
+has then been rewritten as @code{rf} for the PDP-7 (before having
+@acronym{UNIX}), and at the same time (1969), Doug McIllroy rewrote an
+extended and simplified version of @code{roff} in the @acronym{BCPL}
+programming language.
@cindex @code{roff}
The first version of @acronym{UNIX} was developed on a PDP-7 which was
@@ -684,20 +695,19 @@ 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 @code{runoff}. In accordance with
-@acronym{UNIX}'s penchant for abbreviations, it was named @code{roff}
-(an abbreviation of @code{runoff}).
+program was a reimplementation of McIllroy's @code{roff}, written by
+J.@w{ }F.@w{ }Ossanna.
@cindex @code{nroff}
When they needed a more flexible language, a new version of @code{roff}
called @code{nroff} (Newer @code{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, J.@w{ }F.@w{
-}Ossanna wrote a version of @code{nroff} which would drive it. It was
-dubbed @code{troff} for typesetter @code{roff}, although many people
-have speculated that it actually means Times @code{roff} because of the
-use of the Times font family in @code{troff} by default. As such, the
-name @code{troff} is pronounced `@w{t-roff}' rather than `trough'.
+When they got a Graphic Systems CAT Phototypesetter, Ossanna wrote a
+version of @code{nroff} which would drive it. It was dubbed
+@code{troff} for typesetter @code{roff}, although many people have
+speculated that it actually means Times @code{roff} because of the use
+of the Times font family in @code{troff} by default. As such, the name
+@code{troff} is pronounced `@w{t-roff}' rather than `trough'.
With @code{troff} came @code{nroff} (they were actually the same program
except for some @samp{#ifdefs}), which was for producing output for line
@@ -744,16 +754,19 @@ James Clark began work on a GNU implementation of @code{ditroff} in
early@w{ }1989. The first version, @code{groff}@w{ }0.3.1, was released
June@w{ }1990. @code{groff} included
-@itemize @bullet{}
+@itemize @bullet
@item
A replacement for @code{ditroff} with many extensions.
+
@item
The @code{soelim}, @code{pic}, @code{tbl}, and @code{eqn} preprocessors.
+
@item
Postprocessors for character devices, @sc{PostScript}, @TeX{} DVI, and
X@w{ }windows. GNU @code{troff} also eliminated the need for a separate
@code{nroff} program with a postprocessor which would produce
@acronym{ASCII} output.
+
@item
A version of the @file{me} macros and an implementation of the
@file{man} macros.
@@ -786,43 +799,61 @@ 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.
-@itemize @bullet{}
+@itemize @bullet
@item
Text filling, adjusting, and centering
+
@item
Hyphenation
+
@item
Page control
+
@item
Font and character size control
+
@item
Vertical spacing (i.e.@: double spacing)
+
@item
Line length and indenting
+
@item
Macros, strings, diversions, and traps
+
@item
Number registers
+
@item
Tabs, leaders, and fields
+
@item
Input and output conventions and character translation
+
@item
Overstrike, bracket, line drawing, and zero-width functions
+
@item
Local horizontal and vertical motions and the width function
+
@item
Three-part titles
+
@item
Output line numbering
+
@item
Conditional acceptance of input
+
@item
Environment switching
+
@item
Insertions from the standard input
+
@item
Input/output file switching
+
@item
Output and error messages
@end itemize
@@ -989,18 +1020,25 @@ command to format a file.
@table @samp
@item -h
Print a help message.
+
@item -e
Preprocess with @code{geqn}.
+
@item -t
Preprocess with @code{gtbl}.
+
@item -g
Preprocess with @code{ggrn}.
+
@item -G
Preprocess with @code{grap}.
+
@item -p
Preprocess with @code{gpic}.
+
@item -s
Preprocess with @code{gsoelim}.
+
@item -R
Preprocess with @code{grefer}. No mechanism is provided for passing
arguments to @code{grefer} because most @code{grefer} options have
@@ -1012,58 +1050,76 @@ for more details.
Note that @code{gtroff} also accepts a @option{-R} option, which is not
accessible via @code{groff}. This option prevents the loading of the
@file{troffrc} and @file{troffrc-end} files.
+
@item -v
Make programs run by @code{groff} print out their version number.
+
@item -V
Print the pipeline on stdout instead of executing it.
+
@item -z
Suppress output from @code{gtroff}. Only error messages will be
printed.
+
@item -Z
Do not postprocess the output of @code{gtroff}. Normally @code{groff}
will automatically run the appropriate postprocessor.
+
@item -P@var{arg}
Pass @var{arg} to the postprocessor. Each argument should be passed
with a separate @option{-P} option. Note that @code{groff} does not
prepend @samp{-} to @var{arg} before passing it to the postprocessor.
+
@item -l
Send the output to a printer. The command used for this is specified by
the print command in the device description file.
+
@item -L@var{arg}
Pass @var{arg} to the spooler. Each argument should be passed with a
separate @option{-L} option. Note that @code{groff} does not prepend a
@samp{-} to @var{arg} before passing it to the postprocessor.
+
@item -T@var{dev}
Prepare output for device @var{dev}. The default device is @samp{ps}.
The following are the output devices currently available:
@table @code
@item ps
For @sc{PostScript} printers and previewers.
+
@item dvi
For @TeX{} DVI format.
+
@item X75
For a 75@dmn{dpi} X11 previewer.
+
@item X100
For a 100@dmn{dpi} X11 previewer.
+
@item ascii
For typewriter-like devices.
+
@item latin1
For typewriter-like devices using the @w{ISO Latin-1} (@w{ISO 8859-1})
character set.
+
@item utf8
For typewriter-like devices which use the Unicode (@w{ISO 10646})
character set with @w{UTF-8} encoding.
+
@item cp1047
@cindex @acronym{EBCDIC} encoding
@cindex cp1047
@cindex IBM cp1047
For typewriter-like devices which use the @acronym{EBCDIC} encoding IBM
cp1047.
+
@item lj4
For an HP LaserJet4-compatible (or other PCL5-compatible) printer.
+
@item lbp
For Canon @acronym{CAPSL} printers (@w{LBP-4} and @w{LBP-8} series laser
printers).
+
@item html
To produce @acronym{HTML} output.
@end table
@@ -1079,6 +1135,7 @@ The postprocessor to be used for a device is specified by the
@code{postpro} command in the device description file. (@xref{Font
Files}, for more info.) This can be overridden with the @option{-X}
option.
+
@item -X
Preview with @code{gxditview} instead of using the usual postprocessor.
This is unlikely to produce good results except with @option{-Tps}.
@@ -1087,47 +1144,62 @@ Note that this is not the same as using @option{-TX75} or
@option{-TX100} to view a document with @code{gxditview}: The former
will us the metrics of the specified device, whereas the latter will use
X-specific fonts and metrics.
+
@item -N
Don't allow newlines with @code{eqn} delimiters. This is the same as
the @option{-N} option in @code{geqn}.
+
@item -S
Safer mode. Pass the @option{-S} option to @code{gpic} and use the
@option{-msafer} macros with @code{gtroff} (enabled by default).
+
@item -U
Unsafe mode. Reverts to the old unsafe behaviour.
+
@item -a
@vindex .A
Generate an @acronym{ASCII} approximation of the typeset output. The
read-only register @code{.A} is then set to@w{ }1. @xref{Built-in
Registers}.
+
@item -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: @code{gtroff} can get
confused by @code{as} or @code{am} requests while counting line numbers.
+
@item -i
Read the standard input after all the named input files have been
processed.
+
@item -w@var{name}
Enable warning @var{name}. Available warnings are described in
@ref{Debugging}. Multiple @option{-w} options are allowed.
+
@item -W@var{name}
Inhibit warning @var{name}. Multiple @option{-W} options are allowed.
+
@item -E
Inhibit all error messages.
+
@item -C
Enable compatibility mode.
+
@item -d@var{cs}
@itemx -d@var{name}=s
-Define @var{c} or @var{name} to be a string @var{s}; @var{c} must be a
-one-letter @var{name}.
+Define @var{c} or @var{name} to be a string @var{s}. @var{c} must be a
+one-letter name; @var{name} can be of arbitrary length.
+
@item -f@var{fam}
Use @var{fam} as the default font family.
+
@item -m@var{name}
Read in the file @file{tmac.@var{name}}. Normally this will be searched
for in the library directory of @code{groff}.
+
@item -n@var{num}
Number the first page @var{num}.
+
@item -o@var{list}
@vindex .P
Output only pages in @var{list}, which is a comma-separated list of page
@@ -1139,17 +1211,21 @@ the list.
Within @code{gtroff}, this information can be extracted with the
@samp{.P} register. @xref{Built-in Registers}.
+
@item -r@var{cn}
@itemx -r@var{name}=@var{n}
-Set number register @var{c} or @var{name} to @var{n}; @var{c} must be a
-one-letter @var{name}; @var{n} can be any @code{gtroff} numeric
-expression.
+Set number register @var{c} or @var{name} to @var{n}. @var{c} must be a
+one-letter name; @var{name} can be of arbitrary length. @var{n} can be
+any @code{gtroff} numeric expression.
+
@item -F@var{dir}
Search @var{dir} for subdirectories dev@var{name} (@var{name} is the
name of the device) for the @file{DESC} file and font files before the
normal directory.
+
@item -M@var{dir}
Search directory @var{dir} for macro files before the normal directory.
+
@item -I@var{dir}
This option is as described in @ref{gsoelim}. It implies the
@option{-s} option.
@@ -1172,20 +1248,25 @@ If this is set to @var{X}, then @code{groff} will run
@code{tbl}, @code{pic}, @code{eqn}, @code{grn}, @code{refer}, and
@code{soelim}. It does not apply to @code{grops}, @code{grodvi},
@code{grotty}, @code{grohtml}, @code{grolj4}, and @code{gxditview}.
+
@item GROFF_TMAC_PATH
@tindex GROFF_TMAC_PATH
A colon separated list of directories in which to search for macro
files.
+
@item GROFF_TYPESETTER
@tindex GROFF_TYPESETTER
The default output device.
+
@item GROFF_FONT_PATH
@tindex GROFF_FONT_PATH
A colon separated list of directories in which to search for the
@code{dev}@var{name} directory.
+
@item PATH
@tindex PATH
The search path for commands executed by @code{groff}.
+
@item GROFF_TMPDIR
@tindex GROFF_TMPDIR
@tindex TMPDIR
@@ -1678,11 +1759,14 @@ It is possible to use @samp{-man} instead of @w{@samp{-m man}}.
@item -rC1
If more than one manual page is given on the command line, number the
pages continuously, rather than starting each at@w{ }1.
+
@item -rD1
Double-sided printing. Footers for even and odd pages are formatted
differently.
+
@item -rP @var{nnn}
Enumeration of pages will start with @var{nnn} rather than with@w{ }1.
+
@item -rX @var{nnn}
After page @var{nnn}, number pages as @var{nnn}a, @var{nnn}b,
@var{nnn}c, etc. For example, the option @option{-rX2} will produce the
@@ -2247,14 +2331,16 @@ Since @code{gtroff} does filling automatically, it is traditional in
paragraphs. These are some conventions commonly used when typing
@code{gtroff} text:
-@itemize @bullet{}
+@itemize @bullet
@item
Break lines after punctuation, particularly at the end of sentences,
and in other logical places. Keep separate phrases on lines by
themselves, as entire phrases are often added or deleted when editing.
+
@item
Try to keep lines less than 40-60@w{ }characters, to allow space for
inserting more text.
+
@item
Do not try to do any formatting in a @acronym{WYSIWYG} manner (i.e.,
don't try and use spaces to get proper indentation).
@@ -2294,23 +2380,27 @@ current settings (e.g.@: type size) of @code{gtroff}.
@cindex unit, @code{i}
Inches. An antiquated measurement unit still in use in certain
backwards countries. One inch is equal to@w{ }2.54@dmn{cm}.
+
@item c
@cindex centimeter
@cindex @code{c} unit
@cindex unit, @code{c}
Centimeters. One centimeter is equal to@w{ }0.3937@dmn{in}.
+
@item p
@cindex points
@cindex @code{p} unit
@cindex unit, @code{p}
Points. This is a typesetter's measurement used for measure type size.
It is 72@w{ }points to an inch.
+
@item P
@cindex pica
@cindex @code{P} unit
@cindex unit, @code{P}
Pica. Another typesetting measurement. 6@w{ }Picas to an inch (and
12@w{ }points to a pica).
+
@item s
@itemx z
@cindex @code{s} unit
@@ -2333,11 +2423,13 @@ text.
Ems. This unit is equal to the current font size in points. So called
because it is @emph{approximately} the width of the letter@w{ }@samp{m}
in the current font.
+
@item n
@cindex en unit
@cindex @code{n} unit
@cindex unit, @code{n}
Ens. This is half of an em.
+
@item v
@cindex vertical space
@cindex space, vertical
@@ -2345,6 +2437,7 @@ Ens. This is half of an em.
@cindex unit, @code{v}
Vertical space. This is equivalent to the current line spacing.
@xref{Sizes}, for more information about this.
+
@item M
@cindex @code{M} unit
@cindex unit, @code{M}
@@ -2408,6 +2501,7 @@ Arithmetic: @samp{+} (addition), @samp{-} (subtraction), @samp{/}
@code{gtroff} only provides integer arithmetic. The internal type used
for computing results is @samp{int}, which is usually a 32@dmn{bit}
signed integer.
+
@item
@cindex comparison operators
@cindex operators, comparison
@@ -2420,12 +2514,14 @@ signed integer.
Comparison: @samp{<} (less than), @samp{>} (greater than), @samp{<=}
(less than or equal), @samp{>=} (greater than or equal), @samp{=}
(equal), @samp{==} (the same as @samp{=}).
+
@item
@cindex logical operators
@cindex operators, logical
@opindex &
@opindex :
Logical: @samp{&} (logical and), @samp{:} (logical or).
+
@item
@cindex unary operators
@cindex operators, unary
@@ -2438,6 +2534,7 @@ Unary operators: @samp{-} (negating, i.e.@: changing the sign), @samp{+}
(just for completeness; does nothing in expressions), @samp{!} (logical
not; this works only within @code{if} and @code{while} requests). See
below for the use of unary operators in motion requests.
+
@item
@cindex extremum operators
@cindex operators, extremum
@@ -2445,7 +2542,9 @@ below for the use of unary operators in motion requests.
@opindex <?
Extrema: @samp{>?} (maximum), @samp{<?} (minimum). For example,
@samp{5>?3} yields@w{ }@samp{5}.
+
@c XXX add examples
+
@item
@cindex scaling operator
@cindex operator, scaling
@@ -2503,22 +2602,24 @@ almost any printable character. The exception are the following
characters:
@itemize @bullet
+@item
@cindex whitespace characters
@cindex newline character
@cindex character, whitespace
-@item
Whitespace characters (space, tabs, and newlines).
+
+@item
@cindex character, backspace
@cindex backspace character
-@item
@cindex @acronym{EBCDIC} encoding
Backspace (@acronym{ASCII}@w{ }@code{0x08} resp.@: @acronym{EBCDIC}@w{
}@code{0x16}) and character code @code{0x01}.
+
+@item
@cindex illegal input characters
@cindex input characters, illegal
@cindex characters, illegal input
@cindex unicode
-@item
The following input characters are illegal and will be ignored if
@code{groff} runs on a machine based on @acronym{ASCII}, causing a
warning message: @code{0x00}, @code{0x0B}, @code{0x0D}-@code{0x1F},
@@ -2583,11 +2684,13 @@ Identifiers in @code{gtroff} can be any length, but, in some contexts,
@findex (
@findex [
@findex ]
-@itemize @bullet{}
+@itemize @bullet
@item
Single character.
+
@item
Two characters. Must be prefixed with @samp{(} in some situations.
+
@item
Arbitrary length (@code{gtroff} only). Must be bracketed with @samp{[}
and@w{ }@samp{]} in some situations. Any length identifier can be put
@@ -2720,10 +2823,12 @@ possible syntax forms.
@itemize @bullet
@item
The next single character is the identifier.
+
@item
If this single character is an opening parenthesis, take the following
two characters as the identifier. Note that there is no closing
parenthesis after the identifier.
+
@item
If this single character is an opening bracket, take all characters
until a closing bracket as the identifier.
@@ -2833,10 +2938,12 @@ Finally, the escapes @code{\D}, @code{\h}, @code{\H}, @code{\l},
@code{\x} can't use the following characters as delimiters:
@itemize @bullet
+@item
@cindex numbers
@cindex digits
-@item
The digits @code{0}-@code{9}.
+
+@item
@cindex operators
@opindex +
@opindex -
@@ -2851,8 +2958,8 @@ The digits @code{0}-@code{9}.
@opindex (
@opindex )
@opindex .
-@item
The (single character) operators @samp{+-/*%<>=&:().}.
+
@item
@cindex space character
@cindex character, space
@@ -2861,6 +2968,8 @@ The (single character) operators @samp{+-/*%<>=&:().}.
@cindex newline character
@cindex character, newline
The space, tab, and newline characters.
+
+@item
@findex \%
@findex \@{
@findex \@}
@@ -2874,7 +2983,6 @@ The space, tab, and newline characters.
@findex \c
@findex \e
@findex \p
-@item
All escape sequences except @code{\%}, @code{\@{}, @code{\@}},
@code{\'}, @code{\`}, @code{\-}, @code{\_}, @code{\!}, @code{\@@},
@code{\/}, @code{\c}, @code{\e}, and @code{\p}.
@@ -2883,12 +2991,15 @@ All escape sequences except @code{\%}, @code{\@{}, @code{\@}},
@findex \\
@findex \e
@findex \E
-To have a backslash appear in the output several escapes are defined:
-@code{\\}, @code{\e} or @code{\E}. These are very similar, and only
-differ with respect to being used in macros or diversions.
-@xref{Copy-in Mode}, and @ref{Diversions}, for more information.
+To have a backslash (resp.@: the current escape character) appear in the
+output several escapes are defined: @code{\\}, @code{\e} or @code{\E}.
+These are very similar, and only differ with respect to being used in
+macros or diversions. @xref{Copy-in Mode}, and @ref{Diversions}, for
+more information.
+
+@c XXX explanation of \E
-@xref{Identifiers}.
+@xref{Identifiers}, and @ref{Character Translations}.
@menu
* Comments::
@@ -3177,17 +3288,22 @@ formats are available:
@table @code
@item 1
This is the default format, decimal numbers: 1, 2, 3,@w{ }@dots{}
+
@item 0@dots{}01
Decimal numbers with as many leading zeros as specified. So, @samp{01}
would result in 01, 02, 03,@w{ }@dots{}
+
@item I
@cindex roman numerals
@cindex numerals, Roman
Upper-case Roman numerals: 0, I, II, III, IV,@w{ }@dots{}
+
@item i
Lower-case Roman numerals: 0, i, ii, iii, iv,@w{ }@dots{}
+
@item A
Upper-case letters: A, B, C, @dots{},@w{ }Z, AA, AB,@w{ }@dots{}
+
@item a
Lower-case letters: a, b, c, @dots{},@w{ }z, aa, ab,@w{ }@dots{}
@end table
@@ -3230,31 +3346,37 @@ read-only. A complete listing of all built-in registers can be found in
@cindex resolution, horizontal
@vindex .H
Horizontal resolution in basic units.
+
@item .V
@cindex vertical resolution
@cindex resolution, vertical
@vindex .V
Vertical resolution in basic units.
+
@item dw
@cindex day of the week
@cindex date, day of the week
@vindex dw
Day of the week (1-7).
+
@item dy
@cindex day of the month
@cindex date, day of the month
@vindex dy
Day of the month (1-31).
+
@item mo
@cindex month of the year
@cindex date, month of the year
@vindex mo
Current month (1-12).
+
@item year
@cindex date, year
@cindex year, current
@vindex year
The current year.
+
@item yr
@vindex yr
The current year minus@w{ }1900. Unfortunately, the documentation of
@@ -3292,6 +3414,7 @@ This document was formatted in \n(y4.
The current @emph{input} line number. Register @samp{.c} is read-only,
whereas @samp{c.} (a @code{gtroff} extension) is writable also,
affecting both @samp{.c} and @samp{c.}.
+
@item ln
@vindex ln
@findex nm
@@ -3299,37 +3422,45 @@ affecting both @samp{.c} and @samp{c.}.
@cindex line number, output
The current @emph{output} line number after a call to the @code{nm}
request to activate line numbering.
+
@c XXX xref nm request
+
@item .x
@vindex .x
@cindex major version number
@cindex version number, major
The major version number. For example, if the version number is@w{
}1.03 then @code{.x} will contain@w{ }@samp{1}.
+
@item .y
@vindex .y
@cindex minor version number
@cindex version number, minor
The minor version number. For example, if the version number is@w{
}1.03 then @code{.y} will contain@w{ }@samp{03}.
+
@item .Y
@vindex .Y
@cindex revision number
The revision number of @code{groff}.
+
@item .g
@vindex .g
Always@w{ }1. Macros should use this to determine whether they are
running under GNU @code{troff}.
+
@item .A
@vindex .A
If the command line option @option{-a} is used to produce an
@acronym{ASCII} approximation of the output, this is set to@w{ }1, zero
otherwise. @xref{Groff Options}.
+
@item .P
@vindex .P
This register indicates whether the current page is actually being
printed, i.e., whether the @option{-o} option is being used to only
print selected pages. @xref{Groff Options}, for more information.
+
@item .T
@vindex .T
If @code{gtroff} is called with the @option{-T} command line option, the
@@ -3401,14 +3532,17 @@ Enable adjusting. @var{mode} can have one of the following values:
@cindex ragged-right
Adjust text to the left margin. This produces what is traditionally
called ragged-right text.
+
@item r
@cindex ragged-left
Adjust text to the right margin, producing ragged-left text.
+
@item c
@cindex centered text
@findex ce
Center filled text. This is different to the @code{ce} request which
only centers text without filling.
+
@item b
@itemx n
Justify to both margins. This is default of @code{gtroff}.
@@ -3553,10 +3687,13 @@ Enable hyphenation. The request has an optional numeric argument,
@item 1
The default argument if @var{mode} is omitted. Hyphenate without
restrictions.
+
@item 2
Do not hyphenate the last word on a page or column.
+
@item 4
Do not hyphenate the last two characters of a word.
+
@item 8
Do not hyphenate the first two characters of a word.
@end table
@@ -4052,32 +4189,134 @@ foo bar smurf
@cindex character translations
@cindex translations of characters
-@findex cc
-@findex c2
@findex .
@findex '
+@cindex control character
+@cindex character, control
+@cindex no-break control character
+@cindex character, no-break control
+@cindex control character, no-break
The control character (@samp{.}) and the no-break control character
(@samp{'}) can be changed with the @code{cc} and @code{c2} requests,
-respectively. The single argument is the new character to be used.
-With no argument the normal control character is restored.
+respectively.
-@findex ec
-@findex eo
-The @code{eo} request will completely disable the escape mechanism. The
-@code{ec} request can be used to change the escape character from the
-default @samp{\} to what is specified as an argument. It can be also
-used to re-enable the escape mechanism after an @code{eo} request.
+@Deffn{Request, cc, [@var{c}]}
+Set the control character to @var{c}. With no argument the normal
+control character @samp{.} is restored.
+@end_Deffn
+
+@Deffn{Request, c2, [@var{c}]}
+Set the no-break control character to @var{c}. With no argument the
+normal control character @samp{'} is restored.
+@end_Deffn
+
+@findex \
+@Deffn{Request, eo, }
+Disable the escape mechanism completely. After executing this request,
+the backslash character @samp{\} no longer starts an escape sequence.
+@end_Deffn
+
+@cindex escape character
+@cindex character, escape
+@Deffn{Request, ec, [@var{c}]}
+Set the escape character to @var{c}. With no argument the normal escape
+character @samp{\} is restored. It can be also used to re-enable the
+escape mechanism after an @code{eo} request.
+
+Note that changing the escape character globally will likely break macro
+packages since @code{gtroff} has no mechanism (like @TeX{}) to `intern'
+macros, i.e., to convert a macro definition into an internal form which
+is independent of its printed representation. If a macro is called, it
+will be executed literally.
+@end_Deffn
+
+@Deffn{Escape, \\e, }
+This escape sequence prints the current escape character (which is the
+backslash character @samp{\} by default).
+@end_Deffn
@findex tr
-The @code{tr} request will translate characters.
+The @code{tr} request will @dfn{translate} characters.
+
+Some notes:
+
+@itemize @bullet
+@item
+@findex \(
+@findex \[
+@findex \'
+@findex \`
+@findex \-
+@findex \_
+@findex \C
+@findex \N
+@cindex special character
+@cindex character, special
+@cindex numbered character
+@cindex character, numbered
+Special characters (@code{\(@var{xx}}, @code{\[@var{xxx}]},
+@code{\C'@var{xxx}'}, @code{\'}, @code{\`}, @code{\-}, @code{\_}) and
+numbered characters (@code{\N'@var{xxx}'}) can be translated also.
+
+@item
+@findex \e
+@findex \%
+The @code{\e} and @code{\%} escapes can be translated also.
+
+@item
+@cindex backspace character
+@cindex character, backspace
+@cindex leader character
+@cindex character, leader
+@cindex newline character
+@cindex character, newline
+@cindex tab character
+@cindex character, tab
+@findex \a
+@findex \t
+The following characters can't be translated: backspace, newline, leader
+(and @code{\a}), tab (and @code{\t}).
+
+@item
+@findex \&
+The character pair @samp{@var{X}\&} (this is an arbitrary character@w{
+}@var{X} followed by the zero width space character) will map this
+character to nothing.
+
+@example
+.tr a\&
+foo bar
+ @result{} foo br
+@end example
+
+@noindent
+It is even possible to map the space character to nothing:
+
+@example
+.tr aa \&
+foo bar
+ @result{} foobar
+@end example
+
+@noindent
+As shown in the example, the space character can't be the first
+character pair as an argument of @code{tr}. It is also not possible to
+map the space character to any other character; requests like
+@w{@samp{.tr aa x}} will be ignored.
+
+If justification is active, lines will be justified inspite of the
+`empty' space character (but there is no minimal distance, i.e.@: the
+space character, between words).
+@end itemize
@c XXX more info
-@findex trnt
@findex \!
+@findex trnt
@code{trnt} is the same as the @code{tr} request except that the
translations do not apply to text that is transparently throughput into
a diversion with @code{\!}. @xref{Diversions}, for more information.
+
For example,
@example
@@ -4130,6 +4369,7 @@ output, defining the @dfn{left margin}. It can be adjusted with the
number register @code{.o}. Note that this request does not cause a
break, so changing the page offset in the middle of text being filled
may not yield the expected result.
+
@item in
@cindex indentation
@cindex line indentation
@@ -4146,6 +4386,7 @@ There is also the request @code{ti} which will cause one output line to
be indented, after which the indentation returns to@w{ }0. This request
causes a break. The number register @code{.in} is the indent that
applies to the current output line.
+
@item ll
@cindex line length
@cindex length of line
@@ -4582,16 +4823,19 @@ are the characters to have those properties.
@cindex characters, end of sentence
the character ends sentences (initially characters @samp{.?!} have this
property)
+
@item 2
@cindex hyphenating characters
@cindex characters, hyphenation
lines can be broken before the character (initially no characters have
this property)
+
@item 4
@glindex hy
@glindex em
lines can be broken after the character (initially the characters
@samp{-\(hy\(em} have this property)
+
@item 8
@cindex overlapping characters
@cindex characters, overlapping
@@ -4600,10 +4844,12 @@ lines can be broken after the character (initially the characters
@glindex ru
the character overlaps horizontally (initially the characters
@samp{\(ul\(rn\(ru} have this property)
+
@item 16
@glindex br
the character overlaps vertically (initially character @samp{\(br} has
this property)
+
@item 32
@cindex transparent characters
@cindex character, transparent
@@ -4832,13 +5078,16 @@ and the text begins. Any of the following forms are valid:
@item \s@var{n}
Set the point size to @var{n}@w{ }points. @var{n}@w{ }must be either 0
or in the range 4 to@w{ }39.
-@itemx \s+@var{n}
+
+@item \s+@var{n}
@itemx \s-@var{n}
Increase resp.@: decrease the point size by @var{n}@w{ }points.
@var{n}@w{ }must be exactly one digit.
+
@item \s(@var{nn}
Set the point size to @var{nn}@w{ }points. @var{nn} must be exactly two
digits.
+
@item \s+(@var{nn}
@itemx \s-(@var{nn}
@itemx \s(+@var{nn}
@@ -4921,6 +5170,7 @@ register.
@itemx \s'@var{n}'
Set the point size to @var{n} scaled points; @var{n}@w{ }is a numeric
expression with a default scale indicator of @samp{z}.
+
@item \s[+@var{n}]
@itemx \s[-@var{n}]
@itemx \s+[@var{n}]
@@ -5089,20 +5339,25 @@ available:
@item e
@itemx o
True if the current page is even or odd numbered (respectively).
+
@item n
@itemx t
True if the document is being processed by @code{nroff} (or a character
device) resp.@: @code{troff}.
+
@item '@var{xxx}'@var{yyy}'
True if the string @var{xxx} is equal to the string @var{yyy}. Other
characters can be used in place of the single quotes.
@c XXX (Which?)
The strings are `formatted' before being compared.
@c XXX (?)
+
@item r@var{xxx}
True if there is a number register named @var{xxx}.
+
@item d@var{xxx}
True if there is a string, macro, diversion, or request named @var{xxx}.
+
@item c@var{ch}
@findex char
True if there is a character @var{ch} available; @var{ch} is either an
@@ -5356,7 +5611,7 @@ name.
This would be called as
@example
-.vl $Id: groff.texinfo,v 1.31 2000/05/08 08:48:44 wlemb Exp $
+.vl $Id: groff.texinfo,v 1.32 2000/05/10 00:05:12 wlemb Exp $
@end example
@xref{Request Arguments}.
@@ -5407,8 +5662,10 @@ There are some special case escapes for vertical motion.
@ftable @code
@item \r
move upwards@w{ }1@dmn{v}.
+
@item \u
move upwards@w{ }.5@dmn{v}.
+
@item \d
move down@w{ }.5@dmn{v}.
@end ftable
@@ -5424,20 +5681,26 @@ There are a number of special case escapes for horizontal motion:
@item \@key{SP}
an unbreakable and unpaddable (i.e.@: not expanded during filling)
space. (Note: It is a backslash followed by a space.)
+
@item \~
an unbreakable space that stretches like a normal inter-word space when a
line is adjusted.
+
@item \|
a 1/6th em space.
+
@item \^
a 1/12th em space.
+
@item \0
a space the size of a digit.
+
+@item \&
@cindex zero width space character
@cindex character, zero width space
@cindex space character, zero width
-@item \&
A zero width space.
+
@item \)
Like @code{\&} except that it behaves like a character declared with the
@code{cflags} request to be transparent for the purposes of end of
@@ -5470,36 +5733,43 @@ settings.
After use, @code{\w} sets several registers:
@table @code
-@vindex st
-@vindex sb
@item st
@itemx sb
+@vindex st
+@vindex sb
The highest and lowest point, respectively, in @var{text}.
-@vindex rst
-@vindex rsb
+
@item rst
@itemx rsb
+@vindex rst
+@vindex rsb
Like the @code{st} and @code{sb} registers, but takes account of the
heights and depths of characters.
-@vindex ct
+
@item ct
+@vindex ct
is set according to what kinds of characters occur in @var{text}:
@table @asis
@item 0
only short characters, no descenders or tall characters.
+
@item 1
descender
+
@item 2
tall character
+
@item 3
both a descender and a tall character
@end table
-@vindex ssc
+
@item ssc
+@vindex ssc
The amount of horizontal space (possibly negative) that should be added
to the last character before a subscript.
-@vindex skw
+
@item skw
+@vindex skw
How far to right of the center of the last character in the @code{\w}
argument, the center of an accent from a Roman font should be placed
over that character.
@@ -5616,22 +5886,28 @@ Draw a line from the current location to the relative point specified by
@cindex circles
Draw a circle with a diameter of @var{d} with the leftmost point at the
current position.
+
@item \D'C @var{d}'
Draw a solid circle with the same parameters as an outlined circle.
+
@item \D'e @var{dx} @var{dy}'
@cindex ellipses
Draw an ellipse with a horizontal diameter of @var{dx} and a vertical
diameter of @var{dy} with the leftmost point at the current position.
+
@item \D'E @var{dx} @var{dy}'
Draw a solid ellipse with the same parameters as an outlined ellipse.
+
@item \D'a @var{dx1} @var{dy1} @var{dx2} @var{dy2}'
@cindex arcs
Draw an arc clockwise from the current location through the two
specified locations (@var{dx1},@var{dy1}) and (@var{dx2},@var{dy2}).
+
@item \D'~ @var{dx1} @var{dy1} @var{dx2} @var{dy2} ...'
@cindex splines
Draw a spline from the current location to (@var{dx1},@var{dy1}) and
then to (@var{dx2},@var{dy2}), and so on.
+
@item \D'f @var{n}'
@cindex gray shading
@cindex shading
@@ -5641,6 +5917,7 @@ corresponds solid white and 1000 to solid black, and values in between
correspond to intermediate shades of gray. This applies only to solid
circles, solid ellipses and solid polygons. By default, a level of@w{
}1000 will be used.
+
@item \D'p @var{dx1} @var{dy1} @var{dx2} @var{dy2} ...'
@cindex polygons
Draw a polygon from the current location to (@var{dx1},@var{dy1}) and
@@ -5653,7 +5930,7 @@ are exhausted, a line is drawn back to the starting point.
... box example (yes, again)...
@end example
-@itemx \D'P @var{dx1} @var{dy1} @var{dx2} @var{dy2} ...'
+@item \D'P @var{dx1} @var{dy1} @var{dx2} @var{dy2} ...'
Draw a solid polygon with the same parameters as an outlined polygon.
@c XXX example
@@ -6000,17 +6277,22 @@ processing. It is possible to switch amongst these environments; by
default @code{gtroff} processes text in environment@w{ }0. The
following is the information kept in an environment.
-@itemize @bullet{}
+@itemize @bullet
@item
type size
+
@item
font (family and style)
+
@item
page parameters
+
@item
fill/adjust mode
+
@item
tab stops
+
@item
partially collected lines
@end itemize
@@ -6346,11 +6628,12 @@ intelligible to the user.
@code{gtroff} is not easy to debug, but there are some useful features
and strategies for debugging.
-@itemize @bullet{}
+@itemize @bullet
@item
@findex tm
The @code{tm} request will send output to stderr; this is very useful
for printing debugging output.
+
@item
When doing something involved it is useful to leave the debugging
statements in the code and have them turned on by a command line flag.
@@ -6372,26 +6655,31 @@ groff -rDB=1 file
The @code{ab} request is similar to the @code{tm} request, except that
it will cause @code{gtroff} to stop processing. With no argument it
will print @samp{User Abort}.
+
@item
@findex ex
@cindex exiting
The @code{ex} request will also cause @code{gtroff} to stop processing
(if encountered at the topmost level; see also @ref{I/O}.
+
@item
If it is known in advance that there will be many errors and no useful
output, @code{gtroff} can be forced to suppress formatted output with
the @option{-z} flag.
+
@item
@findex pm
@cindex dumping symbol table
@cindex symbol table, dumping
The @code{pm} request will dump out the entire symbol table.
+
@item
@findex pnr
@cindex dumping number registers
@cindex number registers, dumping
The @code{pnr} request will print the names and contents of all
currently defined number registers on stderr.
+
@item
@findex ptr
@cindex dumping traps
@@ -6400,6 +6688,7 @@ The @code{ptr} request will print the names and positions of all traps
(not including input line traps and diversion traps) on stderr. Empty
slots in the page trap list are printed as well, because they can affect
the priority of subsequently planted traps.
+
@item
@findex fl
@cindex flush output
@@ -6410,17 +6699,20 @@ The @code{fl} request instructs @code{gtroff} to flush its output
immediately. The intention is that this be used when using
@code{gtroff} interactively. There is little other use for it. This
request causes a line break.
+
@item
@findex backtrace
@cindex backtrace of input stack
@cindex input stack, backtrace
The @code{backtrace} request will print a backtrace of the input stack
on stderr.
+
@item
@cindex warnings
@code{gtroff} has command line options for printing out more warnings
(@option{-w}) and for printing backtraces (@option{-b}) when a warning
or an error occurs. The most verbose level of warnings is @option{-ww}.
+
@item
@findex warn
@vindex .warn
@@ -6448,38 +6740,47 @@ the @option{-w} and @option{-W} options; the number is used by the
@item char
@itemx 1
Non-existent characters. This is enabled by default.
+
@item number
@itemx 2
Invalid numeric expressions. This is enabled by default.
@xref{Expressions}.
+
@item break
@itemx 4
In fill mode, lines which could not be broken so that their length was
less than the line length. This is enabled by default.
+
@item delim
@itemx 8
Missing or mismatched closing delimiters.
+
@item el
@itemx 16
@findex ie
@findex el
Use of the @code{el} request with no matching @code{ie} request.
@xref{if-else}.
+
@item scale
@itemx 32
Meaningless scaling indicators.
+
@item range
@itemx 64
Out of range arguments.
+
@item syntax
@itemx 128
Dubious syntax in numeric expressions.
+
@item di
@itemx 256
@findex di
@findex da
Use of @code{di} or @code{da} without an argument when there is no
current diversion.
+
@item mac
@itemx 512
@findex de
@@ -6488,6 +6789,7 @@ Use of undefined strings, macros and diversions. When an undefined
string, macro or diversion is used, that string is automatically defined
as empty. So, in most cases, at most one warning will be given for each
name.
+
@item reg
@itemx 1024
@findex nr
@@ -6496,23 +6798,29 @@ Use of undefined number registers. When an undefined number register is
used, that register is automatically defined to have a value of@w{ }0.
A definition is automatically made with a value of@w{ }0. So, in most
cases, at most one warning will be given for use of a particular name.
+
@item tab
@itemx 2048
Use of a tab character where a number was expected.
+
@item right-brace
@itemx 4096
@findex \@}
Use of @code{\@}} where a number was expected.
+
@item missing
@itemx 8192
Requests that are missing non-optional arguments.
+
@item input
@itemx 16384
Illegal input characters.
+
@item escape
@itemx 32768
Unrecognized escape sequences. When an unrecognized escape sequence is
encountered, the escape character is ignored.
+
@item space
@itemx 65536
@cindex compatibility mode
@@ -6522,13 +6830,16 @@ encountered, and the first two characters of the name make a defined
name. The request or macro will not be invoked. When this warning is
given, no macro is automatically defined. This is enabled by default.
This warning will never occur in compatibility mode.
+
@item font
@itemx 131072
Non-existent fonts. This is enabled by default.
+
@item all
All warnings except @samp{di}, @samp{mac} and @samp{reg}. It is
intended that this covers all warnings that are useful with traditional
macro packages.
+
@item w
All warnings.
@end table
@@ -7037,18 +7348,25 @@ search special fonts to find a character.
@table @code
@item H@var{n}
@c XXX
+
@item V@var{n}
@c XXX
+
@item h@var{n}
@c XXX
+
@item v@var{n}
@c XXX
+
@item c@var{n}
@c XXX
+
@item C@var{n}
@c XXX
+
@item @var{nn}@var{c}
@c XXX
+
@item t@var{xxx}
@var{xxx} is any sequence of characters terminated by a space or a
newline; the first character should be printed at the current position,
@@ -7063,6 +7381,7 @@ command.
@pindex DESC
This command is only allowed if the @samp{tcommand} line is present in
the @file{DESC} file.
+
@item u@var{n} @var{xxx}
This is same as the @samp{t} command except that after printing each
character, the current horizontal position is increased by the sum of
@@ -7070,20 +7389,25 @@ the width of that character and@w{ }@var{n}.
This command is only allowed if the @samp{tcommand} line is present in
the @file{DESC} file.
+
@item n@var{a}@var{b}
@c XXX
+
@item p@var{n}
@c XXX
+
@item s@var{n}
@kindex sizescale
@pindex DESC
The argument to the @samp{s} command is in scaled points (units of
points/@var{n}, where @var{n} is the argument to the @samp{sizescale}
command in the @file{DESC} file).
+
@item f@var{n}
@item x @dots{} \n
Device control.
@c XXX more info
+
@item D@var{c} @var{x}@dots{}\n
@c XXX
@end table
@@ -7101,10 +7425,13 @@ The first argument can be abbreviated to the first letter.
@table @code
@item x init
@c XXX
+
@item x T
@c XXX
+
@item x res @var{n} @var{h} @var{v}
@c XXX
+
@item x H
@c XXX more info
The argument to the @w{@samp{x Height}} command is also in scaled
@@ -7159,21 +7486,26 @@ completely obscure everything beneath it. A value greater than@w{ }1000
or less than@w{ }0 can also be used: this means fill with the shade of
gray that is currently being used for lines and text. Normally this
will be black, but some drivers may provide a way of changing this.
+
@item DC @var{d}
Draw a solid circle with a diameter of@w{ }@var{d} with the leftmost
point at the current position.
+
@item DE @var{dx} @var{dy}
Draw a solid ellipse with a horizontal diameter of@w{ }@var{dx} and a
vertical diameter of@w{ }@var{dy} with the leftmost point at the current
position.
+
@item Dp @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{} @var{dxn} @var{dyn}
Draw a polygon with. The first vertex is at the current position, the
second vertex at an offset (@var{dx1},@var{dy1}) from the current
position, the second vertex at an offset (@var{dx2},@var{dy2}) from the
first vertex, and so on up to the @var{n}-th vertex. At the moment, GNU
@code{pic} only uses this command to generate triangles and rectangles.
+
@item DP @var{dx1} @var{dy1} @var{dx2} @var{dy2} @dots{} @var{dxn} @var{dyn}
Like @code{Dp} but draw a solid rather than outlined polygon.
+
@item Dt @var{n}
@cindex line thickness
@cindex thickness of lines
@@ -7267,51 +7599,61 @@ called@w{ }@file{F}.
The @file{DESC} file can contain the following types of line:
@table @code
-@kindex res
@item res @var{n}
+@kindex res
There are @var{n} machine units per inch.
-@kindex hor
+
@item hor @var{n}
+@kindex hor
The horizontal resolution is @var{n} machine units.
-@kindex vert
+
@item vert @var{n}
+@kindex vert
The vertical resolution is @var{n} machine units.
-@kindex sizescale
+
@item sizescale @var{n}
+@kindex sizescale
The scale factor for point sizes. By default this has a value of@w{ }1.
One scaled point is equal to one point/@var{n}. The arguments to the
@code{unitwidth} and @code{sizes} commands are given in scaled points.
@xref{Fractional Type Sizes}, for more information.
-@kindex unitwidth
+
@item unitwidth @var{n}
+@kindex unitwidth
Quantities in the font files are given in machine units for fonts whose
point size is @var{n}@w{ }scaled points.
-@kindex tcommand
+
@item tcommand
+@kindex tcommand
This means that the postprocessor can handle the @samp{t} and @samp{u}
output commands.
-@kindex sizes
+
@item sizes @var{s1} @var{s2} @dots{} @var{sn} 0
+@kindex sizes
This means that the device has fonts at @var{s1}, @var{s2}, @dots{}
@var{sn} scaled points. The list of sizes must be terminated by a@w{
}0. Each @var{si} can also be a range of sizes @var{m}-@var{n}. The
list can extend over more than one line.
-@kindex styles
+
@item styles @var{S1} @var{S2} @dots{} @var{Sm}
+@kindex styles
The first @var{m}@w{ }font positions will be associated with styles
@var{S1} @dots{} @var{Sm}.
-@kindex fonts
+
@item fonts @var{n} @var{F1} @var{F2} @var{F3} @dots{} @var{Fn}
+@kindex fonts
Fonts @var{F1} @dots{} @var{Fn} will be mounted in the font positions
@var{m}+1, @dots{}, @var{m}+@var{n} where @var{m} is the number of
styles. This command may extend over more than one line. A font name
of@var{ }0 will cause no font to be mounted on the corresponding font
position.
-@kindex family
+
@item family @var{fam}
+@kindex family
The default font family is @var{fam}.
-@kindex charset
+
@item charset
+@kindex charset
This line and everything following in the file are ignored. It is
allowed for the sake of backwards compatibility.
@end table
@@ -7334,25 +7676,29 @@ each containing a sequence of blank delimited words; the first word in
the line is a key, and subsequent words give a value for that key.
@table @code
-@kindex name
@item name @var{F}
+@kindex name
The name of the font is@w{ }@var{F}.
-@kindex spacewidth
+
@item spacewidth @var{n}
+@kindex spacewidth
The normal width of a space is@w{ }@var{n}.
-@kindex slant
+
@item slant @var{n}
+@kindex slant
The characters of the font have a slant of @var{n}@w{ }degrees.
(Positive means forward.)
-@kindex ligatures
+
@item ligatures @var{lig1} @var{lig2} @dots{} @var{lign} [0]
+@kindex ligatures
Characters @var{lig1}, @var{lig2}, @dots{}, @var{lign} are ligatures;
possible ligatures are @samp{ff}, @samp{fi}, @samp{fl}, @samp{ffi} and
@samp{ffl}. For backwards compatibility, the list of ligatures may be
terminated with a@w{ }0. The list of ligatures may not extend over more
than one line.
-@kindex special
+
@item special
+@kindex special
The font is special; this means that when a character is requested that
is not present in the current font, it will be searched for in any
special fonts that are mounted.
@@ -7413,8 +7759,10 @@ The @var{type} field gives the character type:
@table @code
@item 1
the character has an descender, for example, `p';
+
@item 2
the character has an ascender, for example, `b';
+
@item 3
the character has both an ascender and a descender, for example, `('.
@end table
diff --git a/man/groff.man b/man/groff.man
index 11ecf22f..23660e5f 100644
--- a/man/groff.man
+++ b/man/groff.man
@@ -18,118 +18,126 @@ Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
fdl.txt in the main directory of the groff source package.
..
+.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
+.
.if n .mso tmac.tty-char
+.
.\" for formatting of single quotes in documenting code
.ds q \(fm
.\" for formatting of double quotes, twice because of Emacs highlighting
.ds dquote "
.ds dquote "
-.\"
-.de MP
-.ds @tmp@ \\fB\\$1\\fP\\fR(\\$2)\\fP
-.shift 2
-\&\\*[@tmp@]\\$*
-.rm @tmp@
-..
+.
.de BIP
-.ie (\\n[.$]<=2) \
-. BI $@
-.el \{\
-. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
-. shift 2
+. ie (\\n[.$] <= 2) \
+. BI $@
+. el \{\
+. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
+. shift 2
\&\\*[@tmp@]\\$*
-. rm @tmp@
-.\}
+. rm @tmp@
+. \}
..
+.
.de regname
-. ds @tmp@ \&\\fI\\en[\\fP\\fB\\$1\\fP\\fI]\\fP
-. shift 1
+. ds @tmp@ \&\\en[\\fB\\$1\\fP]
+. shift 1
\&\\*[@tmp@]\\$*
-. rm @tmp@
+. rm @tmp@
..
+.
.\" request synopsis
.de REQ
-. ds @tmp@ \&\\$1
-. shift 1
-. IP "\\fB\&\\*[@tmp@]\\fP \\fI\&\\$*\\fP" 10n
-. rm @tmp@
+. ds @tmp@ \&\\$1
+. shift 1
+. IP "\\fB\&\\*[@tmp@]\\fP \\fI\&\\$*\\fP" 10n
+. rm @tmp@
..
+.
.\" escape sequence synopsis
.de ESC
-. ds @tmp@ \&\\$1
-. shift 1
-. IP "\\fB\\e\&\\*[@tmp@]\\fP\\fI\&\\$*\\fP"
-. rm @tmp@
+. ds @tmp@ \&\\$1
+. shift 1
+. IP "\\fB\\e\&\\*[@tmp@]\\fP\\fI\&\\$*\\fP"
+. rm @tmp@
..
+.
.\" escape sequence synopsis
.de ESC[]
-. ds @arg1@ \&\\$1
-. ds @arg2@ \&\\$2
-. shift 2
-. IP "\\fB\\e\&\\*[@arg1@][\\fP\\fI\&\\*[@arg2@]\\fP\\fB]\&\\$*\\fP"
-. rm @arg1@
-. rm @arg2@
+. ds @arg1@ \&\\$1
+. ds @arg2@ \&\\$2
+. shift 2
+. IP "\\fB\\e\&\\*[@arg1@][\\fP\\fI\&\\*[@arg2@]\\fP\\fB]\&\\$*\\fP"
+. rm @arg1@
+. rm @arg2@
..
+.
.\" escape sequence with quoted argument
-. de ESCq
-. ds @tmp@ \&\\$1
-. shift 1
-. IP "\\fB\\e\&\\*[@tmp@]\\fP\\fI\\*q\&\\$*\\*q\\fP"
-. rm @tmp@
+. de ESCq
+. ds @tmp@ \&\\$1
+. shift 1
+. IP "\\fB\\e\&\\*[@tmp@]\\fP\\fI\\*q\&\\$*\\*q\\fP"
+. rm @tmp@
..
+.
.\" 2-escapes (special characters)
.de ESc
-. ds @tmp@ \\$1
-. TP 14n
-. BR \\e(\&\\*[@tmp@] \ \ \ \\(\\*[@tmp@]
-. shift 1
+. ds @tmp@ \\$1
+. TP 14n
+. BR \\e(\&\\*[@tmp@] \ \ \ \\(\\*[@tmp@]
+. shift 1
\\$*.
-. rm @tmp@
+. rm @tmp@
..
+.
.\" 2-escapes (special characters) with extra argument
.de EScx
-. ds @tmp@ \\$1
-. TP 14n
-. BR \\e(\&\\*[@tmp@] \ \ \ \\$2
-. shift 2
+. ds @tmp@ \\$1
+. TP 14n
+. BR \\e(\&\\*[@tmp@] \ \ \ \\$2
+. shift 2
\\$*.
-. rm @tmp@
+. rm @tmp@
..
+.
.\" Greek characters
.de GREEK
-. ds OLDT@BS \\n[.tabs]
-. br
-. ie t \{\
-. ta 6n 9n 30n T 6n 9n
+. ds OLDT@BS \\n[.tabs]
+. br
+. ie t \{\
+. ta 6n 9n 30n T 6n 9n
\\fB\\e(*\\$1\\fP\t\\fI\\(*\\$1\\fP\t\\$2\t\
\\fB\\e(*\\$3\\fP\t\\fI\\(*\\$3\\fP\t\\$4
-. \}
-. el \{\
-. ta 6n 30n T 6n
+. \}
+. el \{\
+. ta 6n 30n T 6n
\\fB\\e(*\\$1\\fP\t\\$2\t\
\\fB\\e(*\\$3\\fP\t\\$4
-. \}
-. ta \\*[OLDT@BS]
-. rm OLDT@BS
+. \}
+. ta \\*[OLDT@BS]
+. rm OLDT@BS
..
+.
.\" synopsis for registers
.de REG
-. TP 10n
+. TP 10n
\&\\en[\\fB\\$1\\fP]
-. shift 1
+. shift 1
.if \\n[.$] \&\\$*
..
+.
.\" description of warnings
.de Warning
-. ne 2v+1
-. TP 12n
+. ne (2v + 1)
+. TP 12n
\&\\fB\\$1\\fP
\&\\fI\\$2\\fP
-. br
+. br
..
+.
.\" --------------------------------------------------------------------
.\" Title
.\" --------------------------------------------------------------------
@@ -174,7 +182,7 @@ This file is not maintained, so it might already be out of date.
The full documentation with more detailed, actual, and concise information
is found in the
.I groff
-.MP info 1
+.BR info (1)
file.
.\" --------------------------------------------------------------------
.SH "ELEMENTS"
@@ -1646,29 +1654,29 @@ is defined as \fC\e(*a\fP.
.GREEK z zeta Z Zeta
.if t \{\
.ds OLDT@BS \n[.tabs]
-. ta T 0.6c
-. LP
+. ta T 0.6c
+. LP
In the order of the Greek alphabet this looks like
-. LP
-. ne 2v+1u
+. LP
+. ne 2v+1u
\(*a \(*b \(*g \(*d \(*e \(*z \(*g \(*y \
\(*h \(*i \(*k \(*l \(*m \(*n \(*c \(*o \
\(*p \(*r \(*s \(*t \(*u \(*f \(*x \(*q \(*z
-. br
+. br
a b g d e z g y \
h i k l m n c o \
p r s t u f x q z
-. LP
-. ne 2v+1u
+. LP
+. ne 2v+1u
\(*A \(*B \(*G \(*D \(*E \(*Z \(*G \(*Y \
\(*H \(*I \(*K \(*L \(*M \(*N \(*C \(*O \
\(*P \(*R \(*S \(*T \(*U \(*F \(*X \(*Q \(*Z
-. br
+. br
A B G D E Z G Y \
H I K L M N C O \
P R S T U F X Q Z
-. ta \*[OLDT@BS]
-. rm OLDT@BS
+. ta \*[OLDT@BS]
+. rm OLDT@BS
.\}
.\" --------------------------------------------------------------------
.SH REGISTERS
@@ -2222,7 +2230,7 @@ the gory details were left for the groff info file.
.\" --------------------------------------------------------------------
The main source of information for the groff language is the
.B groff
-.MP info 1
+.BR info (1)
file.
.LP
For a survey of the groff system and further documentation pointers see
diff --git a/man/roff.man b/man/roff.man
index f51c215e..0af435e2 100644
--- a/man/roff.man
+++ b/man/roff.man
@@ -18,26 +18,25 @@ Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
fdl.txt in the main directory of the groff source package.
..
+.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
-.de MP
-. ds @tmp@ \\fB\\$1\\fP\\fR(\\$2)\\fP
-. shift 2
-\\*[@tmp@]\\$*
-. rm @tmp@
-..
+.
.de BIR
-.ie \\n[.$]<3 .BI $@
+.ie (\\n[.$] < 3) \
+. BI $@
.el \{\
-. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
-. shift 2
+. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
+. shift 2
\\*[@tmp@]\\fR\\$*\\fP
-. rm @tmp@
+. rm @tmp@
.\}
..
+.
.ds dquote \&"
.ds dquote \&"\" make Emacs happy
+.
.\" --------------------------------------------------------------------
.\" Title
.\" --------------------------------------------------------------------
@@ -313,7 +312,7 @@ or
seems to be a good choice.
.LP
File name extensions can be very handy in conjunction with the
-.MP less 1
+.BR less (1)
pager.
It provides the possibility to feed all input into a command-line pipe that
is specified in the shell environment variable
@@ -403,7 +402,7 @@ available on-line under
.\" --------------------------------------------------------------------
The main source of information is the
.I groff
-.MP info 1
+.BR info (1)
file.
.LP
The predefined elements of the
diff --git a/tmac/groff_tmac.man b/tmac/groff_tmac.man
index edfe237e..8f29bc58 100755
--- a/tmac/groff_tmac.man
+++ b/tmac/groff_tmac.man
@@ -7,8 +7,6 @@ This is part of groff, the GNU roff type-setting system.
Copyright (C) 2000 Free Software Foundation, Inc.
written by Bernd Warken <bwarken@mayn.de>
-Last update: 28 Apr 2000
-
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 the
@@ -19,26 +17,25 @@ Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
fdl.txt in the main directory of the groff source package.
..
+.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
-.de MP
-.ds @tmp@ \\fB\\$1\\fP\\fR(\\$2)\\fP
-.shift 2
-\\*[@tmp@]\\$*
-.rm @tmp@
-..
+.
.de BIR
-.ie \\n[.$]<3 .BI $@
-.el \{
-.ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
-.shift 2
+. ie (\\n[.$] < 3) \
+. BI $@
+. el \{\
+. ds @tmp@ \\fB\\$1\\fP\\fI\\$2\\fP
+. shift 2
\\*[@tmp@]\\fR\\$*\\fP
-.rm @tmp@
-.\}
+. rm @tmp@
+. \}
..
+.
.ds dquote \&"
.ds dquote \&"\" make Emacs happy
+.
.\" --------------------------------------------------------------------
.\" Title
.\" --------------------------------------------------------------------
@@ -85,6 +82,7 @@ was called
.I mdoc
because the command-line for activating it reads
.RS
+.LP
.BIR "troff\ \-m" doc .
.RE
.LP
@@ -97,9 +95,13 @@ the
.I man
macro package may be specified as
.RS
+.LP
.BIR "groff\ \-m\ " man ,
+.br
.BIR "groff\ \-m" an ,
+.br
.BIR "groff\ \-m" man , or
+.br
.BIR "groff\ \-m " an .
.RE
.LP
@@ -348,7 +350,7 @@ the GNU Free Document License (FDL).
The authoritative source of information for all details of the groff
system is the
.I groff
-.MP info 1
+.BR info (1)
file.
.LP
For a groff overview, see