home *** CD-ROM | disk | FTP | other *** search
- Path: seismo!uunet!rs
- From: rs@uunet.UU.NET (Rich Salz)
- Newsgroups: comp.sources.unix,comp.text
- Subject: v09i063: Troff macros for "ACM Transactions"
- Message-ID: <367@uunet.UU.NET>
- Date: 16 Jun 87 23:41:04 GMT
- Organization: UUNET Communications Services, Arlington, VA
- Lines: 1746
- Approved: rs@uunet.uu.net
-
- Submitted by: dberry@cs.ucla.edu (Dan Berry)
- Mod.sources: Volume 9, Issue 63
- Archive-name: mx-macros
-
- [ Slightly unusual -- it's not C code -- but no doubt many people will find
- this worthwhile, if not for use than for study. In order to catch the
- right readership, I'm also cross-posting this to comp.text, and I don't
- intend to start a trend by doing that. --r$ ]
-
- # This is a shell archive. Remove anything before this line,
- # then unpack it by saving it in a file and typing "sh file".
- # Contents: acm.tos/ READ_ME mX.doc mX.7 tmac.X tmac.Xrefs acm.tos/refmacros
- # acm.tos/skeleton
-
- echo x - READ_ME
- sed 's/^@//' > "READ_ME" <<'@//E*O*F READ_ME//'
- Dear Colleagues
-
- RE: Marc Moriconi's letter in SIGPLAN Notices concerning preparing
- camera-ready copy for ACM Transactions in X with the help of LaTeX.
-
- Those of you who prefer to use ditroff can do the same. In fact, by
- using ditroff, you will more likely be able to typeset it with fonts
- that appear more like those actually used by the ACM Transactions. One
- can use fonts like these: Roman, Italic, Bold, and Sans Serif, as well
- as the constant width font in which this letter is done.
-
- Some time ago Shaula Yemini and I published a paper in TOPLAS for which
- I prepared a camera-ready copy (S. Yemini and D.M. Berry, "A Modular
- Verifiable Exception Handling Mechanism", Transactions on Programming
- Languages and Systems 7:2, pp. 214-243, 1985). I used AT&T's ditroff
- with the mX macros. The mX macro set was prepared UCLA for vanilla
- troff about a decade ago by the then student Bruce Walker. It is an
- incredibly clean macro set, which seems not to have been affected by
- all the changes to troff and ditroff. By measuring the articles in one
- issue with a ruler, I came up with initial register settings,
- substitute definitions for some macros, refer macros, and a paper
- skeleton that looked fairly good. After receiving the editor's marked
- copy which revealed actual sizes in normal typesetting units, picas,
- points, etc. I corrected these, to produce the camera-ready copy. We
- prepared a follow-up paper, submitting it in nearly final form (only
- the projected acceptance date and publication dates would have to be
- changed!). This was done by using the previous paper as a skeleton.
- Happily this paper was accepted, but we are still awaiting word of the
- printing date.
-
- As with Moriconi's experience, we proof with a laser printer, and then
- when the paper is accepted and edited, we take the same file to a
- commercial typesetter. As a matter of fact, the laser printer and the
- typesetter we use talk PostScript\(tm (PostScript is a trademark of
- Adobe Systems, Inc.) and can be sent the same PostScript output from
- ditroff; the laser proof is an accurrate prediction of the typesetter's
- output.
-
- By this posting, I am making available the mX macro package together
- with the paper skeleton. Using these would require changing your
- paper's macro calls to use mX's. That is not too difficult, as one does
- not do much more than start new sections, start new paragraphs, have
- numbered lists, etc. If, however, you prefer to use another macro
- package, or are submitting to another journal, it would not be
- difficult to come up with register settings for the macro package for
- the journal's style. A troff expert can do it in a day!
-
- Daniel M. Berry UCLA Computer Science Department
- 3531 Boelter Hall, UCLA, Los Angeles, CA 90024-1600, USA
- dberry@cs.ucla.edu ..!{sdcrdcf,ihnp4,cepu,trwspp,ucbvax}!ucla-cs!dberry
-
- -----------------------
- Below is a list of the files and directories contained herein. Install them
- in the indicated place. The acm.tos files go with your home directory
-
- mX.doc user level description- should go in /usr/lib/tmac
- mX.7 man page- should go in /usr/man/man7
- tmac.X macro package- should go in /usr/lib/tmac
- tmac.Xrefs standard reference macros- should go in /usr/lib/tmac
-
-
- acm.tos directory containing skeleton and refmacros for doing ACM
- Transactions on xxxxx
- acm.tos/refmacros
- acm.tos/skeleton
- @//E*O*F READ_ME//
- chmod u=rw,g=,o= READ_ME
-
- echo mkdir - acm.tos
- mkdir acm.tos
- chmod u=rwx,g=,o= acm.tos
-
- echo x - mX.doc
- sed 's/^@//' > "mX.doc" <<'@//E*O*F mX.doc//'
- NROFF/TROFF MACROS by Bruce Walker
-
-
-
- These macros are compatible with version 7 troff/nroff and eqn/neqn.
- The macros have been designed to meet the needs of as many users as
- possible by having most macros controlled by user settable variables.
- The following scenario outlines how to take advantage of this:
- .so /usr/lib/tmac/tmac.X \" bring in the macro file
- .nr tf 1.5i \" make changes to variables
- .ds Te 'EVEN PAGE'TITLE'LINE'
- .ds To 'ODD PAGE'TITLE'LINE'
- .en \" set up the environment so paging, etc. happens.
- continue with the text of the paper etc.
-
-
- USER MACROS
-
- .en - set up the environment (ie. traps for page start and end).
- - this should be called near the start of an nroff.
- - "th" is the total space of header (in units);
- - "bh" is space before and including header (in units)
- - "tf" is the total space of footer (in units);
- - "bf" is space before and including footer (in units);
- .pp - start a paragraph.
- - spaces "sh" vertical; needs "sg" vertical; indents "sf" units;
- .sc - start a new chapter.
- - begin a new page; can have 0 or 2 parameters; with 0 parameters,
- the next two input lines are centered, after "sl" unit spaces;
- With two parameters, the first can be either +,- or chapter #;
- A + indicates that a one line title consisting of the second
- parameter should be centered, after the appropriate spaces.
- It should also appear as is in the Table of Contents.
- A - indicates that the second parameter is to appear in the
- Table of Contents but that no spacing or centering or printing
- of a title is to be done.
- With a chapter # as the first parameter, a
- two line chapter title is centered after "sl" unit blank lines.
- The first line is CHAPTER #; The second is as given in the
- second parameter. The Table of Contents entry is the concat of
- the two parameters.
- .sa - start a new appendix.
- - begin a new page and space down "sl" unit spaces. There can be
- 0 or 2 parameters. With 0 parameters the next two input lines
- are centered. With two parameters, the first is the appendix
- name/number. The second is the title. A two line appendix title
- is centered after "sl" unit blank lines. The first line is
- APPENDIX \\$1. The second is \\$2, where \\$1 and \\$2 are the
- two parameters to .sa. The table of contents entry is
- Appendix \\$1 \\$2 ............. page#
- .su - start a new subsection.
- - "sa" unit spaces are left; "sm" units are needed; There can be
- 0, 1 or 2 parameters. With zero parameters, the next input line
- is underlined with .ul. With one parameter, it is underlined and
- put as is in the table of contents. With two parameters, the
- second parameter is a level number which is used to control the
- indenting of the entry in the table of contents.
- .es - example start;
- - space "si" vertical; save mode (fill/nofill); switch to nofill
- - indent "sj" units;
- .ee - example end;
- - space "sk" vertical; indent -"sj" units; restore fill mode if needed
- .l1 - start a list;
- - set the first tab to be the current indent + "sn" and 2 other
- - tabs at 5m intervals; indent +"sn" units;
- - There is an optional parameter. If a parameter is given, the
- list is automatically numbered in "format" which is given
- as the parameter (1 is straight numbering; i is roman numerals;
- a is for letters (see .af built in command in ref manual)).
- .e1 - end list;
- - break; indent -"sn" units; restore tabs to default;
- .le - list entry; done before each list entry.
- - space down "sp" units; temporarily indents -"so" units.
- - If the list is being numbered automatically (see .l1), then the
- number, followed by a dot, followed by a tab and set up so
- next user's input will go on the same line (ie. a \c) is done.
- .fn - start footnote;
- - If the user wishes to number footnotes on a page by page basis,
- use either \*N (for superscripting) or \*O (for [#]) at the
- reference point and at the start of the reference.
- .ef - end footnote text.
- .fs - figure start. Text up to .fe is printed in environment 2.
- - If there is room on the current page, the figure will be printed
- there. Otherwise the page will be filled with subsequent text
- and the figure will appear at the top of the next page.
- .fe - figure end. There is an optional parameter which is the entry
- that will be put in the List of Figures.
- .fg - full page figure. There is an optional parameter which is the
- entry that will be put in the List of Figures. The page on
- which the full page figure would be put is omitted (to save
- troffing) but the page numbers are incremented accordingly.
- NOTE: Use of this does not work with multi-columning (see MC).
- .rb - reference begin.
- - set tabs to "se", "se"+5, "se"+10; save current indent;
- go to spacing set in "sq"; indent to "se";
- .rf - reference entry.
- - space "sd" units; temporarily indent -"se" units; need "sc" units;
- .re - refernce end.
- - reset indentation to that value saved at reference begin.
- restore line spacing to it's previous value;
- Restore tabs to default.
- .LL - change line length and length of titles to the parameter given.
- - This macro changes these lengths in all the environments.
- .MC - Request to do multiple columns
- This macro expects 4 parameters
- - number of columns
- - width of each column (units must be given).
- - width of space between columns (units must be given).
- - page offset of the whole thing (units must be given).
- - NOTE: use of ".fg" does not work with multi-columning.
- .PS - change the character point size to the parameter given.
- - This macro changes the point size in all the environments.
- .RT - reset tabs to standard nroff or troff.
- .EQ - start an equation; save mode (fill/nofill); switch to nofill.
- - 2 parameters: first is L,C, or I - for left justified,
- centered or indented equation. Second is the equation number.
- - if only 1 parameter, it is treated as an equation number unless
- it is L, C, or I.
- .EN - end and equation; restore fill mode if necessary.
- .HS - a macro which is called at the beginning of the header macro.
- The user can redefine this. It is initialized to null.
- .HE - a macro which is called at the end of the header macro.
- The user can redefine this. It is initialized to null.
- .FS - a macro which is called at the beginning of the footer macro.
- The user can redefine this. It is initialized to null.
- .FE - a macro which is called at the end of the footer macro.
- The user can redefine this. It is initialized to null.
-
-
- HIDDEN MACROS
-
- .hd - header macro, executed at the top of each page (after .en done).
- .fo - footer macro, executed at the bottom of each page or when
- footnotes must start to print.
- .mf - multiple column footer processing.
- .fx - end of page trap which is hit if footnotes are printing. It
- saves excess footnotes in "fy".
- .xf - print footnotes macro; called by .fo if there are any to print.
- This can trap to .fx.
- .fz - save left over footnote for printing on a subsequent page.
- This is called by .hd if there were left over footnote text.
- .Ff - print figure macro; called by .fo if there are any to print.
- .Fa,Fb,Fc,Fd,Fe,F0 - used in figure collection and printing.
- .T1,T2 - used in Table of Contents and List of Figure entry generation.
- .SC - used by .sc to ensure that a new page is started. It is a recursive
- .bp. A single .bp in .sc would be insufficient because it might
- be used to get to a new page to print a figure. Then the chapter
- would not be on a new page.
- .ZZ - Cleanup at end of processing. This is automatically called at
- the end of processing.
- This will dump any figures which have been diverted and are
- waiting for the next page. Also it will print the Table of
- Contents and List of Figures if they are requested.
- .AB - Abort and print error message.
-
- REGISTERS USED OTHER THAN THOSE WHICH ARE USER SETTABLE
-
- t : internal temporary used for page numbers.
- x : counter- counts number of footnotes to be genned at bottom of page.
- y : footer top - has negative of # u's from bottom of page at which
- footer starts, includes space for footnotes
- z : temporary variable used in footnote processing.
- w : footnote counter usable by user to number his footnotes on each page
- c : internal -- column count for multiple columning
- z1 : internal -- size of leftover footnote
- he : internal -- flag to footer to tell that it is in a header.
- fa : internal -- flag from footer to header to tell it to do new page.
- fg : internal -- flag indicating that a figure is being printed.
- fn : internal -- flag indicating that a footnote is being processed
- ex : internal -- flag indicating that processing is in an example
- fs : internal -- flag indicating that a figure is being processed.
- tt : internal -- flag to indicate that a figure has caused a trap
- mx : internal -- line number saved to go back to for multiple columning.
- cw,cs,co,cp: internal -- used for multiple columnning.
- f0-f7 : internal - used for figures.
- h1-h2 : internal - used for headers and footers.
- l0-l9 : internal - used for lists
- t1 : internal - used in reference macros to save status.
- FI : internal - saves fill/nofill mode status in equations and examples
- dn : troff counter - counts # of lines of text in last diversion
- nl : troff counter - counts # of lines of text on current page
- .p : troff variable - contains current page length
- .t : troff variable - length to next trap
- .i : troff variable - current indent.
- .$ : troff variable - number of parameters to current macro.
- .z : troff variable - current diversion name
- % : troff variable - page number
- @//E*O*F mX.doc//
- chmod u=rw,g=,o= mX.doc
-
- echo x - mX.7
- sed 's/^@//' > "mX.7" <<'@//E*O*F mX.7//'
- @.hc %
- @.TH MX L
- @.SH NAME
- mX \- macros for formatting documents
- @.SH SYNOPSIS
- @.B "nroff \-mX"
- [ options ]
- file ...
- @.br
- @.B "troff \-mX"
- [ options ]
- file ...
- @.SH DESCRIPTION
- This package of
- @.I nroff
- and
- @.I troff
- macro definitions provides a canned formatting
- facility for tech%nical papers in various formats.
- When producing multi-column output on a terminal, filter
- the output through
- @.IR col (1).
- @.PP
- The macro requests are defined below.
- Many
- @.I nroff
- and
- @.I troff
- requests are unsafe in conjunction with
- this package, however these requests may be used with
- impunity.
- @.nf
- @.IP
- @.ta \w'.cw n 'u
- \&.bp begin new page
- \&.br break output line here
- \&.sp n insert n spacing lines
- \&.ls n (line spacing) n=1 single, n=2 double space
- \&.na no alignment of right margin
- \&.ce n center next n lines
- \&.ul n underline next n lines
- @.fi
- @.PP
- Output of the
- @.I eqn,
- @.I neqn,
- @.I refer,
- and
- @.IR tbl (1)
- preprocessors
- for equations and tables is acceptable as input.
- @.SH FILES
- /usr/lib/tmac/tmac.X
- @.br
- /usr/lib/tmac/mX/tmac.Xlong
- @.br
- /usr/lib/tmac/tmac.Xtras
- @.br
- /usr/lib/tmac/tmac.Xrefs
- @.SH "SEE ALSO"
- eqn(1), troff(1), refer(1), tbl(1)
- @.br
- @.I "A Beginner's Guide to Nroff and Troff and the mX Macro Package"
- by G. A. Hornor
- @.tr &.
- @.SH REQUESTS
- @.PP
- @.ta \w'.MC w x y z 'u +\w'Initial 'u +\w'Cause 'u
- @.br
- @.di x
- \ka
- @.br
- @.di
- @.in \nau
- @.ti0
- Request Initial Cause Explanation
- @.ti0
- Value Break
- @.br
- @.in \nau
- @.ti0
- \&.en - no Set up the environment (i.e. traps
- for page start and end). This should be called near the
- start of an nroff/troff.
- @.ti0
- \&.pp - yes Start a paragraph.
- @.ti0
- \&.sc \fIn x\fR 1 yes Start a new chapter. \fIn\fR
- can be a number (or any arbitrary string of characters)
- indicating the chapter ID after the word ``CHAPTER'', a `+' to omit
- the chapter heading only, or `-' to omit both the chapter heading and
- title \fIx\fR.
- The table of contents is updated in all cases.
- @.ti0
- \&.cp \fIn x\fR 1 yes Start a new autonumbered chapter.
- \fIn\fR is the chapter number (optional) and \fIx\fR is the
- chapter title. Omiting \fIn\fR will cause chapters to be
- automatically numbered.
- @.ti0
- \&.sa \fIn x\fR 1 yes Start a new appendix.
- \fIn\fR and \fIx\fR have the same meaning as for .sc.
- @.ti0
- \&.su \fIx n\fR - yes Start a new subsection.
- \fIn\fR is the (optional) level number of the subsection and \fIx\fR is
- the title.
- @.ti0
- \&.ss \fIn x\fR 1 yes Start a new autonumbered subsection
- for a thesis or dissertation. \fIn\fR is the level number
- and \fIx\fR is the title.
- @.ti0
- \&.se \fIn x\fR 1 yes Start a new autonumbered subsection
- for a paper. \fIn\fR is the level number and \fIx\fR is the
- title.
- @.ti0
- \&.es no yes Start of an example (in nofill
- mode).
- @.ti0
- \&.ee no yes End of an example (restores fill
- mode).
- @.ti0
- \&.l1 \fIf\fR null yes Start a list. \fIf\fR
- determines how the lists are labeled: \fI1\fR is straight
- numbering, \fIi\fR is roman numberals, \fIa\fR is for
- letters.
- @.ti0
- \&.e1 no yes End a list.
- @.ti0
- \&.le no yes Make an entry in a list.
- @.ti0
- \&.fn no no Start a footnote. Footnotes can be
- numbered by using either \\*N (for superscripting) or \\*O
- (for [#]) at the reference point and at the start of the
- footnote.
- @.ti0
- \&.ef no no End a footnote.
- @.ti0
- \&.fs no no Start a floating keep (a figure
- usually).
- @.ti0
- \&.fe \fIx\fR no no End a floating keep. \fIx\fR
- is an optional title which will appear in the list of
- figures.
- @.ti0
- \&.fg \fIx\fR no no Full page figure. Leaves a blank
- unnumbered page. \fIx\fR is an optional title which will
- appear in the list of figures.
- @.ti0
- \&.rb no yes Begin a list of references (as in a
- bibliography).
- @.ti0
- \&.rf no yes Enter a reference in a list of
- references.
- @.ti0
- \&.re no yes End a list of references.
- @.ti0
- \&.LL \fIn\fR 6.5i yes Change line length and length of
- titles to the parameter given.
- @.ti0
- \&.MC \fIw x y z\fR no yes Request for multiple columns.
- \fIw\fR is the number of columns, \fIx\fR is the width of
- each column (units must be given), \fIy\fR is the width of
- space between colums (units must be given), and \fIz\fR is
- the page offset (units must be given).
- @.ti0
- \&.PS \fIn\fR 10 no Change the character point size to
- the parameter given.
- @.ti0
- \&.RT - no Reset tabs to standard nroff or
- troff.
- @.ti0
- \&.EQ \fIx y\fR - no Start a displayed equation.
- \fIx\fR is either \fIL, C,\fR or \fII\fR for left-justified,
- centered, or indented equation. \fIy\fR is the equation
- number. If only one parameter is given, it is treated as the
- equation number unless it is \fIL, C,\fR or \fII\fR.
- @.ti0
- \&.EN - no End a displayed equation.
- @.ti0
- \&.HS - no A null macro which the user can
- redefine. It is called at the beginning of the page header
- macro.
- @.ti0
- \&.HE - no A null macro which the user can
- redefine. It is called at the end of the page header macro.
- @.ti0
- \&.FS - no A null macro which the user can
- redefine. It is called at the beginning of the page footer
- macro.
- @.ti0
- \&.FE - no A null macro which the user can
- redefine. It is called at the end of the page footer macro.
- @//E*O*F mX.7//
- chmod u=rw,g=,o= mX.7
-
- echo x - tmac.X
- sed 's/^@//' > "tmac.X" <<'@//E*O*F tmac.X//'
- @.\" NROFF/TROFF MACROS by Bruce Walker
- @.\"
- @.\" Please refer to /usr/lib/tmac/mX.doc and man mX for documentation.
- @.deen
- @.wh0 hd
- @.wh-\\n(tfu fo
- @.chfo 32000
- @.wh-\\n(tfu fx
- @.chfo -\\n(tfu
- @.nrx 0 1
- @.nry 0-\\n(tfu
- @.emZZ
- @.nrw 1
- @.nrhe0
- @.nrfa0
- @..
- @.depp
- @.br
- @.ne\\n(sgv+\\n(shv
- @.sp\\n(shv
- @.ti+\\n(sfu
- @..
- @.desc
- @.br
- @.rs
- @.SC
- @.sv\\n(slu
- @.ie\\n(.$\{\
- @.if!\\n(.$-1 .AB"1 and not 2 parameters were sent to .sc"
- @.ie"\\$1"+"\{.if \\n(ft .T1 "\\$2" "\\n%" "0" "1"
- @.ce1
- \\$2\}
- @.el\{\
- @.ie"\\$1"-"\{.if \\n(ft .T1 "\\$2" "\\n%" "0" "1"\}
- @.el\{\
- @.if\\n(ft .T1 "\\$1 \\$2" "\\n%" "0" "1"
- @.ce2
- \\*(CH\\$1
- \\$2\}\}\}
- @.el.ce 2
- @..
- @.desa
- @.br
- @.rs
- @.SC
- @.sv\\n(slu
- @.ie\\n(.$\{\
- @.if!\\n(.$-1 .AB"1 and not 2 parameters were sent to .sa"
- @.if\\n(ft\{.T1 "\\*(AP\\$1 \\$2" "\\n%" "0" "1"\}
- @.ce2
- \\*(AX\\$1
- \\$2\}
- @.el.ce 2
- @..
- @.desu
- @.br
- @.ne\\n(smu+\\n(sau
- @.sp\\n(sau
- @.ie\\n(.$\{\
- @.ie\\n(.$-1\{\
- @.if\\n(ft .T1 "\\$1" "\\n%" "\\$2" "0"\}
- @.el.if \\n(ft .T1 "\\$1" "\\n%" "0" "0"
- @.ft\\n(fv
- \\$1\fP\}
- @.el.ul 1
- @..
- @.dees
- @.ie\\n(ex .AB"Nesting examples is a no no"
- @.el.nr ex 1
- @.sp\\n(siv
- @.nrFI\\n(.u
- @.nf
- @.in+\\n(sju
- @..
- @.deee
- @.ie!\\n(ex .AB"Ending an example (.ee) without starting an example"
- @.el.nr ex 0
- @.sp\\n(skv
- @.in-\\n(sju
- @.if\\n(FI .fi
- @..
- @.del1
- @.if\\n+(l0=4 .AB"Nesting of lists too deep"
- @.ta\\n(sou +5m +5m
- @.in+\\n(snu
- @.afl1 1
- @.nrl3\\n(l2
- @.nrl2\\n(l1
- @.nrl9\\n(l8
- @.nrl8\\n(l7
- @.rnl5 l6
- @.rnl4 l5
- @.nrl10 1
- @.nrl70
- @.dsl4 "1
- @.if\\n(.$\{\
- @.dsl4 "\\$1
- @.nrl71\}
- @.afl1 \\*(l4
- @..
- @.dee1
- @.br
- @.in-\\n(snu
- @.if\\n-(l0<0 .AB"Ending more lists than started"
- @.ie\\n(l0=0\{\
- @.RT\}
- @.el\{\
- @.nrl1\\n(l2 1
- @.nrl2\\n(l3 1
- @.nrl7\\n(l8
- @.nrl8\\n(l9
- @.rnl5 l4
- @.rnl6 l5
- @.afl1 \\*(l4\}
- @..
- @.dele
- @.sp\\n(spu
- @.ti-\\n(sou
- @.if\\n(l7=1\{\
- \\n+(l1.\t\c\}
- @..
- @.defn
- @.ie\\nx .ne \\n(rcv-2v
- @.el.ne \\n(rcv
- @.if\\n(fn .AB"Nesting of footnotes is a no no"
- @.nrfn1
- @.daFN
- @.ev1
- @.ie\\n+x=1\{\
- \l'1i'
- @.br\}
- @.el.sp \\n(srv
- @.fi
- @.ad
- @..
- @.deef
- @.if!\\n(fn .AB"Ending a footnote (.ef) when one was not started"
- @.nrfn0
- @.br
- @.nrz \\n(.v
- @.ev
- @.di
- @.nry -\\n(dn
- @.if(\\n(nlu+1v)>(\\n(.pu+\\nyu-1v)\{\
- @.nry (2v+\\n(nlu-\\n(.pu)u\}
- @.chfo (\\nyu-1v)
- @.nrw +1
- @..
- @.defs
- @.if\\n(fs .AB"Nesting of figures is a no no"
- @.if\\n(f7>0 .AB"Too many figures diverted near page \\n%"
- @.nrf0+1
- @.nrfs1
- @.daF2
- @.ev2
- @.dt\\n(.pu-\\n(thu-\\n(tfu Fc
- @.nrtt0
- @..
- @.defe
- @.ie!\\n(fs .AB"Ending a figure (.fe) which was not started"
- @.el.nr fs 0
- @.br
- @.ie\\n(tt\{\
- @.ev
- @.di
- @.if\\n(dn>0\{\
- @.ie\\n(f0=3 .AB"Too many figures diverted near page \\n%"
- @.el\{\
- @.tmNROFF/TROFF Warning: A figure after page \\n% was truncated.\}\}\}
- @.el\{\
- @.ev
- @.da
- @.nrf2+\\n(dnu\}
- @.ie\\n(.$ .Fb "\\$1"
- @.el\{\
- @.ie\\n(f0+\\n(f5>1 .Fd " " "0"
- @.el.Fe " " "0"\}
- @..
- @.defg
- @.nrt 2
- @.ie\\n(f7>0 .nr f7 +1 1
- @.el\{\
- @.ie\\n(f0>1 .nr f7 1 1
- @.el\{\
- @.nrt 1
- @.ie\\n(f6>0 .nr f6 +1 1
- @.el\{\
- @.ie\\n(f0=1 .nr f6 1 1
- @.el\{\
- @.nrf5+1 1
- @.nrt 0\}\}\}\}
- @.nrt +\\n%+\\n(f5+\\n(f6+\\n(f7
- @.if\\n(ff+\\n(.$-1 .F0 "\\$1" "\\nt"
- @..
- @.derb
- @.ta\\n(sem +5m +5m
- @.nrt1\\n(.i
- @.ls\\n(sq
- @.in\\n(sem
- @..
- @.derf
- @.br
- @.ne\\n(scu+\\n(sdu
- @.sp\\n(sdu
- @.ti-\\n(sem
- @..
- @.dere
- @.br
- @.ls
- @.in\\n(t1u
- @.RT
- @..
- @.deLL
- @.if!\\n(.$ .AB"Called LL with no parameter"
- @.ev2
- @.lt\\$1
- @.ll\\$1
- @.ev
- @.ev2
- @.lt\\$1
- @.ll\\$1
- @.ev
- @.ev1
- @.lt\\$1
- @.ll\\$1
- @.ev
- @.ev0
- @.lt\\$1
- @.ll\\$1
- @.ev
- @..
- @.deMC
- @.if\\n(.$<4 .AB"Called MC with less than 4 parameters"
- @.nrcn\\$1
- @.nrcw\\$2
- @.nrcs\\$3
- @.nrco\\$4
- @.po\\n(cou
- @.LL\\$2
- @.nrc 1 1
- @.mkmx
- @..
- @.dePS
- @.ev2
- @.ps\\$1
- @.ev
- @.ev2
- @.ps\\$1
- @.ev
- @.ev1
- @.ps\\$1
- @.ev
- @.ev0
- @.ps\\$1
- @.ev
- @..
- @.deVS
- @.ev2
- @.vs\\$1
- @.ev
- @.ev2
- @.vs\\$1
- @.ev
- @.ev1
- @.vs\\$1
- @.ev
- @.ev0
- @.vs\\$1
- @.ev
- @..
- @.deRT
- @.ien .ta .8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i +.8i
- @.el.ta .5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i +.5i
- @..
- @.deEQ
- @.br
- @.ne2.5
- @.ift .sp .5
- @.ifn .sp 1P
- @.nrFI\\n(.u
- @.nf
- @.ce
- @.dsEL \\$1
- @.if\\n(.$-1 .ds EL \\$2
- @.nrLE\\n(.$
- @.ie"\\$1"L"\{\
- @.ce0
- @.nrLE-1\}
- @.el\{\
- @.ie"\\$1"C" .nr LE -1
- @.el\{\
- @.if"\\$1"I"\{\
- @.ce0
- @.ti+10n
- @.nrLE-1\}\}\}
- @..
- @.deEN
- @.ce0
- @.lt\\n(.lu
- @.if\\n(LE\{\
- @.ien\{\
- @.sp-1
- @.tl'''\\*(EL'\}
- @.el\{\
- @.sp-1-\\n(.au
- @.tl'''\\*(EL'
- @.sp\\n(.au\}\}
- @.if\\n(FI .fi
- @.ifn .sp 1P
- @.ift .sp 0.5
- @..
- @.deHS
- @..
- @.deHE
- @..
- @.deFS
- @..
- @.deFE
- @..
- @.dehd
- @.HS
- @.nrhe+1
- @.ie\\n(cn>1\{\
- @.ie\\nc>\\n(cn\{\
- 'sp\\n(bhu-1v
- @.lt(\\n(cn*\\n(cwu)u+(\\n(csu*(\\n(cn-1))u
- @.iee .tl \\*(Te
- @.el.tl \\*(To
- 'sp|\\n(thu
- @.nrc 1 1
- @.mkmx\}
- @.el\{\
- @.po+\\n(cwu+\\n(csu
- 'sp|\\n(mxu\}\}
- @.el\{\
- @.if\\n(f5\{\
- @.nr% +\\n(f5
- @.nrf50 1\}
- 'sp\\n(bhu-1v
- @.iee .tl \\*(Te
- @.el.tl \\*(To
- 'sp|\\n(thu\}
- @.chfx -\\n(tfu
- @.chfo -\\n(tfu
- @.if\\n(z1 .fz
- @.chfo -\\n(tfu
- @.if!\\n(f0 .ns
- @.if\\n(f0\{\
- @.nrf5\\n(f6
- @.nrf6\\n(f7
- @.nrf70
- @.Ff
- @.ie\\n(fa\{\
- @.nrfa0
- @.nrh21\}
- @.el\{\
- @.ie\\nx\{.if (\\n(nlu+5v)>(\\n(.p+\\nyu) .nr h1 1\}
- @.el\{.if \\n(.tu<6v .nr h1 1\}\}\}
- @.if\\n(h1=1\{\
- @.nrh10
- 'bp\}
- @.if\\n(h2=1\{\
- @.nrh20
- @.fo\}
- @.chfo (\\nyu-1v)
- @.nrhe-1
- @.HE
- @..
- @.defo
- @.FS
- @.if!\\n(he\{.if \\nx .xf\}
- @.nrfa0
- @.ie\\n(fg\{\
- @.nrfa1
- @.diGA\}
- @.el\{\
- @.ie\\n(cn<2\{\
- 'chfo 32000
- 'chfx 32000
- 'sp(\\n(.pu-\\n(nlu-\\n(tfu+\\n(bfu-1v)u
- @.iee .tl \\*(Be
- @.el.tl \\*(Bo
- 'bp\}
- @.el.mf\}
- @.FE
- @..
- @.demf
- @.ie\\n+c<=\\n(cn .hd
- @.el\{\
- @.po\\n(cou
- @.lt(\\n(cn*\\n(cwu)u+(\\n(csu*(\\n(cn-1))u
- 'chfo 32000
- 'chfx 32000
- 'sp(\\n(.pu-\\n(nlu-\\n(tfu+\\n(bfu-1v)u
- @.iee .tl \\*(Be
- @.el.tl \\*(Bo
- 'bp\}
- @..
- @.defx
- @.if\\nx .di fy
- @..
- @.defz
- @.nrx 0 1
- @.nry 0-\\n(tfu
- @.nrz10
- @.fn
- @.nf
- @.fy
- @.fi
- @.ef
- @.nrw 1 1
- @..
- @.dexf
- @.ev1
- @.nf
- @.sp(\\n(.pu+\\nyu-\\n(nlu)u
- @.FN
- @.rmFN
- @.ie"\\n(.z"fy"\{\
- @.di
- @.nrz1\\n(dn\}
- @.el.nr z1 0
- @.nrx 0 1
- @.nry 0-\\n(tfu
- @.ev
- @.nrw 1 1
- @..
- @.deFf
- @.nrf10
- @.ev2
- @.nf
- @.nrfg1
- @.F1
- @.nrfg0
- @.if\\n(fa .di
- @.br
- @.ev
- @.rmF1
- @.if\\n(f0-1 .Fa
- @.nrf0-1
- @..
- @.deFa
- @.daF1
- @.ev2
- @.nf
- @.F2
- @.br
- @.ev
- @.da
- @.nrf1+\\n(f2
- @.nrf20
- @.rmF2
- @..
- @.deFb
- @.ie\\n(f0+\\n(f5>1\{\
- @.Fd"\\$1" "1"\}
- @.el\{\
- @.Fe"\\$1" "1"\}
- @..
- @.deFc
- @.ev
- @.di
- @.nrf2\\n(dnu
- @.nrtt1
- @.diGA
- @.ev2
- @..
- @.deFd
- @.ie\\n(f0=3\{\
- @.nrf02
- @.nrt \\n%+\\n(f5+\\n(f6+2\}
- @.el\{\
- @.nrf02
- @.nrt \\n%+\\n(f5+\\n(f6+2
- @.if\\n(f6=0\{\
- @.if(\\n(.pu-\\n(f1u-\\n(f2u-\\n(thu-\\n(tfu)>=0\{\
- @.nrf0-1
- @.nrt \\n%+\\n(f5+1
- @.Fa\}\}\}
- @.if'\\n(ff\\$2'11' .F0 "\\$1" "\\nt"
- @..
- @.deFe
- @.rmF1
- @.nrf10
- @.Fa
- @.nrt \\n%+\\n(f5+1 1
- @.ie\\n(f1+2v>\\n(.tu\{.if '\\$2\\n(ff'11' .F0 "\\$1" "\\nt"\}
- @.el\{\
- @.if'\\$2\\n(ff'11'\{\
- @.F0"\\$1" "\\n-t"\}
- @.br
- @.Ff
- @.if\\n(fa\{\
- @.nrfa0
- @.fo\}\}
- @..
- @.deF0
- @.daFP
- @.ev2
- @.br
- \t
- @.T2"\\$1" "\\$2" "0"
- @.br
- @.RT
- @.ev
- @.da
- @..
- @.deT1
- @.daTP
- @.ev2
- @.br
- @.if'\\$4'1' .sp 1v
- @.T2"\\$1" "\\$2" "\\$3"
- @.br
- @.RT
- @.ev
- @.da
- @..
- @.deT2
- @.nrFI\\n(.u
- @.nrAD\\n(.j
- @.if\\$3>0 .in +(4n*\\$3u)u
- @.ie\\w'\\$1'u-\\n(.lu+\\n(.iu+3m\{\
- @.if\\$3>0 .in +4n
- @.ta(\\n(.lu-\\n(.iu-3m)u +3mR
- @.if\\$3>0 .ti -4n
- @.fi
- @.na
- @.ll-3m
- \\$1
- @.nf
- @.sp-1
- @.ll+3m
- @.dsPD \\h'\\n(.nu'\}
- @.el\{\
- @.ta(\\n(.lu-\\n(.iu-3m)u +3mR
- @.dsPD \\$1\}
- @.ie\\n(.lu-\\n(.iu-\\w'\\*(PD'u-3n-3m .as PD " \a\t\\$2
- @.el.as PD \\h'\\n(.lu-\\n(.iu-\\w'\\*(PD'u-3m+1u'\t\\$2
- \\*(PD
- @.if\\$3>0 .in -(4n*\\$3u)u
- @.if\\$3>0 .in -4n
- @.if\\n(FI .fi
- @.ad\\n(.j
- @..
- @.deSC
- @.if\\n(nlu>\\n(thu\{.bp
- @.SC\}
- @..
- @.deZZ
- @.br
- \\c
- @.if\\n(f0 'bp
- @.rs
- @.ie!"\\*(TL\\*(Te"''''''''"\{\
- @.dsTe ''''
- @.dsTo ''''
- @.if\\n(ff+\\n(ft>0 'bp\}
- @.el\{\
- @.if\\n(nlu>\\n(thu\{\
- @.if\\n(ff+\\n(ft>0 'bp\}\}
- @.if\\n(ft\{.af % i
- @.nr% \\n(su
- @.ev2
- @.ce
- \\*(TC
- @.sp\\n(rau
- @.ta\\n(.luR
- \t\\*(PG
- @.sp\\n(rbu
- @.TP
- @.ev\}
- @.if\\n(ff\{.af % i
- 'bp+1
- @.ev2
- @.ce
- \\*(LF
- @.sp\\n(rau
- @.ta\\n(.luR
- \t\\*(PG
- @.sp\\n(rbu
- @.FP\}
- @.if\\n(cn>1\{\
- @.nrc \\n(cn
- @.bp\}
- @..
- @.deAB
- @.abNROFF/TROFF aborted near input line \\n(.c: \\$1.
- @..
- @.ig
- @.EQ
- delim $$
- ndefine =del ` "\z=\z^\v'-.25v'-\v'.25v'" `
- tdefine =del ` "\v'.3m'\z=\v'-.6m'\h'.3m'\s-1\(*D\s+1\v'.3m'" `
- ndefine cdot ` "\u.\d" `
- ndefine oppA ` "V-" `
- @.EN
- @..
- @.ev2
- 'nf
- @.lt6.5i
- @.ll6.5i
- @.ls1
- @.ps10
- @.nh
- @.ev
- @.ev1
- @.lt6.5i
- @.ll6.5i
- @.ls1
- @.ps10
- 'nh
- @.ev
- @.ev0
- @.ls2
- @.ll6.5i
- @.lt6.5i
- @.ps10
- @.ev
- @.pl11i
- @.tr~
- @.nrth1i
- @.nrbh7i/12u
- @.nrtf19i/16u
- @.nrbf10i/16u
- @.nrra0v
- @.nrrb2v
- @.nrrc5u
- @.nrsq1u
- @.nrsc0.5i
- @.nrsd1i/6u
- @.nrsf0.5i
- @.nrsg3u
- @.nrsh1u
- @.nrsi1u
- @.nrsj0.5i
- @.nrsk2u
- @.nrsl1.0i
- @.nrsn0.5i
- @.nrso0.5i
- @.nrsp1i/6u
- @.nrsr1u
- @.nrsu3
- @.dsTe \\*(TL
- @.dsTo \\*(TL
- @.dsBe \\*(BL
- @.dsBo \\*(BL
- @.dsBL ''''
- @.dsTL ''''
- @.dsCH "CHAPTER
- @.dsAP "Appendix
- @.dsAX "APPENDIX
- @.dsTC "Table of Contents
- @.dsLF "List of Figures
- @.dsPG "page
- @.dsN \\s-3\\u\\nw\\d\\x'-0.5m'\\s+3
- @.dsO [\\nw]
- @.nrx 0 1
- @.nrff0
- @.nrft0
- @.nrcn1
- @.nrf00
- @.nrf10
- @.nrf20
- @.nrf50
- @.nrf60
- @.nrf70
- @.nrl00 1
- @.ien\{\
- @.nrsa2v
- @.nrse10
- @.nrsm3i/2u
- @.nrfv2\}
- @.el\{\
- @.nrsa1v
- @.nrse8u
- @.nrsm1i
- @.nrfv3\}
- @//E*O*F tmac.X//
- chmod u=rw,g=,o= tmac.X
-
- echo x - tmac.Xrefs
- sed 's/^@//' > "tmac.Xrefs" <<'@//E*O*F tmac.Xrefs//'
- @.\" REFER macros .... citations
- @.de []
- @.][ \\$1
- @..
- @.de ][
- @.if \\$1>5 .tm Bad arg to []
- @.if !"\\*([O"" .if !\\n([O .as [O .
- @.[\\$1
- @..
- @.ds RB ".sc + References
- @.ds [. " [
- @.ds .] ]
- @.if n .ds [o ""
- @.if n .ds [c ""
- @.if t .ds [o ``
- @.if t .ds [c ''
- @.\" the next lines deal with the problem of .[1] or [1].
- @.\" refer will write "linexxx\*(<.[1]\*(>.
- @.\" and either "<." or ">." should produce the .;
- @.\" similarly for ,
- @.ds >. .
- @.ds >, ,
- @.de [5 \" tm style
- \\*([A, \\f2\\*([T\\f1,
- @.ie \\n(TN \\*([M.
- @.el UCLA Computer Science Department internal memorandum (\\*([D).
- @.br
- @..
- @.de [0 \" other
- @.nr [: 0
- @.if !"\\*([A"" \{.nr [: 1
- \\*([A\c\}
- @.if !"\\*([T"" \{.if \\n([:>0 ,
- @.nr [: 1
- \\f2\\*([T\\f1\c\}
- @.if !"\\*([D"" \{.if \\n([:>0 ,
- @.nr [: 1
- \\*([D\c\}
- @.if \\n([:>0 \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [1 \" journal article
- @.if !"\\*([A"" \\*([A,
- @.if !"\\*([T"" \\*([o\\*([T,\\*([c
- \\f2\\*([J\\f1\c
- @.if !"\\*([V"" .if n \& Vol.\&\c
- @.if !"\\*([V"" \& \\f3\\*([V\\f1\c
- @.if !"\\*([N"" (\\*([N)\c
- @.if !"\\*([P"" \{\
- @.ie \\n([P>0 , pp.\c
- @.el , p.\c
- \\*([P\c\}
- @.if !"\\*([I"" .if "\\*([R"" , \\*([I\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [2 \" book
- @.if !"\\*([A"" \\*([A,
- @.if !"\\*([T"" \\f2\\*([T,\\f1
- \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([G"" Gov't. ordering no. \\*([G.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [4 \" report
- @.if !"\\*([A"" \\*([A,
- \\*([o\\*([T,\\*([c
- \\*([R\c
- @.if !"\\*([G"" \& (\\*([G)\c
- @.if !"\\*([I"" , \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [3 \" article in book
- @.if !"\\*([A"" \\*([A,
- @.if !"\\*([T"" \\*([o\\*([T,\\*([c
- @.if !"\\*([P"" pp. \\*([P
- in \\f2\\*([B\\f1\c
- @.if !"\\*([E"" , ed. \\*([E\c
- @.if !"\\*([I"" , \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.\" define warning that mX does not support references as footnotes
- @.de ]-
- @.AB"Can't do references as footnotes. Use '-e' or '-s' option with 'refer'
- @..
- @.de ]<
- @.\" define the real ]- next-reference macro
- @. de ]-
- @. rm [V [P [A [T
- @. rm [N [C [B [O
- @. rm [R [I [E [D
- @. rf
- [\\\\*([F] \c
- \\..
- @.\"now start the reference subsection
- \\*(RB
- @.rb
- @..
- @.de ]>
- @.re
- @..
- @.de ]]
- this is never
- executed
- and just
- uses up an end-of-file
- bug.
- @..
- @//E*O*F tmac.Xrefs//
- chmod u=rw,g=,o= tmac.Xrefs
-
- echo x - acm.tos/refmacros
- sed 's/^@//' > "acm.tos/refmacros" <<'@//E*O*F acm.tos/refmacros//'
- @.\" REFER macros .... citations
- @.nr se 8u \" space to indent in emms
- @.de []
- @.][ \\$1
- @..
- @.de ][
- @.if \\$1>5 .tm Bad arg to []
- @.if !"\\*([O"" .if !\\n([O .as [O .
- @.[\\$1
- @..
- @.ds RB ".RE
- @.ds [. " [
- @.ds .] ]
- @.if n .ds [o ""
- @.if n .ds [c ""
- @.if t .ds [o \(lq
- @.if t .ds [c \(rq
- @.\" the next lines deal with the problem of .[1] or [1].
- @.\" refer will write "linexxx\*(<.[1]\*(>.
- @.\" and either "<." or ">." should produce the .;
- @.\" similarly for ,
- @.ds >. .
- @.ds >, ,
- @.de [5 \" tm style
- \\*([A \\f2\\*([T\\f1.
- @.ie \\n(TN \\*([M.
- @.el UCLA Computer Science Department internal memorandum (\\*([D).
- @.br
- @..
- @.de [0 \" other
- @.nr [: 0
- @.if !"\\*([A"" \{.nr [: 1
- \\*([A\c\}
- @.if !"\\*([T"" \{.if \\n([:>0 \&
- @.nr [: 1
- \\f2\\*([T\\f1\c\}
- @.if !"\\*([D"" \{.if \\n([:>0 .
- @.nr [: 1
- \\*([D\c\}
- @.if \\n([:>0 \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [1 \" journal article
- @.if !"\\*([A"" \\*([A
- @.if !"\\*([T"" \\*([o\\*([T.\\*([c
- \\f2\\*([J\\f1\c
- @.if !"\\*([V"" .if n \& Vol.\&\c
- @.if !"\\*([V"" \& \\f2\\*([V\\f1,\c
- @.if !"\\*([N"" \& \\*([N\c
- @.if !"\\*([I"" .if "\\*([R"" , \\*([I\c
- @.if !"\\*([D"" \& (\\*([D)\c
- @.if !"\\*([P"" \{\
- @.ie \\n([P>0 , pp. \c
- @.el , p.\c
- \\*([P\c\}
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [2 \" book
- @.if !"\\*([A"" \\*([A
- @.if !"\\*([T"" \\f2\\*([T.\\f1
- \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([G"" Gov't. ordering no. \\*([G.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [4 \" report
- @.if !"\\*([A"" \\*([A
- \\*([o\\*([T.\\*([c
- \\*([R\c
- @.if !"\\*([G"" \& (\\*([G)\c
- @.if !"\\*([I"" , \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [3 \" article in book
- @.if !"\\*([A"" \\*([A
- @.if !"\\*([T"" \\*([o\\*([T.\\*([c
- in \\f2\\*([B\\f1\c
- @.if !"\\*([E"" , ed. \\*([E\c
- @.if !"\\*([I"" , \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- @.if !"\\*([P"" \{\
- @.ie \\n([P>0 , pp. \c
- @.el , p. \c
- \\*([P\c\}
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [2 \" book
- @.if !"\\*([A"" \\*([A
- @.if !"\\*([T"" \\f2\\*([T.\\f1
- \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([G"" Gov't. ordering no. \\*([G.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [4 \" report
- @.if !"\\*([A"" \\*([A
- \\*([o\\*([T.\\*([c
- \\*([R\c
- @.if !"\\*([G"" \& (\\*([G)\c
- @.if !"\\*([I"" , \\*([I\c
- @.if !"\\*([C"" , \\*([C\c
- @.if !"\\*([D"" \& (\\*([D)\c
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.de [3 \" article in book
- @.if !"\\*([A"" \\*([A
- @.if !"\\*([T"" \\*([o\\*([T.\\*([c
- in \\f2\\*([B\\f1\c
- \&.
- @.if !"\\*([O"" \\*([O
- @.br
- @..
- @.\" define warning that mX does not support references as footnotes
- @.de ]-
- @.AB"Can't do references as footnotes. Use '-e' or '-s' option with 'refer'
- @..
- @.de ]<
- @.\" define the real ]- next-reference macro
- @. de ]-
- @. rm [V [P [A [T
- @. rm [N [C [B [O
- @. rm [R [I [E [D
- @. rf
- \\\\*([F. \c
- \\..
- @.\"now start the reference subsection
- \\*(RB
- @.rb
- @..
- @.de ]>
- @.re
- @..
- @.de ]]
- this is never
- executed
- and just
- uses up an end-of-file
- bug.
- @..
- @//E*O*F acm.tos/refmacros//
- chmod u=rw,g=,o= acm.tos/refmacros
-
- echo x - acm.tos/skeleton
- sed 's/^@//' > "acm.tos/skeleton" <<'@//E*O*F acm.tos/skeleton//'
- @.\" run with:
- @.\" refer -a -cA -e -n -p /u/users.own/refsidx -sADT paper > paper.ref
- @.\" soelim paper.ref|pic|tbl|eqn |troff -mX
- @.\"
- @.en
- @.hy 14
- @.LL 5i
- @.pl 10i
- @.so refmacros \" must be so'd so refer does not get to trip over its own macros
- @.\" redefine .le and .e1 macros for list items and end of list
- @.dele
- @.sp\\n(spu
- @.ti-\\n(sou
- @.if\\n(l7=1\{\
- \\n+(l1.\t\c\}
- @..
- @.dee1
- @.br
- @.in-\\n(snu
- @.if\\n-(l0<0 .AB"Ending more lists than started"
- @.ie\\n(l0=0\{\
- @.RT\}
- @.el\{\
- @.nrl1\\n(l2 1
- @.nrl2\\n(l3 1
- @.nrl7\\n(l8
- @.nrl8\\n(l9
- @.rnl5 l4
- @.rnl6 l5
- @.afl1 \\*(l4\}
- @.sp\\n(spu
- @..
- @.\" redefine start and end example macros .es & .ee
- @.dees
- @.ie\\n(ex .AB"Nesting examples is a no no"
- @.el.nr ex 1
- @.sp\\n(siv
- @.nrFI\\n(.u
- @.nf
- @.ll-\\n(sju
- @.in+\\n(sju
- @..
- @.deee
- @.ie!\\n(ex .AB"Ending an example (.ee) without starting an example"
- @.el.nr ex 0
- @.sp\\n(skv
- @.in-\\n(sju
- @.ll+\\n(sju
- @.if\\n(FI .fi
- @..
- @.\" redefine .RT to restore back to a smaller tabbing distance
- @.deRT
- @.ien .ta .3i +.3i +.3i +.3i +.3i +.3i +.3i +.3i +.3i +.3i
- @.el.ta .25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i +.25i
- @..
- @.\" then do that tabbing
- @.RT
- @.\" now set a bunch of registers
- @.nr si 1u \" # of spaces used to start an example (used as v).
- @.nr se 4u \" # of spaces to indent for a reference (used as ems).
- @.nr sj 0.25i \" space to indent for an example (used as u);
- @.nr sk 1u \" # of spaces left at the end of an example (used as v);
- @.nr sf .125i
- @.nr sg 2u
- @.nr sr 0u
- @.nr sm 1i
- @.nr sh 0u
- @.nr sd 0u
- @.nr sn .25i
- @.nr so .25i
- @.nr sp 0u
- @.de rb
- @.ta .1875i +5m +5m
- @.nr t1 \\n(.i
- @.ls \\n(sq
- @.in .1875i
- @..
- @.hw TOPLAS
- @.ds To ''\f7\h'2i'\s8Title\h'.25i'\u.\d\h'.25i''%\s0\fP'
- @.ds Te '\f7\s8%'\h'.25i'\u.\d\h'.25i'A. Uthor1 and A. U. Thor2\h'2.625i'\s0\fP''
- @.ds BL ''%''
- @.\" redefine some footnote stuff to match Transactions format
- @.de(n
- @.ie\\nx .ne \\n(rcv-2v
- @.el.ne \\n(rcv
- @.if\\n(fn .AB"Nesting of footnotes is a no no"
- @.nrfn1
- @.daFN
- @.ev1
- @.ie\\n+x=1\{\
- @.sp 2p
- \s-2\l'5i\(ul'\s+2
- @.sp 2p\}
- @.el.sp \\n(srv
- @.fi
- @.ad
- @..
- @.defn
- @.ie\\nx .ne \\n(rcv-2v
- @.el.ne \\n(rcv
- @.if\\n(fn .AB"Nesting of footnotes is a no no"
- @.nrfn1
- @.daFN
- @.ev1
- @.ie\\n+x=1\{\
- @.sp 10p
- \s-2\l'.67i\(ul'\s+2
- @.br\}
- @.el.sp \\n(srv
- @.fi
- @.ad
- @..
- @.\" redefine start of section - to be used for 2 or higher level section
- @.de su
- @.ne 3v
- @.sp 10p
- \&\f7\\$1\fP
- @..
- @.\" define start of major section - to be used for level 1 section
- @.de SU
- @.ne 3v
- @.sp 12p
- \&\f7\\$1\fP
- @..
- @.\" for first paragraph in section
- @.de PP
- @.sp 4p
- @..
- @.de sc
- @.sp 6p
- \\h'.25i'\f1\\$1\ \ \ \f2\\$2\f1\\h'1n'\\c
- @..
- @.ig
- @.\" some useful eqn defines
- @.EQ
- define circleplus % "\(a+" %
- define bigleft % "\f1\s+4(\s0\fP" %
- define bigright % "\f2\s+4)\s0\fP" %
- define lessthan % {roman "<"} %
- define greaterthan % {roman ">"} %
- define leftbrace % {roman "{"} %
- define rightbrace % {roman "}"} %
- define fatleftbrace % {bold "{"} %
- define fatrightbrace % {bold "}"} %
- define member % "\(mo" %
- define identical % "\(==" %
- define equiv % "\(==" %
- define implies % "\(sp" %
- define orsign % "\(lo" %
- define andsign % "\(la" %
- define oppA % "\(fa" %
- define oppE % "\(te" %
- define supset % "\(sp" %
- define !supset % "\(ip" %
- @.EN
- @..
- @.\" now we begin the actual paper
- @.ps 18
- @.na
- @.nh
- @.vs 20
- @.ft 7
- @.ls 1
- Title
- @.sp
- @.ad
- @.hy 14
- @.ps 10
- @.vs 10
- ARNOLD UTHOR
- @.sp 4p
- Somewhere
- @.sp
- and
- @.sp
- ARTHOR U. THOR
- @.sp 4p
- Nowhere
- @.br
- @.(n
- @.ps 8
- @.vs 10
- @.ft 1
- This research was supported in part by the author's kids.
- @.br
- A preliminary report of this work appeared in the local garbage dump.
- @.br
- Authors' Addresses:
- A. Uthor, Somewhere, Rainbow City, Garden State ZIP, U.S.A.;
- A. U. Thor, Nowhere, Fun City, State of Imagination, Neverland
- @.br
- Permission to copy without fee all or part of this material is granted
- provided that the copies are not made or distributed for direct commercial
- advantage, the ACM copyright notice and the title of the publication and
- its date appear, and notice is given that copying is by permission of the
- Association for Computing Machinery. To copy otherwise, or to republish,
- requires a fee and/or specific permission.
- @.br
- \(co ACM 0000-0000/86/0000-0000 $00.00
- @.ef
- @.sp 6p
- @.ft 1
- \s-2\l'5i'\s+2
- @.sp 12p
- @.vs 10
- @.ps 8
- Abstract comes here and
- goes on and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on.
- @.sp 4p
- Categories and Subject Descriptors:
- D.2.4 [\f3Software Engineering\fP]:
- Program Verification\(em\f2correctness proofs\fP;
- D.3.1 [\f3Programming Languages\fP]:
- Formal Definitions and Theory\(em\f2semantics\fP;
- @.sp 4p
- General Terms: Design, Languages, Theory, Verification
- @.sp 4p
- Additional Key Words and Phrases:
- Axiomatic semantics,
- program specification
- @.br
- @.sp 5p
- @.vs 12
- @.ps 10
- \s-2\l'5i'\s+2
- @.sp 10p
- @.EQ
- delim $$
- @.EN
- @.SU "1\ \ \ MAJOR SECTION"
- @.PP
- First paragraph. Goes on and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- @.[
- inverted indexes lesk
- @.]
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on.
- @.pp
- Second paragraph. Goes on and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on.
- @.su "1.1\ \ \ Minor Section"
- @.PP
- First paragraph. Goes on and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on
- and on and on and on and on and on and on and on.
- Now comes the end of the paper.
- @.sp 8p
- @.su "\s8ACKNOWLEDGEMENTS\s0"
- @.ps 10
- @.sp 2p
- The authors thank all those that they bribed to get this paper published.
- @.ps 8
- @.vs 10
- @.sp 8p
- @.su "\s9REFERENCES\s0"
- @.sp 2p
- @.[
- $LIST$
- @.]
- @//E*O*F acm.tos/skeleton//
- chmod u=rw,g=,o= acm.tos/skeleton
-
- exit 0
- Daniel M. Berry UCLA Computer Science Department
- 3531 Boelter Hall, UCLA, Los Angeles, CA 90024-1600, USA
- dberry@cs.ucla.edu ..!{sdcrdcf,ihnp4,cepu,trwspp,ucbvax}!ucla-cs!dberry
-
- --
- Rich $alz rsalz@pineapple.bbn.com
- Cronus Project, BBN Labs "Anger is an energy"
-