PROFF - Portable ROFF (1 of 5)
Ozan Yigit
oz at yetti.UUCP
Tue Jan 14 14:57:20 AEST 1986
#!/bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #!/bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# READ_ME
# proff.man
# This archive created: Mon Jan 13 23:49:39 1986
export PATH; PATH=/bin:$PATH
echo shar: extracting "'READ_ME'" '(1426 characters)'
if test -f 'READ_ME'
then
echo shar: over-writing existing file "'READ_ME'"
fi
sed 's/^X//' << \SHAR_EOF > 'READ_ME'
XProff - A portable formatter
X
XThis is the first distribution of PROFF, a formatter based
Xon software tools ROFF. It is mainly a C re-write of ROFF,
X(now known as FORMAT), with some expansions. It is mainly
Xintended for non-UN*X systems, CP/M, MS-DOS and the like.
X
XProff was originally written for The Faculty of Administrative
XStudies, York University, to supplement their microcomputer
Xenvironment. As of this release, the formatter is in the
Xcontrol of The Faculty of Administrative Studies.
X
XThere is no man page for proff, for it was never intended
Xfor UN*X systems. There is, however two comprehensive
Xdocuments to answer all questions.
X
XThe C code for PROFF is quite warped, and should be approached
Xcarefully. [Ok..Ok.. it is all my fault.. too much midnight
Xoil..] It is reasonably customazible, by changing proffsym.new.
XThis file is processed by ltb, a static hash table generator.
XThis approach is most useful to change the operator keywords,
Xcreate aliases, and it also bypassess the initialization
Xoverhead. [see the makefile for the right output file names
Xfor ltb]
X
XPROFF is not copyrighted, at least for this release. Future
Xreleases may contain York University copyright.
X
XPlease send me all updates, bugfixes and other tidbits,
Xso that future releases may be coordinated smoothly.
X
Xenjoy.
X oz
X bitnet: oz at yuyetti
X oz at yusol
X usenet: {ihnp4|decvax|allegra|linus}!utzoo!yetti!oz
X phonet: (416) 667 3976
X
SHAR_EOF
if test 1426 -ne "`wc -c 'READ_ME'`"
then
echo shar: error transmitting "'READ_ME'" '(should have been 1426 characters)'
fi
echo shar: extracting "'proff.man'" '(61510 characters)'
if test -f 'proff.man'
then
echo shar: over-writing existing file "'proff.man'"
fi
sed 's/^X//' << \SHAR_EOF > 'proff.man'
X
X
X
X
X
X
X
X
X PROFF User's Guide
X
X Version 1.0
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X *** *******
X *** *********
X ** **
X ** **
X *********
X *******
X **
X **
X **
X ******
X ****
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X Ozan S. Yigit & Steven Tress
X March 1984
X
X
X
X
X
X
X
X1.0 Proff User's Guide 1
X
X
X11..00 IInnttrroodduuccttiioonn
X
X This manual describes PROFF, a formatter based on the
XFORMAT utility presented in _S_o_f_t_w_a_r_e _T_o_o_l_s_.
X
X PROFF was produced to provide a powerful formatter that can
Xbe used under a variety of microcomputers, thus providing a
Xconsistent formatting tool across environments. PROFF can be
Xused to format memos, reports, form letters and documents such
Xas this manual. It can also be configured to mimic other
Xformatting systems of similar nature.
X
X This document itself was produced with PROFF, using most of
Xits advanced features. PROFF took care of such things as
Xauto-paragraphing and the production of the Table of Contents
Xas the manual was being formatted.
X
X PROFF was developed under a Digital Equipment Corporation
XRainbow 100, using Mark Williams C Compiler for portability
Xreasons. PROFF is available under VAX/VMS operating system.
XPROFF implementations for IBM PC and APPLE ][ microcomputers
Xare also underway.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
XRainbow, VAX/VMS are trademarks of Digital Equipment
XCorporation.
XMark Williams C Compiler is a trademark of Mark Williams
XCompany.
XIBM is a registered trademark of International Business Machines
XInc.
XAPPLE is a trademark of Apple Computer Inc.
XUNIX is a trademark of Bell Laboratories.
X
X
X
X
X
X
X1.0 Proff User's Guide 2
X
X
X22..00 GGeenneerraall DDeessccrriippttiioonn
X
X22..11 TThhee IInnppuutt
X
X The text that is to be formatted by PROFF is typed into an
Xinput file using any text editor. This file contains the text to
Xbe formatted as well as PROFF commands.
X
X Each line in the input file is either a command line or a
Xtext line. A command line is a line that begins with a period
X("."). All other lines are text lines. The command lines are not
Xprinted - they tell PROFF how you want it to format the text
Xthat follows. Appendix A summarizes all of the PROFF commands
Xfor a quick reference.
X
X22..11..11 TTeexxtt
X
X Text can be entered into the input file in any format.
XPROFF removes all extra blanks and tabs between words when
Xoperating in fill mode. This means you do not have to worry
Xabout how many words you put on a line, and you can break lines
Xwherever it is convenient to your typing. Note however, that you
Xcannot break a word between two lines.
X
X Blanks and tabs at the beginning of a line are not removed.
XThis is useful for producing special tables and performing
Xspecial types of indentation. Thus, normal text lines should
Xnot have any leading tabs or blanks.
X
X22..11..22 CCoommmmaannddss
X
X A command is a line that starts with a period. Immediately
Xfollowing the period is a command name. Some commands accept a
Xnumeric quantity or a character string parameter, which must be
Xseparated from the command name by a space or a comma. For
Xexample, an indent command might appear as follows:
X
X |
X |It is to do nothing that the elect exists.
X |.in 5
X |- Oscar Wilde
X |
X
X Assuming that the left margin was at column 1, PROFF would
Xproduce the following:
X
X |
X |It is to do nothing that the elect exists.
X | - Oscar Wilde
X |
X
X (In the examples above, as in those following, the vertical
X
X
X
X
X
X1.0 Proff User's Guide 3
X
X
Xline indicates the left edge of input or the left edge of the
Xprinted page).
X
X The number following the command may be preceeded by a "+"
Xor "-" sign. This plus or minus sign indicates an addition or
Xsubtraction of the number to or from the current value for the
Xcommand. for example, the text:
X
X |
X |Nothing to do but work,
X |.in +3
X |Nothing to eat but food,
X |.in -3
X |Nothing to wear but clothes
X |.in +3
X |To keep one from going nude.
X |.in +7
X |-Benjamin King
X |
X
Xwill produce as output:
X
X |
X |Nothing to do but work,
X | Nothing to eat but food,
X |Nothing to wear but clothes
X | To keep one from going nude.
X | -Benjamin King
X |
X
X If a number is not supplied with a command that requires a
Xnumber, PROFF will use a default value. The defaults for each
Xcommand are summarized in Appendix A.
X
X22..22 TThhee OOuuttppuutt
X
X The main functions performed by PROFF are _f_i_l_l_i_n_g and
X_j_u_s_t_i_f_y_i_n_g_. A line is filled by packing as many words onto it
Xas will fit. The line is justified by spacing words evenly
Xbetween the left and right margins. When PROFF starts, it
Xassumes that the text is to be filled and justified. Of course,
Xwhen fill and justify are not needed (as in the case of a letter
Xor a table), there are commands to turn these features off, and
Xback on again, as necessary.
X
X When PROFF is in fill mode, it normally strips out extra
Xspaces and tabs between words.
X
X Many PROFF commands cause a _b_r_e_a_k to occur in the output.
XThis means that the line currently being filled is immediately
Xoutput. Any following text goes into a new output line.
X
X
X
X
X
X
X1.0 Proff User's Guide 4
X
X
X22..33 EExxeeccuuttiinngg PPRROOFFFF
X
X Once a text file is ready for formatting, PROFF is started
Xby typing the program name, various options, name of the input
Xfile and the name of the output file. For example the command
X
X A> proff -po5 proffman.prf proff.man
X
Xwould produce this document as proff.man, from an input file
Xproffman.prf, shifted right by 5 spaces. (The symbol "A>" is
XCP/M system prompt).
X
X22..44 BBiibblliiooggrraapphhiicc NNootteess
X
X PROFF wa produced by re-writing the Software Tools
XFormatter FORMAT. Some of the ideas are from Freshwater
XInstitute RUNOFF, NROFF, University of Waterloo SCRIPT and
Xother formatters of similar nature. The underlying ideas of the
Xmentioned above formatters may be found in _S_o_f_t_w_a_r_e _T_o_o_l_s by
XB.W. Kernighan and P.J. Plauger. 1976. (Addison-Wesley, Reading,
XMass.).
X
X22..55 RReeffeerreenncceess aanndd RReeaaddiinnggss
X
XBrian W. Kernighan and P. J. Plauger,
X_S_o_f_t_w_a_r_e _T_o_o_l_s
XAddison-Wesley (1976)
X
XR. Furuta, J. Scofield and A. Shaw,
X_D_o_c_u_m_e_n_t _F_o_r_m_a_t_t_i_n_g _S_y_s_t_e_m_s_:
X_S_u_r_v_e_y_, _C_o_n_c_e_p_t_s_, _a_n_d _i_s_s_u_e_s
XACM Computing Surveys, Sept. 1982, Pp. 417
X
XMark Stuart Brader,
X_A_n _I_n_c_r_e_m_e_n_t_a_l _T_e_x_t _F_o_r_m_a_t_t_e_r
XDepartment of Computer Science
XUniversity of Waterloo, CS-81-12
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 5
X
X
X33..00 CCoommmmaanndd DDeessccrriippttiioonnss
X
X This section describes PROFF commands. Commands specify how
Xthe program is to process the text lines in the input file.
XLines in the input file that begin with a period (or the control
Xcharacter selected by the user) immediately followed by a
Xcommand name are commands. Any line that begins with a period
Xand followed by a # or ! is a comment line and is ignored by
XPROFF - this allows you to put information in the file that will
Xbe neither processed nor output by PROFF.
X
X As described earlier, some of the commands can be followed
Xby "parameters". Parameters are used in executing a command;
Xfor example, in the command ".sp 3", the parameter "3" tells the
Xformatter to insert 3 blank lines into the document. The
Xfollowing conventions are used in describing the parameters:
X
X o Parameters surrounded by square brackets are optional. If
X not supplied, PROFF assumes a default value.
X (e.g. .sp [n])
X
X o Parameters surrounded by angle brackets are mandatory.
X PROFF will display a fatal error message if the parameter
X is absent. (e.g. .set <variable name>)
X
X o Parameters surrounded by squiggly brackets are to be typed
X exactly as indicated. (e.g. .pn {roman})
X
X o A bar character seperating the parameters within brackets
X indicate an alternative. (e.g. .st [+|-][n] means both .st
X [+n] and .st [-n])
X
X In describing the commands, the command is typed exacty as
Xaccepted by PROFF with the associated control character default
X("."). If more than one form of the command is accepted by
XPROFF, the command names are separated with a bar indicating an
Xalternative.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 6
X
X
X33..11 FFiilllliinngg aanndd JJuussttiiffyyiinngg
X
X.fi | .f | .fill
X
X The fill command causes a line to be filled with as many
X words as the right margin allows. For this purpose, all
X extra blanks and tabs are removed between words. Each word
X is separated with a single blank. PROFF automatically
X assumes fill mode during the startup.
X
X.nf | .nofill
X
X No fill discontinues the filling of the text. PROFF simply
X copies the text to the output. This command may be used to
X pass tables and other text unaltered through the
X formatter.
X
X.ju | .j | .justify
X
X Justify causes the words on a line to be evenly spaced
X between the left and the right margins. Note that lines can
X be justified only if lines are also being filled. PROFF
X automatically assumes justify mode during the startup.
X
X.nj | .nojustify
X
X No justify discontinues the text justification.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 7
X
X
X33..22 TTeexxtt FFoorrmmaattttiinngg
X
X.br | .break
X
X Break causes a break: the current line is printed without
X justification, and the next word is placed at the beginning
X of a new line. Note that many PROFF commands cause an
X implicit break.
X
X.in | .lm | .leftmargin [+|-][n]
X
X Indent causes a break and indents the following lines [n]
X spaces to the right of the left margin. [n] can be negative
X to allow beginning a line to the left of the left margin,
X however, a line cannot begin to the left of column 0. If a
X plus or minus sign is used with n, then [n] is added or
X subtracted to or from the current value.
X
X.ti | .i | .left [+|-][n]
X
X Temporary indent is identical to the indent command except
X that it applies only to the next line of printed text.
X Thus, the command ".ti +5" would cause the next line to be
X printed 5 spaces to the right of those that follow.
X
X.st | .spaceto [-][n]
X
X Spaceto allows spacing to line [n] from the top of the
X current page. If a negative [n] is specified, than spacing
X is performed to line [n] from the bottom of the page
X (excluding the footer lines). Thus, footnotes can be set at
X a fixed distance from the bottom of the page by a command
X such as ".st -5".
X
X.sp | .s | .skip [n]
X
X Space causes a break and skips [n] lines, except at the top
X of a page. The space command is dependent on the setting
X of line spacing.
X
X.ce | .center [n | on | off]
X
X Center causes the next [n] lines of text to be centered
X between the left and right margins. Centering may be
X started with "on" and terminated with "off", in which case
X all input lines between these commands will be centered.
X
X.ul | .underline [n | on | off]
X
X Underline command causes the text on the next [n] input
X lines to be underlined when printed. If [n] is omitted,
X only the next line is underlined. This command does not
X
X
X
X
X
X1.0 Proff User's Guide 8
X
X
X cause a break, so words in filled text may be underlined
X by:
X
X
X |
X |The "Pay-off" Theory: Only
X |.ul
X |losers
X |believe in luck, horses, horoscopes
X |and
X |.ul
X |lotteries.
X |
X
X to get
X
X |
X |The "Pay-off" Theory: Only _l_o_s_e_r_s believe in
X |luck, horses, horoscopes and _l_o_t_t_e_r_i_e_s_.
X |
X
X Underlining may be started with "on" and terminated
X with "off", similar to the centering command.
X
X.ul | .underline [all | words]
X
X This version of the underline command is used to set the
X mode of underlining:
X
X all - underline across all characters,
X including spaces.
X words - underline words only
X
X
X.bd | .bold [n | on | off]
X
X The bold command causes the text on the next [n] input
X lines to be highlighted by overstriking. If [n] is omitted,
X only the next line is highlighted. Bolding may be started
X with "on" and terminated with "off" as in the case of the
X center and underline commands.
X
X.db | .dbo | .disablebolding
X
X Turns the bolding off, all bolding commands are ignored.
X This feature is useful for rough drafts.
X
X.eb | .ebo | .enablebolding
X
X Turns the bolding feature back on. Bolding is turned on
X during the PROFF startup.
X
X
X
X
X
X
X1.0 Proff User's Guide 9
X
X
X33..33 PPaaggee FFoorrmmaattttiinngg
X
X.ls | .spc | .spacing [n]
X
X Line spacing is the command to set line spacing. Set n to 1
X for single spacing, 2 for double spacing etc.
X
X.bp | .pg | .page [n]
X
X The begin page command causes a break, ends the current
X page, outputs footers if required and begins a new page. If
X [n] is present, the page number is set to [n]. The default
X action is to number the pages incrementally.
X
X.pn | .pagenumber {roman} | {arabic}
X
X Page number command defines the format of the page number.
X Uppercase roman numerals may be obtained with "roman"
X keyword. To convert the page numbers back to normal,
X "arabic" is specified. PROFF uses arabic numerals as a
X default.
X
X.np | .nopaging
X
X No paging disables the pagination. When PROFF is in no
X paging mode, "begin page" (.bp) and "page length" (.pl)
X commands are ignored. This mode of operation is especially
X useful for using the proff output with the multi-column
X formatter (MC).
X
X.pa | .paging
X
X Paging enables normal page generation. This command starts
X a new page and restores the page length to the value
X previous to the ".np" command.
X
X.ne | .need | .tp | .testpage [n]
X
X Test page checks to see whether at least [n] lines remain
X in the current page. If less than this number of lines
X remain, printing will resume at the top of a new page. If
X [n] is missing, it is assumed to be zero.
X
X.he | .header <text>
X
X Header sets the text to be printed on top of each page.
X <text> is divided into sections which are to be left
X justified, centered and right justified. To divide <text>
X into these three parts, the first character is assumed to
X be a separator. (e.g. /left/center/right/) But any
X non-alphanumeric character may also be used. The characters
X "#" and "%" are replaced with the current page number and
X
X
X
X
X
X1.0 Proff User's Guide 10
X
X
X day/time in the header.
X
X.fo | .footer <text>
X
X Footer is identical to header except that it sets the text
X to be printed at the bottom of each page.
X
X.oh <text>
X
X The odd header command sets the header for odd pages only.
X
X.eh <text>
X
X The even header command sets the header for even pages
X only.
X
X.of <text>
X
X The odd footer command sets the footer for odd pages only.
X
X.ef <text>
X
X The even footer command sets the footer for even pages
X only.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 11
X
X
X33..44 PPaaggee LLaayyoouutt
X
X These commands are used to specify where on the page you
Xwant the formatted text to be placed. The general layout of a
Xpage is as follows:
X
X page offset (.po) |
X | |
X V |
X +----+-------------------------------------+----+ -+
X | | top margin (m1) includes header | | |
X +----+-------------------------------------+----+ |
X | | top margin 2 (m2) | | |
X +----+-------------------------------------+----+ |
X | | . | | P
X | |<-- indent (.in) . | | A
X | | . | | G
X | | T | | E
X | | E | |
X | | X | | L
X | | T | | E
X | | . | | N
X | | right margin (.rm) -->| | G
X | | . | | T
X | | . | | H
X | | . | | |
X +----+-------------------------------------+----+ |
X | | bottom margin 3 (m3) | | |
X +----+-------------------------------------+----+ |
X | | bottom margin (m4) includes footer | | |
X +----+-------------------------------------+----+ -+
X | |
X | |
X
X.po | .offset [+|-][n]
X
X The page offset command moves the entire page to the right
X or left depending on the specified value. All indentation
X is according to the page offset. PROFF assumes a page
X offset of 0 during the startup. If [n] is specified with a
X plus or minus, it will be added or subtracted from the
X current value.
X
X.rm | .rightmargin [+|-][n]
X
X Right Margin sets the position of the last printable
X character from the left edge of the page to [n]. Default
X value for right margin is 65. A plus or minus value will
X be added or subtracted from the current value. If [n] is
X not specified, right margin is set to the default value.
X
X.pl | .ps | .pagesize [n]
X
X
X
X
X
X1.0 Proff User's Guide 12
X
X
X Page length is used to set the number of lines that are to
X be printed on a page including the header and footer lines.
X After [n] lines are printed, the paper will advance to the
X top of next page. The default page length is 66 lines (11
X inches for 6 lines/inch). This command is disabled if
X nopaging is set.
X
X.m1 [n]
X
X Margin 1 sets the number of lines (including the header)
X which will be left at the top of the page to [n]. The
X default setting is 3. If [n] is omitted, is set to the
X default.
X
X.m2 [n]
X
X Margin 2 sets the number of blank lines between the header
X and the first line of text. The default setting is 2.
X
X.m3 [n]
X
X Margin 3 sets the number of blank lines between the footer
X and the last line of text. The default setting is 2.
X
X.m4 [n]
X
X Margin 4 sets the number of lines (including the footer)
X which will be left at the bottom of the page to [n]. The
X default setting is 3.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 13
X
X
X33..55 TTaabbllee ooff CCoonntteennttss
X
X This section describes the the commands that are used to
Xgenerate a table of contents. Basically, a contents line command
Xis used in every place in the document where an entry is needed
Xin the table of contents. PROFF stores the text and the page
Xnumber when it encounters this command. After the the body of
Xthe document is processed, a print contents command dumps the
Xcontents table. The contents should be dumped in a new page,
Xwith nofill. Page numbering should be disabled if the table of
Xcontents is to be used in front of the document.
X
X
X.cl | .contline [<n> <text>]
X
X Contents line specifies a line of <text> to be entered into
X the table of contents. <n> specifies the level at which the
X item is to be printed in the table. When the table is
X printed, each level of entry will be indented by specific
X number of spaces. <text> appears in the output exactly as
X it appears in the contents line command, except that
X leading blanks are removed. If no options specified in the
X contents line, a blank is inserted during the table
X output.
X
X.pc | .printcont [n]
X
X Print Contents causes the currently accumulated table of
X contents to be printed. If [n] is specified, it is used as
X the indent value for each level. If [n] is not specified,
X it is defaulted to 3.
X
X A contents line at level 0 is as wide as
X rightmargin-indent. The outlook of the table of contents
X may be changed by altering the right margin and indent
X values. A typical table of contents may be produced as
X follows:
X
X |.page
X |.he ////
X |.fo ////
X |.nofill
X |.sp
X |.center
X |Table of Contents
X |.sp
X |.printcont
X
X The following example illustrates the generation of a table
X of contents. Note that only one table of contents is active
X for a PROFF session.
X
X
X
X
X
X
X1.0 Proff User's Guide 14
X
X
X
X .cl
X .cl 0 A. Introduction
X Introduction
X text
X .
X .cl
X .cl 0 B. Methods
X Methods
X text
X .
X .cl 1 a) Sampling Procedures
X Sampling
X text
X .
X .cl 1 b) Laboratory Procedures
X Laboratory
X text
X .
X .cl
X .cl 0 C. Results
X Results
X text
X .
X .
X .pg
X .nf
X .he ////
X .fo ////
X .ce
X Table of Contents
X .sp
X .pc
X
X These commands will produce the following table:
X
X Table of Contents
X
X A. Introduction............................... 1
X
X B. Methods.................................... 3
X a) Sampling Procedures..................... 3
X b) Laboratory Procedures................... 4
X
X C. Results.................................... 5
X
X Macros may be defined as described in the following
X sections to help the generation of the table of contents.
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 15
X
X
X33..66 MMiisscceellllaanneeoouuss
X
X This section describes miscellaneous commands that
Xradically increase the formatting powers of PROFF. With the
Xassistance of variables, PROFF can generate form letters and
Xdocuments with dynamic parts. The ability to save and restore
Xformatter context eliminates the need to remember the exact
Xsettings of the formatter across the document.
X
X.vs | .set <variable> [definition]
X
X Set variable defines a variable to be later used in the
X document. If the definition part is left out, PROFF uses
X the variable name as a prompt and allows the user to define
X the variable interactively. Variable names cannot start
X with a numeric character, and may only contain
X alphanumeric characters. The definition of a variable may
X not contain any blanks, unless they are surrounded by
X double-quotes. To get a double quote within a a quoted
X definition, two double-quotes are used.
X
X Once the variable is defined, it can be used anywhere
X in the document, including the command line itself. A
X variable substitution is invoked by a dollar sign ($). (A
X literal $ is inserted into text using _$). A variable name
X must be delimited by a non-alphanumeric character within
X the text. If the contents of the variable is to be
X appended to other alphanumeric characters, it must be
X surrounded by wiggly braces ("{" and "}"). The following
X is an example of variable usage:
X
X |.nf
X |.vs v1 Murphy
X |${v1}'s first law:
X | Nothing is as easy as it looks.
X |${v1}'s second law:
X | Everything takes longer than you think.
X |Charley's observation:
X | Computers were invented by $v1.
X |
X
X Produces the following:
X
X |
X |Murphy's first law:
X | Nothing is as easy as it looks.
X |Murphy's second law:
X | Everything takes longer than you think.
X |Charley's observation:
X | Computers were invented by Murphy.
X |
X
X
X
X
X
X
X1.0 Proff User's Guide 16
X
X
X.vg | .get <variable> <prompt>
X
X Get variable is the interactive version of variable
X definition. In this variant, a prompt string is used to
X obtain the value of the variable, which is typed at the
X user's terminal. If the prompt string is to contain
X blanks, tabs etc., it must be enclosed in double quotes. No
X quotes are necessary for input text.
X
X.nr <a-z> [+|-][n]
X
X Number register is used to define registers that contain
X numeric values. There are 26 number registers, named a-z.
X The command ".nr x n" sets the number register "x" to value
X n; ".nr x +n" increments the number register by n; ".nr x
X -n" decrements the number register by n. The value of the
X number register x is placed in the text by the appearance
X of @nx. A literal @ may be inserted using _ at . Number
X registers may be used on command lines and anywhere in the
X text.
X
X.cc | .cchar [char]
X
X Control Character sets the character that distinguishes
X PROFF commands from text to be formatted. As a default,
X control character is set to (".") period. This character
X may be changed to something other than a period, either to
X mimic other formatters or to disallow interpretation of
X lines beginning with a period. (This document makes heavy
X use of the .cc command).
X
X.ec | .echar [char]
X
X Escape Character sets the character that disallows the
X interpretation of spacial characters such as @ and $. PROFF
X uses an underline ("_") character as a default.
X
X.so | .source | .include | .require [filename]
X
X The source (include) command allows external files to be
X inserted into the input file during the formatting. Using
X this feature, tables, graphs and other documents generated
X outside PROFF may be included into the document being
X formatted. This feature is also very useful in including a
X common set of macros during formatting. Include files may
X be nested inside other include files. Currently, PROFF only
X allows a nested include files level of 8. Filename may be
X enclosed in quotes.
X
X.sv | .save
X
X The save command allows the saving of the current formatter
X
X
X
X
X
X1.0 Proff User's Guide 17
X
X
X context on a pushdown stack. The saved context of the
X formatter segment (FSECT) includes the following values and
X flags:
X
X values flags on | off
X ------ -----
X indent (.in) fill (.fi | .nf)
X right margin (.rm) justify (.ju | .nj)
X offset (.po) paging (.pa | .np)
X line spacing (.ls) number type (.pn)
X page length (.pl) bolding (.eb | .db)
X margin values (.m1) autoparagraph (.ap | .na)
X (.m2)
X (.m3)
X (.m4)
X control char (.cc)
X escape char (.ec)
X
X
X.rs | .restore
X
X The restore command pops the context stack and restores the
X values and flags as defined above.
X
X.lx | .lex <command> [equate]
X
X The lexical modification command is essentially a permanent
X replacement of a given command. This command is used for
X changing the command names without resorting to the macro
X facility. Lex permanently removes the old command name from
X command tables and replaces it with the new definition. If
X the equate is not specified, the command becomes undefined
X and is no longer recognised by PROFF. The command equate
X should not contain non-alphanumeric characters.
X
X.ap | .autoparagraph
X
X The autoparagraph command turns on the automatic
X paragraphing feature. If auto-paragraphing is on, every
X line that starts with a _b_l_a_n_k or a _t_a_b character starts a
X new paragraph. A new line is generated (.sp) and the
X beginning of the paragraph is indented by five spaces.
X Autoparagraphing is the equivalent of the following
X commands:
X |
X |textextextextext
X |.sp
X |.ti +5
X |textextextextext
X |
X
X.na | nap | .noautoparagraph
X
X
X
X
X
X1.0 Proff User's Guide 18
X
X
X No Autoparagraph command disables auto-paragraphing.
X
X.wr | .write <string>
X
X Write is a special output command, only to be used to
X configure printers and other output devices with escape
X sequences. This command outputs the associated string as it
X is encountered, without going through the normal output
X routines of the formatter. Currently, the output string may
X contain control characters specified as "^<char>", decimal
X numbers within the range of 1-255, and other characters.
X Blanks within the string are skipped. Any portion of the
X string enclosed with double quotes is output as is. To
X output a double quote, two double quotes must be used
X within the quoted string. Following is a typical string to
X set a Digital La-100 printer to letter quality print mode:
X
X |
X |.wr ^["[2z"
X |
X
X In the control string, "^[" is the ASCII equivalent of the
X Escape (esc) character. Following mapping table is used to
X convert characters starting with a caret to their binary
X equivalents: ("|" indicates an alternative)
X
X Control chr Dec. Oct. Hex.
X ----------- ---- ---- ----
X ^a | ^A (soh) 1 01 01
X ^b | ^B (stx) 2 02 02
X ^c | ^C (etx) 3 03 03
X ^d | ^D (eot) 4 04 04
X ^e | ^E (enq) 5 05 05
X ^f | ^F (ack) 6 06 06
X ^g | ^G (bel) 7 07 07
X ^h | ^H (bs) 8 10 08
X ^i | ^I (ht) 9 11 09
X ^j | ^J (nl) 10 12 0A
X ^k | ^K (vt) 11 13 0B
X ^l | ^L (np) 12 14 0C
X ^m | ^M (cr) 13 15 0D
X ^n | ^N (so) 14 16 0E
X ^o | ^O (si) 15 17 0F
X ^p | ^P (dle) 16 20 10
X ^q | ^Q (dc1) 17 21 11
X ^r | ^R (dc2) 18 22 12
X ^s | ^S (dc3) 19 23 13
X ^t | ^T (dc4) 20 24 14
X ^u | ^U (nak) 21 25 15
X ^v | ^V (syn) 22 26 16
X ^w | ^W (etb) 23 27 17
X ^x | ^X (can) 24 30 18
X
X
X
X
X
X1.0 Proff User's Guide 19
X
X
X ^y | ^Y (em) 25 31 19
X ^z | ^Z (sub) 26 32 1A
X ^[ (esc) 27 33 1B
X ^\ (fs) 28 34 1C
X ^] (gs) 29 35 1D
X ^^ (rs) 30 36 1E
X ^_ (us) 31 37 1F
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 20
X
X
X33..77 DDeeffiinniinngg NNeeww CCoommmmaannddss ((MMaaccrrooss))
X
X In document formatting, it is common to repeat a series of
Xcommands at several places in the document. PROFF allows you to
Xdefine a new command that will replace these repeated commands.
XThis not only saves typing but ensures that _e_x_a_c_t_l_y the same
Xsequence of commands are applied throughout the document. A new
Xcommand that you define is formally called a _m_a_c_r_o_. To define a
Xmacro, you must use the define macro (.de | .define) and end
Xmacro (.en) commands.
X
X.de | .define <macro name>
X
X Define is used to define a <macro name> to which a series
X of commands to be assigned. This definition line is
X followed by any number of PROFF commands and/or text which
X define the action that the macro will subsequently produce.
X Macros may refer to other macros.
X
X.en
X
X End macro is the last line in the command definition. You
X must put in this command to finish a currently defined
X macro. ".en" command should not be re-defined as a macro.
X
XThe example below defines macros ".note" and ".endnote", similar
Xto the RUNOFF commands of the same name.
X
X |
X |.define note
X |.sp
X |.ce
X |NOTE
X |.sp
X |.fi
X |.in +5
X |.rm -5
X |.en
X |
X |.define endnote
X |.sp
X |.nf
X |.in -5
X |.rm +5
X |.en
X |
X
X A macro is used like any other PROFF command, control
Xcharacter followed immediately by the name of the macro. For
Xexample, the above macros may be used as follows:
X
X
X
X
X
X
X
X1.0 Proff User's Guide 21
X
X
X
X |
X |.note
X |textextextextextextextextextext
X | .
X | .
X | .
X |.endnote
X |
X
XThe following note is generated by the same macros described
Xpreviously.
X
X NOTE
X
X Flap's Law: Any inanimate object, regardless of its
X position or configuration, may be expected to perform
X at any time in a totally unexpected manner for reasons
X that are either entirely obscure or else completely
X mysterious.
X
XSpecial symbols may be used within a macro definition. These
Xsymbols represent the parameters passed to a macro, delimited by
Xblanks or commas. These symbols are $0 for macro name, $1 for
Xthe first parameter, $2 for the second parameter and so on, up
Xto $9 for the ninth parameter. Currently, macro parameters may
Xonly contain alphanumerics, no string parameters are possible.
XThe previous macro "note" may now be defined as follows:
X
X |
X |.define note
X |.sp
X |.ce
X |$2 $3 $4 $5 $6 $7 $8 $9
X |.nr m $1
X |.sp
X |.fi
X |.in +$1
X |.rm -$1
X |.en
X |
X |.define endnote
X |.sp
X |.nf
X |.in - at nm
X |.rm + at nm
X |.en
X |
X
X In this version of the "note" and "endnote" macros, the
Xfirst parameter ($1) is used to pass the value for indentation
Xand right margin adjustment. All the rest of the macro
X
X
X
X
X
X1.0 Proff User's Guide 22
X
X
Xparameters ($2 - $9) are used as the title of the note. The
Xindent value passed as the first parameter is also saved in the
Xnumber register "m" to communicate it to the "endnote" macro,
Xsuch that when the endnote macro is called, both indent and
Xright margin values are adjusted back to normal. It is possible
Xand may be more useful to use ".save" and ".restore" commands to
Xaccomplish the same task, especially if the macro alters the
Xcurrent formatting context drastically. The ".note" and
X".endnote" macros may be called as follows:
X
X |
X |.note 5 Asimov's Law of Robotics
X |textextextextextextextextextext
X | .
X | .
X | .
X |.endnote
X |
X
X In this usage, the indent value will be adjusted by +5,
Xright margin will be adjusted by -5, and the title "Asimov's Law
Xof Robotics" will appear centered above the note.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 23
X
X
X44..00 EExxeeccuuttiinngg PPRROOFFFF
X
X The PROFF program may be invoked with a series of optional
Xparameters and filenames on the command line. The command
Xsynopsis is:
X
XPROFF [+n] [-n] [-v] [-s] [-pon] [-ifile] input [output]
X
XThe square brackets indicate an optional parameter.
XInterpretation of the parameters is as follows:
X
X ++nn
X Start the printing of the document at the first page
X with number n.
X
X --nn
X Stop printing at the first page numbered higher than
X n.
X
X --vv
X Verbose mode. PROFF indicates the source files being
X included into document, and produces a summary of the
X number of textlines read in, the number of lines and
X actual pages generated. A memory usage summary of
X internal storage for macros, stacks and tables is also
X displayed.
X
X --ss
X Stop before each page, including the first one to
X allow paper adjustment. A prompt is given just before
X the first page. For each page thereafter, the terminal
X bell is rung to indicate that another sheet of paper
X is needed.
X
X --ppoonn
X Sets the page offset to n. This is equivalent to ".po"
X command within the document. It is recommended that
X -pon option be used instead of embedding the offset
X value within the document.
X
X --iiffiillee
X Includes the given file to the formatted document.
X This is equivalent to a ".include file" command within
X the document. This option may be repeated more than
X once, -ifile1 -ifile2 etc.
X
X iinnppuutt
X Specifies the input file to be formatted. PROFF does
X not impose any file extension. The recommended
X extension is ".PRF".
X
X
X
X
X
X
X
X1.0 Proff User's Guide 24
X
X
X
X oouuttppuutt
X Specifies the output file for the formatted document.
X If this is omitted, output is directed to the user's
X terminal.
X
XFollowing are some examples of PROFF command lines:
X
X A>PROFF -v proffman.prf
X
XFormat this document (proffman.prf) in verbose mode, and output
Xthe formatted document to the terminal.
X
X A>PROFF +5 -imacros.pma proffman.prf
X
XFormat this document, include the external file MACROS.PMA, skip
Xthe first four pages and output the formatted document to the
Xterminal.
X
X A>PROFF -po10 proffman.prf proff.man
X
XFormat this document, shift the entire document by 10 spaces to
Xright and output to a file called proff.man.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 25
X
X
X55..00 TTiippss oonn uussiinngg PPRROOFFFF
X
X55..11 CCaarree aanndd FFeeeeddiinngg ooff MMeemmoorryy
X
X PROFF uses a dynamic memory allocation scheme for some of
Xits operations. These are macro definitions, contents lines,
Xvariables and save context operation. Running PROFF under
Xmicrocomputers with limited memory resources (64k or less)
Xrequire some care in using these commands:
X
Xa) Do not declare macros that are not needed within the
X document.
X
Xb) Do not use comments within macros. Due to delayed evaluation,
X comments will also be stored as a part of the macro
X definition.
X
Xc) Where possible, avoid using too much text within macros. It
X is just as easy to pass the information during the macro
X call.
X
Xd) Use only the shortest form of commands within macros.
X
Xe) Be brief in contents line text.
X
Xf) Use short variable names as long as it is not so cryptic as
X to be confusing.
X
Xg) Avoid unnecessary blanks within the variable definitions.
X
Xh) Avoid too many context saves without a corresponding restore.
X The restore operation reclaims the memory used for a save.
X
X
X Even if the formatter is used with a system of large memory
Xresources, some of the precautions above are applicable. (Utz's
X4th law of Computer Programming: Any given program will
Xeventually expand to fill all the available memory.) Using the
X-v option under memory-restricted systems may be useful in
Xdetermining the memory usage.
X
X
X55..22 FFoorrmmaattttiinngg wwiitthhoouutt ffuussss
X
X PROFF, using its default settings, may provide reasonably
Xformatted output in many situations. As an example, examine the
Xdocument PROFF.TUT. This document does not use ANY formatting
Xcommands. All formatting is done with the default settings.
X
X
X55..33 VVaarriiaabblleess wwiitthhiinn mmaaccrrooss
X
X
X
X
X
X
X1.0 Proff User's Guide 26
X
X
X Variable expansions may be performed within the macros.
XTypically, one of the parameters of the macro is assumed to be a
Xvariable, which is expanded only after the macro is used. Thus:
X
X |
X |.define xx
X |.ce
X |$$1
X |.cl $$1
X |.en
X |
X
XThe macro xx assumes the first parameter to be a variable, which
Xis centered on the page, and also entered in the table of
Xcontents. Note the usage of "$$1". The lines within a macro are
Xscanned from right to left for parameter expansion. Thus, "$1"
Xis expanded first, resulting in "$<first parameter>". This is
Xlater expanded as a variable.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 27
X
X
X66..00 EExxaammppllee mmaaccrrooss
X
X .!
X .! macros to create a point-form lists.
X .! note the use of number registers within
X .! the macros.
X .!------------
X .define list
X .nr a $1
X .in $1
X .en
X .!------------
X .define item
X .sp
X .ti - at na
X $1
X .en
X .!------------
X .define nolist
X .in - at na
X .sp
X .en
X .!------------
X
XThe "list" macro is used to generate point-form lists. The first
Xparameter is an indent value, size of point-str + 1. A typical
Xusage may be as follows:
X
X |
X |Project work involves:
X |.sp
X |.list 3 { size-of-point-str + 1 }
X |.item a) { "a)" is the point-str }
X |choosing a topic
X |.item b)
X |defining the topic
X |.item c)
X |research
X |.item d)
X |organizing the notes
X |{etc.}
X |.nolist { readjusts the indent }
X |
X
XThe above usage will produce the following:
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 28
X
X
X
X |
X |Project work involves:
X |
X |a) choosing a topic
X |
X |b) defining the topic
X |
X |c) research
X |
X |d) organizing the notes
X |
X
XThe point-form recommendations under section 5.1 (Care and
XFeeding of Memory) were generated with the same set of macros
Xdescribed above.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Proff User's Guide 29
X
X
X77..00 AAcckknnoowwlleeddggeemmeennttss
X
X This document was edited by Terry Lim and Steven Tress.
XThe format of the document is largely based on The Freshwater
XInstitute RUNOFF User's Guide. The Quotes for the various
Xformatting examples are from THE QUOTABLE NOTHING BOOK and from
X1001 LOGICAL LAWS, ACCURATE AXIOMS, PROFOUND PRINCIPLES, TRUSTY
XTRUISMS, HOMEY HOMILIES, COLORFUL COROLLARIES, QUOTABLE QUOTES,
XAND RAMBUNCTIOUS RUMINATIONS FOR ALL WALKS OF LIFE, by Peers,
XBennet and Booth, Fawcett Columbine Books, New York.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X1.0 Appendix A 30
X
X
XAAppppeennddiixx AA
X Summary of Commands
X
X----------------------------------------------------------
X.fi | .f | .fill
X default: initial: yes break: yes
X begin filling output lines
X----------------------------------------------------------
X.nf | .nofill
X default: initial: no break: yes
X stop filling
X----------------------------------------------------------
X.ju | .j | .justify
X default: initial: yes break: yes
X begin justifying filled lines
X----------------------------------------------------------
X.nj | .nojustify
X default: initial: no break: yes
X stop justifying
X----------------------------------------------------------
X.br | .break
X default: initial: break: yes
X cause a break and output current line
X----------------------------------------------------------
X.in | .lm | .leftmargin [+|-][n]
X default: 0 inital: 0 break: yes
X set left margin to column n+1
X----------------------------------------------------------
X.ti | .i | .left [+|-][n]
X default: 0 initial: break: yes
X temporarily indent next output n spaces
X----------------------------------------------------------
X.st | .spaceto [-][n]
X default: 0 initial: break: yes
X space to line +n from top
X space to line -n from bottom
X----------------------------------------------------------
X.sp | .s | .skip [n]
X default: 1 initial: break: yes
X space n lines except at top of page
X----------------------------------------------------------
X.ce | .center [n | on | off]
X default: 1 initial break: yes
X center next n lines
X center until turned off
X----------------------------------------------------------
X.ul | .underline [n | on | off]
X default: 1 initial break: no
X underline next n lines
X underline until turned off
X----------------------------------------------------------
X
X
X
X
X
X
X1.0 Appendix A 31
X
X
X----------------------------------------------------------
X.ul | .underline [all | words]
X default: words initial: words break: no
X set mode for underline - words or all
X----------------------------------------------------------
X.bd | .bold [n | on | off]
X default: 1 initial: break: no
X boldface (overstrike) next n lines
X boldface until turned off
X----------------------------------------------------------
X.db | .dbo | .disablebolding
X default: initial: no break: no
X disable bolding
X----------------------------------------------------------
X.eb | .ebo | .enablebolding
X default: initial: yes break: no
X enable bolding
X----------------------------------------------------------
X.ls | .spc | .spacing [n]
X default: 1 initial: 1 break: no
X set line spacing to n
X----------------------------------------------------------
X.bp | .pg | .page [n]
X default: +1 initial: 1 break: yes
X begin a new page and number it n
X----------------------------------------------------------
X.pn | .pagenumber {roman} | {arabic}
X default: initial: arabic break: no
X set page numbering to arabic or roman
X----------------------------------------------------------
X.np | .nopaging
X default: initial: no break: yes
X disable paging
X----------------------------------------------------------
X.pa | .paging
X default: initial: yes break: yes
X enable paging
X----------------------------------------------------------
X.ne | .need | .tp | .testpage [n]
X default: 0 initial: break: yes/no
X need n lines. Break and generate a new page
X if not available
X----------------------------------------------------------
X.he | .header <text>
X default: null initial: null break: no
X set header to text (/left/center/right/)
X----------------------------------------------------------
X.fo | .footer <text>
X default: null initial: null break: no
X set footer to text (/lef/center/right/)
X----------------------------------------------------------
X
X
X
X
X
X
X1.0 Appendix A 32
X
X
X----------------------------------------------------------
X.oh <text>
X default: null initial: null break: no
X set header on odd pages to text
X----------------------------------------------------------
X.eh <text>
X default: null initial: null break: no
X set header on even pages to text
X----------------------------------------------------------
X.of <text>
X default: null initial: null break: no
X set footer on odd pages to text
X----------------------------------------------------------
X.ef <text>
X default: null initial: null break: no
X set footer on odd pages to text
X----------------------------------------------------------
X.po | .offset [+|-][n]
X default: 0 initial: 0 break: yes
X set page offset to n spaces
X----------------------------------------------------------
X.rm | .rightmargin [+|-][n]
X default: 65 initial: 65 break: no
X set right margin to column n
X----------------------------------------------------------
X.pl | .ps | .pagesize [n]
X default: 66 initial: 66 break: no
X set page length to n lines
X----------------------------------------------------------
X.m1 [n]
X default: 3 initial: 3 break: no
X lines between top of page and header
X----------------------------------------------------------
X.m2 [n]
X default: 2 initial: 2 break: no
X lines between header and text
X----------------------------------------------------------
X.m3 [n]
X default: 2 initial: 2 break: no
X lines between text and footer
X----------------------------------------------------------
X.m4 [n]
X default: 3 initial: 3 break: no
X lines between footer and bottom
X----------------------------------------------------------
X.cl | .contline [<n> <text>]
X default: initial: break: yes
X enter text into table of contents at level
X n
X----------------------------------------------------------
X
X
X
X
X
X
X
X1.0 Appendix A 33
X
X
X----------------------------------------------------------
X.pc | .printcont [n]
X default: 3 initial: 3 break: yes
X print table of contents, indent each level
X n spaces
X----------------------------------------------------------
X.vs | .set <variable> [definition]
X default: initial: break: no
X set variable to text
X----------------------------------------------------------
X.vg | .get <variable> <prompt>
X default: initial: break: no
X set variable interactively, using text
X as prompt
X----------------------------------------------------------
X.nr <a-z> [+|-][n]
X default: 0 initial: 0 break: no
X set number register (a-z) to n
X----------------------------------------------------------
X.cc | .cchar [char]
X default: "." initial: "." break: no
X set command control character to char
X----------------------------------------------------------
X.ec | .echar [char]
X default: "_" initial: "_" break: no
X set universal escape character to char
X----------------------------------------------------------
X.so | .source | .include | .require [filename]
X default: initial: input break: no
X switch input to file
X----------------------------------------------------------
X.sv | .save
X default: initial: break: yes
X save the current formatter context on
X context stack
X----------------------------------------------------------
X.rs | .restore
X default: initial: break: yes
X restore the formatter context from context
X stack
X----------------------------------------------------------
X.lx | .lex <command> [equate]
X default: initial: break: no
X rename a command
X----------------------------------------------------------
X.ap | .autoparagraph
X default: initial: no break: no
X enable auto-paragraphing
X----------------------------------------------------------
X
X
X
X
X
X
X
X
X1.0 Appendix A 34
X
X
X----------------------------------------------------------
X.na | nap | .noautoparagraph
X default: initial: yes break: no
X disable auto-paragraphing
X----------------------------------------------------------
X.wr | .write <string>
X default: initial: break: no
X write a special string to output. line
X counter does not change
X----------------------------------------------------------
X.de | .define <macro name>
X default: initial: break: no
X define a macro command - ends at ".en"
X----------------------------------------------------------
X.en
X default: initial: break: no
X end the macro definition
X----------------------------------------------------------
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X Table Of Contents
X
X PROFF 1.0
X1.0 Introduction ....................................... 1
X
X2.0 General Description ................................. 2
X
X 2.1 The Input ........................................ 2
X 2.1.1 Text ....................................... 2
X 2.1.2 Commands ................................... 2
X
X 2.2 The Output ....................................... 3
X
X 2.3 Executing PROFF .................................. 3
X
X 2.4 Bibliographic Notes .............................. 4
X
X 2.5 References and Readings ........................... 4
X
X3.0 Command Descriptions ................................ 5
X
X 3.1 Filling and Justifying ............................ 6
X .fi | .f | .fill..................................... 6
X .nf | .nofill........................................ 6
X .ju | .j | .justify.................................. 6
X .nj | .nojustify..................................... 6
X
X 3.2 Text Formatting .................................. 7
X .br | .break......................................... 7
X .in | .lm | .leftmargin [+|-][n]..................... 7
X .ti | .i | .left [+|-][n]............................ 7
X .st | .spaceto [-][n]................................ 7
X .sp | .s | .skip [n]................................. 7
X .ce | .center [n | on | off]......................... 7
X .ul | .underline [n | on | off]...................... 7
X .ul | .underline [all | words]....................... 8
X .bd | .bold [n | on | off]........................... 8
X .db | .dbo | .disablebolding......................... 8
X .eb | .ebo | .enablebolding.......................... 8
X
X 3.3 Page Formatting .................................. 9
X .ls | .spc | .spacing [n]............................ 9
X .bp | .pg | .page [n]................................ 9
X .pn | .pagenumber {roman} | {arabic}................. 9
X .np | .nopaging...................................... 9
X .pa | .paging........................................ 9
X .ne | .need | .tp | .testpage [n].................... 9
X .he | .header <text>................................. 9
X .fo | .footer <text>................................. 10
X .oh <text>........................................... 10
X .eh <text>........................................... 10
X .of <text>........................................... 10
X
X
X - I -
X
X
X
X
X
X .ef <text>........................................... 10
X
X 3.4 Page Layout ...................................... 11
X .po | .offset [+|-][n]............................... 11
X .rm | .rightmargin [+|-][n].......................... 11
X .pl | .ps | .pagesize [n]............................ 11
X .m1 [n].............................................. 12
X .m2 [n].............................................. 12
X .m3 [n].............................................. 12
X .m4 [n].............................................. 12
X
X 3.5 Table of Contents ................................. 13
X .cl | .contline [<n> <text>]......................... 13
X .pc | .printcont [n]................................. 13
X
X 3.6 Miscellaneous ................................... 15
X .vs | .set <variable> [definition]................... 15
X .vg | .get <variable> <prompt>....................... 15
X .nr <a-z> [+|-][n]................................... 16
X .cc | .cchar [char].................................. 16
X .ec | .echar [char].................................. 16
X .so | .source | .include | .require [filename]....... 16
X .sv | .save.......................................... 16
X .rs | .restore....................................... 17
X .lx | .lex <command> [equate]........................ 17
X .ap | .autoparagraph................................. 17
X .na | nap | .noautoparagraph......................... 17
X .wr | .write <string>................................ 18
X
X 3.7 Defining New Commands (Macros) ..................... 20
X .de | .define <macro name>........................... 20
X .en.................................................. 20
X
X4.0 Executing PROFF ..................................... 23
X
X5.0 Tips on using PROFF ................................... 25
X 5.1 Care and Feeding of Memory.......................... 25
X 5.2 Formatting without fuss ........................... 25
X 5.3 Variables within macros ........................... 25
X
X6.0 Example macros ...................................... 27
X
X7.0 Acknowledgements ................................... 29
X
XAppendix A ............................................. 30
X
X
X
X
X
X
X
X
X
X - II -
X
SHAR_EOF
if test 61510 -ne "`wc -c 'proff.man'`"
then
echo shar: error transmitting "'proff.man'" '(should have been 61510 characters)'
fi
# End of shell archive
exit 0
--
Usenet: [decvax|allegra|linus|ihnp4]!utzoo!yetti!oz
Bitnet: oz@[yusol|yuyetti]
In the beginning, there was Word all right, except
it wasn't fixed number of bits.
More information about the Comp.sources.unix
mailing list