.nr *% \n(%#u+7u.ds NR "\f2nroff\fP.ds TR "\f2troff\|\fP.ds Tr \f2Troff\|\fP.ds Nr \f2Nroff\fP. \" CW - constant width font not from -ms.de T&.X "END US.X "US T&...de CW.nr PQ \\n(.f.if \\n(.$=0 .ft CW.if \\n(.$>0 \%\&\\$3\f(CW\\$1\\f\\n(PQ\\$2...de BI.nr PQ \\n(.f.if \\n(.$=0 .ft 4.if \\n(.$>0 \%\&\\$3\f2\\$1\\f\\n(PQ\\$2...de UC\\$3\s-2\\$1\s+2\\$2...am NH.nr p \\np+1.nr s 0 1...fp 4 BI LucidaSansI.bd 4 3.de sc.LP\f4\\np.\\n+s.\ \ \\$1\f1\0...de bt.SP .25.LP.NE 2.1.ta 1.5i 2.5i 3.5i 4.5i\\$1 \\$2 \\$3 \\$4.IP "" 0.8i....br\\$5..........TLTroff User's Manual.AUJoseph F. OssannaBrian W. Kernighan.spbwk@research.bell-labs.com.EQdelim @@define cw % "\&" font CW %.EN.SHIntroduction.PP\*(Tr and \*(NR are text processors that format text for typesetter- andtypewriter-like terminals, respectively.They accept lines of text interspersed with lines offormat control information andformat the text into a printable, paginated documenthaving a user-designed style.\*(Tr and \*(NR offerunusual freedom in document styling:arbitrary style headers and footers;arbitrary style footnotes;multiple automatic sequence numbering for paragraphs, sections, etc;multiple column output;dynamic font and point-size control;arbitrary horizontal and vertical local motions at any point;anda family of automatic overstriking, bracket construction, andline-drawing functions...de TL.LP.ce.ps +2.ft B....PP.I Troffproduces its output in a device-independent form,although parameterized for a specific device;\*(TR output must be processed by a driver for thatdevice to produce printed output..PP\*(Tr and \*(NR are highly compatible with each other and it is almost alwayspossible to prepare input acceptable to both.Conditional input is provided to enablethe user to embed input expressly destined for either program.\*(Nr can prepare output directly for a variety of terminal types andis capable of utilizing the full resolution of each terminal.\*(Nr is the same program as \*(TR; in fact, on Plan 9 \*(NR is a shell script that calls \*(TR with the.CW -Nargument..SHBackground to the Plan 9 Edition.PPThe primary change to \*(TR and \*(NR for Plan 9 issupport of the Unicode Standard, which was added during1992 and 1993. There are two results. First, there is muchless need for the myriad of two-character names that are somuch a part of \*(TR lore; in Plan 9, for example, one naturally uses theUnicode character ½ instead of \*(TR\|'s.CW \\e(12 .Second, the output device, though called.CW utf ,is almost always a form of PostScript printer;the panoply of special drivers for different typesettershas largely disappeared.Unfortunately, not all PostScript printers can copewith Unicode characters, so there remains a need forprograms that synthesize PostScript characters from bitmaps;this is especially true for Asian languages..SHBackground to the Second Edition.PP\*(Trwas originally written by the late Joe Ossannain about 1973, in assembly language for the.UC PDP -11,to drive the Graphic Systems CAT typesetter.It was rewritten in C around 1975,and underwent slow but steady evolution untilOssanna's death late in 1977..PPIn 1979, Brian Kernighanmodified\*(TRso that it would produce output for a variety of typesetters,while retaining its input specifications.Over the decade from 1979 to 1989,the internalshave been modestly revised,though much of the code remains as it was when Ossanna wrote it..PP\*(Trreads parameter fileseach time it is invoked, toset values for machine resolution,legal type sizes and fonts, and character names,character widthsand the like.\*(Troutput is.UC ASCIIcharactersin a simple languagethat describes where each character is to be placedand in what size and font.A post-processor must be written for each deviceto convert this typesetter-independent languageinto specific instructions for that device..PPThe output language contains information that was not readilyidentifiable in the older output.In the newer language, the beginning of each page, line, and wordis marked,so post-processors can do device-specific optimizationssuch as sorting the data vertically or printing it boustrophedonically,independent of\*(TR..PPCapabilities for graphics have been added:\*(TRrecognizes commands for drawing diagonal lines,circles, ellipses, circular arcs,and quadratic B-splines.There are also ways to pass arbitrary information to the output,unprocessed by\*(TR..PPA number of limitations have been eased or eliminated.A document may have an arbitrary number of fonts on any page(if the output device permits it, of course).Fonts may be accessed merely by naming them;``mounting'' is no longer necessary.There are no limits on the number of characters.\H'8'Character height\H'10' and \S'-1'sl\S'0'a\S'1'nt\S'0' may be setindependently of width..PPThe remainder of this document contains a description ofusage and command-line options;a summary of requests, escape sequences, and pre-defined number registers;a reference manual;tutorial examples;and a list of commonly-available characters..SHAcknowledgements.PPJoe Ossanna's\*(TRremains a remarkable accomplishment.For more than twenty years, it has proven a robust tool,taking unbelievable abuse from a variety of preprocessorsand being forced into uses that were never conceived ofin the original design,all with considerable grace under fire..PPRecent versions of \*(TR have profited fromsignificant code improvements byJaap Akkerhuis, Dennis Ritchie, Ken Thompson, and Molly Wagner.UTF facilities owe much to Jaap Akkerhuis.Andrew Hume, Doug McIlroy, Peter Nelson and Ravi Sethi made valuable suggestions on the manual.I fear that the remaining bugs are my fault..sp 100.BP.TLUsage.SP.PP\*(Tr or \*(NR is invoked as.P1troff \fIoptions files\fPnroff \fIoptions files\fP.P2where @options@ represents any of a number of option argumentsand @files@ represents the list of files containing the documentto be formatted.An argument consisting of a single minus.CW - ' `represents standard input.If no filenames are given input is taken from the standard input.The options, which may appear in any order so long as they appearbefore the files, are:.TScenter;lfCW lw(4.5i).-m@name@ T{Read the macro file@cw /sys/lib/tmac. name@before the input @files@.T}-T@name@ T{Specifiesthe type of the output device.Specific devices are site-dependent.For\*(TR,the most useful name is.CW utf .For\*(NR,useful names include@cw "37"@ for the (default) Model 37 Teletype,@cw lp@ for ``dumb'' line printer terminals (no half-line motions,no reverse motions),and @cw think@ for the HP ThinkJet printer.T}-i T{Read standard input after the input files are exhausted.T}-o@list@ T{Print only pages whose page numbers appear in @list@,which consists of comma-separated numbers and number ranges.A number range has the form @N-M@and means pages @N@ through @M@;a initial @-N@ meansfrom the beginning to page @N@; and a final @N-@ meansfrom @N@ to the end.T}-n@N@ T{Number first generated page @N@.T}-r@aN@ T{Set number register @a@ (one-character) to @N@.T}-s@N@ T{Stop every @N@ pages.\*(Nr will halt prior to every @N@ pages (default @N=1@)to allow paper loading orchanging, and will resume upon receipt of a newline.\*(Tr will include a ``pause'' code every @N@ pages;its meaning, if any, depends on the output device.T}-u@N@ T{Set amount of emboldening for the.CW bdrequest to @N@.T}-F@path@ T{Look in directory @path@ for font information;the defaults are.CW /sys/lib/troff/fontand.CW /sys/lib/troff/termfor \*(TRand \*(NR respectively.T}.sp .5 T{ \*(TR OnlyT}-a T{Send a printable approximationof the results to the standard output.T}.sp .5 T{ \*(NR OnlyT}-e T{Produce equally-spaced words in adjustedlines, using full terminal resolution.T}-h T{Use tabs instead of spacesto speed up printing.T}-q T{Invoke the simultaneous input-output mode of the @cw rd@ request.T}.TE.PPEach option is a separate argument;for example,.P1troff -Tutf -ms -mpictures -o4,6,8-10 \f2file1 file2\fP.P2requests formatting of pages 4, 6, and 8 through 10 of a document contained in the filesnamed \f2file1\fP and \f2file2\fP,specifies the output in UTF,and invokes the macro packages.CW -msand.CW -mpictures ..PPVarious pre- and post-processors are available for use with \*(NR and \*(TR.These include the equation preprocessor.I eqn(for \*(TR only),the table-construction preprocessor.I tbl ,and.I pic and.I grapfor various forms of graphics..sp 100.BP.TLRequest Summary.PPIn the following table,the notation @+- N@ in the.BI "Request Formcolumn means that the forms @N@, @+N@, or @-N@ are permitted,to set the parameter to @N@, increment it by @N@, or decrement it by @N@,respectively.Plain @N@ means that the value is used to set the parameter..BI "Initial Valuesseparated by .CW ;are for\*(TRand\*(NRrespectively.In the .BI Notescolumn,.TScenter;c lw(4.5i).B T{Request normally causes a break.The use of.CW ' \&as control character (instead of.CW . )\&suppresses the break function.T}D T{Mode or relevant parameters associated with current diversion level.T}E T{Relevant parameters are a part of the current environment.T}O T{Must stay in effect until logical output.T}P T{Mode must be still or again in effect at the time of physical output.T}T T{\*(TR only; no effect in \*(NR.T}@bold v@, @bold p@, @bold m@, @bold u@ T{Default scale indicator; if not specified, scale indicators are ignored.T}.TE.sp.tr &..ps 9.vs 11.nr z 0 1.TSlf2 lf2 lf2 lf2 lf2lf2 lf2 lf2 lf2 lf2lfCW l l l l.Request Initial If NoForm Value Argument Notes Explanation.sp .5.T&lf3 s s s s.\\n+z. General Information.sp .5.T&lf3 s s s slfCW l l l l.\\n+z. Font and Character Size Control.sp .5&ps @+- N@ 10 point previous E,T Point size; also @cw "\es" +- N@.&ss @N@ 12/36\fBm\fP ignored E,T Space-character size set to @N/36@ em.&cs @ F~N~ M@ off - P,T Constant character space (width) mode (font @F@).&bd @F~N@ off - P,T Embolden font @F@ by @N-1@ units.&bd S@~F~N@ off - P,T Embolden Special Font when current font is @F@.&ft@~F@ Roman previous E Change to font @F@; also @cw "\ef" x@, @cw "\ef(" xx@, @cw "\ef" N@.&fp@~N~F~L@ R,I,B,...,S ignored - Mount font named @F@ on physical position @N <= 1@; long name is @L@ if given..sp .5.T&lf3 s s s slfCW l l l l.\\n+z. Page Control&pl @+- N@ 11i 11i @bold v@ Page length.&bp @+- N@ @N=1@ - B,@bold v@ Eject current page; next page number @N@.&pn @+- N@ @N=1@ ignored - Next page number @N@.&po @+- N@ 1i; 0 previous @bold v@ Page offset.&ne @N@ - @N=1 roman v@ D,@bold v@ Need @N@ vertical space.&mk @R@ none internal D Mark current vertical place in register @R@.&rt @+- N@ none internal D,@bold v@ Return (upward only) to marked vertical place..sp .5.T&lf3 s s s slfCW l l l l.\\n+z. Text Filling, Adjusting, and Centering&br - - B Break.&fi fill - B,E Fill output lines.&nf fill - B,E No filling or adjusting of output lines.&ad @c@ adj, both adjust E Adjust output lines with mode @c@; @c = cw l , cw r , cw c , cw b , none@&na adjust - E No output line adjusting.&ce @N@ off @N=1@ B,E Center next @N@ input text lines..sp .5.T&lf3 s s s slfCW l l l l.\\n+z. Vertical Spacing&vs @N@ 12p; 1/6i previous E,@bold p@ Vertical baseline spacing (@V@).&ls @N@ @N=1@ previous E Output @N-1@ @bold v@'s after each text output line.&sp @N@ - @N=1@v B,@bold v@ Space vertical distance @N@ in either direction.&sv @N@ - @N=1@v @bold v@ Save vertical distance @N@.&os - - - Output saved vertical distance.&ns space - D Turn no-space mode on.&rs - - D Restore spacing; turn no-space mode off..sp .5.T&lf3 s s s slfCW l l l l.\\n+z. Line Length and Indenting&ll @+- N@ 6.5i previous E,@bold m@ Line length.&in @+- N@ @N=0@ previous B,E,@bold m@ Indent.&ti @+- N@ - ignored B,E,@bold m@ Temporary indent..sp .5.ne 2.1.T&lf3 s s s slfCW l l l l.\\n+z. Macros, Strings, Diversion, and Position Traps&de @xx~yy@ - @.yy= cw ".."@ - Define or redefine macro @xx@; end at call of @yy@.&am @xx~yy@ - @.yy= cw ".."@ - Append to a macro.&ds @xx~string@ - ignored - Define a string @xx@ containing @string@.&as @xx~string@ - ignored - Append @string@ to string @xx@.&rm @xx@ - ignored - Remove request, macro, or string.&rn @xx~yy@ - ignored - Rename request, macro, or string @xx@ to @yy@.&di @xx@ - end D Divert output to macro @xx@.&da @xx@ - end D Divert and append to @xx@.&wh @N~xx@ - - @bold v@ Set location trap; negative is w.r.t. page bottom.&ch @xx~N@ - - @bold v@ Change trap location.&dt @N~xx@ - off D,@bold v@ Set a diversion trap.&it @N~xx@ - off E Set an input-line count trap.&em @xx@ none none - End macro is @xx@..sp .5.T&lf3 s s s slfCW l l l l.\\n+z. Number Registers&nr @R~+- N~M@ - @bold u@ Define and set number register @R@;Lines 1–500 of 3660. Load more
.nr *% \n(%#u+7u .ds NR "\f2nroff\fP .ds TR "\f2troff\|\fP .ds Tr \f2Troff\|\fP .ds Nr \f2Nroff\fP . \" CW - constant width font not from -ms .de T& .X "END US .X "US T& .. .de CW .nr PQ \\n(.f .if \\n(.$=0 .ft CW .if \\n(.$>0 \%\&\\$3\f(CW\\$1\\f\\n(PQ\\$2 .. .de BI .nr PQ \\n(.f .if \\n(.$=0 .ft 4 .if \\n(.$>0 \%\&\\$3\f2\\$1\\f\\n(PQ\\$2 .. .de UC \\$3\s-2\\$1\s+2\\$2 .. .am NH .nr p \\np+1 .nr s 0 1 .. .fp 4 BI LucidaSansI .bd 4 3 .de sc .LP \f4\\np.\\n+s.\ \ \\$1\f1\0 .. .de bt .SP .25 .LP .NE 2.1 .ta 1.5i 2.5i 3.5i 4.5i \\$1 \\$2 \\$3 \\$4 .IP "" 0.8i ....br \\$5 .. . . . . . . . .TL Troff User's Manual .AU Joseph F. Ossanna Brian W. Kernighan .sp bwk@research.bell-labs.com .EQ delim @@ define cw % "\&" font CW % .EN .SH Introduction .PP \*(Tr and \*(NR are text processors that format text for typesetter- and typewriter-like terminals, respectively. They accept lines of text interspersed with lines of format control information and format the text into a printable, paginated document having a user-designed style. \*(Tr and \*(NR offer unusual freedom in document styling: arbitrary style headers and footers; arbitrary style footnotes; multiple automatic sequence numbering for paragraphs, sections, etc; multiple column output; dynamic font and point-size control; arbitrary horizontal and vertical local motions at any point; and a family of automatic overstriking, bracket construction, and line-drawing functions. . .de TL .LP .ce .ps +2 .ft B .. . .PP .I Troff produces its output in a device-independent form, although parameterized for a specific device; \*(TR output must be processed by a driver for that device to produce printed output. .PP \*(Tr and \*(NR are highly compatible with each other and it is almost always possible to prepare input acceptable to both. Conditional input is provided to enable the user to embed input expressly destined for either program. \*(Nr can prepare output directly for a variety of terminal types and is capable of utilizing the full resolution of each terminal. \*(Nr is the same program as \*(TR; in fact, on Plan 9 \*(NR is a shell script that calls \*(TR with the .CW -N argument. .SH Background to the Plan 9 Edition .PP The primary change to \*(TR and \*(NR for Plan 9 is support of the Unicode Standard, which was added during 1992 and 1993. There are two results. First, there is much less need for the myriad of two-character names that are so much a part of \*(TR lore; in Plan 9, for example, one naturally uses the Unicode character ½ instead of \*(TR\|'s .CW \\e(12 . Second, the output device, though called .CW utf , is almost always a form of PostScript printer; the panoply of special drivers for different typesetters has largely disappeared. Unfortunately, not all PostScript printers can cope with Unicode characters, so there remains a need for programs that synthesize PostScript characters from bitmaps; this is especially true for Asian languages. .SH Background to the Second Edition .PP \*(Tr was originally written by the late Joe Ossanna in about 1973, in assembly language for the .UC PDP -11, to drive the Graphic Systems CAT typesetter. It was rewritten in C around 1975, and underwent slow but steady evolution until Ossanna's death late in 1977. .PP In 1979, Brian Kernighan modified \*(TR so that it would produce output for a variety of typesetters, while retaining its input specifications. Over the decade from 1979 to 1989, the internals have been modestly revised, though much of the code remains as it was when Ossanna wrote it. .PP \*(Tr reads parameter files each time it is invoked, to set values for machine resolution, legal type sizes and fonts, and character names, character widths and the like. \*(Tr output is .UC ASCII characters in a simple language that describes where each character is to be placed and in what size and font. A post-processor must be written for each device to convert this typesetter-independent language into specific instructions for that device. .PP The output language contains information that was not readily identifiable in the older output. In the newer language, the beginning of each page, line, and word is marked, so post-processors can do device-specific optimizations such as sorting the data vertically or printing it boustrophedonically, independent of \*(TR. .PP Capabilities for graphics have been added: \*(TR recognizes commands for drawing diagonal lines, circles, ellipses, circular arcs, and quadratic B-splines. There are also ways to pass arbitrary information to the output, unprocessed by \*(TR. .PP A number of limitations have been eased or eliminated. A document may have an arbitrary number of fonts on any page (if the output device permits it, of course). Fonts may be accessed merely by naming them; ``mounting'' is no longer necessary. There are no limits on the number of characters. \H'8'Character height\H'10' and \S'-1'sl\S'0'a\S'1'nt\S'0' may be set independently of width. .PP The remainder of this document contains a description of usage and command-line options; a summary of requests, escape sequences, and pre-defined number registers; a reference manual; tutorial examples; and a list of commonly-available characters. .SH Acknowledgements .PP Joe Ossanna's \*(TR remains a remarkable accomplishment. For more than twenty years, it has proven a robust tool, taking unbelievable abuse from a variety of preprocessors and being forced into uses that were never conceived of in the original design, all with considerable grace under fire. .PP Recent versions of \*(TR have profited from significant code improvements by Jaap Akkerhuis, Dennis Ritchie, Ken Thompson, and Molly Wagner. UTF facilities owe much to Jaap Akkerhuis. Andrew Hume, Doug McIlroy, Peter Nelson and Ravi Sethi made valuable suggestions on the manual. I fear that the remaining bugs are my fault. .sp 100 .BP .TL Usage .SP .PP \*(Tr or \*(NR is invoked as .P1 troff \fIoptions files\fP nroff \fIoptions files\fP .P2 where @options@ represents any of a number of option arguments and @files@ represents the list of files containing the document to be formatted. An argument consisting of a single minus .CW - ' ` represents standard input. If no filenames are given input is taken from the standard input. The options, which may appear in any order so long as they appear before the files, are: .TS center; lfCW lw(4.5i). -m@name@ T{ Read the macro file @cw /sys/lib/tmac. name@ before the input @files@. T} -T@name@ T{ Specifies the type of the output device. Specific devices are site-dependent. For \*(TR, the most useful name is .CW utf . For \*(NR, useful names include @cw "37"@ for the (default) Model 37 Teletype, @cw lp@ for ``dumb'' line printer terminals (no half-line motions, no reverse motions), and @cw think@ for the HP ThinkJet printer. T} -i T{ Read standard input after the input files are exhausted. T} -o@list@ T{ Print only pages whose page numbers appear in @list@, which consists of comma-separated numbers and number ranges. A number range has the form @N-M@ and means pages @N@ through @M@; a initial @-N@ means from the beginning to page @N@; and a final @N-@ means from @N@ to the end. T} -n@N@ T{ Number first generated page @N@. T} -r@aN@ T{ Set number register @a@ (one-character) to @N@. T} -s@N@ T{ Stop every @N@ pages. \*(Nr will halt prior to every @N@ pages (default @N=1@) to allow paper loading or changing, and will resume upon receipt of a newline. \*(Tr will include a ``pause'' code every @N@ pages; its meaning, if any, depends on the output device. T} -u@N@ T{ Set amount of emboldening for the .CW bd request to @N@. T} -F@path@ T{ Look in directory @path@ for font information; the defaults are .CW /sys/lib/troff/font and .CW /sys/lib/troff/term for \*(TR and \*(NR respectively. T} .sp .5 T{ \*(TR Only T} -a T{ Send a printable approximation of the results to the standard output. T} .sp .5 T{ \*(NR Only T} -e T{ Produce equally-spaced words in adjusted lines, using full terminal resolution. T} -h T{ Use tabs instead of spaces to speed up printing. T} -q T{ Invoke the simultaneous input-output mode of the @cw rd@ request. T} .TE .PP Each option is a separate argument; for example, .P1 troff -Tutf -ms -mpictures -o4,6,8-10 \f2file1 file2\fP .P2 requests formatting of pages 4, 6, and 8 through 10 of a document contained in the files named \f2file1\fP and \f2file2\fP, specifies the output in UTF, and invokes the macro packages .CW -ms and .CW -mpictures . .PP Various pre- and post-processors are available for use with \*(NR and \*(TR. These include the equation preprocessor .I eqn (for \*(TR only), the table-construction preprocessor .I tbl , and .I pic and .I grap for various forms of graphics. .sp 100 .BP .TL Request Summary .PP In the following table, the notation @+- N@ in the .BI "Request Form column means that the forms @N@, @+N@, or @-N@ are permitted, to set the parameter to @N@, increment it by @N@, or decrement it by @N@, respectively. Plain @N@ means that the value is used to set the parameter. .BI "Initial Values separated by .CW ; are for \*(TR and \*(NR respectively. In the .BI Notes column, .TS center; c lw(4.5i). B T{ Request normally causes a break. The use of .CW ' \& as control character (instead of .CW . )\& suppresses the break function. T} D T{ Mode or relevant parameters associated with current diversion level. T} E T{ Relevant parameters are a part of the current environment. T} O T{ Must stay in effect until logical output. T} P T{ Mode must be still or again in effect at the time of physical output. T} T T{ \*(TR only; no effect in \*(NR. T} @bold v@, @bold p@, @bold m@, @bold u@ T{ Default scale indicator; if not specified, scale indicators are ignored. T} .TE .sp .tr &. .ps 9 .vs 11 .nr z 0 1 .TS lf2 lf2 lf2 lf2 lf2 lf2 lf2 lf2 lf2 lf2 lfCW l l l l. Request Initial If No Form Value Argument Notes Explanation .sp .5 .T& lf3 s s s s. \\n+z. General Information .sp .5 .T& lf3 s s s s lfCW l l l l. \\n+z. Font and Character Size Control .sp .5 &ps @+- N@ 10 point previous E,T Point size; also @cw "\es" +- N@. &ss @N@ 12/36\fBm\fP ignored E,T Space-character size set to @N/36@ em. &cs @ F~N~ M@ off - P,T Constant character space (width) mode (font @F@). &bd @F~N@ off - P,T Embolden font @F@ by @N-1@ units. &bd S@~F~N@ off - P,T Embolden Special Font when current font is @F@. &ft@~F@ Roman previous E Change to font @F@; also @cw "\ef" x@, @cw "\ef(" xx@, @cw "\ef" N@. &fp@~N~F~L@ R,I,B,...,S ignored - Mount font named @F@ on physical position @N <= 1@; long name is @L@ if given. .sp .5 .T& lf3 s s s s lfCW l l l l. \\n+z. Page Control &pl @+- N@ 11i 11i @bold v@ Page length. &bp @+- N@ @N=1@ - B,@bold v@ Eject current page; next page number @N@. &pn @+- N@ @N=1@ ignored - Next page number @N@. &po @+- N@ 1i; 0 previous @bold v@ Page offset. &ne @N@ - @N=1 roman v@ D,@bold v@ Need @N@ vertical space. &mk @R@ none internal D Mark current vertical place in register @R@. &rt @+- N@ none internal D,@bold v@ Return (upward only) to marked vertical place. .sp .5 .T& lf3 s s s s lfCW l l l l. \\n+z. Text Filling, Adjusting, and Centering &br - - B Break. &fi fill - B,E Fill output lines. &nf fill - B,E No filling or adjusting of output lines. &ad @c@ adj, both adjust E Adjust output lines with mode @c@; @c = cw l , cw r , cw c , cw b , none@ &na adjust - E No output line adjusting. &ce @N@ off @N=1@ B,E Center next @N@ input text lines. .sp .5 .T& lf3 s s s s lfCW l l l l. \\n+z. Vertical Spacing &vs @N@ 12p; 1/6i previous E,@bold p@ Vertical baseline spacing (@V@). &ls @N@ @N=1@ previous E Output @N-1@ @bold v@'s after each text output line. &sp @N@ - @N=1@v B,@bold v@ Space vertical distance @N@ in either direction. &sv @N@ - @N=1@v @bold v@ Save vertical distance @N@. &os - - - Output saved vertical distance. &ns space - D Turn no-space mode on. &rs - - D Restore spacing; turn no-space mode off. .sp .5 .T& lf3 s s s s lfCW l l l l. \\n+z. Line Length and Indenting &ll @+- N@ 6.5i previous E,@bold m@ Line length. &in @+- N@ @N=0@ previous B,E,@bold m@ Indent. &ti @+- N@ - ignored B,E,@bold m@ Temporary indent. .sp .5 .ne 2.1 .T& lf3 s s s s lfCW l l l l. \\n+z. Macros, Strings, Diversion, and Position Traps &de @xx~yy@ - @.yy= cw ".."@ - Define or redefine macro @xx@; end at call of @yy@. &am @xx~yy@ - @.yy= cw ".."@ - Append to a macro. &ds @xx~string@ - ignored - Define a string @xx@ containing @string@. &as @xx~string@ - ignored - Append @string@ to string @xx@. &rm @xx@ - ignored - Remove request, macro, or string. &rn @xx~yy@ - ignored - Rename request, macro, or string @xx@ to @yy@. &di @xx@ - end D Divert output to macro @xx@. &da @xx@ - end D Divert and append to @xx@. &wh @N~xx@ - - @bold v@ Set location trap; negative is w.r.t. page bottom. &ch @xx~N@ - - @bold v@ Change trap location. &dt @N~xx@ - off D,@bold v@ Set a diversion trap. &it @N~xx@ - off E Set an input-line count trap. &em @xx@ none none - End macro is @xx@. .sp .5 .T& lf3 s s s s lfCW l l l l. \\n+z. Number Registers &nr @R~+- N~M@ - @bold u@ Define and set number register @R@;