SysIII/usr/src/man/docs/mm_man/s12misc

.H 1 "MISCELLANEOUS FEATURES"
.H 2 "Bold, Italic, and Roman"
.Es1
\&\f3.\fPB [bold-arg] [previous-font-arg] \f3.\|.\|.\fP
\&\f3.\fPI [italic-arg] [previous-font-arg] \f3.\|.\|.\fP
\&\f3.\fPR
.Ee
.P
When called without arguments, \f3.\fPB changes the font to bold
and \f3.\fPI changes to underlining (italic).
This condition continues until the occurrence of a \f3.\fPR,
when the regular roman font is restored.
Thus,
.Es1
\&\f3.\fPI
here is some text.
\&\f3.\fPR
.ie t .sp .5
.el .sp
.ti0
yields:
.ie t .sp .5
.el .sp
.I
here is some text.
.R
.Ee
.P
If \f3.\fPB or \f3.\fPI is called with one argument,
that argument is printed in the appropriate font (underlined in
.I nroff 
for \f3.\fPI).
Then the 
.I previous
font is restored
(underlining is turned off in
.I nroff \|\^).
If two or more arguments (maximum 6)
are given to a \f3.\fPB or \f3.\fPI, the second argument
is then concatenated to the first with no intervening space (1/12 space if
the first font is italic),
but is printed in the previous font; and the remaining pairs of arguments
are similarly alternated.
For example:
.Es1
\&\f3.\fPI italic " text " right -justified
.ie t .sp .5
.el .sp
.ti 0
produces:
.ie t .sp .5
.el .sp
.fi
.I italic " text " right -justified
.Ee
.P
These macros alternate with the prevailing font at the time they are
invoked.  To alternate specific pairs of fonts, the following macros
are available:
.Es 1
\&\f3.\fPIB
\&\f3.\fPBI
\&\f3.\fPIR
\&\f3.\fPRI
\&\f3.\fPRB
\&\f3.\fPBR
.Ee
.P
Each takes a maximum of 6 arguments and alternates the arguments between
the specified fonts.
.P
Note that
font changes in headings are handled separately
{4.2.2.4.1}.
.P
Anyone using a terminal 
that cannot underline
might wish to insert:
.Es 1
\&\f3.\fPrm ul
\&\f3.\fPrm cu
.Ee
.P
at the beginning of the document to eliminate
.I  all
underlining.
.H 2 "Justification of Right Margin"
.Es1
\&\f3.\fPSA [arg]
.Ee
.P
The \&\f3.\fPSA macro is used to set right-margin justification
for the main body of text.
Two justification flags are used:
.I current
and
.I default.
\&^\f3.\fPSA\|\ 0 sets both flags to no justification, i.e.,
it acts like the
\&\f3.\fPna
request.
\&\f3.\fPSA\|\ 1 is the inverse: it sets both flags to cause justification,
just like the
\&\f3.\fPad
request.
However, calling \f3.\fPSA
.I without
an argument causes the
.I current
flag to be copied from the
.I default
flag,
thus performing either a
\&\f3.\fPna
or
\&\f3.\fPad,
depending on what the
.I default
is.
Initially, both flags are set for no justification in
.I nroff
and for justification in
.I troff.
.P
In general, the
request
\&\f3.\fPna
can be used to ensure that justification is turned
off, but \f3.\fPSA should be used to restore justification,
rather than the
\&\f3.\fPad
request.
In this way, justification or lack thereof for the remainder of the
text is specified by inserting ^\f3.\fPSA\ 0
or ^\f3.\fPSA\ 1
.I once
at the beginning of the document\f3.\fP
.H 2 "SCCS Release Identification"
The string
.I RE
contains the SCCS\*(JJ
Release and Level of the current version of
\*(PM.
For example,
typing:
.Es1
\&This is version \\\\\(**(RE of the macros.
.Ee1
produces:
.DS1
This is version \*(RE of the macros.
.DE
.P
This information is useful in analyzing
suspected bugs in \*(PM.
The easiest way to have this number appear in your output is to specify
-rD1 {2.4} on the command line,
which causes the string
.I RE
to be output as part of the page header {9.2}.
.H 2 "Two-Column Output"
\*(Pm
can print
two columns on a page:
.Es 1
\&\f3.\fP2C
\&text and formatting requests (except another \f3.\fP2C)
\&\f3.\fP1C
.Ee
.P
The .2C macro begins two-column processing
which continues until a \f3.\fP1C macro is encountered.
In two-column processing,
each physical page is thought of as containing
two columnar ``pages''
of equal (but smaller) ``page'' width.
Page headers and footers are 
.I not
affected by two-column processing.
The \f3.\fP2C macro does
.I not
``balance'' two-column output.
.P
It is possible to have full-page width
footnotes and displays when in two column mode,
although the default action is for footnotes and displays to
be narrow in two column mode and wide in one column mode.
Footnote and display width is controlled by a macro,
.B .WC
(\f3W\f1idth \f3C\f1ontrol), which takes the following arguments:
.! tbl tbl-12.4
For example:
\s-1\f3\&.WC WD FF\fP\s0
will cause all displays to be wide, and all
footnotes on a page to be the same width, while
\s-1\f3\&.WC N\fP\s0
will reinstate the default actions.
If conflicting settings are given to \s-1\f3.WC\f1\s+1
the last one is used.
That is, \s-1\f3.WC\ WF\ \-WF\s+1\f1 has the effect of
\s-1\f3\&.WC \-WF\s+1\f1.
.H 2 "Column Headings for Two-Column Output \*(BU"
.VL 4\"WARNING
.LI "\ \(rh"
.I
This section is intended only for users accustomed to writing
formatter macros.
.R
.LE
.P
In two-column output, it is sometimes
necessary to have headers over each column,
as well as headers over the entire page {9}.
This is accomplished by redefining the \f3.\fPTP macro {9.12}
to provide header lines both for the entire page
and for each of the columns.
For example:
.Es 1
\&\f3.\fPde TP
\&\f3.\fPsp 2
\&\f3.\fPtl \^\'\^Page \\\\\\\\nP\^\'\^OVERALL\^\'\^\'\^
\&\f3.\fPtl \^\'\^\'\^TITLE\^\'\^\'\^
\&\f3.\fPsp
\&\f3.\fPnf
\&\f3.\fPta 16C 31R 34 50C 65R
left\^\*T\^center\^\*T\^right\^\*T\^left\^\*T\^center\^\*T\^right
.sp-1
.tl |||(where \*T stands for the tab character)|
\*T\^first column\^\*T\^\^\*T\^\^\*T\^second column
\&\f3.\fPf\&i
\&\f3.\fPsp 2
\&\f3.\|.\fP
.Ee
.P
The above example will produce two lines of page header text
plus two lines of headers over each column.
The tab stops are for a
65-en overall line length.
.H 2 "Vertical Spacing"
.Es 1
\&\f3.\fPSP [lines]
.Ee
.P
There exist several ways of obtaining vertical spacing,
all with different effects.
.P
The
\&\&\f3.\fPsp
request spaces the number of lines specified,
.I unless
``no space'' (\f3.\fPns) mode
is on,
in which case the request is ignored.
This mode is typically set at the end of a page header in order to
eliminate spacing by a
\&\f3.\fPsp
or
\&\f3.\fPbp request
that just happens to occur at the top of a page.
This mode can be turned
.I off " via"
the
\&\f3.\fPrs
(``restore spacing'')
request.
.P
The \f3.\fPSP macro is used to avoid the accumulation of vertical space by successive
macro calls.
Several \f3.\fPSP calls in a row produce 
.I not
the sum of their arguments,
but their maximum; i.e., the following produces only 3 blank lines:
.Es 1
\&\f3.\fPSP 2
\&\f3.\fPSP 3
\&\f3.\fPSP
.Ee
.P
Many
\*(PM
macros utilize \f3.\fPSP for spacing.
For example, ``\f3.\fPLE 1'' {5.3.2}
immediately followed by ``\f3.\fPP'' {4.1} produces only a single
blank line (\*(12)
between the end of the list and the following paragraph.
An omitted argument defaults to one blank line (\c
.I one
vertical space).
Negative arguments are not permitted.  The argument must be unscaled but
fractional amounts are permitted.
Like \f3.\fPsp,
\&\f3.\fPSP is also inhibited by the \f3.\fPns request.
.H 2 "Skipping Pages"
.Es 1
\&\f3.\fPSK [pages]
.Ee
.P
The \f3.\fPSK macro skips pages,
but retains the usual header and footer processing.
If
.I pages
is omitted, null, or 0, \f3.\fPSK
skips to the top of the next page
.I unless
it is currently at the top of a page,
in which case it does nothing.
\&\f3.\fPSK\|\ \c
.I n
skips 
.I n 
pages.
That is, \f3.\fPSK always positions the text that follows it
at the top of a page,
while \f3.\fPSK\|\ 1
always leaves one page that is blank
except for the header and footer.
.H 2 "Forcing an Odd Page"
.Es1
\&\f3.\fPOP
.Ee
.P
This macro is used to ensure that the following text
begins at the top of an odd-numbered page.
If currently at the top of an odd page, no motion takes place.
If currently on an even page, text resumes printing at the top of the
next page.
If currently on an odd page (but not at the top of the page)
one blank page is produced, and printing resumes on the page after that.
.H 2 "Setting Point Size and Vertical Spacing"
In
.I troff,
the default point size (obtained from the register
.I S
{2.4})
is 10, with a vertical spacing of 12 points
(i.e., 6 lines per inch).
The prevailing point size and vertical spacing may be changed
by invoking the \f3.\fPS macro:
.Es1
\&\f3.\fPS [point size] [vertical spacing]
.Ee
.P
The mnemonics, D for default value,
C for current
value, and P for previous value,
may be used for both point
size and vertical spacing arguments.
.P
Arguments may be signed or unsigned.
If an argument is negative, the current value is decremented by
the specified amount.
If the argument is positive, the current value is incremented by
the specified amount.
If an argument is unsigned, it is used as the new value.
\&\f3.\fPS without arguments defaults to
previous (P).
If the first argument is specified but
the second argument (vertical spacing) is not then
the default (D) value is used.
The default value for vertical spacing is always 2p greater
than the current point size value selected.\*F
.FS
Footnotes {8} are printed in a size
two points
.I smaller 
than the point size of the body,
with an additional vertical spacing of three points between footnotes.
.FE
A null ("") argument
for either the first or second argument
defaults to the current (C)
value.
For example
(where n is a numeric value):
.Es 1
.ta .85i 1.15i
\&\f3.\fPS	=	\f3.\fPS P P
\&\f3.\fPS "" n	=	\f3.\fPS C n
\&\f3.\fPS n ""	=	\f3.\fPS n C
\&\f3.\fPS n	=	\f3.\fPS n D
\&\f3.\fPS ""	=	\f3.\fPS C D
\&\f3.\fPS "" ""	=	\f3.\fPS C C
\&\f3.\fPS n n	=	\f3.\fPS n n
.Ee
.P
If a point size argument is greater than 99,
the default point size (D) 10 is restored.
If a vertical spacing argument is greater than 99,
the default vertical spacing (D) +2p is used.
For example:
.Es 1
\&\f3.\fPS 12 111	=	\f3.\fPS 12 14
\&\f3.\fPS 110	=	\f3.\fPS 10 12
.Ee
.H 2 "Producing Accents"
The following strings may be used to produce accents for letters:
.HC ""
.Es 1
.ta 1.5i 2.25i
.ds^ \\k:\h-\\n(.wu*8u/10u\h\\n(.fu/2u*2u+1u-\\n(.fu*.15m-.07m\
\h\\n(.fu-1u/2u*.02m^\h|\\n:u
.B
	Input	Output
.R
Grave accent	\ a\e*`	\ \ \ \ a\*`
.SP .5
Acute accent	\ a\e*'	\ \ \ \ a\*'
.SP .5
Circumflex	\ a\e*^	\ \ \ \ a\*^
.SP .5
Tilde	\ n\e*~	\ \ \ \ n\*~
.SP .5
Cedilla	\ c\e*,	\ \ \ \ c\*,
.SP .5
Lower-case umlaut	\ a\e*:	\ \ \ \ a\*:
.SP .5
Upper-case umlaut	\ A\e*;	\ \ \ \ A\*;
.Ee
.HC ^
.ds ^ \v'.2m'\s+1^\s-1\v'-.2m'
.H 2 "Inserting Text Interactively"
.Es 1
\&\f3.\fPRD [prompt] [diversion] [string]
.Ee
.P
\&\f3.\fPRD (ReaD insertion) allows a user
to stop the standard output of a document and to read
text from the standard input until two
consecutive newlines are found.
When the newlines are encountered, normal output
is resumed.
.P
\&\f3.\fPRD follows the formatting conventions in
effect.
Thus, the examples below assume that the .RD is
invoked in no fill mode (.nf).
.P
The first argument is a
.I prompt
which will be printed at the terminal.
If no prompt is given, \f3.\fPRD
signals the user with a BEL on terminal output.
.P
The second argument, a
.I diversion
name, allows the user to save
all the entered text typed after the prompt.
The third argument, a
.I string
name, allows the user to
save for later reference the first line
following the prompt.
For example:
.Es 1
\&.RD Name aa bb
.Ee
produces
.Es 1
Name: (user types) J. Jones
16 Elm Rd.,
Piscataway
.Ee
The diversion
.I aa
will contain:
.Es 1
J. Jones
16 Elm Rd.,
Piscataway
.Ee
The string
.I bb " (" \e*(bb )
contains ``J.\ Jones''.
.P
A newline followed by a Control D (EOF)
also allows the user to resume normal output.