diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-10-18 08:53:40 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-10-18 08:53:40 +0000 |
commit | d6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch) | |
tree | ece253b876159b39c620e62b6c9b1174642e070e /share/doc/usd/20.meref/ref.me |
initial import of NetBSD tree
Diffstat (limited to 'share/doc/usd/20.meref/ref.me')
-rw-r--r-- | share/doc/usd/20.meref/ref.me | 2384 |
1 files changed, 2384 insertions, 0 deletions
diff --git a/share/doc/usd/20.meref/ref.me b/share/doc/usd/20.meref/ref.me new file mode 100644 index 00000000000..66d0060e371 --- /dev/null +++ b/share/doc/usd/20.meref/ref.me @@ -0,0 +1,2384 @@ +.\" Copyright (c) 1986, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)ref.me 8.1 (Berkeley) 6/8/93 +.\" +.UC 7 +.ll 6.5i +.lt 6.5i +.pn 0 +.ds MO 2.27\" \" mod number +.de TL \" *** title line +.lp +.di XX +.. +.de DE \" *** description +\\\\h'|\\n(DIu'\\\\c +.br +.di +.in +\\n(DIu +.ti 0 +.cu 1000 +.XX +.rm XX +.cu 0 +.. +.ds N \s-1NROFF\s0 +.ds T \s-1TROFF\s0 +.nr DI 1.5i +\".he '\-ME REFERENCE MANUAL''%' +.de NR +.b "\en\\$1" "\\$2" +.. +.de ST +.b "\e*\\$1" "\\$2" +.. +.sc +.eh 'USD:20-%''\-me Reference Manual' +.oh '\-me Reference Manual''USD:20-%' +.+c +.ce 20 +.sz 14 +.b "\-ME REFERENCE MANUAL" +.sz +.sp +.i "Release \*(MO" +.sp 2 +.ul +Eric P. Allman* +.(f +*Author's current address: +Computer Science Division, EECS, +University of California, +Berkeley, California 94720. +.)f +.sp +Project INGRES +Electronics Research Laboratory +University of California, Berkeley +Berkeley, California 94720 +.ce 0 +.sp 4 +.pp +This document describes +in extremely terse form +the features +of the +.b \-me +macro package +for version seven \*N/\*T\*(dg. +.(f +\(dg\*N and \*T may be trademarks of AT&T Bell Laboratories. +.)f +Some familiarity is assumed +with +those programs. +Specifically, +the reader should understand +breaks, +fonts, +pointsizes, +the use and definition of number registers +and strings, +how to define macros, +and scaling factors for ens, points, +.b v 's +(vertical line spaces), +etc. +.pp +For a more casual introduction +to text processing +using \*N, +refer to the document +.ul +Writing Papers with \*N using \-me. +.pp +There are a number of macro parameters +that may be adjusted. +Fonts may be set to a font number only. +Font 8 means bold font in \*T; +in \*N font 8 +is underlined +unless the +.b \-rb3 +flag is specified to use +.q "true bold" +font +(most versions of \*N do not interpret bold font nicely). +Font 0 is no font change; +the font of the surrounding text +is used instead. +Notice that fonts 0 and 8 are +.q pseudo-fonts ; +that is, +they are simulated by the macros. +This means that although it is legal to set a font register +to zero or eight, +it is not legal to use the escape character form, +such as: +.(b +\ef8 +.)b +.pp +All distances +are in basic units, +so it is nearly always necessary +to use a scaling factor. +For example, +the request +to set the paragraph indent +to eight one-en spaces is: +.(b +\&.nr pi 8n +.)b +and not +.(b +\&.nr pi 8 +.)b +which would set the paragraph indent to eight basic units, +or about 0.02 inch. +Default parameter values are given in brackets +in the remainder of this document. +.pp +Registers and strings +of the form +.b $ \c +.i x +may be used in expressions +but should not be changed. +Macros of the form +.b $ \c +.i x +perform some function +(as described) +and may be redefined +to change this function. +This may be a sensitive operation; +look at the body of the original macro +before changing it. +.pp +All names in \-me +follow a rigid naming convention. +The user may define number registers, +strings, +and macros, +provided that s/he +uses single character upper case names +or double character names +consisting of letters and digits, +with at least one upper case letter. +In no case should special characters +be used in user-defined names. +.pp +On daisy wheel type printers +in twelve pitch, +the +.b \-rx1 +flag can be stated to make lines default to +one eighth inch +(the normal spacing for a newline in twelve-pitch). +This is normally too small for easy readability, +so the default is to space one sixth inch. +.pp +The +.b \-rv2 +flag will indicates that this +.i is +being output on a C/A/T +phototypesetter; +this changes the page offset +and inserts cut marks. +.pp +This documentation was +.if n \*N'ed +.if t \*T'ed +on \*(td +and applies to version +\*(MO +of the \-me macros. +.sh 1 "Paragraphing" +.pp +These macros are used +to begin paragraphs. +The standard paragraph macro +is +.b .pp ; +the others are all variants +to be used for special purposes. +.pp +The first call to one of the paragraphing macros +defined in this section +or the +.b .sh +macro +(defined in the next session) +.i initializes +the macro processor. +After initialization +it is not possible to use any of the following requests: +.b .sc , +.b .lo , +.b .th , +or +.b .ac . +Also, +the effects of changing parameters +which will have a global effect +on the format of the page +(notably page length and header and footer margins) +are not well defined +and should be avoided. +.TL +.b .lp +.DE +Begin left-justified paragraph. +Centering and underlining +are turned off if they were on, +the font is set to +.NR (pf +[1] +the type size +is set to +.NR (pp +[10p], +and a +.NR (ps +space is inserted +before the paragraph +[0.35v in \*T, 1v or 0.5v in \*N +depending on device resolution]. +The indent is reset +to +.NR ($i +[0] +plus +.NR (po +[0] +unless the paragraph +is inside a display. +(see +.b .ba ). +At least +the first two lines +of the paragraph +are kept together +on a page. +.TL +.b .pp +.DE +Like +.b .lp , +except that it puts +.NR (pi +[5n] +units of indent. +This is the standard paragraph macro. +.TL +.b .ip +.i T +.i I +.DE +Indented paragraph +with hanging tag. +The body of the following paragraph +is indented +.i I +spaces +(or +.NR (ii +[5n] +spaces +if +.i I +is not specified) +more than a non-indented paragraph +(such as with +.b .pp ) +is. +The title +.i T +is exdented (opposite of indented). +The result is a paragraph +with an even left edge +and +.i T +printed in the margin. +Any spaces in +.i T +must be unpaddable. +If +.i T +will not fit in the space provided, +.b .ip +will start a new line. +.TL +.b .np +.DE +A variant of .ip which numbers paragraphs. +Numbering is reset +after a +.b .lp , +.b .pp , +or +.b .sh . +The current paragraph number +is in +.NR ($p . +.TL +.b .bu +.DE +Like +.b .np +except that paragraphs are marked with bullets (\(bu). +Leading space is eliminated to create compact lists. +.sh 1 "Section Headings" +.pp +Numbered sections +are similar to paragraphs +except that a +section number +is automatically +generated for each one. +The section numbers are of the form +.b 1.2.3 . +The +.i depth +of the section +is the count of numbers +(separated by decimal points) +in the section number. +.pp +Unnumbered section headings are similar, +except that no number is attached +to the heading. +.TL +.b .sh +.i +N +.i T +.i "a b c d e f" +.DE +Begin numbered section +of depth +.i N . +If +.i N +is missing +the current depth +(maintained in +the number register +.NR ($0 ) +is used. +The values of +the individual parts of the section number +are maintained in +.NR ($1 +through +.NR ($6 . +There is a +.NR (ss +[1v] +space before the section. +.i T +is printed +as a section title +in font +.NR (sf +[8] +and size +.NR (sp +[10p]. +The +.q name +of the section may be accessed via +.ST ($n . +If +.NR (si +is non-zero, +the base indent +is set to +.NR (si +times the section depth, +and the section title +is exdented. +(See +.b .ba .) +Also, +an additional indent of +.NR (so +[0] +is added to the section title +(but not to the body of the section). +The font is then set +to the paragraph font, +so that more information may occur +on the line +with the section number +and title. +.b .sh +insures that there is enough room +to print the section head +plus the beginning of a paragraph +(about 3 lines total). +If +.i a +through +.i f +are specified, +the section number is set to that number +rather than incremented automatically. +If any of +.i a +through +.i f +are a hyphen +that number is not reset. +If +.i T +is a single underscore +(\c +.q _ ) +then the section depth and numbering is reset, +but the base indent is not reset +and nothing is printed out. +This is useful to automatically +coordinate section numbers with +chapter numbers. +.TL +.b .sx +.i +N +.DE +Go to section depth +.i N +[\c +.b \-1 ], +but do not print the number +and title, +and do not increment the section number +at level +.i N . +This has the effect +of starting a new paragraph +at level +.i N . +.TL +.b .uh +.i T +.DE +Unnumbered section heading. +The title +.i T +is printed +with the same rules for spacing, +font, etc., +as for +.b .sh . +.TL +.b .$p +.i T +.i B +.i N +.DE +Print section heading. +May be redefined +to get fancier headings. +.i T +is the title passed on the +.b .sh +or +.b .uh +line; +.i B +is the section number for this section, +and +.i N +is the depth of this section. +These parameters are not always present; +in particular, +.b .sh +passes all three, +.b .uh +passes only the first, +and +.b .sx +passes three, +but the first two +are null strings. +Care should be taken if this macro +is redefined; +it is quite complex and subtle. +.TL +.b .$0 +.i T +.i B +.i N +.DE +This macro is called automatically +after every call to +.b .$p . +It is normally undefined, +but may be used +to automatically put +every section title +into the table of contents +or for some similar function. +.i T +is the section title +for the section title which was just printed, +.i B +is the section number, +and +.i N +is the section depth. +.TL +.b .$1 +\- +.b .$6 +.DE +Traps called just before printing that depth section. +May be defined to +(for example) +give variable spacing +before sections. +These macros are called from +.b .$p , +so if you redefine that macro +you may lose this feature. +.sh 1 "Headers and Footers" +.ds TP \fI\(aal\|\(aam\^\(aar\^\(aa\fP +.pp +Headers and footers +are put at the top and bottom +of every page +automatically. +They are set in font +.NR (tf +[3] +and size +.NR (tp +[10p]. +Each of the definitions +apply as of the +.i next +page. +Three-part titles +must be quoted +if there are two blanks adjacent +anywhere in the title +or more than eight blanks total. +.pp +The spacing +of headers and footers +are controlled by three number registers. +.NR (hm +[4v] +is the distance from the top of the page +to the top of the header, +.NR (fm +[3v] +is the distance from the bottom of the page +to the bottom of the footer, +.NR (tm +[7v] +is the distance from the top of the page +to the top of the text, +and +.NR (bm +[6v] +is the distance from the bottom of the page +to the bottom of the text +(nominal). +The macros +.b .m1 , +.b .m2 , +.b .m3 , +and +.b .m4 +are also supplied for compatibility +with +\s-1ROFF\s0 documents. +.TL +.b .he +\*(TP +.DE +Define three-part header, +to be printed on the top +of every page. +.TL +.b .fo +\*(TP +.DE +Define footer, +to be printed at the bottom +of every page. +.TL +.b .eh +\*(TP +.DE +Define header, +to be printed at the top of every +even-numbered page. +.TL +.b .oh +\*(TP +.DE +Define header, +to be printed at the top of every +odd-numbered page. +.TL +.b .ef +\*(TP +.DE +Define footer, +to be printed at the bottom +of every even-numbered page. +.TL +.b .of +\*(TP +.DE +Define footer, +to be printed at the bottom +of every odd-numbered page. +.TL +.b .hx +.DE +Suppress headers and footers +on the next page. +.TL +.b .m1 +.i +N +.DE +Set the space between the top of the page +and the header +[4v]. +.TL +.b .m2 +.i +N +.DE +Set the space between the header +and the first line of text +[2v]. +.TL +.b .m3 +.i +N +.DE +Set the space +between the bottom of the text +and the footer +[2v]. +.TL +.b .m4 +.i +N +.DE +Set the space +between the footer +and the bottom of the page +[4v]. +.TL +.b .ep +.DE +End this page, +but do not begin the next page. +Useful for forcing out footnotes, +but other than +that hardly every used. +Must be followed by a +.b .bp +or the end of input. +.TL +.b .$h +.DE +Called at every page +to print the header. +May be redefined +to provide fancy +(e.g., +multi-line) +headers, +but doing so +loses the function of the +.b .he , +.b .fo , +.b .eh , +.b .oh , +.b .ef , +and +.b .of +requests, +as well as the chapter-style title feature +of +.b .+c . +.TL +.b .$f +.DE +Print footer; +same comments apply +as in +.b .$h . +.TL +.b .$H +.DE +A normally undefined macro +which is called +at the top of each page +(after putting out +the header, +initial saved floating keeps, +etc.); +in other words, +this macro is called immediately before +printing text +on a page. +It can be used for column headings +and the like. +.sh 1 "Displays" +.pp +All displays except centered blocks +and block quotes +are preceded and followed +by an extra +.NR (bs +[same as +.NR (ps ] +space. +Quote spacing is stored in a separate register; +centered blocks have no default initial or trailing space. +The vertical spacing of all displays except quotes +and centered blocks +is stored in register +.NR ($R +instead of +.NR ($r . +.TL +.b .(l +.i m +.i f +.DE +Begin list. +Lists are single spaced, +unfilled text. +If +.i f +is +.b F , +the list will be filled. +If +.i m +[\c +.b I ] +is +.b I +the list is indented by +.NR (bi +[4m]; +if +.b M +the list is indented to the left margin; +if +.b L +the list is left justified with respect to the text +(different from +.b M +only if the base indent +(stored in +.NR ($i +and set with +.b .ba ) +is not zero); +and if +.b C +the list is centered on a line-by-line basis. +The list is set in font +.NR (df +[0]. +Must be matched by a +.b .)l . +This macro is almost like +.b .(b +except that no attempt is made +to keep the display on one page. +.TL +.b .)l +.DE +End list. +.TL +.b .(q +.DE +Begin major quote. +These are single spaced, +filled, +moved in from the text +on both sides +by +.NR (qi +[4n], +preceded and followed +by +.NR (qs +[same as +.NR (bs ] +space, +and are set in point size +.NR (qp +[one point smaller than surrounding text]. +.TL +.b .)q +.DE +End major quote. +.TL +.b .(b +.i m +.i f +.DE +Begin block. +Blocks are a form of +.i keep , +where the text of a keep +is kept together on one page +if possible +(keeps are useful +for tables and figures +which should not be broken +over a page). +If the block will not fit +on the current page +a new page is begun, +.i unless +that would leave more than +.NR (bt +[0] +white space +at the bottom of the text. +If +.NR (bt +is zero, the threshold feature +is turned off. +Blocks are not filled +unless +.i f +is +.b F , +when they are filled. +The block will be left-justified +if +.i m +is +.b L , +indented by +.NR (bi +[4m] +if +.i m +is +.b I +or absent, +centered +(line-for-line) +if +.i m +is +.b C , +and left justified to the margin +(not to the base indent) +if +.i m +is +.b M . +The block is set in font +.NR (df +[0]. +.TL +.b .)b +.DE +End block. +.TL +.b .(z +.i m +.i f +.DE +Begin floating keep. +Like +.b .(b +except that the keep is +.i floated +to the bottom of the page +or the top of the next page. +Therefore, +its position relative to the text changes. +The floating keep is preceded and followed +by +.NR (zs +[1v] +space. +Also, +it defaults to mode +.b M . +.TL +.b .)z +.DE +End floating keep. +.TL +.b .(c +.DE +Begin centered block. +The next keep +is centered as a block, +rather than on a line-by-line basis +as with +.b ".(b C" . +This call may be nested +inside keeps. +.TL +.b .)c +.DE +End centered block. +.sh 1 Annotations +.TL +.b .(d +.DE +Begin delayed text. +Everything in the next keep +is saved for output +later with +.b .pd , +in a manner +similar to footnotes. +.TL +.b .)d +.i n +.DE +End delayed text. +The delayed text number register +.NR ($d +and the associated string +.ST # +are incremented if +.ST # +has been referenced. +.TL +.b .pd +.DE +Print delayed text. +Everything diverted via +.b .(d +is printed and truncated. +This might be used +at the end of each chapter. +.TL +.b .(f +.DE +Begin footnote. +The text of the footnote +is floated to the bottom +of the page +and set in font +.NR (ff +[1] +and size +.NR (fp +[8p]. +Each entry +is preceded by +.NR (fs +[0.2v] +space, +is indented +.NR (fi +[3n] +on the first line, +and is indented +.NR (fu +[0] +from the right margin. +Footnotes line up underneath +two column output. +If the text of the footnote +will not all fit on one page +it will be carried over +to the next page. +.TL +.b .)f +.i n +.DE +End footnote. +The number register +.NR ($f +and the associated string +.ST * +are incremented +if they have been referenced. +.TL +.b .$s +.DE +The macro to output the footnote separator. +This macro may be redefined +to give other size lines or other types +of separators. +Currently +it draws a 1.5i line. +.TL +.b .(x +.i x +.DE +Begin index entry. +Index entries are saved in the index +.i x +[\c +.b x ] +until called up with +.b .xp. +Each entry is preceded +by a +.NR (xs +[0.2v] +space. +Each entry is +.q undented +by +.NR (xu +[0.5i]; +this register tells how far the page number +extends into the right margin. +.TL +.b .)x +.i P +.i A +.DE +End index entry. +The index entry +is finished with a row of dots +with +.i A +[null] +right justified on the last line +(such as for an author's name), +followed by P +[\c +.NR % ]. +If +.i A +is specified, +.i P +must be specified; +.NR % +can be used to print the current page number. +If +.i P +is an underscore, +no page number +and no row of dots +are printed. +.TL +.b .xp +.i x +.DE +Print index +.i x +[\c +.b x ]. +The index is formatted in the font, size, and so forth +in effect at the time it is printed, +rather than at the time it is collected. +.sh 1 "Columned Output" +.TL +.b .2c +.i +S +.i N +.DE +Enter two-column mode. +The column separation is set to +.i +S +[4n, 0.5i in ACM mode] +(saved in +.NR ($s ). +The column width, +calculated to fill the single column line length +with both columns, +is stored in +.NR ($l . +The current column +is in +.NR ($c . +You can test register +.NR ($m +[1] +to see if you are in single column +or double column mode. +Actually, +the request enters +.i N +[2] +column output. +.TL +.b .1c +.DE +Revert to single-column mode. +.TL +.b .bc +.DE +Begin column. +This is like +.b .bp +except that it begins a new column +on a new page +only if necessary, +rather than forcing a whole new page +if there is another column left +on the current page. +.sh 1 "Fonts and Sizes" +.TL +.b .sz +.i +P +.DE +The pointsize is set to +.i P +[10p], +and the line spacing is set proportionally. +The ratio of line spacing to pointsize +is stored in +.NR ($r . +The ratio used internally +by displays and annotations +is stored in +.NR ($R +(although this is not used by +.b .sz ). +This size is +.i not +sticky beyond many macros: +in particular, +.NR (pp +(paragraph pointsize) +modifies the pointsize every time a new paragraph is begun +using the +.b \&.pp , +.b \&.lp , +.b \&.ip , +.b \&.np , +or +.b \&.bu +macros. +Also, +.NR (fp +(footnote pointsize), +.NR (qp +(quote pointsize), +.NR (sp +(section header pointsize), +and +.NR (tp +(title pointsize) +may modify the pointsize. +.TL +.b .r +.i W +.i X +.DE +Set +.i W +in roman font, +appending +.i X +in the previous font. +To append different font requests, +use +.i X += +.b \ec . +If no parameters, +change to roman font. +.TL +.b .i +.i W +.i X +.DE +Set +.i W +in italics, +appending +.i X +in the previous font. +If no parameters, +change to italic font. +Underlines in \*N. +.TL +.b .b +.i W +.i X +.DE +Set +.i W +in bold font +and append +.i X +in the previous font. +If no parameters, +switch to bold font. +In \*N, +underlines. +.TL +.b .rb +.i W +.i X +.DE +Set +.i W +in bold font +and append +.i X +in the previous font. +If no parameters, +switch to bold font. +.b .rb +differs from +.b .b +in that +.b .rb +does not underline in \*N. +.TL +.b .u +.i W +.i X +.DE +Underline +.i W +and append +.i X . +This is a true underlining, +as opposed to the +.b .ul +request, +which changes to +.q "underline font" +(usually italics in \*T). +It won't work right +if +.i W +is spread or broken (including hyphenated). +In other words, +it is safe in nofill mode only. +.TL +.b .q +.i W +.i X +.DE +Quote +.i W +and append +.i X . +In \*N +this just surrounds +.i W +with double quote marks +(`\|\c +.b """" \|'), +but in \*T +uses directed quotes. +.TL +.b .bi +.i W +.i X +.DE +Set +.i W +in bold italics +and append +.i X . +Actually, +sets +.i W +in italic +and overstrikes once. +Underlines in \*N. +It won't work right +if +.i W +is spread or broken (including hyphenated). +In other words, +it is safe in nofill mode only. +.TL +.b .bx +.i W +.i X +.DE +Sets +.i W +in a box, +with +.i X +appended. +Underlines in \*N. +It won't work right +if +.i W +is spread or broken (including hyphenated). +In other words, +it is safe in nofill mode only. +.TL +.b sm +.i W +.i X +.DE +Sets +.i W +in a smaller pointsize, +with +.i X +appended. +.sh 1 "Roff Support" +.TL +.b .ix +.i +N +.DE +Indent, +no break. +Equivalent to +.b \(aain +.i N . +.TL +.b .bl +.i N +.DE +Leave +.i N +contiguous white space, +on the next page if not enough room +on this page. +Equivalent to a +.b .sp +.i N +inside a block. +.TL +.b .pa +.i +N +.DE +Equivalent to +.b .bp . +.TL +.b .ro +.DE +Set page number +in roman numerals. +Equivalent to +.b ".af % i" . +.TL +.b .ar +.DE +Set page number in Arabic. +Equivalent to +.b ".af % 1" . +.TL +.b .n1 +.DE +Number lines in margin from one +on each page. +.TL +.b .n2 +.i N +.DE +Number lines from +.i N , +stop if +.i N += 0. +.TL +.b .sk +.DE +Leave the next output page blank, +except for headers and footers. +This is used to leave space +for a full-page diagram +which is produced externally +and pasted in later. +To get a partial-page paste-in display, +say +.b .sv \ \c +.i N , +where +.i N +is the amount of space +to leave; +this space will be output immediately +if there is room, +and will otherwise be output +at the top of the next page. +However, be warned: +if +.i N +is greater than the amount of available space +on an empty page, +no space will ever be output. +.sh 1 "Preprocessor Support" +.TL +.b .EQ +.i m +.i T +.DE +Begin equation. +The equation is centered +if +.i m +is +.b C +or omitted, +indented +.NR (bi +[4m] +if +.i m +is +.b I , +and left justified if +.i m +is +.b L . +.i T +is a title printed on the right margin +next to the equation. +See +.i "Typesetting Mathematics \- User's Guide" +by Brian W. Kernighan +and Lorinda L. Cherry. +.TL +.b .EN +.i c +.DE +End equation. +If +.i c +is +.b C +the equation must be continued +by immediately following +with another +.b .EQ , +the text of which +can be centered +along with this one. +Otherwise, +the equation is printed, +always on one page, +with +.NR (es +[0.5v in \*T, 1v in \*N] +space +above and below it. +.TL +.b .TS +.i h +.DE +Table start. +Tables are single spaced +and kept on one page +if possible. +If you have a large table +which will not fit on one page, +use +.i h += +.b H +and follow the header part +(to be printed on every page of the table) +with a +.b .TH . +See +.i "Tbl \- A Program to Format Tables" +by M. E. Lesk. +.TL +.b .TH +.DE +With +.b ".TS H" , +ends the header portion of the table. +.TL +.b .TE +.DE +Table end. +Note that this table +does not float, +in fact, +it is not even guaranteed to stay on one page +if you use requests such as +.b .sp +intermixed with the text +of the table. +If you want it to float +(or if you use requests +inside the table), +surround the entire table +(including the +.b .TS +and +.b .TE +requests) +with the requests +.b .(z +and +.b .)z . +.TL +.b .PS +.i h +.i w +.DE +Begin +.i pic +picture. +.i H +is the height and +.i w +is the width, +both in basic units. +.i Ditroff +only. +.TL +.b .PE +.DE +End picture. +.TL +.b .IS +.DE +Begin +.i ideal +picture. +.TL +.b .IE +.DE +End +.i ideal +picture. +.TL +.b .IF +.DE +End +.i ideal +picture (alternate form). +.TL +.b GS +.DE +Begin +.i gremlin +picture. +.TL +.b GE +.DE +End +.i gremlin +picture. +.TL +.b GF +.DE +End +.i gremlin +picture (alternate form). +.sh 1 "Miscellaneous" +.TL +.b .re +.DE +Reset tabs. +Set to every 0.5i +in \*T +and every 0.8i in \*N. +.TL +.b .ba +.i +N +.DE +Set the base indent +to +.i +N +[0] +(saved in +.NR ($i ). +All paragraphs, +sections, +and displays +come out indented by this amount. +Titles and footnotes +are unaffected. +The +.b .sh +request performs a +.b .ba +request +if +.NR (si +[0] is not zero, +and sets the base indent to +.NR (si \c +.b * \c +.NR ($0 . +.TL +.b .xl +.i +N +.DE +Set the line length to +.i N +[6.0i]. +This differs +from +.b .ll +because it only affects the current environment. +.TL +.b .ll +.i +N +.DE +Set line length in all environments +to +.i N +[6.0i]. +This should not be used +after output has begun, +and particularly not in two-column output. +The current line length is stored in +.NR ($l . +.TL +.b .hl +.DE +Draws a horizontal line +the length of the page. +This is useful +inside floating keeps +to differentiate +between the text +and the figure. +.TL +.b .lh +.DE +Print a letterhead at the current position on the page. +The format of the letterhead must be defined +in the file +.b /usr/lib/me/letterhead.me +by your local systems staff. +Some environments may require +.i ditroff +for this macro +to function properly. +.TL +.b .lo +.DE +This macro loads another set of macros +(in +.b /usr/lib/me/local.me ) +which is intended to be a set of locally defined macros. +These macros +should all be of the form +.b .* \c +.i X , +where +.i X +is any letter +(upper or lower case) +or digit. +.sh 1 "Standard Papers" +.TL +.b .tp +.DE +Begin title page. +Spacing at the top of the page +can occur, +and headers and footers are suppressed. +Also, +the page number +is not incremented +for this page. +.TL +.b .th +.DE +Set thesis mode. +This defines the modes acceptable +for a doctoral dissertation +at Berkeley. +It double spaces, +defines the header +to be a single page number, +and changes the margins +to be 1.5 inch on the left +and one inch on the top. +.b .++ +and +.b .+c +should be used with it. +This macro must be stated +before +initialization, +that is, +before the first call of a paragraphing +macro +or +.b .sh . +.TL +.b .++ +.i m +.i H +.DE +This request defines the section of the paper +which we are entering. +The section type is defined by +.i m . +.b C +means that we are entering the chapter portion +of the paper, +.b A +means that we are entering the appendix portion +of the paper, +.b P +means that the material following +should be the preliminary portion +(abstract, table of contents, etc.) +portion of the paper, +.b AB +means that we are entering the abstract +(numbered independently from 1 +in Arabic numerals), +and +.b B +means that we are entering the bibliographic +portion at the end of the paper. +Also, the variants +.b RC +and +.b RA +are allowed, +which specify renumbering of pages +from one at the beginning of each +chapter or appendix, +respectively. +The +.i H +parameter defines the new header. +If there are any spaces in it, +the entire header must be quoted. +If you want the header to have the chapter number +in it, +Use the string +.b "\e\e\e\en(ch" . +For example, to number appendixes +.b A.1 +etc., +type +.b ".++ RA \(aa\(aa\(aa\e\e\e\en(ch.%\(aa" . +Each section +(chapter, appendix, etc.) +should be preceded by the +.b .+c +request. +It should be mentioned +that it is easier when using +\*T to put the front material +at the end of the paper, +so that the table of contents +can be collected and put out; +this material can then be physically +moved to the beginning of the paper. +.TL +.b .+c +.i T +.DE +Begin chapter with title +.i T . +The chapter number +is maintained in +.NR (ch . +This register is incremented +every time +.b .+c +is called with a parameter. +The title and chapter number +are printed by +.b .$c . +The header is moved to the footer +on the first page +of each chapter. +If +.i T +is omitted, +.b .$c +is not called; +this is useful for doing your own +.q "title page" +at the beginning of papers +without a title page proper. +.b .$c +calls +.b .$C +as a hook so that chapter titles can be inserted +into a table of contents automatically. +The footnote numbering is reset to one. +.TL +.b .$c +.i T +.DE +Print chapter number +(from +.NR (ch ) +and +.i T . +This macro can be redefined to your liking. +It is defined by default +to be acceptable +for a PhD thesis +at Berkeley. +This macro calls +.b $C , +which can be defined to make index entries, +or whatever. +.TL +.b .$C +.i K +.i N +.i T +.DE +This macro is called by +.b .$c . +It is normally undefined, +but can be used to automatically insert +index entries, +or whatever. +.i K +is a keyword, +either +.q Chapter +or +.q Appendix +(depending on the +.b .++ +mode); +.i N +is the chapter or appendix number, +and +.i T +is the chapter or appendix title. +.TL +.b .ac +.i A +.i N +.DE +This macro +(short for +.b .acm ) +sets up the \*N environment +for camera-ready papers +as used by the ACM. +This format is 25% larger, +and has no headers or footers. +The author's name +.i A +is printed at the bottom of the page +(but off the part which will be printed +in the conference proceedings), +together with the current page number +and the total number of pages +.i N . +Additionally, +this macro loads the file +.b /usr/lib/me/acm.me , +which may later be augmented with other macros +useful for printing papers +for ACM conferences. +It should be noted +that this macro will not work correctly in version 7 \*T, +since it sets the page length +wider than the physical width +of the C/A/T phototypesetter roll. +.sh 1 "Predefined Strings" +.TL +.ST * +.DE +Footnote number, actually +.ST [ \c +.NR ($f \c +.ST ] . +This macro is incremented +after each call to +.b .)f . +.TL +.ST # +.DE +Delayed text number. +Actually +[\c +.NR ($d ]. +.TL +.ST [ +.DE +Superscript. +This string gives upward movement +and a change to a smaller point size +if possible, +otherwise it gives the left bracket character +(`\^\c +.b [ \^'). +Extra space is left above the line +to allow room for the superscript. +.TL +.ST ] +.DE +Unsuperscript. +Inverse to +.ST [ . +For example, +to produce a superscript +you might type +.b x \c +.ST [ \c +.b 2 \c +.ST ] , +which will produce +.b x\*[2\*] . +.TL +.ST < +.DE +Subscript. +Defaults to +`\^<\^' +if half-carriage motion not possible. +Extra space is left below the line +to allow for the subscript. +.TL +.ST > +.DE +Inverse to +.ST < . +.TL +.ST (dw +.DE +The day of the week, +as a word. +.TL +.ST (mo +.DE +The month, +as a word. +.TL +.ST (td +.DE +Today's date, +directly printable. +The date is of the form \*(td. +Other forms of the date can be used +by using +.NR (dy +(the day of the month; +for example, \n(dy), +.ST (mo +(as noted above) +or +.NR (mo +(the same, +but as an ordinal number; +for example, \*(mo is \n(mo), +and +.NR (yr +(the last two digits of the current year). +.TL +.ST (lq +.DE +Left quote marks. +Double quote in \*N. +.TL +.ST (rq +.DE +Right quote. +.TL +.ST \- +.DE +.ie \w'\(34'>0 \(34 +.el 3/4 +em dash in \*T; +two hyphens in \*N. +.sh 1 "Special Characters and Marks" +.pp +There are a number of special characters +and diacritical marks +(such as accents) +available through \-me. +To reference these characters, +you must call the macro +.b .sc +to define the characters before using them. +.TL +.b .sc +.DE +Define special characters and diacritical marks, as described +in the remainder of this section. +This macro must be stated +before initialization. +The special characters available +are listed below. +.in +4n +.ta 15 +5 +6 +.nf +Name Usage Example +Acute accent \e*\(aa a\e*\(aa a\*' +Grave accent \e*\(ga e\e*\(ga e\*` +Umlat \e*: u\e*: u\*: +Tilde \e*~ n\e*~ n\*~ +Caret \e*^ e\e*^ e\*^ +Cedilla \e*, c\e*, c\*, +Czech \e*v e\e*v e\*v +Circle \e*o A\e*o A\*o +There exists \e*(qe \*(qe +For all \e*(qa \*(qa +.fi +.sp 1i +.in 0 +.b Acknowledgments +.pp +I would like to thank +Bob Epstein, +Bill Joy, +and Larry Rowe +for having the courage +to use the \-me macros +to produce non-trivial papers +during the development stages; +Ricki Blau, +Pamela Humphrey, +and Jim Joyce +for their help with the documentation phase; +peter kessler +for numerous complaints, +most accompanied by fixes; +and the plethora of people who have contributed ideas +and have given support for the project. +.bp +.b Summary +.pp +This alphabetical list summarizes all macros, strings, and number registers +available in the \-me macros. +Selected +.i troff +commands, registers, and functions are included as well; +those listed can generally be used with impunity. +.pp +The columns are the name of the +command, macro, register, or string; +the type of the object, +and the description. +Types are +.b M +for macro or builtin command +(invoked with +.b \&. +or +.b \&\' +in the first input column), +.b S +for a string +(invoked with +.b \e* +or +.b \e*( ), +.b R +for a number register +(invoked with +.b \en +or +.b \en( ), +and +.b F +for a +.i troff +builtin function +(invoked by preceding it with a single backslash). +.pp +Lines marked with \(sc are +.i troff +internal codes. +Lines marked with \(dg or \(dd +may be defined by the user to get special functions; +\(dd indicates that these are defined by default +and changing them may have unexpected side effects. +Lines marked with \(de +are specific to +.i ditroff +(device-independent +.i troff ). +.de $H +.ev 1 +.ta \w'\e(space)\(sc\ 'u +\w'TYPE 'u +NAME TYPE DESCRIPTION +.ev +.. +.(l +.$H +\e(space) F\(sc unpaddable space +\e" F\(sc comment (to end of line) +\e*# S optional delayed text tag string +\e$\fI\&N\fP F\(sc interpolate argument \fI\&N\fP +\en($0 R section depth +\&.$0 M\(dg invoked after section title printed +\en($1 R first section number +\&.$1 M\(dg invoked before printing depth 1 section +\en($2 R second section number +\&.$2 M\(dg invoked before printing depth 2 section +\en($3 R third section number +\&.$3 M\(dg invoked before printing depth 3 section +\en($4 R fourth section number +\&.$4 M\(dg invoked before printing depth 4 section +\en($5 R fifth section number +\&.$5 M\(dg invoked before printing depth 5 section +\en($6 R sixth section number +\&.$6 M\(dg invoked before printing depth 6 section +\&.$C M\(dg called at beginning of chapter +\&.$H M\(dg text header +\en($R R\(dd relative vertical spacing in displays +\en($c R current column number +\&.$c M\(dd print chapter title +\en($d R delayed text number +\en($f R footnote number +\&.$f M\(dd print footer +\&.$h M\(dd print header +\en($i R paragraph base indent +\en($l R column width +\en($m R number of columns in effect +\e*($n S section name +\en($p R numbered paragraph number +\&.$p M\(dd print section heading (internal macro) +\en($r R\(dd relative vertical spacing in text +\en($s R column indent +\&.$s M\(dd footnote separator (from text) +\en% R\(sc current page number +\e& F\(sc zero width character, useful for hiding controls +\e(\fI\&xx\fP F\(sc interpolate special character \fI\&xx\fP +\&.(b M begin block +\&.(c M begin centered block +\&.(d M begin delayed text +\&.(f M begin footnote +\&.(l M begin list +\&.(q M begin quote +\&.(x M begin index entry +\&.(z M begin floating keep +\&.)b M end block +\&.)c M end centered block +\&.)d M end delayed text +\&.)f M end footnote +\&.)l M end list +\&.)q M end quote +\&.)x M end index entry +\&.)z M end floating keep +\e*\fI\&x\fP F\(sc interpolate string \fI\&x\fP +\e*(\fI\&xx\fP F\(sc interpolate string \fI\&xx\fP +\e** S optional footnote tag string +\&.++ M set paper section type +\&.+c M begin chapter +\e*, S cedilla +\e\- F\(sc minus sign +\e*\- S 3/4 em dash +\e0 F\(sc unpaddable digit-width space +\&.1c M revert to single column output +\&.2c M begin two column output +\e*: S umlat +\e*< S begin subscript +\e*> S end subscript +\&.EN M end equation +\&.EQ M begin equation +\eL\'\fI\&d\fP\' F\(sc vertical line drawing function for distance \fI\&d\fP +\&.GE M\(de end \fIgremlin\fP picture +\&.GF M\(de end \fIgremlin\fP picture (with flyback) +\&.GS M\(de start \fIgremlin\fP picture +\&.IE M\(de end \fIideal\fP picture +\&.IF M\(de end \fIideal\fP picture (with flyback) +\&.IS M\(de start \fIideal\fP picture +\&.PE M\(de end \fIpic\fP picture +\&.PF M\(de end \fIpic\fP picture (with flyback) +\&.PS M\(de start \fIpic\fP picture +\&.TE M end table +\&.TH M end header of table +\&.TS M begin table +\e*[ S begin superscript +\en(\&.$ R\(sc number of arguments to macro +\en(\&.i R\(sc current indent +\en(\&.l R\(sc current line length +\en(\&.s R\(sc current point size +\e*(\&\' S acute accent +\e*(\&\` S grave accent +\e(\' F\(sc acute accent +\e(\` F\(sc grave accent +\e*] S end superscript +\e^ F\(sc 1/12 em narrow space +\e*^ S caret +\&.ac M ACM mode +\&.ad M\(sc set text adjustment +\&.af M\(sc assign format to register +\&.am M\(sc append to macro +\&.ar M set page numbers in Arabic +\&.as M\(sc append to string +\&.b M bold font +\&.ba M set base indent +\&.bc M begin new column +\&.bi M bold italic +\en(bi R display (block) indent +\&.bl M blank lines (even at top of page) +\en(bm R bottom title margin +\&.bp M\(sc begin page +\&.br M\(sc break (start new line) +\en(bs R display (block) pre/post spacing +\en(bt R block keep threshold +\&.bx M boxed +\ec F\(sc continue input +\&.ce M\(sc center lines +\en(ch R current chapter number +\&.de M\(sc define macro +\en(df R display font +\&.ds M\(sc define string +\en(dw R\(sc current day of week +\e*(dw S current day of week +\en(dy R\(sc day of month +\ee F\(sc printable version of \e +\&.ef M set footer (even numbered pages only) +\&.eh M set header (even numbered pages only) +\&.el M\(sc else part of conditional +\&.ep M end page +\en(es R equation pre/post space +\ef\fI\&f\fP F\(sc inline font change to font \fI\&f\fP +\ef(\fI\&ff\fP F\(sc inline font change to font \fI\&ff\fP +\&.fc M\(sc set field characters +\en(ff R footnote font +\&.fi M\(sc fill output lines +\en(fi R footnote indent (first line only) +\en(fm R footer margin +\&.fo M set footer +\en(fp R footnote pointsize +\en(fs R footnote prespace +\en(fu R footnote undent (from right margin) +\eh\'\fI\&d\fP\' F\(sc local horizontal motion for distance \fI\&d\fP +\&.hc M\(sc set hyphenation character +\&.he M set header +\&.hl M draw horizontal line +\en(hm R header margin +\&.hx M suppress headers and footers on next page +\&.hy M\(sc set hyphenation mode +\&.i M italic font +\&.ie M\(sc conditional with else +\&.if M\(sc conditional +\en(ii R indented paragraph indent +\&.in M\(sc indent (transient, use .ba for pervasive) +\&.ip M begin indented paragraph +\&.ix M indent, no break +\el\'\fI\&d\fP\' F\(sc horizontal line drawing function for distance \fI\&d\fP +\&.lc M\(sc set leader repetition character +\&.lh M\(de interpolate local letterhead +\&.ll M set line length +\&.lo M load local macros +\&.lp M begin left justified paragraph +\e*(lq S left quote marks +\&.ls M\(sc set multi-line spacing +\&.m1 M set space from top of page to header +\&.m2 M set space from header to text +\&.m3 M set space from text to footer +\&.m4 M set space from footer to bottom of page +\&.mc M\(sc insert margin character +\&.mk M\(sc mark vertical position +\en(mo R\(sc month of year +\e*(mo S current month +\en\fI\&x\fP F\(sc interpolate number register \fI\&x\fP +\en(\fI\&xx\fP F\(sc interpolate number register \fI\&xx\fP +\&.n1 M number lines in margin +\&.n2 M number lines in margin +\&.na M\(sc turn off text adjustment +\&.ne M\(sc need vertical space +\&.nf M\(sc don't fill output lines +\&.nh M\(sc turn off hyphenation +\&.np M begin numbered paragraph +\&.nr M\(sc set number register +\&.ns M\(sc no space mode +\e*o S circle (e.g., for Norse A\*o) +\&.of M set footer (odd numbered pages only) +\&.oh M set header (odd numbered pages only) +\&.pa M begin page +\&.pd M print delayed text +\en(pf R paragraph font +\en(pi R paragraph indent +\&.pl M\(sc set page length +\&.pn M\(sc set next page number +\&.po M\(sc page offset +\en(po R simulated page offset +\&.pp M begin paragraph +\en(pp R paragraph pointsize +\en(ps R paragraph prespace +\&.q M quoted +\e*(qa S for all +\e*(qe S there exists +\en(qi R quote indent (also shortens line) +\en(qp R quote pointsize +\en(qs R quote pre/post space +\&.r M roman font +\&.rb M real bold font +\&.re M reset tabs +\&.rm M\(sc remove macro or string +\&.rn M\(sc rename macro or string +\&.ro M set page numbers in roman +\e*(rq S right quote marks +\&.rr M\(sc remove register +\&.rs M\(sc restore spacing +\&.rt M\(sc return to vertical position +\es\fI\&S\fP F\(sc inline size change to size \fI\&S\fP +\&.sc M load special characters +\en(sf R section title font +\&.sh M begin numbered section +\en(si R relative base indent per section depth +\&.sk M skip next page +\&.sm M set argument in a smaller pointsize +\&.so M\(sc source input file +\en(so R additional section title offset +\&.sp M\(sc vertical space +\en(sp R section title pointsize +\en(ss R section prespace +\&.sx M change section depth +\&.sz M set pointsize and vertical spacing +\&.ta M\(sc set tab stops +\&.tc M\(sc set tab repetition character +\e*(td S today's date +\en(tf R title font +\&.th M set thesis mode +\&.ti M\(sc temporary indent (next line only) +\&.tl M\(sc three part title +\en(tm R top title margin +\&.tp M begin title page +\en(tp R title pointsize +\&.tr M\(sc translate +\&.u M underlined +\&.uh M unnumbered section +\&.ul M\(sc underline next line +\ev\'\fI\&d\fP\' F\(sc local vertical motion for distance \fI\&d\fP +\e*v S inverted `v' for czeck ``e\*v'' +\ew\'\fI\&S\fP\' F\(sc return width of string \fI\&S\fP +\&.xl M set line length (local) +\&.xp M print index +\en(xs R index entry prespace +\en(xu R index undent (from right margin) +\en(yr R\(sc year (last two digits only) +\en(zs R floating keep pre/post space +\e{ F\(sc begin conditional group +\e| F\(sc 1/6 em narrow space +\e} F\(sc end conditional group +\e*~ S tilde +.)l +.rm $H |