diff --git a/share/doc/usd/19.memacros/Makefile b/share/doc/usd/19.memacros/Makefile index 1febb24810f1..c9d2e7d97002 100644 --- a/share/doc/usd/19.memacros/Makefile +++ b/share/doc/usd/19.memacros/Makefile @@ -2,7 +2,8 @@ # $FreeBSD$ VOLUME= usd/19.memacros -SRCS= intro.me +SRCS= meintro.me MACROS= -me +SRCDIR= ${.CURDIR}/../../../../contrib/groff/doc .include diff --git a/share/doc/usd/19.memacros/intro.me b/share/doc/usd/19.memacros/intro.me deleted file mode 100644 index c5e2012400d2..000000000000 --- a/share/doc/usd/19.memacros/intro.me +++ /dev/null @@ -1,2348 +0,0 @@ -.\" 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. -.\" -.\" @(#)intro.me 8.1 (Berkeley) 6/8/93 -.\" $FreeBSD$ -.\" -.UC 7 -.ll 6.5i -.lt 6.5i -.pn 0 -.ds MO 2.27\" version of -me to which this applies -.nr si 3n -\".he 'USING NROFF AND \-ME''%' -.eh 'USD:19-%''Writing Papers with NROFF using \-me' -.oh 'Writing Papers with NROFF using \-me''USD:19-%' -.ds U \s-1UNIX\s0 -.ds N \s-1NROFF\s0 -.ds T \s-1TROFF\s0 -.+c -.(l C -.sz 14 -.b "Writing Papers with NROFF using \-me" -.sz -.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 -.)l -.sp 4 -.pp -This document describes -the text processing facilities -available on the \*U\(dg -.(f -\(dg\*U is a trademark -of AT&T Bell Laboratories -.)f -operating system -via \*N\(dg and the -\-me -macro package. -It is assumed -that the reader -already is generally familiar -with the \*U operating system -and a text editor -such as -.b ex . -This is intended to be a casual introduction, -and -as such not all material is covered. -In particular, -many variations and additional features -of the \-me macro package -are not explained. -For a complete discussion of this -and other issues, -see -.ul -The \-me Reference Manual -and -.ul -The \*N/\*T Reference Manual. -.pp -\*N, a computer program -that runs on the \*U operating system, -reads an input file -prepared by the user -and outputs a formatted paper -suitable for publication or framing. -The input consists of -.i text , -or words to be printed, -and -.i requests , -which give instructions -to the \*N program -telling how to format the printed copy. -.pp -Section 1 -describes the basics -of text processing. -Section 2 -describes the basic requests. -Section 3 -introduces displays. -Annotations, -such as footnotes, -are handled in -section 4. -The more complex requests -which are not discussed in section 2 -are covered in section 5. -Finally, -section 6 -discusses things you will need -to know -if you want to typeset documents. -If you are a novice, -you probably won't want to read beyond section 4 -until you have tried some of the basic features out. -.pp -When you have your raw text ready, -call the \*N formatter by typing -as a request to the \*U shell: -.(b -nroff \-me \-T\c -.i "type files" -.)b -where -.i type -describes the type of terminal -you are outputting to. -Common values are -.b dtc -for a DTC 300s -(daisy-wheel type) -printer and -.b lpr -for the line printer. -If the -.b \-T -flag is omitted, -a -.q "lowest common denominator" -terminal is assumed; -this is good for previewing output -on most terminals. -A complete description of options -to the \*N command can be found in -.ul -The \*N/\*T Reference Manual. -.pp -The word -.i argument -is used in this manual -to mean a word or number -which appears on the same line -as a request -which modifies the meaning -of that request. -For example, -the request -.(b -\&.sp -.)b -spaces one line, -but -.(b -\&.sp 4 -.)b -spaces four lines. -The number -.b 4 -is an -.i argument -to the -.b .sp -request -which says to space four lines -instead of one. -Arguments are separated from the request -and from each other -by spaces. -.sh 1 "Basics of Text Processing" -.pp -The primary function -of \*N -is to -.i collect -words from input lines, -.i fill -output lines with those words, -.i justify -the right hand margin by inserting extra spaces -in the line, -and output the result. -For example, -the input: -.(b -Now is the time -for all good men -to come to the aid -of their party. -Four score and seven -years ago,... -.)b -will be read, -packed onto output lines, -and justified -to produce: -.(b F -Now is the time -for all good men -to come to the aid -of their party. -Four score and seven -years ago,... -.)b -Sometimes you may want to start a new output line -even though the line you are on -is not yet full; -for example, -at the end of a paragraph. -To do this -you can cause a -.i break , -which -starts a new output line. -Some requests -cause a break automatically, -as do blank input lines -and input lines beginning with a space. -.pp -Not all input lines -are text to be formatted. -Some of the input lines -are -.i requests -which describe -how to format the text. -Requests always have a period -or an apostrophe -(\c -.q "\|\(aa\|" ) -as the first character -of the input line. -.pp -The text formatter -also does more complex things, -such as automatically numbering pages, -skipping over page folds, -putting footnotes in the correct place, -and so forth. -.pp -I can offer you a few hints -for preparing text -for input to \*N. -First, -keep the input lines short. -Short input lines are easier to edit, -and \*N will pack words onto longer lines -for you anyhow. -In keeping with this, -it is helpful -to begin a new line -after every period, -comma, -or phrase, -since common corrections -are to add or delete sentences -or phrases. -Second, -do not put spaces at the end of lines, -since this can sometimes confuse the \*N -processor. -Third, -do not hyphenate words at the end of lines -(except words that should have hyphens in them, -such as -.q mother-in-law ); -\*N is smart enough to hyphenate words -for you as needed, -but is not smart enough -to take hyphens out -and join a word back together. -Also, -words such as -.q mother-in-law -should not be broken -over a line, -since then you will get a space -where not wanted, -such as -.tr @- -.nh -.q "mother@\ in@law" . -.br -.tr @@ -.hy 14 -.sh 1 "Basic Requests" -.sh 2 "Paragraphs" -.pp -Paragraphs are begun -by using the -.b .pp -request. -For example, -the input: -.(b -\&.pp -Now is the time for all good men -to come to the aid of their party. -Four score and seven years ago,... -.)b -produces a blank line -followed by an indented first line. -The result is: -.(b F -.ti +\n(piu -Now is the time for all good men -to come to the aid of their party. -Four score and seven years ago,... -.)b -.pp -Notice that the sentences -of the paragraphs -.i "must not" -begin with a space, -since blank lines -and lines beginning with spaces -cause a break. -For example, -if I had typed: -.(b -\&.pp -Now is the time for all good men - to come to the aid of their party. -Four score and seven years ago,... -.)b -The output would be: -.(b F -.ti +\n(piu -Now is the time for all good men - to come to the aid of their party. -Four score and seven years ago,... -.)b -A new line begins after the word -.q men -because the second line began with a space character. -.pp -There are many -fancier -types of paragraphs, -which will be described later. -.sh 2 "Headers and Footers" -.pp -Arbitrary headers and footers -can be put -at the top and bottom -of every page. -Two requests -of the form -.b .he \ \c -.i title -and -.b .fo \ \c -.i title -define the titles to put at the head and the foot -of every page, -respectively. -The titles are called -.i three-part -titles, -that is, -there is a left-justified part, -a centered part, -and a right-justified part. -To separate these three parts -the first character of -.i title -(whatever it may be) -is used as a delimiter. -Any character may be used, -but -backslash -and double quote marks -should be avoided. -The percent sign -is replaced by the current page number -whenever found in the title. -For example, -the input: -.(b -\&.he \(aa\(aa%\(aa\(aa -\&.fo \(aaJane Jones\(aa\(aaMy Book\(aa -.)b -results in the page number -centered at the top -of each page, -.q "Jane Jones" -in the lower left corner, -and -.q "My Book" -in the lower right corner. -.sh 2 "Double Spacing" -.pp -.ls 2 -\*N will double space output text automatically if you -use the request -.b ".ls\ 2" , -as is done in this section. -You can revert to single spaced mode -by typing -.b ".ls\ 1" . -.ls 1 -.sh 2 "Page Layout" -.pp -A number of requests allow -you to change the way the printed copy looks, -sometimes called the -.i layout -of the output page. -Most of these requests adjust the placing -of -.q "white space" -(blank lines or spaces). -In these explanations, -characters in italics -should be replaced with values you wish to use; -bold characters -represent characters which should actually be typed. -.pp -The -.b .bp -request -starts a new page. -.pp -The request -.b .sp \ \c -.i N -leaves -.i N -lines of blank space. -.i N -can be omitted -(meaning skip a single line) -or can be of the form -.i N \^\c -.b i -(for -.i N -inches) -or -.i N \^\c -.b c -(for -.i N -centimeters). -For example, the input: -.(b -\&.sp 1.5i -My thoughts on the subject -\&.sp -.)b -leaves one and a half inches of space, -followed by the line -.q "My thoughts on the subject" , -followed by a single blank line. -.pp -The -.b .in \ \c -.i +N -request -changes the amount of white space -on the left of the page -(the -.i indent ). -The argument -.i N -can be of the form -.b + \c -.i N -(meaning leave -.i N -spaces more than you are already leaving), -.b \- \c -.i N -(meaning leave less than you do now), -or just -.i N -(meaning leave exactly -.i N -spaces). -.i N -can be of the form -.i N \^\c -.b i -or -.i N \^\c -.b c -also. -For example, -the input: -.(b -initial text -\&.in 5 -some text -\&.in +1i -more text -\&.in \-2c -final text -.)b -produces -.q "some text" -indented exactly five spaces -from the left margin, -.q "more text" -indented five spaces -plus one inch -from the left margin -(fifteen spaces -on a pica typewriter), -and -.q "final text" -indented five spaces -plus one inch -minus two centimeters -from the margin. -That is, -the output is: -.(b -initial text -.in +5 -some text -.in +1i -more text -.in -2c -final text -.)b -.pp -The -.b .ti \ \c -.i +N -(temporary indent) -request is used like -.b .in \ \c -.i +N -when the indent -should apply to one line only, -after which it should revert -to the previous indent. -For example, -the input: -.(b -\&.in 1i -\&.ti 0 -Ware, James R. The Best of Confucius, -Halcyon House, 1950. -An excellent book containing translations of -most of Confucius\(aa most delightful sayings. -A definite must for anyone interested in the early foundations -of Chinese philosophy. -.)b -produces: -.in 1i+\n($iu -.ti \n($iu -Ware, James R. The Best of Confucius, -Halcyon House, 1950. -An excellent book containing translations of -most of Confucius' most delightful sayings. -A definite must for anyone interested in the early foundations -of Chinese philosophy. -.pp -Text lines can be centered -by using the -.b .ce -request. -The line after the -.b .ce -is centered -(horizontally) -on the page. -To center more than one line, -use -.b .ce \ \c -.i N -(where -.i N -is the number of lines to center), -followed by the -.i N -lines. -If you want to center many lines -but don't want to count them, -type: -.(b -\&.ce 1000 -lines to center -\&.ce 0 -.)b -The -.b ".ce\ 0" -request tells \*N to center zero more lines, -in other words, -stop centering. -.pp -All of these requests -cause a break; -that is, -they always start -a new line. -If you want to start a new line -without performing any other action, -use -.b .br . -.sh 2 "Underlining" -.pp -Text can be underlined -using the -.b .ul -request. -The -.b .ul -request -causes the next input line -to be underlined when output. -You can underline multiple lines -by stating a count of -.i input -lines to underline, -followed by those lines -(as with the -.b .ce -request). -For example, -the input: -.(b -\&.ul 2 -Notice that these two input lines -are underlined. -.)b -will underline those eight words in \*N. -(In \*T they will be set in italics.) -.sh 1 "Displays" -.pp -Displays are sections of text -to be set off -from the body of the paper. -Major quotes, -tables, -and figures -are types of displays, -as are all the examples -used in this document. -All displays -except centered blocks -are output -single spaced. -.sh 2 "Major Quotes" -.pp -Major quotes -are quotes which are several lines long, -and hence are set in from the rest -of the text -without quote marks -around them. -These can be generated -using the commands -.b .(q -and -.b .)q -to surround the quote. -For example, -the input: -.(b -As Weizenbaum points out: -\&.(q -It is said that to explain is to explain away. -This maxim is nowhere so well fulfilled -as in the areas of computer programming,... -\&.)q -.)b -generates as output: -.lp -As Weizenbaum points out: -.(q -It is said that to explain is to explain away. -This maxim is nowhere so well fulfilled -as in the areas of computer programming,... -.)q -.sh 2 "Lists" -.pp -A -.i list -is an indented, -single spaced, -unfilled display. -Lists should be used -when the material to be printed -should not be filled and justified -like normal text, -such as columns of figures -or the examples used in this paper. -Lists are surrounded -by the requests -.b .(l -and -.b .)l . -For example, -type: -.(b -Alternatives to avoid deadlock are: -\&.(l -Lock in a specified order -Detect deadlock and back out one process -Lock all resources needed before proceeding -\&.)l -.)b -will produce: -.br -Alternatives to avoid deadlock are: -.(l -Lock in a specified order -Detect deadlock and back out one process -Lock all resources needed before proceeding -.)l -.sh 2 "Keeps" -.pp -A -.i keep -is a display of lines -which are kept on a single page -if possible. -An example of where you would use a keep -might be a diagram. -Keeps differ from lists -in that lists may be broken -over a page boundary -whereas keeps will not. -.pp -Blocks are the basic kind of keep. -They begin with the request -.b .(b -and end with the request -.b .)b . -If there is not room on the current page -for everything in the block, -a new page is begun. -This has the unpleasant effect -of leaving blank space -at the bottom of the page. -When this is not appropriate, -you can use the alternative, -called -.i "floating keeps" . -.pp -.i "Floating keeps" -move relative to the text. -Hence, -they are good for things -which will be referred to -by name, -such as -.q "See figure 3" . -A floating keep will appear -at the bottom of the current page -if it will fit; -otherwise, -it will appear at the top -of the next page. -Floating keeps begin with the line -.b .(z -and end with the line -.b .)z . -For an example of a floating keep, -see figure 1. -.(z -.in 1i -.xl -1i -.hl -\&.(z -\&.hl -Text of keep to be floated. -\&.sp -\&.ce -Figure 1. Example of a Floating Keep. -\&.hl -\&.)z -.sp -.ce -Figure 1. Example of a Floating Keep. -.hl -.)z -The -.b .hl -request is used -to draw a horizontal line -so that the figure -stands out from the text. -.sh 2 "Fancier Displays" -.pp -Keeps and lists are normally collected in -.i nofill -mode, -so that they are good for tables and such. -If you want a display -in fill mode -(for text), -type -.b ".(l\ F" -(Throughout this section, -comments applied to -.b .(l -also apply to -.b .(b -and -.b .(z ). -This kind of display -will be indented from both margins. -For example, -the input: -.(b -\&.(l F -And now boys and girls, -a newer, bigger, better toy than ever before! -Be the first on your block to have your own computer! -Yes kids, you too can have one of these modern -data processing devices. -You too can produce beautifully formatted papers -without even batting an eye! -\&.)l -.)b -will be output as: -.(b F -And now boys and girls, -a newer, bigger, better toy than ever before! -Be the first on your block to have your own computer! -Yes kids, you too can have one of these modern -data processing devices. -You too can produce beautifully formatted papers -without even batting an eye! -.)b -.pp -Lists and blocks are also normally indented -(floating keeps are normally left justified). -To get a left-justified list, -type -.b ".(l\ L" . -To get a list centered -line-for-line, -type -.b ".(l C" . -For example, -to get a filled, -left justified list, enter: -.(b -\&.(l L F -text of block -\&.)l -.)b -The input: -.(b -\&.(l -first line of unfilled display -more lines -\&.)l -.)b -produces the indented text: -.(b -first line of unfilled display -more lines -.)b -Typing the character -.b L -after the -.b .(l -request produces the left justified result: -.(b L -first line of unfilled display -more lines -.)b -Using -.b C -instead of -.b L -produces the line-at-a-time centered output: -.(b C -first line of unfilled display -more lines -.)b -.pp -Sometimes it may be -that you want to center several lines -as a group, -rather than centering them -one line at a time. -To do this -use centered blocks, -which are surrounded by the requests -.b .(c -and -.b .)c . -All the lines are centered as a unit, -such that the longest line is centered -and the rest are -lined up around that line. -Notice that lines -do not move -relative to each other -using centered blocks, -whereas they do -using the -.b C -argument to keeps. -.pp -Centered blocks are -.i not -keeps, -and may be used -in conjunction -with keeps. -For example, -to center a group of lines -as a unit -and keep them -on one page, -use: -.(b -\&.(b L -\&.(c -first line of unfilled display -more lines -\&.)c -\&.)b -.)b -to produce: -.(b L -.(c -first line of unfilled display -more lines -.)c -.)b -If the block requests -(\c -.b .(b -and -.b .)b ) -had been omitted -the result would have been the same, -but with no guarantee -that the lines of the centered block -would have all been on one page. -Note the use of the -.b L -argument to -.b .(b ; -this causes the centered block -to center within the entire line -rather than within the line -minus the indent. -Also, -the center requests -must -be nested -.i inside -the keep requests. -.sh 1 "Annotations" -.pp -There are a number of requests -to save text -for later printing. -.i Footnotes -are printed at the bottom of the current page. -.i "Delayed text" -is intended to be a variant form -of footnote; -the text is printed only -when explicitly called for, -such as at the end of each chapter. -.i Indexes -are a type of delayed text -having a tag -(usually the page number) -attached to each entry -after a row of dots. -Indexes are also saved -until called for explicitly. -.sh 2 "Footnotes" -.pp -Footnotes begin with the request -.b .(f -and end with the request -.b .)f . -The current footnote number is maintained -automatically, -and can be used by typing \e**, -to produce a footnote number\**. -.(f -\**Like this. -.)f -The number is automatically incremented -after every footnote. -For example, -the input: -.(b -\&.(q -A man who is not upright -and at the same time is presumptuous; -one who is not diligent and at the same time is ignorant; -one who is untruthful and at the same time is incompetent; -such men I do not count among acquaintances.\e** -\&.(f -\e**James R. Ware, -\&.ul -The Best of Confucius, -Halcyon House, 1950. -Page 77. -\&.)f -\&.)q -.)b -generates the result: -.(q -A man who is not upright -and at the same time is presumptuous; -one who is not diligent and at the same time is ignorant; -one who is untruthful and at the same time is incompetent; -such men I do not count among acquaintances.\** -.(f -\**James R. Ware, -.ul -The Best of Confucius, -Halcyon House, 1950. -Page 77. -.)f -.)q -It is important -that the footnote -appears -.i inside -the quote, -so that you can be sure -that the footnote -will appear -on the same page -as the quote. -.sh 2 "Delayed Text" -.pp -Delayed text -is very similar to a footnote -except that it is printed -when called for explicitly. -This allows a list of -references to -appear -(for example) -at the end of each chapter, -as is the convention in some disciplines. -Use -.b \e*# -on delayed text -instead of -.b \e** -as on footnotes. -.pp -If you are using delayed text -as your standard reference mechanism, -you can still use footnotes, -except that you may want to reference them -with special characters* -.(f -*Such as an asterisk. -.)f -rather than numbers. -.sh 2 "Indexes" -.pp -An -.q index -(actually more like a table of contents, -since the entries are not sorted alphabetically) -resembles delayed text, -in that it is saved until called for. -However, -each entry has the page number -(or some other tag) -appended to the last line -of the index entry -after a row of dots. -.pp -Index entries begin with the request -.b .(x -and end with -.b .)x . -The -.b .)x -request may have a argument, -which is the value to print -as the -.q "page number" . -It defaults to the current page number. -If the page number given is an underscore -(\c -.q _ ) -no page number -or line of dots -is printed at all. -To get the line of dots -without a page number, -type -.b ".)x """"" , -which specifies an explicitly null page number. -.pp -The -.b .xp -request prints the index. -.pp -For example, -the input: -.(b -\&.(x -Sealing wax -\&.)x -\&.(x -Cabbages and kings -\&.)x _ -\&.(x -Why the sea is boiling hot -\&.)x 2.5a -\&.(x -Whether pigs have wings -\&.)x "" -\&.(x -This is a terribly long index entry, such as might be used -for a list of illustrations, tables, or figures; I expect it to -take at least two lines. -\&.)x -\&.xp -.)b -generates: -.(x -Sealing wax -.)x -.(x -Cabbages and kings -.)x _ -.(x -Why the sea is boiling hot -.)x 2.5a -.(x -Whether pigs have wings -.)x "" -.(x -This is a terribly long index entry, such as might be used -for a list of illustrations, tables, or figures; I expect it to -take at least two lines. -.)x -.xp -.pp -The -.b .(x -request may have a single character -argument, -specifying the -.q name -of the index; -the normal index is -.b x . -Thus, -several -.q indices -may be maintained simultaneously -(such as a list of tables, table of contents, etc.). -.pp -Notice that the index must be printed -at the -.i end -of the paper, -rather than at the beginning -where it will probably appear -(as a table of contents); -the pages may have to be physically rearranged -after printing. -.sh 1 "Fancier Features" -.pp -A large number of fancier requests -exist, -notably requests to provide other sorts of paragraphs, -numbered sections of the form -.b 1.2.3 -(such as used in this document), -and multicolumn output. -.sh 2 "More Paragraphs" -.pp -Paragraphs generally start with -a blank line -and with the first line -indented. -It is possible to get -left-justified block-style paragraphs -by using -.b .lp -instead of -.b .pp , -as demonstrated by the next paragraph. -.lp -Sometimes you want to use paragraphs -that have the -.i body -indented, -and the first line -exdented -(opposite of indented) -with a label. -This can be done with the -.b .ip -request. -A word specified on the same line as -.b .ip -is printed in the margin, -and the body is lined up -at a prespecified position -(normally five spaces). -For example, -the input: -.(b -\&.ip one -This is the first paragraph. -Notice how the first line -of the resulting paragraph lines up -with the other lines in the paragraph. -\&.ip two -And here we are at the second paragraph already. -You may notice that the argument to \c -.b .ip -appears -in the margin. -\&.lp -We can continue text... -.)b -produces as output: -.ip one -This is the first paragraph. -Notice how the first line of the resulting paragraph lines up -with the other lines in the paragraph. -.ip two -And here we are at the second paragraph already. -You may notice that the argument to -.b .ip -appears -in the margin. -.lp -We can continue text without starting a new indented -paragraph -by using the -.b .lp -request. -.pp -If you have spaces in the label of a -.b .ip -request, -you must use an -.q "unpaddable space" -instead of a regular space. -This is typed as a backslash character -(\c -.q \e ) -followed by a space. -For example, -to print the label -.q "Part 1" , -enter: -.(b -\&.ip "Part\e 1" -.)b -.pp -If a label of an indented paragraph -(that is, the argument to -.b .ip ) -is longer than the space allocated for the label, -.b .ip -will begin a new line after the label. -For example, -the input: -.(b -\&.ip longlabel -This paragraph had a long label. -The first character of text on the first line -will not line up with the text on second and subsequent lines, -although they will line up with each other. -.)b -will produce: -.ip longlabel -This paragraph had a long label. -The first character of text on the first line -will not line up with the text on second and subsequent lines, -although they will line up with each other. -.pp -It is possible to change the size of the label -by using a second argument -which is the size of the label. -For example, -the above example could be done correctly -by saying: -.(b -\&.ip longlabel 10 -.)b -which will make the paragraph indent -10 spaces for this paragraph only. -If you have many paragraphs to indent -all the same amount, -use the -.i "number register" -.b ii . -For example, to leave one inch of space -for the label, -type: -.(b -\&.nr ii 1i -.)b -somewhere before the first call to -.b .ip . -Refer to the reference manual -for more information. -.pp -If -.b .ip -is used -with no argument at all -no hanging tag will be printed. -For example, -the input: -.(b -\&.ip [a] -This is the first paragraph of the example. -We have seen this sort of example before. -\&.ip -This paragraph is lined up with the previous paragraph, -but it has no tag in the margin. -.)b -produces as output: -.ip [a] -This is the first paragraph of the example. -We have seen this sort of example before. -.ip -This paragraph is lined up with the previous paragraph, -but it has no tag in the margin. -.pp -A special case of -.b .ip -is -.b .np , -which automatically -numbers paragraphs sequentially from 1. -The numbering is reset at the next -.b .pp , -.b .lp , -or -.b .sh -(to be described in the next section) -request. -For example, -the input: -.(b -\&.np -This is the first point. -\&.np -This is the second point. -Points are just regular paragraphs -which are given sequence numbers automatically -by the .np request. -\&.pp -This paragraph will reset numbering by .np. -\&.np -For example, -we have reverted to numbering from one now. -.)b -generates: -.np -This is the first point. -.np -This is the second point. -Points are just regular paragraphs -which are given sequence numbers automatically -by the .np request. -.pp -This paragraph will reset numbering by .np. -.np -For example, -we have reverted to numbering from one now. -.pp -The -.b .bu -request gives lists of this sort that are identified with -bullets rather than numbers. -The paragraphs are also crunched together. -For example, -the input: -.(b -\&.bu -\&One egg yolk -\&.bu -\&One tablespoon cream or top milk -\&.bu -\&Salt, cayenne, and lemon juice to taste -\&.bu -\&A generous two tablespoonfuls of butter -.)b -produces\**: -.(f -\**By the way, -if you put the first three ingredients in a heavy, deep pan -and whisk the ingredients madly over a medium flame -(never taking your hand off the handle of the pot) -until the mixture reaches the consistency of custard -(just a minute or two), -then mix in the butter off-heat, -you will have a wonderful Hollandaise sauce. -.)f -.bu -One egg yolk -.bu -One tablespoon cream or top milk -.bu -Salt, cayenne, and lemon juice to taste -.bu -A generous two tablespoonfuls of butter -.sh 2 "Section Headings" -.pp -Section numbers -(such as the ones used in this document) -can be automatically generated -using the -.b .sh -request. -You must tell -.b .sh -the -.i depth -of the section number -and a section title. -The depth -specifies how many numbers -are to appear -(separated by decimal points) -in the section number. -For example, -the section number -.b 4.2.5 -has a depth of three. -.pp -Section numbers -are incremented -in a fairly intuitive fashion. -If you add a number -(increase the depth), -the new number starts out -at one. -If you subtract section numbers -(or keep the same number) -the final number is incremented. -For example, -the input: -.(b -\&.sh 1 "The Preprocessor" -\&.sh 2 "Basic Concepts" -\&.sh 2 "Control Inputs" -\&.sh 3 -\&.sh 3 -\&.sh 1 "Code Generation" -\&.sh 3 -.)b -produces as output the result: -.(b -.b -1. The Preprocessor -1.1. Basic Concepts -1.2. Control Inputs -1.2.1. -1.2.2. -2. Code Generation -2.1.1. -.)b -.pp -You can specify the section number to begin -by placing the section number after the section title, -using spaces instead of dots. -For example, -the request: -.(b -\&.sh 3 "Another section" 7 3 4 -.)b -will begin the section numbered -.b 7.3.4 ; -all subsequent -.b .sh -requests will number relative to this number. -.pp -There are more complex features -which will cause each section to be indented -proportionally to the depth of the section. -For example, if you enter: -.(b -\&.nr si \c -.i N -.)b -each section will be indented by an amount -.i N . -.i N -must have a scaling factor attached, -that is, it must be of the form -.i Nx , -where -.i x -is a character telling what units -.i N -is in. -Common values for -.i x -are -.b i -for inches, -.b c -for centimeters, -and -.b n -for -.i ens -(the width of a single character). -For example, -to indent each section -one-half inch, -type: -.(b -\&.nr si 0.5i -.)b -After this, -sections will be indented by -one-half inch -per level of depth in the section number. -For example, -this document was produced -using the request -.(b -\&.nr si 3n -.)b -at the beginning of the input file, -giving three spaces of indent -per section depth. -.pp -Section headers without automatically generated numbers -can be done using: -.(b -\&.uh "Title" -.)b -which will do a section heading, -but will put no number on the section. -.sh 2 "Parts of the Basic Paper" -.pp -There are some requests -which assist in setting up -papers. -The -.b .tp -request -initializes for a title page. -There are no headers or footers -on a title page, -and unlike other pages -you can space down -and leave blank space -at the top. -For example, -a typical title page might appear as: -.(b -\&.tp -\&.sp 2i -\&.(l C -THE GROWTH OF TOENAILS -IN UPPER PRIMATES -\&.sp -by -\&.sp -Frank N. Furter -\&.)l -\&.bp -.)b -.pp -The request -.b .th -sets up the environment -of the \*N processor -to do a thesis, -using the rules established at Berkeley. -It defines the correct headers and footers -(a page number in the upper right hand corner only), -sets the margins correctly, -and double spaces. -.pp -The -.b .+c \ \c -.i T -request can be used -to start chapters. -Each chapter is automatically numbered -from one, -and a heading is printed at the top of each chapter -with the chapter number -and the chapter name -.i T . -For example, -to begin a chapter called -.q Conclusions , -use the request: -.(b -\&.+c "CONCLUSIONS" -.)b -which will produce, -on a new page, -the lines -.(b C -CHAPTER 5 -CONCLUSIONS -.)b -with appropriate spacing for a thesis. -Also, the header is moved to the foot of the page -on the first page of a chapter. -Although the -.b .+c -request was not designed to work only with the -.b .th -request, -it is tuned for the format acceptable -for a PhD thesis -at Berkeley. -.pp -If the -title parameter -.i T -is omitted from the -.b .+c -request, -the result is a chapter with no heading. -This can also be used at the beginning -of a paper; -for example, -.b .+c -was used to generate page one -of this document. -.pp -Although -papers traditionally have the abstract, -table of contents, -and so forth at the front of the paper, -it is more convenient to format -and print them last -when using \*N. -This is so that index entries -can be collected and then printed -for the table of contents -(or whatever). -At the end of the paper, -issue the -.b ".++ P" -request, -which begins the preliminary part -of the paper. -After issuing this request, -the -.b .+c -request will begin a preliminary section -of the paper. -Most notably, -this prints the page number -restarted from one -in lower case Roman numbers. -.b .+c -may be used repeatedly -to begin different parts of the -front material -for example, -the abstract, -the table of contents, -acknowledgments, -list of illustrations, -etc. -The request -.b ".++ B" -may also be used -to begin the bibliographic section -at the end of the paper. -For example, -the paper might appear -as outlined in figure 2. -(In this figure, -comments begin with the sequence -.b \e" .) -.(z -.hl -.if t .in 0.5i -.if t .ta 2i -.if n .ta 3i -\&.th \e" set for thesis mode -\&.fo \(aa\(aaDRAFT\(aa\(aa \e" define footer for each page -\&.tp \e" begin title page -\&.(l C \e" center a large block -THE GROWTH OF TOENAILS -IN UPPER PRIMATES -\&.sp -by -\&.sp -Frank Furter -\&.)l \e" end centered part -\&.+c INTRODUCTION \e" begin chapter named "INTRODUCTION" -\&.(x t \e" make an entry into index `t' -Introduction -\&.)x \e" end of index entry -text of chapter one -\&.+c "NEXT CHAPTER" \e" begin another chapter -\&.(x t \e" enter into index `t' again -Next Chapter -\&.)x -text of chapter two -\&.+c CONCLUSIONS -\&.(x t -Conclusions -\&.)x -text of chapter three -\&.++ B \e" begin bibliographic information -\&.+c BIBLIOGRAPHY \e" begin another `chapter' -\&.(x t -Bibliography -\&.)x -text of bibliography -\&.++ P \e" begin preliminary material -\&.+c "TABLE OF CONTENTS" -\&.xp t \e" print index `t' collected above -\&.+c PREFACE \e" begin another preliminary section -text of preface -.sp 2 -.in 0 -.ce -Figure 2. Outline of a Sample Paper -.hl -.)z -.sh 2 "Equations and Tables" -.pp -Two special \*U programs exist -to format special types of material. -.b Eqn -and -.b neqn -set equations -for the phototypesetter -and \*N respectively. -.b Tbl -arranges to print -extremely pretty tables -in a variety of formats. -This document will only describe -the embellishments -to the standard features; -consult the reference manuals -for those processors -for a description of their use. -.pp -The -.b eqn -and -.b neqn -programs are described fully -in the document -.ul -Typesetting Mathematics \- User's Guide -by Brian W. Kernighan -and Lorinda L. Cherry. -Equations are centered, -and are kept on one page. -They are introduced by the -.b .EQ -request and terminated by the -.b .EN -request. -.pp -The -.b .EQ -request may take an -equation number as an -optional argument, -which is printed vertically centered -on the right hand side -of the equation. -If the equation becomes too long -it should be split -between two lines. -To do this, type: -.(b -\&.EQ (eq 34) -text of equation 34 -\&.EN C -\&.EQ -continuation of equation 34 -\&.EN -.)b -The -.b C -on the -.b .EN -request -specifies that the equation -will be continued. -.pp -The -.b tbl -program produces tables. -It is fully described -(including numerous examples) -in the document -.ul -Tbl \- A Program to Format Tables -by M. E. Lesk. -Tables begin with the -.b .TS -request -and end with the -.b .TE -request. -Tables are normally kept on a single page. -If you have a table which is too big -to fit on a single page, -so that you know it will extend -to several pages, -begin the table with the request -.b ".TS\ H" -and put the request -.b .TH -after the part of the table -which you want -duplicated at the top of every page -that the table is printed on. -For example, a table definition -for a long table might look like: -.ds TA \|\h'.4n'\v'-.2n'\s-4\zT\s0\v'.2n'\h'-.4n'\(ci\| -.if n .ds TA \ \o'-T'\ \" -.(b -\&.TS H -c s s -n n n. -THE TABLE TITLE -\&.TH -text of the table -\&.TE -.)b -.pp -.sh 2 "Two Column Output" -.pp -You can get two column output -automatically -by using the request -.b .2c . -This causes everything after it -to be output in two-column form. -The request -.b .bc -will start a new column; -it differs from -.b .bp -in that -.b .bp -may leave a totally blank column -when it starts a new page. -To revert to single column output, -use -.b .1c . -.sh 2 "Defining Macros" -.pp -A -.i macro -is a collection of requests and text -which may be used -by stating a simple request. -Macros begin with the line -.b ".de" \ \c -.i xx -(where -.i xx -is the name of the macro to be defined) -and end with the line consisting of two dots. -After defining the macro, -stating the line -.b . \c -.i xx -is the same as stating all the other lines. -For example, -to define a macro -that spaces 3 lines -and then centers the next input line, -enter: -.(b -\&.de SS -\&.sp 3 -\&.ce -\&.. -.)b -and use it by typing: -.(b -\&.SS -\&Title Line -(beginning of text) -.)b -.pp -Macro names may be one or two characters. -In order to avoid conflicts -with names in \-me, -always use upper case letters as names. -The only names to avoid are -.b TS , -.b TH , -.b TE , -.b EQ , -and -.b EN . -.sh 2 "Annotations Inside Keeps" -.pp -Sometimes you may want to put -a footnote -or index entry inside a keep. -For example, -if you want to maintain a -.q "list of figures" -you will want to do something like: -.(b -\&.(z -\&.(c -text of figure -\&.)c -\&.ce -Figure 5. -\&.(x f -Figure 5 -\&.)x -\&.)z -.)b -which you may hope -will give you a figure -with a label -and an entry in the index -.b f -(presumably a list of figures index). -Unfortunately, -the -index entry -is read and interpreted -when the keep is read, -not when it is printed, -so the page number in the index is likely to be wrong. -The solution is to use the magic string -.b \e! -at the beginning of all the lines dealing with the index. -In other words, -you should use: -.(b -\&.(z -\&.(c -Text of figure -\&.)c -\&.ce -Figure 5. -\e!.(x f -\e!Figure 5 -\e!.)x -\&.)z -.)b -which will defer the processing of the index -until the figure is output. -This will guarantee -that the page number in the index -is correct. -The same comments apply -to -blocks -(with -.b .(b -and -.b .)b ) -as well. -.sh 1 "\*T and the Photosetter" -.pp -With a little care, -you can prepare -documents that -will print nicely -on either a regular terminal -or when phototypeset -using the \*T formatting program. -.sh 2 "Fonts" -.pp -A -.i font -is a style of type. -There are three fonts -that are available simultaneously, -Times Roman, -Times Italic, -and Times Bold, -plus the special math font. -The normal font is Roman. -Text which would be underlined in \*N -with the -.b .ul -request -is set in italics -in \*T. -.pp -There are ways of switching between fonts. -The requests -.b .r , -.b .i , -and -.b .b -switch to Roman, -italic, -and bold fonts respectively. -You can set a single word -in some font -by typing (for example): -.(b -\&.i word -.)b -which will set -.i word -in italics -but does not affect the surrounding text. -In \*N, -italic and bold text -is underlined. -.pp -Notice that if you are setting more than one word -in whatever font, -you must surround that word with double quote marks -(`\|"\|') -so that it will appear to the \*N processor as a single word. -The quote marks will not appear in the formatted text. -If you do want a quote mark to appear, -you should quote the entire string -(even if a single word), -and use -.i two -quote marks where you want one to appear. -For example, -if you want to produce the text: -.(b -.i """Master Control\|""" -.)b -in italics, you must type: -.(b -\&.i """Master Control\e|""" -.)b -The -.b \e| -produces a very narrow space -so that the -.q l -does not overlap the quote sign in \*T, -like this: -.(b -.i """Master Control""" -.)b -.pp -There are also several -.q pseudo-fonts -available. -The input: -.(b -\&.(b -\&.u underlined -\&.bi "bold italics" -\&.bx "words in a box" -\&.)b -.)b -generates -.(b -.u underlined -.bi "bold italics" -.bx "words in a box" -.)b -In \*N these all just underline -the text. -Notice that pseudo font requests -set only the single parameter in the pseudo font; -ordinary font requests will begin setting all text -in the special font -if you do not provide a parameter. -No more than one word -should appear -with these three font requests -in the middle of lines. -This is because -of the way \*T justifies text. -For example, -if you were to issue the requests: -.(b -\&.bi "some bold italics" -and -\&.bx "words in a box" -.)b -in the middle of a line -\*T would produce -.bi "some bold italics" -and -.bx "words in a box" ,\c -.if t \p -.if n \& \" -.if t which I think you will agree does not look good. -.if n which would look really lousy in \*T. -.pp -The second parameter -of all font requests -is set in the original font. -For example, -the font request: -.(b -\&.b bold face -.)b -generates -.q bold -in bold font, -but sets -.q face -in the font of the surrounding text, -resulting in: -.(b -.b bold face. -.)b -To set the two words -.b bold -and -.b face -both in -.b "bold face" , -type: -.(b -\&.b "bold face" -.)b -.pp -You can mix fonts in a word by using the -special sequence -.b \ec -at the end of a line -to indicate -.q "continue text processing" ; -this allows input lines -to be joined together -without a space between them. -For example, the input: -.(b -\&.u under \ec -\&.i italics -.)b -generates -.u under \c -.i italics , -but if we had typed: -.(b -\&.u under -\&.i italics -.)b -the result would have been -.u under -.i italics -as two words. -.sh 2 "Point Sizes" -.pp -The phototypesetter -supports different sizes of type, -measured in points. -The default point size -is 10 points -for most text, -8 points for footnotes. -To change the pointsize, -type: -.(b -\&.sz \c -.i +N -.)b -where -.i N -is the size wanted in points. -The -.i "vertical spacing" -(distance between the bottom of most letters -(the -.i baseline ) -between adjacent lines) -is set to be proportional -to the type size. -.pp -These pointsize changes are -.i temporary !!! -For example, -to reset the pointsize of basic text to twelve point, use: -.(b -\&.nr pp 12 -\&.nr sp 12 -\&.nr tp 12 -.)b -to reset the default pointsize of -paragraphs, -section headers, -and titles respectively. -If you only want to set the names of sections in a larger pointsize, -use: -.(b -\&.nr sp 11 -.)b -alone \*- this sets section titles -(e.g., -.b "Point Sizes" -above) -in a larger font than the default. -.pp -A single word or phrase can be set in a smaller pointsize -than the surrounding text -using the -.b .sm -request. -This is especially convenient for words that are all capitals, -due to the optical illusion that makes them look even larger -than they actually are. -For example: -.(b -\&.sm UNIX -.)b -prints as -.sm UNIX -rather than -UNIX. -.pp -Warning: -changing point sizes -on the phototypesetter -is a slow mechanical operation. -On laser printers it may require loading new fonts. -Size changes -should be considered carefully. -.sh 2 "Quotes" -.pp -It is conventional when using -the typesetter to -use pairs of grave and acute accents -to generate double quotes, -rather than the -double quote character -(`\|"\|'). -This is because it looks better -to use grave and acute accents; -for example, compare -"quote" to -``quote''. -.pp -In order to make quotes compatible -between the typesetter and terminals, -you may use the sequences -.b \e*(lq -and -.b \e*(rq -to stand for the left and right quote -respectively. -These both appear as -.b """" -on most terminals, -but are typeset as -.b `` -and -.b '' -respectively. -For example, -use: -.(b -\e*(lqSome things aren\(aat true -even if they did happen.\e*(rq -.)b -to generate the result: -.(b -.q "Some things aren't true even if they did happen." -.)b -As a shorthand, -the special font request: -.(b -\&.q "quoted text" -.)b -will generate -.q "quoted text" . -Notice that you must surround -the material to be quoted -with double quote marks -if it is more than one word. -.sh 0 -.sp 1i -.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 years after I was -.q done -with this project, -most accompanied by fixes -(hence forcing me to fix several small bugs); -and the plethora of people who have contributed ideas -and have given support for the project. -.sp 1i -This document was -.if n \*N'ed -.if t \*T'ed -on \*(td -and applies to version -\*(MO -of the \-me macros. diff --git a/share/doc/usd/20.meref/Makefile b/share/doc/usd/20.meref/Makefile index 98432e7dcb40..05f3afe0a233 100644 --- a/share/doc/usd/20.meref/Makefile +++ b/share/doc/usd/20.meref/Makefile @@ -2,7 +2,8 @@ # $FreeBSD$ VOLUME= usd/20.meref -SRCS= ref.me +SRCS= meref.me MACROS= -me +SRCDIR= ${.CURDIR}/../../../../contrib/groff/doc .include diff --git a/share/doc/usd/20.meref/ref.me b/share/doc/usd/20.meref/ref.me deleted file mode 100644 index 66d0060e3714..000000000000 --- a/share/doc/usd/20.meref/ref.me +++ /dev/null @@ -1,2384 +0,0 @@ -.\" 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