.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.