3660 lines · 117.9 KB · Text
RawDownload
.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.