freebsd-dev/contrib/groff/man/groff.man

3565 lines
65 KiB
Groff
Raw Normal View History

2001-07-10 17:09:00 +00:00
'\" t
2000-12-05 18:49:44 +00:00
.ig
2002-10-11 08:52:17 +00:00
groff.man
2005-10-20 10:45:19 +00:00
Last update: 17 Feb 2005
2000-12-05 18:49:44 +00:00
This file is part of groff, the GNU roff type-setting system.
2005-10-20 10:45:19 +00:00
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
2000-12-05 18:49:44 +00:00
written by Bernd Warken <bwarken@mayn.de>
2002-10-11 08:52:17 +00:00
maintained by Werner Lemberg <wl@gnu.org>
2000-12-05 18:49:44 +00:00
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
2002-10-11 08:52:17 +00:00
Invariant Sections being this .ig-section and AUTHORS, with no
2000-12-05 18:49:44 +00:00
Front-Cover Texts, and with no Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
FDL in the main directory of the groff source package.
..
.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
.
2005-10-20 10:45:19 +00:00
.do nr groff_C \n[.C]
.cp 0
.
2002-10-11 08:52:17 +00:00
.mso www.tmac
.
2000-12-05 18:49:44 +00:00
.if n \{\
2001-04-17 12:12:05 +00:00
. mso tty-char.tmac
2000-12-05 18:49:44 +00:00
. ftr CR R
. ftr CI I
. ftr CB B
.\}
.
.if '\*[.T]'dvi' \{\
. ftr CB CW
.\}
.
.
2002-10-11 08:52:17 +00:00
.\" --------------------------------------------------------------------
.\" start of macro definitions
2000-12-05 18:49:44 +00:00
.eo
.
2002-10-11 08:52:17 +00:00
.de c
2000-12-05 18:49:44 +00:00
..
.
2002-10-11 08:52:17 +00:00
.de TPx
. TP 10n
..
.c ---------------------------------------------------------------------
.c .Text anything ...
.c
.c All arguments are printed as text.
.c
.de Text
. nop \)\$*
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .ExecFF macro font1 font2 text1 text2 text1 text2 ...
.c
.c Concat text arguments using alternating fonts and feed into macro.
.c For a trailing punctuation, terminate the call with \c.
.c
.de ExecFF
. if (\n[.$] < 4) \
. return
. ds @a\"
. ds @m \$1\"
. ds @f1 \$2\"
. ds @f2 \$3\"
. shift 3
. ds @s\"
. while 1 \{\
. if (\n[.$] = 0) \
. break
. ds @a \$1\"
. as @s \f[\*[@f1]]\*[@a]\f[]\"
. shift
. if (\n[.$] = 0) \
. break
. ds @a \$1\"
. as @s \f[\*[@f2]]\*[@a]\f[]\"
. shift
. \}
. \*[@m] "\*[@s]\f[R]"
. ft P \" to make \c happy
. rm @m
. rm @s
. rm @a
. rm @f1
. rm @f2
..
.
.c --------- command line option ---------
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.de option
. Text \f[CB]\$*
. ft P
..
2000-12-05 18:49:44 +00:00
.
.c --------- characters ---------
.
.de character
2002-10-11 08:52:17 +00:00
. ExecFF Text CB R \$*
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.de squoted_char
. ds @1 \$1\"
2000-12-05 18:49:44 +00:00
. shift
2002-10-11 08:52:17 +00:00
. ExecFF Text R CB \[oq] \*[@1] "\[cq]\$*"
. rm @1
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.de dquoted_char
. ds @1 \$1\"
2000-12-05 18:49:44 +00:00
. shift
2002-10-11 08:52:17 +00:00
. ExecFF Text R CB \[lq] \*[@1] "\[rq]\$*"
. rm @1
2000-12-05 18:49:44 +00:00
..
.c --------- requests ---------
.
2002-10-11 08:52:17 +00:00
.c synopsis of a request
2000-12-05 18:49:44 +00:00
.de REQ
2002-10-11 08:52:17 +00:00
. if (\n[.$] = 0) \
. return
. ds @1 \$1\"
2000-12-05 18:49:44 +00:00
. shift 1
2002-10-11 08:52:17 +00:00
. ie (\n[.$] = 0) \{\
. TP 10n
. Text \f[CB]\*[@1]\f[]
. \}
. el \{\
. TP 10n
. Text \f[CB]\*[@1]\~\f[]\f[I]\$*\f[]
2000-12-05 18:49:44 +00:00
. \}
2002-10-11 08:52:17 +00:00
. rm @1
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c reference of a request
.de request
. BR \$*
2000-12-05 18:49:44 +00:00
..
.
.c --------- numerical elements ---------
.
2002-10-11 08:52:17 +00:00
.c number with a trailing unit
.de scalednumber
. Text \$1\^\f[CB]\$2\f[]\$3\f[R]
. ft P
2000-12-05 18:49:44 +00:00
..
.
2002-10-11 08:52:17 +00:00
.c representation of units within the text
.de scaleindicator
. Text \f[CB]\$1\f[]\$2\f[R]
. ft P
2000-12-05 18:49:44 +00:00
..
.
2002-10-11 08:52:17 +00:00
.c representation of mathematical operators within the text
2000-12-05 18:49:44 +00:00
.de operator
2002-10-11 08:52:17 +00:00
. squoted_char \$@
2000-12-05 18:49:44 +00:00
..
.
.
2002-10-11 08:52:17 +00:00
.c --------- escape sequences ---------
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .ESC name [arg]
.c
.c Synopsis of an escape sequence, optionally with argument
.c Args : 1 or 2; `name' obligatory, `arg' optional
.c name : suitable name for an escape sequence (c, (xy, [long])
.c arg : arbitrary word
.c Result : prints \namearg, where `name' is in CB, `arg' in I
.c
.de ESC
. if (\n[.$] < 1)
. ab .ESC needs 1 or 2 arguments.
. ExecFF IP CB I "\[rs]\$1" "\,\$2\/"
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .ESC[] name arg
.c
.c Synopsis for escape sequence with a bracketed long argument
.c Args : 2 obligatory
.c name : suitable name for an escape sequence (c, (xy, [long])
.c arg : arbitrary text
.c Result : prints \name[arg], where `name' is in CB, `arg' in I
.c
.de ESC[]
. if !(\n[.$] = 2) \
. ab .ESC[] needs exactly 2 arguments.
. ExecFF IP CB I "\[rs]\$1\[lB]" "\h'-0.2m'\$2\h'-0.15m'" \[rB]
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .ESCq name arg
.c
.c Synopsis for escape sequence with a bracketed long argument
.c Args : 2 obligatory
.c name : suitable name for an escape sequence (c, (xy, [long])
.c arg : arbitrary text
.c Result : prints \name'arg', where `name' is in CB, `arg' in I
.c
.de ESCq
. if !(\n[.$] = 2) \
. ab .ESCq needs exactly 2 argument.
. ExecFF IP CB I "\[rs]\$1\[cq]" "\h'-0.3m'\$2" \[cq]
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .ESC? arg
.c
.c Synopsis for escape sequence with a bracketed long argument
.c Args : 1 obligatory
.c arg : arbitrary text
.c Result : prints `\?arg?', where the `?' are in CB, `arg' in I
.c
.de ESC?
. if !(\n[.$] = 1) \
. ab .ESC? needs exactly 1 arguments.
. ExecFF IP CB I \[rs]? "\$1" ?
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .esc name [punct]
.c
.c Reference of an escape sequence (no args), possibly punctuation
.c Args : 1 obligatory
.c name : suitable name for an escape sequence (c, (xy, [long])
.c punct : arbitrary
.c Result : prints \name, where `name' is in B, `punct' in R
.c
2000-12-05 18:49:44 +00:00
.de esc
2002-10-11 08:52:17 +00:00
. if (\n[.$] < 1) \
. ab .esc needs 1 or 2 arguments.
. BR "\[rs]\$1" \$2
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .escarg name arg [punct]
.c
.c Reference of an escape sequence (no args)
.c Args : 1 obligatory, 1 optional
.c name : suitable name for an escape sequence (c, (xy, [long])
.c arg : arbitrary word
.c Result : prints \namearg, where
.c `name' is in B, `arg' in I
.c
.de escarg
. if (\n[.$] < 2) \
. ab .esc needs 2 or 3 arguments.
. Text \f[B]\[rs]\$1\f[]\f[I]\$2\f[]\$3
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .esc[] name arg [punct]
.c
.c Reference for escape sequence with a bracketed long argument
.c Args : 2 obligatory
.c name : suitable name for an escape sequence (c, (xy, [long])
.c arg : arbitrary text
.c Result : prints \name[arg], where `name' is in CB, `arg' in CI
.c
.de esc[]
. if (\n[.$] < 2) \
. ab .esc[] needs 2 or 3 arguments.
. Text \f[B]\[rs]\$1\[lB]\f[]\f[I]\$2\f[]\f[B]\[rB]\f[]\$3
2000-12-05 18:49:44 +00:00
..
.
2002-10-11 08:52:17 +00:00
.c ---------------------------------------------------------------------
.c .escq name arg
.c
.c Reference for escape sequence with a bracketed long argument
.c Args : 2 obligatory
.c name : suitable name for an escape sequence (c, (xy, [long])
.c arg : arbitrary text
.c Result : prints \name'arg', where `name' is in CB, `arg' in CI
.c
.de escq
. if (\n[.$] < 2) \
. ab .escq needs 2 arguments.
. Text \f[B]\[rs]\$1\[cq]\f[]\f[I]\$2\f[]\f[B]\[cq]\f[]\$3
2000-12-05 18:49:44 +00:00
..
.
2002-10-11 08:52:17 +00:00
.c --------- strings ---------
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.c synopsis for string, with \*[]
.de STRING
. ds @1 \$1\"
2000-12-05 18:49:44 +00:00
. shift 1
2002-10-11 08:52:17 +00:00
. TP 10n
. ExecFF Text R CB \[rs]*[ \*[@1]\f[]\f[R]] \$*
. rm @1
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c synopsis for a long string
.de string
. if (\n[.$] = 0) \
. return
. Text \f[CB]\[rs]*\[lB]\$1\[rB]\f[]\$2
2000-12-05 18:49:44 +00:00
..
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.c --------- registers ---------
.
2002-10-11 08:52:17 +00:00
.c synopsis for registers, with \n[]
2000-12-05 18:49:44 +00:00
.de REG
2002-10-11 08:52:17 +00:00
. ds @1 \$1\"
2000-12-05 18:49:44 +00:00
. shift 1
2002-10-11 08:52:17 +00:00
. TP 10n
. ExecFF Text R CB \[rs]n[ \*[@1]\f[]\f[R]] \$*
. rm @1
2000-12-05 18:49:44 +00:00
..
2002-10-11 08:52:17 +00:00
.c reference of a register, without decoration
.de register
. Text register
. BR \$*
2000-12-05 18:49:44 +00:00
..
.
.ec
2002-10-11 08:52:17 +00:00
.\" end of macro definitions
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.\" Title
.\" --------------------------------------------------------------------
.
.TH GROFF @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@"
.SH NAME
groff \- a short reference for the GNU roff language
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
.SH DESCRIPTION
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
The name
2000-12-05 18:49:44 +00:00
.I groff
stands for
.I GNU roff
and is the free implementation of the roff type-setting system.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
See
.BR roff (@MAN7EXT@)
for a survey and the background of the groff system.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
This document gives only short descriptions of the predefined roff
language elements as used in groff.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Both the classical features and the groff extensions are provided.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Historically, the
.I roff language
was called
.IR troff .
.I groff
2002-10-11 08:52:17 +00:00
is compatible with the classical system and provides proper
extensions.
.
2000-12-05 18:49:44 +00:00
So in GNU, the terms
.IR roff ,
.IR troff ,
and
.I groff language
could be used as synonyms.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
However
.I troff
slightly tends to refer more to the classical aspects, whereas
.I groff
emphasizes the GNU extensions, and
.I roff
is the general term for the language.
2002-10-11 08:52:17 +00:00
.
.P
This file is only a short version of the complete documentation that
is found in the
2000-12-05 18:49:44 +00:00
.I groff
.BR info (1)
file, which contains more detailed, actual, and concise information.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
The general syntax for writing groff documents is relatively easy, but
writing extensions to the roff language can be a bit harder.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
The roff language is line-oriented.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
There are only two kinds of lines, control lines and text lines.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The control lines start with a control character, by default a period
2002-10-11 08:52:17 +00:00
.dquoted_char .
2000-12-05 18:49:44 +00:00
or a single quote
2002-10-11 08:52:17 +00:00
.dquoted_char ' ;
2000-12-05 18:49:44 +00:00
all other lines are text lines.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
.B Control lines
represent commands, optionally with arguments.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
They have the following syntax.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The leading control character can be followed by a command name;
arguments, if any, are separated by blanks from the command name and
among themselves, for example,
.RS
2002-10-11 08:52:17 +00:00
.
.P
.Text .command_name arg1 arg2
2000-12-05 18:49:44 +00:00
.RE
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
For indentation, any number of space or tab characters can be inserted
2002-10-11 08:52:17 +00:00
between the leading control character and the command name, but the
control character must be on the first position of the line.
.
.P
2000-12-05 18:49:44 +00:00
.B Text lines
represent the parts that will be printed.
They can be modified by escape sequences, which are recognized by a
leading backslash
2002-10-11 08:52:17 +00:00
.squoted_char \[rs] .
2000-12-05 18:49:44 +00:00
These are in-line or even in-word formatting elements or functions.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Some of these take arguments separated by single quotes
2002-10-11 08:52:17 +00:00
.dquoted_char ' ,
2000-12-05 18:49:44 +00:00
others are regulated by a length encoding introduced by an open
parenthesis
2002-10-11 08:52:17 +00:00
.squoted_char (
2000-12-05 18:49:44 +00:00
or enclosed in brackets
2002-10-11 08:52:17 +00:00
.squoted_char [
2000-12-05 18:49:44 +00:00
and
2002-10-11 08:52:17 +00:00
.squoted_char ] .
.
.P
2000-12-05 18:49:44 +00:00
The roff language provides flexible instruments for writing language
extension, such as macros.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
When interpreting macro definitions, the roff system enters a special
operating mode, called the
.BR "copy mode" .
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
The copy mode behavior can be quite tricky, but there are some rules
that ensure a safe usage.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.IP 1.
Printable backslashes must be denoted as
.esc e .
To be more precise,
.esc e
represents the current escape character.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
To get a backslash glyph, use
2002-10-11 08:52:17 +00:00
.esc (rs
or
.esc [rs] .
2000-12-05 18:49:44 +00:00
.IP 2.
Double all backslashes.
.IP 3.
Begin all text lines with the special non-spacing character
.esc & .
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
This does not produce the most efficient code, but it should work as a
first measure.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
For better strategies, see the groff info file and
.BR groff_tmac (@MAN5EXT@).
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Reading roff source files is easier, just reduce all double backslashes
to a single one in all macro definitions.
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
.SH "GROFF ELEMENTS"
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The roff language elements add formatting information to a text file.
2002-10-11 08:52:17 +00:00
.
The fundamental elements are predefined commands and variables that
make roff a full-blown programming language.
.
.P
2000-12-05 18:49:44 +00:00
There are two kinds of roff commands, possibly with arguments.
.B Requests
are written on a line of their own starting with a dot
2002-10-11 08:52:17 +00:00
.squoted_char .
2000-12-05 18:49:44 +00:00
or a
2002-10-11 08:52:17 +00:00
.dquoted_char ' ,
2000-12-05 18:49:44 +00:00
whereas
.B Escape sequences
are in-line functions and in-word formatting elements starting with a
backslash
2002-10-11 08:52:17 +00:00
.squoted_char \[rs] .
.
.P
2000-12-05 18:49:44 +00:00
The user can define her own formatting commands using the
2002-10-11 08:52:17 +00:00
.request de
request.
.
These commands are called
2000-12-05 18:49:44 +00:00
.BR macros ,
2002-10-11 08:52:17 +00:00
but they are used exactly like requests.
.
Macro packages are pre-defined sets of macros written in the groff
language.
.
2000-12-05 18:49:44 +00:00
A user's possibilities to create escape sequences herself is very
limited, only special characters can be mapped.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
The groff language provides several kinds of variables with
different interfaces.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
There are pre-defined variables, but the user can define her own
variables as well.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
.B String
variables store character sequences.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
They are set with the
2002-10-11 08:52:17 +00:00
.request ds
2000-12-05 18:49:44 +00:00
request and retrieved by the
.esc *
escape sequences.
2002-10-11 08:52:17 +00:00
.
Strings can have variables.
.
.P
2000-12-05 18:49:44 +00:00
.B Register
variables can store numerical values, numbers with a scale unit, and
occasionally string-like objects.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
They are set with the
2002-10-11 08:52:17 +00:00
.request nr
2000-12-05 18:49:44 +00:00
request and retrieved by the
.esc n
escape sequences.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
.B Environments
allow the user to temporarily store global formatting parameters like
2002-10-11 08:52:17 +00:00
line length, font size, etc.\& for later reuse.
.
2000-12-05 18:49:44 +00:00
This is done by the
2002-10-11 08:52:17 +00:00
.request ev
2000-12-05 18:49:44 +00:00
request.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
.B Fonts
are identified either by a name or by an internal number.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The current font is chosen by the
2002-10-11 08:52:17 +00:00
.request ft
2000-12-05 18:49:44 +00:00
request or by the
.esc f
escape sequences.
2002-10-11 08:52:17 +00:00
.
Each device has special fonts, but the following fonts are available
for all devices.
2000-12-05 18:49:44 +00:00
.B R
is the standard font Roman.
.B B
is its
.B bold
counterpart.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The
.I italic
font is called
.B I
2002-10-11 08:52:17 +00:00
and is available everywhere, but on text devices it is displayed as an
2000-12-05 18:49:44 +00:00
underlined Roman font.
2002-10-11 08:52:17 +00:00
.
For the graphical output devices, there exist constant-width pendants
of these fonts,
2000-12-05 18:49:44 +00:00
.BR CR ,
.BR CI ,
and
.BR CB .
On text devices, all characters have a constant width anyway.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Moreover, there are some advanced roff elements.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
A
.B diversion
stores information into a macro for later usage.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
A
.B trap
is a positional condition like a certain number of lines from page top
or in a diversion or in the input.
2002-10-11 08:52:17 +00:00
.
Some action can be prescribed to be run automatically when the
condition is met.
.
.P
More detailed information and examples can be found in the groff info
file.
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.SH "CONTROL CHARACTERS"
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
There is a small set of characters that have a special controlling
task in certain conditions.
.
2000-12-05 18:49:44 +00:00
.TP
.character .
A dot is only special at the beginning of a line or after the
condition in the requests
2002-10-11 08:52:17 +00:00
.request if ,
.request ie ,
.request el ,
2000-12-05 18:49:44 +00:00
and
2002-10-11 08:52:17 +00:00
.request while .
2000-12-05 18:49:44 +00:00
There it is the control character that introduces a request (or macro).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The special behavior can be delayed by using the
.esc .
escape.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
By using the
2002-10-11 08:52:17 +00:00
.request cc
2000-12-05 18:49:44 +00:00
request, the control character can be set to a different character,
making the dot
2002-10-11 08:52:17 +00:00
.squoted_char .
2000-12-05 18:49:44 +00:00
a non-special character.
.IP ""
In all other positions, it just means a dot character.
2002-10-11 08:52:17 +00:00
.
In text paragraphs, it is advantageous to start each sentence at a
line of its own.
.
2000-12-05 18:49:44 +00:00
.TP
.character '
2002-10-11 08:52:17 +00:00
The single quote has two controlling tasks.
.
At the beginning of a line and in the conditional requests it is the
non-breaking control character.
.
2000-12-05 18:49:44 +00:00
That means that it introduces a request like the dot, but with the
additional property that this request doesn't cause a linebreak.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
By using the
2002-10-11 08:52:17 +00:00
.request c2
2000-12-05 18:49:44 +00:00
request, the non-break control character can be set to a different
character.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.IP ""
As a second task, it is the most commonly used argument separator in
some functional escape sequences (but any pair of characters not part
of the argument will work).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
In all other positions, it denotes the single quote or apostrophe
character.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Groff provides a printable representation with the
.esc (cq
escape sequence.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.TP
2002-10-11 08:52:17 +00:00
.character \[dq]
The double quote is used to enclose arguments in requests, macros, and
strings.
.
In the
.request ds
2001-04-17 12:12:05 +00:00
and
2002-10-11 08:52:17 +00:00
.request as
2001-04-17 12:12:05 +00:00
requests, a leading double quote in the argument will be stripped off,
2002-10-11 08:52:17 +00:00
making everything else afterwards the string to be defined (enabling
leading whitespace).
.
2000-12-05 18:49:44 +00:00
The escaped double quote
2002-10-11 08:52:17 +00:00
.esc \[dq]
2000-12-05 18:49:44 +00:00
introduces a comment.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Otherwise, it is not special.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Groff provides a printable representation with the
.esc (dq
escape sequence.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.TP
2002-10-11 08:52:17 +00:00
.character \[rs]
2000-12-05 18:49:44 +00:00
The backslash usually introduces an escape sequence (this can be
changed with the
.request ec
request).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
A printed version of the escape character is the
.esc e
escape; a backslash glyph can be obtained by
.esc (rs .
.TP
.character (
The open parenthesis is only special in escape sequences when
introducing an escape name or argument consisting of exactly two
characters.
2002-10-11 08:52:17 +00:00
.
In groff, this behavior can be replaced by the \f[CB][]\f[] construct.
2000-12-05 18:49:44 +00:00
.TP
.character [
2002-10-11 08:52:17 +00:00
The opening bracket is only special in groff escape sequences; there
it is used to introduce a long escape name or long escape argument.
.
Otherwise, it is non-special, e.g.\& in macro calls.
2000-12-05 18:49:44 +00:00
.TP
.character ]
2002-10-11 08:52:17 +00:00
The closing bracket is only special in groff escape sequences; there
it terminates a long escape name or long escape argument.
.
2000-12-05 18:49:44 +00:00
Otherwise, it is non-special.
.TP
2002-10-11 08:52:17 +00:00
\f[CI]space\f[]
Space characters are only functional characters.
.
They separate the arguments in requests, macros, and strings, and the words
in text lines.
.
2000-12-05 18:49:44 +00:00
They are subject to groff's horizontal spacing calculations.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
To get a defined space width, escape sequences like
2002-10-11 08:52:17 +00:00
.squoted_char "\[rs]\ "
2000-12-05 18:49:44 +00:00
(this is the escape character followed by a space),
.esc | ,
.esc ^ ,
or
.esc h
should be used.
2002-10-11 08:52:17 +00:00
.
.IP \f[CI]newline\f[]
2000-12-05 18:49:44 +00:00
In text paragraphs, newlines mostly behave like space characters.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Continuation lines can be specified by an escaped newline, i.e., by
specifying a backslash
2002-10-11 08:52:17 +00:00
.squoted_char \[rs]
2000-12-05 18:49:44 +00:00
as the last character of a line.
2002-10-11 08:52:17 +00:00
.IP \f[CI]tab\f[]
If a tab character occurs during text the interpreter makes a
horizontal jump to the next pre-defined tab position.
.
2000-12-05 18:49:44 +00:00
There is a sophisticated interface for handling tab positions.
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
.SH "NUMERICAL EXPRESSIONS"
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
A
.B numerical value
is a signed or unsigned integer or float with or without an appended
2002-10-11 08:52:17 +00:00
scaling indicator.
.
2000-12-05 18:49:44 +00:00
A
2002-10-11 08:52:17 +00:00
.B scaling indicator
2000-12-05 18:49:44 +00:00
is a one-character abbreviation for a unit of measurement.
2002-10-11 08:52:17 +00:00
.
A number followed by a scaling indicator signifies a size value.
.
By default, numerical values do not have a scaling indicator, i.e., they
are normal numbers.
.
.P
The
.I roff
language defines the following scaling indicators.
.
.
.P
.PD 0
.RS
.
.TPx
.B c
Centimeter
.
.TPx
.B i
Inch
.
.TPx
.B P
Pica\ \[eq]\ 1/6\ inch
.
.TPx
.B p
Point\ \[eq]\ 1/72\ inch
.
.TPx
.B m
Em\ \[eq]\ \f[R]the font size in points (width of letter `\f[CR]m\f[R]')
.
.TPx
.B M
100\^th \f[R]of an \f[CR]Em
.
.TPx
.B n
En\ \[eq]\ Em/2
.
.TPx
.B u
Basic unit for actual output device
.
.TPx
.B v
Vertical line space in basic units
scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
font \f[I]DESC\f[] file)
.
.TPx
.B f
Scale by 65536.
.RE
.PD
.
.P
2000-12-05 18:49:44 +00:00
.B Numerical expressions
2002-10-11 08:52:17 +00:00
are combinations of the numerical values defined above with the
following arithmetical operators already defined in classical troff.
.
.P
.PD 0
.RS
.
.TPx
.B +
Addition
.
.TPx
.B \-
Subtraction
.
.TPx
.B *
Multiplication
.
.TPx
.B /
Division
.
.TPx
.B %
Modulo
.
.TPx
.B =
Equals
.
.TPx
.B ==
Equals
.
.TPx
.B <
Less than
.
.TPx
.B >
Greater than
.
.TPx
.B <=
Less or equal
.
.TPx
.B >=
Greater or equal
.
.TPx
.B &
Logical and
.
.TPx
.B :
Logical or
.
.TPx
.B !
Logical not
.
.TPx
.B (
Grouping of expressions
.
.TPx
.B )
Close current grouping
.
.RE
.PD
.
.P
2000-12-05 18:49:44 +00:00
Moreover,
.I groff
added the following operators for numerical expressions:
2002-10-11 08:52:17 +00:00
.
.P
.PD 0
.RS
.
.TPx
.ExecFF Text I CB e1 >? e2
The maximum of
.I e1
and
.IR e2 .
.
.TPx
.ExecFF Text I CB e1 <? e2
The minimum of
.I e1
and
.IR e2 .
.
.TPx
.ExecFF Text CB I ( c ; e )
Evaluate
.I e
using
.I c
as the default scaling indicator.
.
.RE
.PD
.
.P
2000-12-05 18:49:44 +00:00
For details see the groff info file.
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
.SH CONDITIONS
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.B Conditions
occur in tests raised by the
2002-10-11 08:52:17 +00:00
.request if ,
.request ie ,
2000-12-05 18:49:44 +00:00
and the
2002-10-11 08:52:17 +00:00
.request while
2000-12-05 18:49:44 +00:00
requests.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The following table characterizes the different types of conditions.
2002-10-11 08:52:17 +00:00
.
.P
.PD 0
.RS
.
.TPx
.I N
A numerical expression
.I N
yields true if its value is greater than\~0.
.
.TPx
.BI ! N
True if the value of
.I I
is\~0.
.
.TPx
.BI ' s1 ' s2 '
True if string\~\c
.I s1
is identical to string\~\c
.IR s2 .
.
.TPx
.BI !' s1 ' s2 '
True if string\~\c
.I s1
is not identical to string\~\c
.IR s2 .
.
.TPx
.BI c ch
True if there is a character\~\c
.I ch
available.
.
.TPx
.BI d name
True if there is a string, macro, diversion, or request called
.IR name .
.
.TPx
.B e
Current page number is even.
.
.TPx
.B o
Current page number is odd.
.
.TPx
.BI m name
True if there is a color called
.IR name .
.
.TPx
.B n
Formatter is
.BR nroff .
.
.TPx
.BI r reg
True if there is a register named
.IR reg .
.
.TPx
.B t
Formatter is
.BR troff .
.
2005-10-20 10:45:19 +00:00
.TPx
.BI F font
True if there exists a font named
.IR font .
.
.TPx
.BI S style
True if a style named
.I style
has been registered.
.
2002-10-11 08:52:17 +00:00
.RE
.PD
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.SH REQUESTS
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
This section provides a short reference for the predefined requests.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
In groff, request and macro names can be arbitrarily long.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
No bracketing or marking of long names is needed.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Most requests take one or more arguments.
2002-10-11 08:52:17 +00:00
.
The arguments are separated by space characters (no tabs!); there is
no inherent limit for their length or number.
.
An argument can be enclosed by a pair of double quotes.
.
This is very handy if an argument contains space characters, e.g.,
.RI \[dq] "arg with space" \[dq]
2000-12-05 18:49:44 +00:00
denotes a single argument.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Some requests have optional arguments with a different behaviour.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Not all of these details are outlined here.
2002-10-11 08:52:17 +00:00
.
Refer to the groff info file and
.BR groff_diff (@MAN7EXT@)
for all details.
.
.P
In the following request specifications, most argument names were
chosen to be descriptive.
.
2000-12-05 18:49:44 +00:00
Only the following denotations need clarification.
2002-10-11 08:52:17 +00:00
.
.P
.PD 0
.RS
.
.TPx
.I c
denotes a single character.
.
.TPx
.I font
2000-12-05 18:49:44 +00:00
a font either specified as a font name or a font number.
2002-10-11 08:52:17 +00:00
.
.TPx
.I anything
all characters up to the end of the line or within
.esc {
and
.esc } .
.
.TPx
.I n
2000-12-05 18:49:44 +00:00
is a numerical expression that evaluates to an integer value.
2002-10-11 08:52:17 +00:00
.
.TPx
.I N
2000-12-05 18:49:44 +00:00
is an arbitrary numerical expression, signed or unsigned.
2002-10-11 08:52:17 +00:00
.
.TPx
.I \[+-]N
2000-12-05 18:49:44 +00:00
has three meanings depending on its sign, described below.
2002-10-11 08:52:17 +00:00
.
.RE
.PD
.
.P
2000-12-05 18:49:44 +00:00
If an expression defined as
2002-10-11 08:52:17 +00:00
.I \[+-]N
2000-12-05 18:49:44 +00:00
starts with a
2002-10-11 08:52:17 +00:00
.squoted_char +
2000-12-05 18:49:44 +00:00
sign the resulting value of the expression will be added to an already
2002-10-11 08:52:17 +00:00
existing value inherent to the related request, e.g.\& adding to a number
2000-12-05 18:49:44 +00:00
register.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
If the expression starts with a
2002-10-11 08:52:17 +00:00
.squoted_char -
2000-12-05 18:49:44 +00:00
the value of the expression will be subtracted from the request value.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Without a sign,
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
replaces the existing value directly.
2002-10-11 08:52:17 +00:00
.
To assign a negative number either prepend\~0 or enclose the negative
number in parentheses.
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.SS "Request Short Reference"
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.PD 0
.
.REQ .
2002-10-11 08:52:17 +00:00
Empty line, ignored.
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
Useful for structuring documents.
.
.REQ .\[rs]\[dq] anything
2000-12-05 18:49:44 +00:00
Complete line is a comment.
.
.REQ .ab string
Print
2002-10-11 08:52:17 +00:00
.I string
2000-12-05 18:49:44 +00:00
on standard error, exit program.
.
.REQ .ad
Begin line adjustment for output lines in current adjust mode.
.
.REQ .ad c
Start line adjustment in mode
2002-10-11 08:52:17 +00:00
.I c
(\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,r,b,n\f[]).
2000-12-05 18:49:44 +00:00
.
.REQ .af register c
Assign format
2002-10-11 08:52:17 +00:00
.I c
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.I register
(\f[CI]c\f[]\f[CR]\|\^\[eq]\|l,i,I,a,A\f[]).
2000-12-05 18:49:44 +00:00
.
.REQ .aln alias register
Create alias name for
2002-10-11 08:52:17 +00:00
.IR register .
2000-12-05 18:49:44 +00:00
.
.REQ .als alias object
Create alias name for request, string, macro, or diversion
2002-10-11 08:52:17 +00:00
.IR object .
2000-12-05 18:49:44 +00:00
.
.REQ .am macro
Append to
2002-10-11 08:52:17 +00:00
.I macro
2000-12-05 18:49:44 +00:00
until
2002-10-11 08:52:17 +00:00
.B ..\&
is encountered.
2000-12-05 18:49:44 +00:00
.
.REQ .am macro end
Append to
2002-10-11 08:52:17 +00:00
.I macro
2000-12-05 18:49:44 +00:00
until
.request .end
is called.
.
2005-10-20 10:45:19 +00:00
.REQ .am1 macro
Same as
.request .am
but with compatibility mode switched off during macro expansion.
.
.REQ .am1 macro end
Same as
.request .am
but with compatibility mode switched off during macro expansion.
.
2002-10-11 08:52:17 +00:00
.REQ .ami macro
Append to a macro whose name is contained in the string register
.I macro
until
.B ..\&
is encountered.
.
.REQ .ami macro end
Append to a macro indirectly.
.I macro
and
.I end
are string registers whose contents are interpolated for the macro name
and the end macro, respectively.
.
2005-10-20 10:45:19 +00:00
.REQ .ami1 macro
2001-07-10 17:09:00 +00:00
Same as
2005-10-20 10:45:19 +00:00
.request .ami
2001-07-10 17:09:00 +00:00
but with compatibility mode switched off during macro expansion.
.
2005-10-20 10:45:19 +00:00
.REQ .ami1 macro end
2001-07-10 17:09:00 +00:00
Same as
2005-10-20 10:45:19 +00:00
.request .ami
2001-07-10 17:09:00 +00:00
but with compatibility mode switched off during macro expansion.
.
2000-12-05 18:49:44 +00:00
.REQ .as stringvar anything
Append
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR stringvar .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .as1 stringvar anything
Same as
.request .as
but with compatibility mode switched off during string expansion.
2000-12-05 18:49:44 +00:00
.
2005-10-20 10:45:19 +00:00
.REQ .asciify diversion
Unformat ASCII characters, spaces, and some escape sequences in
.IR diversion .
.
2000-12-05 18:49:44 +00:00
.REQ .backtrace
Print a backtrace of the input on stderr.
.
.REQ .bd font N
Embolden
2002-10-11 08:52:17 +00:00
.I font
2000-12-05 18:49:44 +00:00
by
2002-10-11 08:52:17 +00:00
.IR N -1
2000-12-05 18:49:44 +00:00
units.
.
.REQ .bd S font N
Embolden Special Font
2002-10-11 08:52:17 +00:00
.I S
2000-12-05 18:49:44 +00:00
when current font is
2002-10-11 08:52:17 +00:00
.IR font .
2000-12-05 18:49:44 +00:00
.
2001-07-10 17:09:00 +00:00
.REQ .blm
Unset the blank line macro.
.
.REQ .blm macro
Set the blank line macro to
2002-10-11 08:52:17 +00:00
.IR macro .
2001-07-10 17:09:00 +00:00
.
2001-04-17 12:12:05 +00:00
.REQ .box
End current diversion.
.
.REQ .box macro
Divert to
2002-10-11 08:52:17 +00:00
.IR macro ,
2001-04-17 12:12:05 +00:00
omitting a partially filled line.
.
.REQ .boxa
End current diversion.
.
.REQ .boxa macro
Divert and append to
2002-10-11 08:52:17 +00:00
.IR macro ,
2001-04-17 12:12:05 +00:00
omitting a partially filled line.
2001-07-10 17:09:00 +00:00
.
2000-12-05 18:49:44 +00:00
.REQ .bp
Eject current page and begin new page.
.
2002-10-11 08:52:17 +00:00
.REQ .bp \[+-]N
2000-12-05 18:49:44 +00:00
Eject current page; next page number
2002-10-11 08:52:17 +00:00
.IR \[+-]N .
2000-12-05 18:49:44 +00:00
.
.REQ .br
Line break.
.
2001-07-10 17:09:00 +00:00
.REQ .brp
Break and spread output line.
Same as
.esc p .
.
2000-12-05 18:49:44 +00:00
.REQ .break
Break out of a while loop.
.
.REQ .c2
Reset no-break control character to
2002-10-11 08:52:17 +00:00
.dquoted_char ' .
2000-12-05 18:49:44 +00:00
.
.REQ .c2 c
Set no-break control character to
2002-10-11 08:52:17 +00:00
.IR c .
2000-12-05 18:49:44 +00:00
.
.REQ .cc
Reset control character to
2002-10-11 08:52:17 +00:00
.squoted_char . .
2000-12-05 18:49:44 +00:00
.
.REQ .cc c
Set control character to
2002-10-11 08:52:17 +00:00
.IR c .
2000-12-05 18:49:44 +00:00
.
.REQ .ce
Center the next input line.
.
.REQ .ce N
Center following
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
input lines.
.
.REQ .cf filename
Copy contents of file
2002-10-11 08:52:17 +00:00
.I filename
2000-12-05 18:49:44 +00:00
unprocessed to stdout or to the diversion.
.
2002-10-11 08:52:17 +00:00
.REQ .cflags mode c1 c2 .\|.\|.\&
2000-12-05 18:49:44 +00:00
Treat characters
2002-10-11 08:52:17 +00:00
.IR c1 ,
.IR c2 ,
.I .\|.\|.\&
2000-12-05 18:49:44 +00:00
according to
2002-10-11 08:52:17 +00:00
.I mode
2000-12-05 18:49:44 +00:00
number.
.
.REQ .ch trap N
Change
2002-10-11 08:52:17 +00:00
.I trap
2000-12-05 18:49:44 +00:00
location
to
2002-10-11 08:52:17 +00:00
.I N .
2000-12-05 18:49:44 +00:00
.
.REQ .char c anything
Define character
2002-10-11 08:52:17 +00:00
.I c
as string
.IR anything .
2000-12-05 18:49:44 +00:00
.
.REQ .chop object
Chop the last character off macro, string, or diversion
2002-10-11 08:52:17 +00:00
.IR object .
2000-12-05 18:49:44 +00:00
.
.REQ .close stream
Close the
2002-10-11 08:52:17 +00:00
.IR stream .
.
.REQ .color
Enable colors.
.
.REQ .color N
If
.I N
is zero disable colors, otherwise enable them.
2000-12-05 18:49:44 +00:00
.
2003-05-01 13:09:50 +00:00
.REQ .composite from to
Map glyph name
.I from
to glyph name
.I to
while constructing a composite glyph name.
.
2000-12-05 18:49:44 +00:00
.REQ .continue
Finish the current iteration of a while loop.
.
.REQ .cp
Enable compatibility mode.
.
.REQ .cp N
If
.I N
is zero disable compatibility mode, otherwise enable it.
.
.REQ .cs font N M
Set constant character width mode for
2002-10-11 08:52:17 +00:00
.I font
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR N /36
2000-12-05 18:49:44 +00:00
ems with em
2002-10-11 08:52:17 +00:00
.IR M .
2000-12-05 18:49:44 +00:00
.
.REQ .cu N
Continuous underline in nroff, like
.request .ul
in troff.
.
2001-04-17 12:12:05 +00:00
.REQ .da
End current diversion.
.
2000-12-05 18:49:44 +00:00
.REQ .da macro
Divert and append to
2002-10-11 08:52:17 +00:00
.IR macro .
2000-12-05 18:49:44 +00:00
.
.REQ .de macro
Define or redefine
2002-10-11 08:52:17 +00:00
.I macro
2000-12-05 18:49:44 +00:00
until
2002-10-11 08:52:17 +00:00
.B ..\&
is encountered.
2000-12-05 18:49:44 +00:00
.
.REQ .de macro end
Define or redefine
2002-10-11 08:52:17 +00:00
.I macro
2000-12-05 18:49:44 +00:00
until
.request .end
is called.
.
2001-07-10 17:09:00 +00:00
.REQ .de1 macro
Same as
.request .de
but with compatibility mode switched off during macro expansion.
.
.REQ .de1 macro end
Same as
.request .de
but with compatibility mode switched off during macro expansion.
.
2002-10-11 08:52:17 +00:00
.REQ .defcolor color scheme component
Define or redefine a color with name
.IR color .
.I scheme
can be
.BR rgb ,
.BR cym ,
.BR cymk ,
.BR gray ,
or
.BR grey .
.I component
can be single components specified as fractions in the range 0 to 1
(default scaling indicator\~\c
.scaleindicator f ),
as a string of two-digit hexadecimal color components with a leading
.BR # ,
or as a string of four-digit hexadecimal components with two leading
.BR # .
The color
.B default
can't be redefined.
.
2001-04-17 12:12:05 +00:00
.REQ .dei macro
Define or redefine a macro whose name is contained in the string register
2002-10-11 08:52:17 +00:00
.I macro
2001-04-17 12:12:05 +00:00
until
2002-10-11 08:52:17 +00:00
.B ..\&
is encountered.
2001-04-17 12:12:05 +00:00
.
.REQ .dei macro end
Define or redefine a macro indirectly.
2002-10-11 08:52:17 +00:00
.I macro
2001-04-17 12:12:05 +00:00
and
2002-10-11 08:52:17 +00:00
.I end
2001-04-17 12:12:05 +00:00
are string registers whose contents are interpolated for the macro name
and the end macro, respectively.
.
2005-10-20 10:45:19 +00:00
.REQ .dei1 macro
Same as
.request .dei
but with compatibility mode switched off during macro expansion.
.
.REQ .dei1 macro end
Same as
.request .dei
but with compatibility mode switched off during macro expansion.
.
2000-12-05 18:49:44 +00:00
.REQ .di
End current diversion.
.
.REQ .di macro
Divert to
2002-10-11 08:52:17 +00:00
.I macro .
2000-12-05 18:49:44 +00:00
.
.REQ .do name
Interpret
.request .name
2001-07-10 17:09:00 +00:00
with compatibility mode disabled.
2000-12-05 18:49:44 +00:00
.
.REQ .ds stringvar anything
Set
2002-10-11 08:52:17 +00:00
.I stringvar
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR anything .
.
.REQ .ds1 stringvar anything
Same as
.request .ds
but with compatibility mode switched off during string expansion.
2000-12-05 18:49:44 +00:00
.
.REQ .dt N trap
Set diversion trap to position
2002-10-11 08:52:17 +00:00
.I N
(default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator v ).
.
.REQ .ec
Reset escape character to
2002-10-11 08:52:17 +00:00
.squoted_char \[rs] .
2000-12-05 18:49:44 +00:00
.
.REQ .ec c
Set escape character to
2002-10-11 08:52:17 +00:00
.IR c .
2000-12-05 18:49:44 +00:00
.
2001-04-17 12:12:05 +00:00
.REQ .ecr
Restore escape character saved with
.request .ecs .
.
.REQ .ecs
Save current escape character.
.
2000-12-05 18:49:44 +00:00
.REQ .el anything
Else part for if-else (\c
2002-10-11 08:52:17 +00:00
.request ie )
2000-12-05 18:49:44 +00:00
request.
.
.REQ .em macro
The
2002-10-11 08:52:17 +00:00
.I macro
2000-12-05 18:49:44 +00:00
will be run after the end of input.
.
.REQ .eo
Turn off escape character mechanism.
.
.REQ .ev
Switch to previous environment.
.
.REQ .ev env
Push down environment number or name
2002-10-11 08:52:17 +00:00
.I env
2000-12-05 18:49:44 +00:00
and switch to it.
.
.REQ .evc env
Copy the contents of environment
2002-10-11 08:52:17 +00:00
.I env
2000-12-05 18:49:44 +00:00
to the current environment.
No pushing or popping.
.
.REQ .ex
Exit from roff processing.
.
2001-04-17 12:12:05 +00:00
.REQ .fam
Return to previous font family.
.
2000-12-05 18:49:44 +00:00
.REQ .fam name
Set the current font family to
2002-10-11 08:52:17 +00:00
.IR name .
2000-12-05 18:49:44 +00:00
.
.REQ .fc
Disable field mechanism.
.
.REQ .fc a
Set field delimiter to
2002-10-11 08:52:17 +00:00
.I a
2000-12-05 18:49:44 +00:00
and pad character to space.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REQ .fc a b
Set field delimiter to
2002-10-11 08:52:17 +00:00
.I a
2000-12-05 18:49:44 +00:00
and pad character to
2002-10-11 08:52:17 +00:00
.IR b .
.
.REQ .fchar c anything
Define fallback character
.I c
as string
.IR anything .
2000-12-05 18:49:44 +00:00
.
2005-10-20 10:45:19 +00:00
.REQ .fcolor
Set fill color to previous fill color.
.
.REQ .fcolor c
Set fill color to
.IR c .
.
2000-12-05 18:49:44 +00:00
.REQ .fi
Fill output lines.
.
.REQ .fl
Flush output buffer.
.
.REQ .fp n font
Mount
2002-10-11 08:52:17 +00:00
.I font
2000-12-05 18:49:44 +00:00
on position
2002-10-11 08:52:17 +00:00
.IR n .
2000-12-05 18:49:44 +00:00
.
.REQ .fp n internal external
Mount font with long
2002-10-11 08:52:17 +00:00
.I external
2000-12-05 18:49:44 +00:00
name to short
2002-10-11 08:52:17 +00:00
.I internal
2000-12-05 18:49:44 +00:00
name on position
2002-10-11 08:52:17 +00:00
.IR n .
2000-12-05 18:49:44 +00:00
.
2003-05-01 13:09:50 +00:00
.REQ .fschar f c anything
Define fallback character
.I c
for font
.I f
as string
.IR anything .
.
.REQ .fspecial font
Reset list of special fonts for
.I font
to be empty.
.
2002-10-11 08:52:17 +00:00
.REQ .fspecial font s1 s2 .\|.\|.\&
2000-12-05 18:49:44 +00:00
When the current font is
2002-10-11 08:52:17 +00:00
.IR font ,
2000-12-05 18:49:44 +00:00
then the fonts
2002-10-11 08:52:17 +00:00
.IR s1 ,
.IR s2 ,
.I .\|.\|.\&
2000-12-05 18:49:44 +00:00
will be special.
.
.REQ .ft
Return to previous font.
Same as
2002-10-11 08:52:17 +00:00
.request \[rs]f[]
or
.request \[rs]fP .
.
2000-12-05 18:49:44 +00:00
.REQ .ft font
Change to font name or number
2002-10-11 08:52:17 +00:00
.IR font ;
2000-12-05 18:49:44 +00:00
same as
2002-10-11 08:52:17 +00:00
.esc[] f font
2000-12-05 18:49:44 +00:00
escape sequence.
.
.REQ .ftr font1 font2
Translate
2002-10-11 08:52:17 +00:00
.I font1
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR font2 .
2000-12-05 18:49:44 +00:00
.
2005-10-20 10:45:19 +00:00
.REQ .gcolor
Set glyph color to previous glyph color.
.
.REQ .gcolor c
Set glyph color to
.IR c .
.
2000-12-05 18:49:44 +00:00
.REQ .hc
Remove additional hyphenation indicator character.
.
.REQ .hc c
2002-10-11 08:52:17 +00:00
Set up additional hyphenation indicator character\~\c
.IR c .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .hcode c1 code1 c2 code2 .\|.\|.\&
2000-12-05 18:49:44 +00:00
Set the hyphenation code of character
2002-10-11 08:52:17 +00:00
.I c1
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR code1 ,
2000-12-05 18:49:44 +00:00
that of
2002-10-11 08:52:17 +00:00
.I c2
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR code2 ,
2000-12-05 18:49:44 +00:00
etc.
.
.REQ .hla lang
Set the current hyphenation language to
2002-10-11 08:52:17 +00:00
.IR lang .
2000-12-05 18:49:44 +00:00
.
.REQ .hlm n
Set the maximum number of consecutive hyphenated lines to
2002-10-11 08:52:17 +00:00
.IR n .
2000-12-05 18:49:44 +00:00
.
.REQ .hpf file
Read hyphenation patterns from
2002-10-11 08:52:17 +00:00
.IR file .
.
.REQ .hpfa file
Append hyphenation patterns from
.IR file .
.
.REQ .hpfcode file
Set input mapping for
.request .hpf .
2000-12-05 18:49:44 +00:00
.
.REQ .hw words
List of
2002-10-11 08:52:17 +00:00
.I words
2000-12-05 18:49:44 +00:00
with exceptional hyphenation.
.
.REQ .hy N
Switch to hyphenation mode
2002-10-11 08:52:17 +00:00
.IR N .
2000-12-05 18:49:44 +00:00
.
.REQ .hym n
Set the hyphenation margin to
2002-10-11 08:52:17 +00:00
.I n
(default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
.
.REQ .hys n
Set the hyphenation space to
2002-10-11 08:52:17 +00:00
.IR n .
2000-12-05 18:49:44 +00:00
.
.REQ .ie cond anything
If
2002-10-11 08:52:17 +00:00
.I cond
2000-12-05 18:49:44 +00:00
then
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
else goto
.request .el .
.
.REQ .if cond anything
If
2002-10-11 08:52:17 +00:00
.I cond
2000-12-05 18:49:44 +00:00
then
2002-10-11 08:52:17 +00:00
.IR anything ;
2000-12-05 18:49:44 +00:00
otherwise do nothing.
.
.REQ .ig
Ignore text until
2002-10-11 08:52:17 +00:00
.B ..\&
is encountered.
2000-12-05 18:49:44 +00:00
.
.REQ .ig end
Ignore text until
.request .end .
.
.REQ .in
Change to previous indent value.
.
2002-10-11 08:52:17 +00:00
.REQ .in \[+-]N
2000-12-05 18:49:44 +00:00
Change indent according to
2002-10-11 08:52:17 +00:00
.I \[+-]N
(default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
.
.REQ .it N trap
2002-10-11 08:52:17 +00:00
Set an input-line count trap for the next
.I N
lines.
.
.REQ .itc N trap
Same as
.request .it
but count lines interrupted with
.esc c
as one line.
2000-12-05 18:49:44 +00:00
.
.REQ .kern
Enable pairwise kerning.
.
.REQ .kern n
If
2002-10-11 08:52:17 +00:00
.I n
2000-12-05 18:49:44 +00:00
is zero, disable pairwise kerning, otherwise enable it.
.
.REQ .lc
Remove leader repetition character.
.
.REQ .lc c
2002-10-11 08:52:17 +00:00
Set leader repetition character to\~\c
.IR c .
2000-12-05 18:49:44 +00:00
.
.REQ .length register anything
Write the length of the string
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
in
2002-10-11 08:52:17 +00:00
.IR register .
2000-12-05 18:49:44 +00:00
.
2001-04-17 12:12:05 +00:00
.REQ .linetabs
Enable line-tabs mode (i.e., calculate tab positions relative to output
line).
.
.REQ .linetabs n
If
2002-10-11 08:52:17 +00:00
.I n
2001-04-17 12:12:05 +00:00
is zero, disable line-tabs mode, otherwise enable it.
.
2003-05-01 13:09:50 +00:00
.REQ .lf N
Set input line number to
.IR N .
.
2000-12-05 18:49:44 +00:00
.REQ .lf N file
Set input line number to
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
and filename to
2002-10-11 08:52:17 +00:00
.IR file .
2000-12-05 18:49:44 +00:00
.
.REQ .lg N
Ligature mode on if
2002-10-11 08:52:17 +00:00
.IR N >0.
2000-12-05 18:49:44 +00:00
.
.REQ .ll
Change to previous line length.
.
2002-10-11 08:52:17 +00:00
.REQ .ll \[+-]N
2000-12-05 18:49:44 +00:00
Set line length according to
2002-10-11 08:52:17 +00:00
.I \[+-]N
2000-12-05 18:49:44 +00:00
(default size
.scalednumber 6.5 i ,
2002-10-11 08:52:17 +00:00
default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
.
.REQ .ls
Change to the previous value of additional intra-line skip.
.
.REQ .ls N
Set additional intra-line skip value to
2002-10-11 08:52:17 +00:00
.IR N ,
2000-12-05 18:49:44 +00:00
i.e.,
2002-10-11 08:52:17 +00:00
.IR N -1
2000-12-05 18:49:44 +00:00
blank lines are inserted after each text output line.
.
2002-10-11 08:52:17 +00:00
.REQ .lt \[+-]N
Length of title (default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
.
.REQ .mc
Margin character off.
.
.REQ .mc c
Print character
2002-10-11 08:52:17 +00:00
.I c
2000-12-05 18:49:44 +00:00
after each text line at actual distance from right margin.
.
.REQ .mc c N
Set margin character to
2002-10-11 08:52:17 +00:00
.I c
2000-12-05 18:49:44 +00:00
and distance to
2002-10-11 08:52:17 +00:00
.I N
from right margin (default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
.
.REQ .mk register
Mark current vertical position in
2002-10-11 08:52:17 +00:00
.IR register .
2000-12-05 18:49:44 +00:00
.
.REQ .mso file
The same as the .so request except that
.I file
2001-04-17 12:12:05 +00:00
is searched in the tmac directories.
2000-12-05 18:49:44 +00:00
.
.REQ .na
No output-line adjusting.
.
.REQ .ne
Need a one-line vertical space.
.
.REQ .ne N
Need
2002-10-11 08:52:17 +00:00
.I N
vertical space (default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator v ).
.
.REQ .nf
No filling or adjusting of output-lines.
.
.REQ .nh
No hyphenation.
.
.REQ .nm
Number mode off.
.
2002-10-11 08:52:17 +00:00
.REQ .nm \[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP
2000-12-05 18:49:44 +00:00
In line number mode, set number, multiple, spacing, and indent.
.
.REQ .nn
Do not number next line.
.
.REQ .nn N
Do not number next
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
lines.
.
2001-04-17 12:12:05 +00:00
.REQ .nop anything
Always execute
2002-10-11 08:52:17 +00:00
.IR anything .
2001-04-17 12:12:05 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .nr register \[+-]N M
2000-12-05 18:49:44 +00:00
Define or modify
2002-10-11 08:52:17 +00:00
.I register
2000-12-05 18:49:44 +00:00
using
2002-10-11 08:52:17 +00:00
.I \[+-]N
2000-12-05 18:49:44 +00:00
with auto-increment
2002-10-11 08:52:17 +00:00
.IR M .
2000-12-05 18:49:44 +00:00
.
.REQ .nroff
Make the built-in condition
.B n
true and
.B t
false.
.
.REQ .ns
Turn no-space mode on.
.
2002-10-11 08:52:17 +00:00
.REQ .nx
Immediately jump to end of current file.
.
2000-12-05 18:49:44 +00:00
.REQ .nx filename
Next file.
.
.REQ .open stream filename
Open
.register filename
for writing and associate the stream named
.register stream
with it.
.
.REQ .opena stream filename
Like
.request .open
but append to it.
.
.REQ .os
Output vertical distance that was saved by the
2002-10-11 08:52:17 +00:00
.request sv
2000-12-05 18:49:44 +00:00
request.
.
2002-10-11 08:52:17 +00:00
.REQ .output string
Emit
.I string
directly to intermediate output, allowing leading whitespace if
.I string
starts with
.character \[dq]
(which will be stripped off).
.
2000-12-05 18:49:44 +00:00
.REQ .pc
2002-10-11 08:52:17 +00:00
Reset page number character to\~\c
.squoted_char % .
2000-12-05 18:49:44 +00:00
.
.REQ .pc c
Page number character.
.
.REQ .pi program
Pipe output to
2002-10-11 08:52:17 +00:00
.I program
2000-12-05 18:49:44 +00:00
(nroff only).
.
.REQ .pl
Set page length to default
.scalednumber 11 i .
The current page length is stored in
.register .p .
.
2002-10-11 08:52:17 +00:00
.REQ .pl \[+-]N
2000-12-05 18:49:44 +00:00
Change page length to
2002-10-11 08:52:17 +00:00
.I \[+-]N
(default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator v ).
.
.REQ .pm
Print macro names and sizes (number of blocks of 128 bytes).
.
.REQ ".pm t"
Print only total of sizes of macros (number of 128 bytes blocks).
.
2002-10-11 08:52:17 +00:00
.REQ .pn \[+-]N
2000-12-05 18:49:44 +00:00
Next page number
2002-10-11 08:52:17 +00:00
.IR N .
2000-12-05 18:49:44 +00:00
.
.REQ .pnr
Print the names and contents of all currently defined number registers
on stderr.
.
.REQ .po
2002-10-11 08:52:17 +00:00
Change to previous page offset.
.
The current page offset is available in
2000-12-05 18:49:44 +00:00
.register .o .
.
2002-10-11 08:52:17 +00:00
.REQ .po \[+-]N
2000-12-05 18:49:44 +00:00
Page offset
2002-10-11 08:52:17 +00:00
.IR N .
2000-12-05 18:49:44 +00:00
.
.REQ .ps
Return to previous point-size.
2002-10-11 08:52:17 +00:00
.REQ .ps \[+-]N
2000-12-05 18:49:44 +00:00
Point size; same as
2002-10-11 08:52:17 +00:00
.esc[] s \[+-]N .
2000-12-05 18:49:44 +00:00
.
.REQ .psbb filename
Get the bounding box of a PostScript image
2002-10-11 08:52:17 +00:00
.IR filename .
2000-12-05 18:49:44 +00:00
.
.REQ .pso command
This behaves like the
2002-10-11 08:52:17 +00:00
.request so
2000-12-05 18:49:44 +00:00
request except that input comes from the standard output of
2002-10-11 08:52:17 +00:00
.IR command .
2000-12-05 18:49:44 +00:00
.
.REQ .ptr
Print the names and positions of all traps (not including input line
traps and diversion traps) on stderr.
.
2002-10-11 08:52:17 +00:00
.REQ .pvs
Change to previous post-vertical line spacing.
.
.REQ .pvs \[+-]N
Change post-vertical line spacing according to
.I \[+-]N
(default scaling indicator\~\c
.scaleindicator p ).
.
.REQ .rchar c1 c2 .\|.\|.\&
2000-12-05 18:49:44 +00:00
Remove the definitions of characters
2002-10-11 08:52:17 +00:00
.IR c1 ,
.IR c2 ,
.I .\|.\|.\&
2000-12-05 18:49:44 +00:00
.
.REQ .rd prompt
Read insertion.
.
2001-04-17 12:12:05 +00:00
.REQ .return
Return from a macro.
.
2005-10-20 10:45:19 +00:00
.REQ .return anything
Return twice, namely from the macro at the current level and from the macro
one level higher.
.
2003-05-01 13:09:50 +00:00
.REQ .rfschar f c1 c2 .\|.\|.\&
Remove the definitions of characters
.IR c1 ,
.IR c2 ,
.I .\|.\|.\&
for font
.IR f .
.
2000-12-05 18:49:44 +00:00
.REQ .rj n
Right justify the next
2002-10-11 08:52:17 +00:00
.I n
2000-12-05 18:49:44 +00:00
input lines.
.
.REQ .rm name
Remove request, macro, or string
2002-10-11 08:52:17 +00:00
.IR name .
2000-12-05 18:49:44 +00:00
.
.REQ .rn old new
Rename request, macro, or string
2002-10-11 08:52:17 +00:00
.I old
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR new .
2000-12-05 18:49:44 +00:00
.
.REQ .rnn reg1 reg2
Rename register
2002-10-11 08:52:17 +00:00
.I reg1
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR reg2 .
2000-12-05 18:49:44 +00:00
.
.REQ .rr register
Remove
2002-10-11 08:52:17 +00:00
.IR register .
2000-12-05 18:49:44 +00:00
.
.REQ .rs
Restore spacing; turn no-space mode off.
.
2002-10-11 08:52:17 +00:00
.REQ .rt \[+-]N
2000-12-05 18:49:44 +00:00
Return
.I (upward only)
2002-10-11 08:52:17 +00:00
to marked vertical place (default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator v ).
.
2003-05-01 13:09:50 +00:00
.REQ .schar c anything
Define global fallback character
.I c
as string
.IR anything .
.
2000-12-05 18:49:44 +00:00
.REQ .shc
Reset soft hyphen character to
.esc (hy .
.
.REQ .shc c
Set the soft hyphen character to
2002-10-11 08:52:17 +00:00
.IR c .
2000-12-05 18:49:44 +00:00
.
.REQ .shift n
In a macro, shift the arguments by
2002-10-11 08:52:17 +00:00
.IR n \~\c
2000-12-05 18:49:44 +00:00
positions.
.
2002-10-11 08:52:17 +00:00
.REQ .sizes s1 s2 .\|.\|.\& sn \fB[0]\fP
Set available font sizes similar to the
.B sizes
command in a
.B DESC
file.
.
2000-12-05 18:49:44 +00:00
.REQ .so filename
Include source file.
.
.REQ .sp
Skip one line vertically.
.
.REQ .sp N
Space vertical distance
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
up or down according to sign of
2002-10-11 08:52:17 +00:00
.I N
(default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator v ).
.
2003-05-01 13:09:50 +00:00
.REQ .special
Reset global list of special fonts to be empty.
.
2002-10-11 08:52:17 +00:00
.REQ .special s1 s2 .\|.\|.\&
2000-12-05 18:49:44 +00:00
Fonts
2002-10-11 08:52:17 +00:00
.IR s1 ,
.IR s2 ,
etc.\& are special and will be searched for characters not in the
current font.
.
.REQ .spreadwarn
Toggle the spread warning on and off without changing its value.
.
.REQ .spreadwarn limit
Emit a warning if each space in an output line is widened by
.I limit
or more (default scaling indicator\~\c
.scaleindicator m ).
2000-12-05 18:49:44 +00:00
.
.REQ .ss N
Space-character size set to
2002-10-11 08:52:17 +00:00
.IR N /12
2000-12-05 18:49:44 +00:00
of the spacewidth in the current font.
.
.REQ .ss N M
Space-character size set to
2002-10-11 08:52:17 +00:00
.IR N /12
2000-12-05 18:49:44 +00:00
and sentence space size set to
2002-10-11 08:52:17 +00:00
.IR M /12
of the spacewidth in the current font (\f[CR]\[eq]1/3 em\f[]).
2000-12-05 18:49:44 +00:00
.
.REQ .sty n style
Associate
2002-10-11 08:52:17 +00:00
.I style
2000-12-05 18:49:44 +00:00
with font position
2002-10-11 08:52:17 +00:00
.IR n .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .substring xx n1 n2
Replace the string named
.I xx
2000-12-05 18:49:44 +00:00
with the substring defined by the indices
2002-10-11 08:52:17 +00:00
.I n1
2000-12-05 18:49:44 +00:00
and
2002-10-11 08:52:17 +00:00
.IR n2 .
2000-12-05 18:49:44 +00:00
.
.REQ .sv
Save
.scalednumber 1 v
of vertical space.
.
.REQ .sv N
Save the vertical distance
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
for later output with
2002-10-11 08:52:17 +00:00
.request os
2000-12-05 18:49:44 +00:00
request.
.
.REQ .sy command-line
Execute program
2002-10-11 08:52:17 +00:00
.IR command-line .
2000-12-05 18:49:44 +00:00
.
.REQ ".ta T" N
Set tabs after every position that is a multiple of
2002-10-11 08:52:17 +00:00
.I N
(default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
2002-10-11 08:52:17 +00:00
.REQ .ta n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn
2000-12-05 18:49:44 +00:00
Set tabs at positions
2002-10-11 08:52:17 +00:00
.IR n1 ,
.IR n2 ,
.Text .\|.\|.,
.IR nn ,
2000-12-05 18:49:44 +00:00
then set tabs at
2002-10-11 08:52:17 +00:00
.IR nn + r1 ,
.IR nn + r2 ,
.Text .\|.\|.,
.IR nn + rn ,
2000-12-05 18:49:44 +00:00
then at
2002-10-11 08:52:17 +00:00
.IR nn + rn + r1 ,
.IR nn + rn + r2 ,
.Text .\|.\|.,
.IR nn + rn + rn ,
2000-12-05 18:49:44 +00:00
and so on.
.
.\".REQ .tar
.\"Restore internally saved tab positions.
.\".
.\".REQ .tas
.\"Save tab positions internally.
.
.REQ .tc
Remove tab repition character.
.REQ .tc c
2002-10-11 08:52:17 +00:00
Set tab repetition character to\~\c
.IR c .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .ti \[+-]N
Temporary indent next line (default scaling indicator\~\c
2000-12-05 18:49:44 +00:00
.scaleindicator m ).
.
.REQ .tkf font s1 n1 s2 n2
Enable track kerning for
2002-10-11 08:52:17 +00:00
.IR font .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .tl \f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]
2000-12-05 18:49:44 +00:00
Three-part title.
.
.REQ .tm anything
Print
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
on terminal (UNIX standard message output).
.
2001-04-17 12:12:05 +00:00
.REQ .tm1 anything
Print
2002-10-11 08:52:17 +00:00
.I anything
on terminal (UNIX standard message output), allowing leading
whitespace if
.I anything
2001-04-17 12:12:05 +00:00
starts with
2002-10-11 08:52:17 +00:00
.character \[dq]
2001-04-17 12:12:05 +00:00
(which will be stripped off).
.
.REQ .tmc anything
Similar to
.request .tm1
without emitting a final newline.
.
2002-10-11 08:52:17 +00:00
.REQ .tr abcd.\|.\|.\&
2000-12-05 18:49:44 +00:00
Translate
2002-10-11 08:52:17 +00:00
.I a
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR b ,
.I c
2000-12-05 18:49:44 +00:00
to
2002-10-11 08:52:17 +00:00
.IR d ,
etc.\& on output.
2000-12-05 18:49:44 +00:00
.
2001-04-17 12:12:05 +00:00
.REQ .trf filename
Transparently output the contents of file
2002-10-11 08:52:17 +00:00
.IR filename .
2001-04-17 12:12:05 +00:00
.
2002-10-11 08:52:17 +00:00
.REQ .trin abcd.\|.\|.\&
2000-12-05 18:49:44 +00:00
This is the same as the
2002-10-11 08:52:17 +00:00
.request tr
request except that the
.B asciify
request will use the character code (if any) before the character
translation.
.
.REQ .trnt abcd.\|.\|.\&
This is the same as the
.request tr
2000-12-05 18:49:44 +00:00
request except that the translations do not apply to text that is
transparently throughput into a diversion with
.esc ! .
.
.REQ .troff
Make the built-in condition
.B t
true and
.B n
false.
.
.REQ .uf font
Underline font set to
2002-10-11 08:52:17 +00:00
.I font
2000-12-05 18:49:44 +00:00
(to be switched to by
.request .ul ).
.
.REQ .ul N
Underline (italicize in troff)
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
input lines.
.
2001-04-17 12:12:05 +00:00
.REQ .unformat diversion
Unformat space characters and tabs, preserving font information in
2002-10-11 08:52:17 +00:00
.IR diversion .
2000-12-05 18:49:44 +00:00
.REQ .vpt n
Enable vertical position traps if
2002-10-11 08:52:17 +00:00
.I n
2000-12-05 18:49:44 +00:00
is non-zero, disable them otherwise.
.
.REQ .vs
Change to previous vertical base line spacing.
.
2002-10-11 08:52:17 +00:00
.REQ .vs \[+-]N
Set vertical base line spacing according to
.I \[+-]N
(default scaling indicator\~\c
.scaleindicator p ).
2000-12-05 18:49:44 +00:00
Default value is
.scalednumber 12 p .
.
.REQ .warn n
Set warnings code to
2002-10-11 08:52:17 +00:00
.IR n .
.
.REQ .warnscale si
Set scaling indicator used in warnings to
.IR si .
.
.REQ .wh N
Remove (first) trap at position
.IR N .
2000-12-05 18:49:44 +00:00
.
.REQ .wh N trap
Set location trap; negative means from page bottom.
.
.REQ .while cond anything
While condition
2002-10-11 08:52:17 +00:00
.I cond
2000-12-05 18:49:44 +00:00
is true, accept
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
as input.
.
.REQ .write stream anything
Write
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
to the stream named
2002-10-11 08:52:17 +00:00
.IR stream .
.
.REQ .writec stream anything
Similar to
.request .write
without emitting a final newline.
.
.REQ .writem stream xx
Write contents of macro or string
.I xx
to the stream named
.IR stream .
2000-12-05 18:49:44 +00:00
.
.PD
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Besides these standard groff requests, there might be further macro
calls.
They can originate from a macro package (see
.BR roff (@MAN7EXT@)
for an overview) or from a preprocessor.
2002-10-11 08:52:17 +00:00
.
.P
Preprocessor macros are easy to be recognized.
.
They enclose their code into a pair of characteristic macros.
.
.P
2000-12-05 18:49:44 +00:00
.TS
box, center, tab (@);
c | c | c
CfCB | CfCB | CfCB.
preprocessor@start macro@ end macro
=
eqn@.PS@.PE
grap@.G1@.G2
grn@.GS@.GE
pic@.PS@.PE
refer@.R1@.R2
2002-10-11 08:52:17 +00:00
soelim@\f[I]none@\f[I]none
2000-12-05 18:49:44 +00:00
tbl@.TS@.TE
.TE
2002-10-11 08:52:17 +00:00
.P
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.SH "ESCAPE SEQUENCES"
.\" --------------------------------------------------------------------
.
2002-10-11 08:52:17 +00:00
Escape sequences are in-line language elements usually introduced by a
backslash
.squoted_char \[rs]
2000-12-05 18:49:44 +00:00
and followed by an escape name and sometimes by a required argument.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Input processing is continued directly after the escaped character or
2002-10-11 08:52:17 +00:00
the argument resp.\& without an intervening separation character.
.
So there must be a way to determine the end of the escape name and the
end of the argument.
.
.P
This is done by enclosing names (escape name and arguments consisting
of a variable name) by a pair of brackets
.BI \[lB] name \[rB]
and constant arguments (number expressions and characters) by
apostrophes (ASCII 0x27) like
.BI \[cq] constant \[cq] \f[R].
.
.P
2000-12-05 18:49:44 +00:00
There are abbreviations for short names.
2002-10-11 08:52:17 +00:00
.
Two character escape names can be specified by an opening parenthesis
like
.esc ( xy
2000-12-05 18:49:44 +00:00
without a closing counterpart.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
And all one-character names different from the special characters
2002-10-11 08:52:17 +00:00
.squoted_char [
2000-12-05 18:49:44 +00:00
and
2002-10-11 08:52:17 +00:00
.squoted_char (
2000-12-05 18:49:44 +00:00
can even be specified without a marker in the form
2002-10-11 08:52:17 +00:00
.esc c .
.
.P
Constant arguments of length\~1 can omit the marker apostrophes, too,
but there is no two-character analogue.
.
.P
While 1-character escape sequences are mainly used for in-line
functions and system related tasks, the 2-letter names following the
.esc (
2000-12-05 18:49:44 +00:00
construct are used for special characters predefined by the roff system.
2002-10-11 08:52:17 +00:00
.
Escapes sequences with names of more than two characters
.esc[] "" name
denote user defined named characters (see the
.request char
2000-12-05 18:49:44 +00:00
request).
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.SS "Single Character Escapes"
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
.
.PD 0
.
.\" --------- comments ---------
.
2002-10-11 08:52:17 +00:00
.ESC \[dq]
2000-12-05 18:49:44 +00:00
Beginning of a comment.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Everything up to the end of the line is ignored.
.
.ESC #
Everything up to and including the next newline is ignored.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
This is interpreted in copy mode.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
This is like
2002-10-11 08:52:17 +00:00
.esc \[dq]
except that the terminating newline is ignored as well.
2000-12-05 18:49:44 +00:00
.
.\" --------- strings ---------
.
2002-10-11 08:52:17 +00:00
.ESC *\f[I]s\f[]
2000-12-05 18:49:44 +00:00
The string stored in the string variable with 1-character name
2002-10-11 08:52:17 +00:00
.IR s .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.ESC *(\f[I]st\f[]
2000-12-05 18:49:44 +00:00
The string stored in the string variable with 2-character name
2002-10-11 08:52:17 +00:00
.IR st .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.ESC[] * "stringvar arg1 arg2 .\|.\|."
2000-12-05 18:49:44 +00:00
The string stored in the string variable with arbitrary length name
2002-10-11 08:52:17 +00:00
.IR stringvar ,
taking
.IR arg1 ,
.IR arg2 ,
.I .\|.\|.\&
as arguments.
2000-12-05 18:49:44 +00:00
.
.\" --------- macro arguments ---------
.
.ESC $0
2002-10-11 08:52:17 +00:00
The name by which the current macro was invoked.
.
The
.request als
2000-12-05 18:49:44 +00:00
request can make a macro have more than one name.
.
.ESC $ x
2002-10-11 08:52:17 +00:00
Macro or string argument with 1-place number
.IR x ,
2000-12-05 18:49:44 +00:00
where
2002-10-11 08:52:17 +00:00
.I x
2000-12-05 18:49:44 +00:00
is a digit between 1 and 9.
.
.ESC $( xy
2002-10-11 08:52:17 +00:00
Macro or string argument with 2-digit number
.IR xy .
2000-12-05 18:49:44 +00:00
.
.ESC[] $ nexp
2002-10-11 08:52:17 +00:00
Macro or string argument with number
.IR nexp ,
2000-12-05 18:49:44 +00:00
where
2002-10-11 08:52:17 +00:00
.I nexp
is a numerical expression evaluating to an integer \[>=]1.
2000-12-05 18:49:44 +00:00
.
.ESC $*
2002-10-11 08:52:17 +00:00
In a macro or string, the concatenation of all the arguments separated
by spaces.
2000-12-05 18:49:44 +00:00
.
.ESC $@
2002-10-11 08:52:17 +00:00
In a macro or string, the concatenation of all the arguments with each
surrounded by double quotes, and separated by spaces.
2000-12-05 18:49:44 +00:00
.
.\" --------- escaped characters ---------
.
2002-10-11 08:52:17 +00:00
.ESC \[rs]
2000-12-05 18:49:44 +00:00
reduces to a single backslash; useful to delay its interpretation as
escape character in copy mode.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
For a printable backslash, use
2002-10-11 08:52:17 +00:00
.esc e ,
or even better
.esc [rs] ,
to be independent from the current escape character.
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.ESC \[cq]
The acute accent \[aa]; same as
.esc (aa .
2000-12-05 18:49:44 +00:00
Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
.
.ESC `
2002-10-11 08:52:17 +00:00
The grave accent \[ga]; same as
.esc (ga .
2000-12-05 18:49:44 +00:00
Unescaped: left quote, backquote (ASCII 0x60).
.
.ESC \-
The \- sign in the current font.
.
.ESC .
An uninterpreted dot (period), even at start of line.
.
.ESC %
Default optional hyphenation character.
.
.ESC !
Transparent line indicator.
.
2002-10-11 08:52:17 +00:00
.ESC? anything
2000-12-05 18:49:44 +00:00
In a diversion, this will transparently embed
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
in the diversion.
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
is read in copy mode.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
See also the escape sequences
.esc !
and
.esc ? .
.
.
.\" --------- spacing ---------
.
.ESC \& space
Unpaddable space-size space character (no line break).
.
.ESC 0
Digit width.
.
.ESC |
1/6\ em narrow space character; zero width in nroff.
.
.ESC ^
1/12\ em half-narrow space character; zero width in nroff.
.
.ESC &
Non-printable, zero width character.
.
.ESC )
Like
.esc &
except that it behaves like a character declared with the cflags
request to be transparent for the purposes of end of sentence
recognition.
.
.ESC /
Increases the width of the preceding character so that the spacing
between that character and the following character will be correct if
the following character is a roman character.
.
.ESC ,
Modifies the spacing of the following character so that the spacing
between that character and the preceding character will correct if the
preceding character is a roman character.
.
.ESC ~
Unbreakable space that stretches like a normal inter-word space when a
line is adjusted.
.
2001-04-17 12:12:05 +00:00
.ESC :
Inserts a zero-width break point (similar to
.esc %
but without a soft hyphen character).
.
2002-10-11 08:52:17 +00:00
.ESC "" newline
2000-12-05 18:49:44 +00:00
Ignored newline, for continuation lines.
.
.\" --------- structuring ---------
.
.ESC {
Begin conditional input.
.
.ESC }
End conditional input.
.
.\" --------- longer escape names ---------
.
2002-10-11 08:52:17 +00:00
.ESC ( sc
2000-12-05 18:49:44 +00:00
The special character with 2-character name
2002-10-11 08:52:17 +00:00
.IR sc ,
2000-12-05 18:49:44 +00:00
see section
2002-10-11 08:52:17 +00:00
.BR "Special Characters" .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.ESC[] "" name
2003-05-01 13:09:50 +00:00
The named character (or rather glyph) with arbitrary length name
2002-10-11 08:52:17 +00:00
.IR name .
2000-12-05 18:49:44 +00:00
.
2003-05-01 13:09:50 +00:00
.ESC[] "" "comp1 comp2 .\|.\|."
A composite glyph with components
.IR comp1 ,
.IR comp2 ,
.I .\|.\|.
.
2000-12-05 18:49:44 +00:00
.\" --------- alphabetical escapes ---------
.
.ESC a
Non-interpreted leader character.
.
.ESCq A anything
If
2002-10-11 08:52:17 +00:00
.I anything
2001-04-17 12:12:05 +00:00
is acceptable as a name of a string, macro, diversion, register,
2002-10-11 08:52:17 +00:00
environment or font it expands to\~1, and to\~0 otherwise.
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.ESCq b abc.\|.\|.\&
2000-12-05 18:49:44 +00:00
Bracket building function.
.
2001-04-17 12:12:05 +00:00
.ESCq B anything
If
2002-10-11 08:52:17 +00:00
.I anything
is acceptable as a valid numeric expression it expands to\~1, and
to\~0 otherwise.
2001-04-17 12:12:05 +00:00
.
2000-12-05 18:49:44 +00:00
.ESC c
Interrupt text processing.
.
.ESCq C char
The character called
2002-10-11 08:52:17 +00:00
.IR char ;
2000-12-05 18:49:44 +00:00
same as
2002-10-11 08:52:17 +00:00
.esc[] "" char ,
2000-12-05 18:49:44 +00:00
but compatible to other roff versions.
.
.ESC d
Forward (down) 1/2 em vertical unit (1/2 line in nroff).
.
.ESCq D charseq
Draw a graphical element defined by the characters in
2002-10-11 08:52:17 +00:00
.IR charseq ;
2000-12-05 18:49:44 +00:00
see groff info file for details.
.
.ESC e
Printable version of the current escape character.
.
.ESC E
Equivalent to an escape character, but is not interpreted in copy-mode.
.
.ESC f F
Change to font with 1-character name or 1-digit number
2002-10-11 08:52:17 +00:00
.IR F .
.
.ESC fP
Switch back to previous font.
2000-12-05 18:49:44 +00:00
.
.ESC f( fo
2002-10-11 08:52:17 +00:00
Change to font with 2-character name or 2-digit number
.IR fo .
2000-12-05 18:49:44 +00:00
.
.ESC[] f font
Change to font with arbitrary length name or number expression
2002-10-11 08:52:17 +00:00
.IR font .
.
.ESC[] f ""
Switch back to previous font.
.
.ESC F f
Change to font family with 1-character name
.IR f .
.
.ESC F( fm
Change to font family with 2-character name
.IR fm .
.
.ESC[] F fam
Change to font family with arbitrary length name
.IR fam .
.
.ESC[] F ""
Switch back to previous font family.
2000-12-05 18:49:44 +00:00
.
.ESC[] g reg
Return format of register with name
2002-10-11 08:52:17 +00:00
.I reg
2000-12-05 18:49:44 +00:00
suitable for
.request .af .
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Alternative forms
2002-10-11 08:52:17 +00:00
.escarg g( xy
2000-12-05 18:49:44 +00:00
and
.escarg g x .
.
.ESCq h N
Local horizontal motion; move right
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
(left if negative).
.
.ESCq H N
Set height of current font to
2002-10-11 08:52:17 +00:00
.IR N .
2000-12-05 18:49:44 +00:00
.
.ESC[] k reg
Mark horizontal input place in register with arbitrary length name
2002-10-11 08:52:17 +00:00
.IR reg .
2000-12-05 18:49:44 +00:00
Alternative forms
2002-10-11 08:52:17 +00:00
.escarg k( xy
2000-12-05 18:49:44 +00:00
and
.escarg k x .
.
.ESCq l Nc
Horizontal line drawing function (optionally using character
2002-10-11 08:52:17 +00:00
.IR c ).
2000-12-05 18:49:44 +00:00
.
.ESCq L Nc
Vertical line drawing function (optionally using character
2002-10-11 08:52:17 +00:00
.IR c ).
.
.ESC[] m color
Change to color
.IR color .
.
Alternative forms
.escarg m( co
and
.escarg m c .
.
.ESC[] m ""
Switch back to previous color.
.
.ESC[] M color
Change filling color for closed drawn objects to color
.IR color .
.
Alternative forms
.escarg M( co
and
.escarg M c .
.
.ESC[] M ""
Switch to previous fill color.
2000-12-05 18:49:44 +00:00
.
.ESC n r
2002-10-11 08:52:17 +00:00
The numerical value stored in the register variable with the
1-character name
.IR r .
2000-12-05 18:49:44 +00:00
.
.ESC n( re
2002-10-11 08:52:17 +00:00
The numerical value stored in the register variable with the
2-character name
.IR re .
2000-12-05 18:49:44 +00:00
.
.ESC[] n reg
The numerical value stored in the register variable with arbitrary
2002-10-11 08:52:17 +00:00
length name
.IR reg .
2000-12-05 18:49:44 +00:00
.
.ESCq N n
Typeset the character with code
2002-10-11 08:52:17 +00:00
.I n
in the current font, no special fonts are searched.
.
Useful for adding characters to a font using the
.request char
2000-12-05 18:49:44 +00:00
request.
.
2002-10-11 08:52:17 +00:00
.ESCq o abc.\|.\|.\&
2000-12-05 18:49:44 +00:00
Overstrike characters
2002-10-11 08:52:17 +00:00
.IR a ,
.IR b ,
.IR c ,
2000-12-05 18:49:44 +00:00
etc.
.
2002-10-11 08:52:17 +00:00
.ESC O 0
Disable glyph output.
.
Mainly for internal use.
.
.ESC O 1
Enable glyph output.
.
Mainly for internal use.
.
2000-12-05 18:49:44 +00:00
.ESC p
Break and spread output line.
.
.ESC r
Reverse 1\ em vertical motion (reverse line in nroff).
.
2002-10-11 08:52:17 +00:00
.ESCq R "name\~\[+-]n"
2000-12-05 18:49:44 +00:00
The same as
.request .nr
2002-10-11 08:52:17 +00:00
.I name
.IR \[+-]n .
2000-12-05 18:49:44 +00:00
.
2002-10-11 08:52:17 +00:00
.ESC[] s \[+-]N
2000-12-05 18:49:44 +00:00
Set the point size to
.I N
2002-10-11 08:52:17 +00:00
scaled points.
.
Note the alternative forms
.BI \[rs]s \[+-] [ N ]\c
2000-12-05 18:49:44 +00:00
,
2002-10-11 08:52:17 +00:00
.BI \[rs]s' \[+-]N '\c
.Text ,
.BI \[rs]s \[+-] ' N '\c
.Text ,
.escarg s( \[+-]xy\c
.Text ,
.BI \[rs]s \[+-] ( xy\c
.Text ,
.escarg s \[+-]x .
2000-12-05 18:49:44 +00:00
Same as
2002-10-11 08:52:17 +00:00
.request ps
2000-12-05 18:49:44 +00:00
request.
.
.ESCq S N
Slant output
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
degrees.
.
.ESC t
Non-interpreted horizontal tab.
.
.ESC u
Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
.
.ESCq v N
Local vertical motion; move down
2002-10-11 08:52:17 +00:00
.I N
2000-12-05 18:49:44 +00:00
(up if negative).
.
.ESC[] V env
The contents of the environment variable
2002-10-11 08:52:17 +00:00
.IR env .
.
2000-12-05 18:49:44 +00:00
Alternative forms
2002-10-11 08:52:17 +00:00
.escarg V( xy
2000-12-05 18:49:44 +00:00
and
.escarg V x .
.
.ESCq w string
The width of the character sequence
2002-10-11 08:52:17 +00:00
.IR string .
2000-12-05 18:49:44 +00:00
.
.ESCq x N
Extra line-space function (negative before, positive after).
.
.ESCq X string
Output
2002-10-11 08:52:17 +00:00
.I string
2000-12-05 18:49:44 +00:00
as device control function.
.
.ESC[] Y name
Output string variable or macro
2002-10-11 08:52:17 +00:00
.I name
2000-12-05 18:49:44 +00:00
uninterpreted as device control function.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Alternative forms
2002-10-11 08:52:17 +00:00
.escarg Y( xy
2000-12-05 18:49:44 +00:00
and
.escarg Y x .
.
.ESC z c
Print
2002-10-11 08:52:17 +00:00
.I c
2000-12-05 18:49:44 +00:00
with zero width (without spacing).
.
.ESCq Z anything
Print
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
and then restore the horizontal and vertical position;
2002-10-11 08:52:17 +00:00
.I anything
2000-12-05 18:49:44 +00:00
may not contain tabs or leaders.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.PD
2002-10-11 08:52:17 +00:00
.P
2000-12-05 18:49:44 +00:00
The escape sequences
.esc e ,
.esc . ,
2002-10-11 08:52:17 +00:00
.esc \[dq] ,
2000-12-05 18:49:44 +00:00
.esc $ ,
.esc * ,
.esc a ,
.esc n ,
.esc t ,
.esc g ,
and
.escarg \& newline
are interpreted in copy mode.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Escape sequences starting with
.esc (
or
.esc [
do not represent single character escape sequences, but introduce escape
names with two or more characters.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
If a backslash is followed by a character that does not constitute a
defined escape sequence the backslash is silently ignored and the
character maps to itself.
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.SS "Special Characters"
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
Common special characters are predefined by escape sequences of the
form
.BI \[rs]( xy
2000-12-05 18:49:44 +00:00
with characters
2002-10-11 08:52:17 +00:00
.I x
2000-12-05 18:49:44 +00:00
and
2002-10-11 08:52:17 +00:00
.IR y .
.
2000-12-05 18:49:44 +00:00
Some of these exist in the usual font while most of them are only
2002-10-11 08:52:17 +00:00
available in the special font.
.
Below you'll find a selection of the most important glyphs; a complete
list can be found in
2000-12-05 18:49:44 +00:00
.BR groff_char (@MAN7EXT@).
.RS
2002-10-11 08:52:17 +00:00
.P
2000-12-05 18:49:44 +00:00
.PD 0
.
2002-10-11 08:52:17 +00:00
.ESC (bu
Bullet sign
.ESC (co
Copyright
.ESC (ct
Cent
.ESC (dd
Double dagger
.ESC (de
Degree
.ESC (dg
Dagger
.ESC (rs
Printable double quote
.ESC (em
Em-dash
.ESC (hy
Hyphen
.ESC (rg
Registered sign
.ESC (rs
Printable backslash character
.ESC (sc
Section sign
.ESC (ul
Underline character
.ESC (==
Identical
.ESC (>=
Larger or equal
.ESC (<=
Less or equal
.ESC (!=
Not equal
.ESC (->
Right arrow
.ESC (<-
Left arrow
.ESC (+-
Plus-minus sign
2000-12-05 18:49:44 +00:00
.PD
.RE
.
2002-10-11 08:52:17 +00:00
.
.\" --------------------------------------------------------------------
.SS "Strings"
.\" --------------------------------------------------------------------
.
Strings are defined by the
.request ds
request and can be retrieved by the
.esc *
escape sequence.
.
.P
Strings share their name space with macros.
.
So strings and macros without arguments are roughly equivalent; it is
possible to call a string like a macro and vice-versa, but this often
leads to unpredictable results.
.
The following strings are predefined in groff.
.
.STRING .T
The name of the current output device as specified by the
.option -T
command line option.
.
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
.SH REGISTERS
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Registers are variables that store a value.
In groff, most registers store numerical values (see section
.B NUMERICAL EXPRESSIONS
above), but some can also hold a string value.
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Each register is given a name.
Arbitrary registers can be defined and set with the request
2002-10-11 08:52:17 +00:00
.request nr
.IR register .
.
.P
2000-12-05 18:49:44 +00:00
The value stored in a register can be retrieved by the escape sequences
introduced by
.esc n .
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
Most useful are predefined registers.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
In the following the notation
2002-10-11 08:52:17 +00:00
.I name
2000-12-05 18:49:44 +00:00
is used to refer to a register called
.register name
to make clear that we speak about registers.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Please keep in mind that the
2002-10-11 08:52:17 +00:00
.esc[] n ""
2000-12-05 18:49:44 +00:00
decoration is not part of the register name.
.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.SS "Read-only Registers"
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
The following registers have predefined values that should not be
2002-10-11 08:52:17 +00:00
modified by the user (usually, registers starting with a dot a
read-only).
.
Mostly, they provide information on the current settings or store
results from request calls.
.
.P
2000-12-05 18:49:44 +00:00
.PD 0
2002-10-11 08:52:17 +00:00
.
.REG .$
Number of arguments in the current macro or string.
.
2001-04-17 12:12:05 +00:00
.REG .a
Post-line extra line-space most recently utilized using
2002-10-11 08:52:17 +00:00
.escq x N .
.
2000-12-05 18:49:44 +00:00
.REG .A
2002-10-11 08:52:17 +00:00
Set to\~1 in
2000-12-05 18:49:44 +00:00
.B troff
if option
.B \-A
2002-10-11 08:52:17 +00:00
is used; always\~1 in
2000-12-05 18:49:44 +00:00
.BR nroff .
2002-10-11 08:52:17 +00:00
.
.REG .c
Current input line number.
.
.REG .C
1\~if compatibility mode is in effect, 0\~otherwise.
.
2000-12-05 18:49:44 +00:00
.REG .cdp
The depth of the last character added to the current environment.
It is positive if the character extends below the baseline.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .ce
The number of lines remaining to be centered, as set by the
2002-10-11 08:52:17 +00:00
.request ce
2000-12-05 18:49:44 +00:00
request.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .cht
The height of the last character added to the current environment.
It is positive if the character extends above the baseline.
2002-10-11 08:52:17 +00:00
.
.REG .color
1\~if colors are enabled, 0\~otherwise.
.
2000-12-05 18:49:44 +00:00
.REG .csk
The skew of the last character added to the current environment.
The skew of a character is how far to the right of the center of a character
the center of an accent over that character should be placed.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .d
2005-10-20 10:45:19 +00:00
Current vertical place in current diversion; equal to
2000-12-05 18:49:44 +00:00
.register nl .
2002-10-11 08:52:17 +00:00
.
.REG .ev
The name or number of the current environment (string-valued).
.
.REG .f
Current font number.
.
.REG .fam
The current font family (string-valued).
.
.REG .fn
The current (internal) real font name (string-valued).
.
.REG .fp
The number of the next free font position.
.
2000-12-05 18:49:44 +00:00
.REG .g
Always 1 in GNU troff.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Macros should use it to test if running under groff.
2002-10-11 08:52:17 +00:00
.
.REG .h
Text base-line high-water mark on current page or diversion.
.
.REG .H
Available horizontal resolution in basic units.
.
2003-05-01 13:09:50 +00:00
.REG .height
The current font height as set with
.request \[rs]H .
.
2000-12-05 18:49:44 +00:00
.REG .hla
The current hyphenation language as set by the
.B .hla
request.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .hlc
The number of immediately preceding consecutive hyphenated lines.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .hlm
The maximum allowed number of consecutive hyphenated lines, as set by
the
2002-10-11 08:52:17 +00:00
.request hlm
2000-12-05 18:49:44 +00:00
request.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .hy
The current hyphenation flags (as set by the
2002-10-11 08:52:17 +00:00
.request hy
2000-12-05 18:49:44 +00:00
request).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .hym
The current hyphenation margin (as set by the
2002-10-11 08:52:17 +00:00
.request hym
2000-12-05 18:49:44 +00:00
request).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .hys
The current hyphenation space (as set by the
2002-10-11 08:52:17 +00:00
.request hys
2000-12-05 18:49:44 +00:00
request).
2002-10-11 08:52:17 +00:00
.
.REG .i
Current ident.
.
.REG .in
The indent that applies to the current output line.
.
2001-04-17 12:12:05 +00:00
.REG .int
Positive if last output line contains
.esc c .
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .kern
2002-10-11 08:52:17 +00:00
1\~if pairwise kerning is enabled, 0\~otherwise.
.
.REG .l
Current line length.
.
2000-12-05 18:49:44 +00:00
.REG .lg
The current ligature mode (as set by the
2002-10-11 08:52:17 +00:00
.request lg
2000-12-05 18:49:44 +00:00
request).
2002-10-11 08:52:17 +00:00
.
2001-04-17 12:12:05 +00:00
.REG .linetabs
The current line-tabs mode (as set by the
2002-10-11 08:52:17 +00:00
.request linetabs
2001-04-17 12:12:05 +00:00
request).
2002-10-11 08:52:17 +00:00
.
.REG .ll
The line length that applies to the current output line.
.
2000-12-05 18:49:44 +00:00
.REG .lt
The title length (as set by the
2002-10-11 08:52:17 +00:00
.request lt
2000-12-05 18:49:44 +00:00
request).
2002-10-11 08:52:17 +00:00
.
2005-10-20 10:45:19 +00:00
.REG .m
The current drawing color (string-valued).
.
.REG .M
The current background color (string-valued).
.
2002-10-11 08:52:17 +00:00
.REG .n
Length of text portion on previous output line.
.
2000-12-05 18:49:44 +00:00
.REG .ne
The amount of space that was needed in the last
2002-10-11 08:52:17 +00:00
.request ne
2000-12-05 18:49:44 +00:00
request that caused a trap to be sprung.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
Useful in conjunction with
.register .trunc .
2002-10-11 08:52:17 +00:00
.
2001-07-10 17:09:00 +00:00
.REG .ns
2002-10-11 08:52:17 +00:00
1\~if in no-space mode, 0\~otherwise.
.
.REG .o
Current page offset.
.
.REG .p
Current page length.
.
2003-05-01 13:09:50 +00:00
.REG .pe
1\~during page ejection, 0\~otherwise.
.
2000-12-05 18:49:44 +00:00
.REG .pn
The number of the next page: either the value set by a
2002-10-11 08:52:17 +00:00
.request pn
2000-12-05 18:49:44 +00:00
request, or the number of the current page plus\ 1.
2002-10-11 08:52:17 +00:00
.
.REG .ps
The current pointsize in scaled points.
.
.REG .psr
The last-requested pointsize in scaled points.
.
.REG .pvs
The current post-vertical line spacing.
.
2000-12-05 18:49:44 +00:00
.REG .rj
The number of lines to be right-justified as set by the rj request.
2002-10-11 08:52:17 +00:00
.
.REG .s
Current point size as a decimal fraction.
.
2003-05-01 13:09:50 +00:00
.REG .slant
The slant of the current font as set with
.request \[rs]S .
.
2000-12-05 18:49:44 +00:00
.REG .sr
The last requested pointsize in points as a decimal fraction
(string-valued).
2002-10-11 08:52:17 +00:00
.
2005-10-20 10:45:19 +00:00
.REG .ss
The value of the parameters set by the first argument of the
.request ss
request.
.
.REG .sss
The value of the parameters set by the second argument of the
.request ss
request.
.
.REG .sty
The current font style (string-valued).
.
2002-10-11 08:52:17 +00:00
.REG .t
Distance to the next trap.
.
2001-04-17 12:12:05 +00:00
.REG .T
2002-10-11 08:52:17 +00:00
Set to\~1
2001-04-17 12:12:05 +00:00
if option
.B \-T
is used.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .tabs
2002-10-11 08:52:17 +00:00
A string representation of the current tab settings suitable for use
as an argument to the
.request ta
2000-12-05 18:49:44 +00:00
request.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG .trunc
The amount of vertical space truncated by the most recently sprung
vertical position trap, or, if the trap was sprung by a
2002-10-11 08:52:17 +00:00
.request ne
2000-12-05 18:49:44 +00:00
request, minus the amount of vertical motion produced by
.request .ne .
2002-10-11 08:52:17 +00:00
.
In other words, at the point a trap is sprung, it represents
the difference of what the vertical position would have been but for
the trap, and what the vertical position actually is.
.
2000-12-05 18:49:44 +00:00
Useful in conjunction with the
2005-10-20 10:45:19 +00:00
.register .ne .
2002-10-11 08:52:17 +00:00
.
.REG .u
2005-10-20 10:45:19 +00:00
Equal to 1 in fill mode and 0 in nofill mode.
.
.REG .U
Equal to 1 in safer mode and 0 in unsafe mode.
2002-10-11 08:52:17 +00:00
.
.REG .v
Current vertical line spacing.
.
.REG .V
Available vertical resolution in basic units.
.
2000-12-05 18:49:44 +00:00
.REG .vpt
2002-10-11 08:52:17 +00:00
1\~ if vertical position traps are enabled, 0\~otherwise.
.
.REG .w
Width of previous character.
.
2000-12-05 18:49:44 +00:00
.REG .warn
The sum of the number codes of the currently enabled warnings.
2002-10-11 08:52:17 +00:00
.
.REG .x
The major version number.
.
.REG .y
The minor version number.
.
.REG .Y
The revision number of groff.
.
.REG .z
Name of current diversion.
2001-04-17 12:12:05 +00:00
.PD
.
2002-10-11 08:52:17 +00:00
.
2001-04-17 12:12:05 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.SS "Writable Registers"
2001-04-17 12:12:05 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2001-04-17 12:12:05 +00:00
The following registers can be read and written by the user.
They have predefined default values, but these can be modified for
customizing a document.
2002-10-11 08:52:17 +00:00
.
.P
2001-04-17 12:12:05 +00:00
.PD 0
2002-10-11 08:52:17 +00:00
.REG %
Current page number.
.
.REG c.
Current input line number.
.
.REG ct
Character type (set by width function
2001-04-17 12:12:05 +00:00
.esc w ).
2002-10-11 08:52:17 +00:00
.
.REG dl
Maximal width of last completed diversion.
.
.REG dn
Height of last completed diversion.
.
.REG dw
Current day of week (1-7).
.
.REG dy
Current day of month (1-31).
.
.REG hours
The number of hours past midnight.
.
Initialized at start-up.
.
.REG hp
Current horizontal position at input line.
.
2000-12-05 18:49:44 +00:00
.REG llx
Lower left x-coordinate (in PostScript units) of a given PostScript
image (set by
.request .psbb ).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG lly
Lower left y-coordinate (in PostScript units) of a given PostScript
image (set by
.request .psbb ).
2002-10-11 08:52:17 +00:00
.
.REG ln
Output line number.
.
.REG minutes
The number of minutes after the hour.
.
Initialized at start-up.
.
.REG mo
Current month (1-12).
.
.REG nl
Vertical position of last printed text base-line.
.
.REG rsb
Like
2000-12-05 18:49:44 +00:00
.register sb ,
but takes account of the heights and depths of characters.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG rst
Like
.register st ,
but takes account of the heights and depths of characters.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG sb
Depth of string below base line (generated by width function
.esc w ).
2002-10-11 08:52:17 +00:00
.
.REG seconds
The number of seconds after the minute.
.
Initialized at start-up.
.
2000-12-05 18:49:44 +00:00
.REG skw
Right skip width from the center of the last character in the
.esc w
argument.
2002-10-11 08:52:17 +00:00
.
2001-04-17 12:12:05 +00:00
.REG slimit
If greater than 0, the maximum number of objects on the input stack.
2002-10-11 08:52:17 +00:00
.
If \[<=]0 there is no limit, i.e., recursion can continue until virtual
2001-04-17 12:12:05 +00:00
memory is exhausted.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG ssc
2002-10-11 08:52:17 +00:00
The amount of horizontal space (possibly negative) that should be
added to the last character before a subscript (generated by width
function
2000-12-05 18:49:44 +00:00
.esc w ).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG st
Height of string above base line (generated by width function
.esc w ).
2002-10-11 08:52:17 +00:00
.
2001-04-17 12:12:05 +00:00
.REG systat
The return value of the
.I system()
function executed by the last
2002-10-11 08:52:17 +00:00
.request sy
2001-04-17 12:12:05 +00:00
request.
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG urx
Upper right x-coordinate (in PostScript units) of a given PostScript
image (set by
.request .psbb ).
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.REG ury
Upper right y-coordinate (in PostScript units) of a given PostScript
image (set by
.request .psbb ).
2002-10-11 08:52:17 +00:00
.
.REG year
The current year (year 2000 compliant).
.
2000-12-05 18:49:44 +00:00
.REG yr
2002-10-11 08:52:17 +00:00
Current year minus 1900.
.
2005-10-20 10:45:19 +00:00
For Y2K compliance use
2000-12-05 18:49:44 +00:00
.register year
instead.
.
.PD
2002-10-11 08:52:17 +00:00
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.SH COMPATIBILITY
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
The differences of the groff language in comparison to classical troff
as defined by
.I [CSTR\~#54]
are documented in
.BR groff_diff (@MAN7EXT@).
.
.P
The groff system provides a compatibility mode, see
.BR groff (@MAN1EXT@)
on how to invoke this.
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.SH BUGS
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
Report bugs to the
.MTO bug-groff@gnu.org "groff bug mailing list" .
Include a complete, self-contained example that will allow the bug to
be reproduced, and say which version of groff you are using.
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.SH AUTHORS
2000-12-05 18:49:44 +00:00
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
2005-10-20 10:45:19 +00:00
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
2002-10-11 08:52:17 +00:00
.
.P
This document is distributed under the terms of the FDL (GNU Free
Documentation License) version 1.1 or later.
.
You should have received a copy of the FDL on your system, it is also
available on-line at the
.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
.
.P
This document is part of
.IR groff ,
the GNU roff distribution.
.
It was written by
.MTO bwarken@mayn.de "Bernd Warken" ;
it is maintained by
.MTO wl@gnu.org "Werner Lemberg" .
.
2000-12-05 18:49:44 +00:00
.
.\" --------------------------------------------------------------------
.SH "SEE ALSO"
.\" --------------------------------------------------------------------
2002-10-11 08:52:17 +00:00
.
.P
2000-12-05 18:49:44 +00:00
The main source of information for the groff language is the
.B groff
.BR info (1)
file.
2002-10-11 08:52:17 +00:00
.
Besides the gory details, it contains many examples.
.
.TP
2000-12-05 18:49:44 +00:00
.BR groff (@MAN1EXT@)
2002-10-11 08:52:17 +00:00
the usage of the groff program and pointers to the documentation and
availability of the groff system.
.
.TP
.BR groff_diff (@MAN7EXT@)
the differences of the groff language as compared to classical roff.
.
This is the authoritative document for the predefined language
elements that are specific to groff.
.
.TP
.BR groff_char (@MAN7EXT@)
the predefined groff characters (glyphs).
.
.TP
.BR groff_font (@MAN5EXT@)
the specification of fonts and the DESC file.
.
.TP
.BR roff (@MAN7EXT@)
the history of roff, the common parts shared by all roff systems, and
pointers to further documentation.
.
.TP
.I [CSTR\~#54]
.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:54.ps \
"Nroff/\:Troff User's Manual by Osanna & Kernighan"
\[em] the bible for classical troff.
.
2005-10-20 10:45:19 +00:00
.cp \n[groff_C]
2002-10-11 08:52:17 +00:00
.
.\" --------------------------------------------------------------------
.\" Emacs Setup
.\" --------------------------------------------------------------------
2001-07-10 17:09:00 +00:00
.
.\" Local Variables:
.\" mode: nroff
.\" End: