diff options
author | rgrimes <rgrimes@FreeBSD.org> | 1994-05-30 19:09:18 +0000 |
---|---|---|
committer | rgrimes <rgrimes@FreeBSD.org> | 1994-05-30 19:09:18 +0000 |
commit | b0d61785cae024b1f44119446a940ee14c9ac959 (patch) | |
tree | 5a495a583b002ae9e57f09848ae697160708c220 /share/doc/usd | |
parent | d43599f73ba5858e573c7ad8b284f6a0808c5c93 (diff) | |
download | FreeBSD-src-b0d61785cae024b1f44119446a940ee14c9ac959.zip FreeBSD-src-b0d61785cae024b1f44119446a940ee14c9ac959.tar.gz |
BSD 4.4 Lite Share Sources
Diffstat (limited to 'share/doc/usd')
-rw-r--r-- | share/doc/usd/00.contents | 262 | ||||
-rw-r--r-- | share/doc/usd/18.msdiffs/Makefile | 7 | ||||
-rw-r--r-- | share/doc/usd/18.msdiffs/ms.diffs | 287 | ||||
-rw-r--r-- | share/doc/usd/19.memacros/Makefile | 7 | ||||
-rw-r--r-- | share/doc/usd/19.memacros/intro.me | 2347 | ||||
-rw-r--r-- | share/doc/usd/20.meref/Makefile | 7 | ||||
-rw-r--r-- | share/doc/usd/20.meref/ref.me | 2384 | ||||
-rw-r--r-- | share/doc/usd/Makefile | 24 | ||||
-rw-r--r-- | share/doc/usd/Title | 120 |
9 files changed, 5445 insertions, 0 deletions
diff --git a/share/doc/usd/00.contents b/share/doc/usd/00.contents new file mode 100644 index 0000000..eae0ba8 --- /dev/null +++ b/share/doc/usd/00.contents @@ -0,0 +1,262 @@ +.\" 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. +.\" +.\" @(#)00.contents 8.2 (Berkeley) 4/20/94 +.\" +.de ND +.KE +.sp +.KS +.. +.OH '''USD Contents' +.EH 'USD Contents''' +.TL +UNIX User's Supplementary Documents (USD) +.sp +\s-24.4 Berkeley Software Distribution\s+2 +.sp +\fRJune, 1993\fR +.PP +This volume contains documents which supplement the manual pages in +.I +The Unix User's Reference Manual +.R +for the 4.4BSD system as distributed by U.C. Berkeley. +.sp +.KS +.SH +Getting Started +.ND +.IP +.tl 'Unix for Beginners \- Second Edition''USD:1' +.QP +An introduction to the most basic uses of the system. +.ND +.IP +.tl 'Learn \- Computer\-Aided Instruction on UNIX (Second Edition)''USD:2' +.QP +Describes a computer-aided instruction program that walks new users through +the basics of files, the editor, and document prepararation software. +.ND +.SH +Basic Utilities +.ND +.IP +.tl 'An Introduction to the UNIX Shell''USD:3' +.QP +Steve Bourne's introduction to the capabilities of +.I sh, +a command interpreter especially popular for writing shell scripts. +.ND +.IP +.tl 'An Introduction to the C shell''USD:4' +.QP +This introduction to +.I csh, +(a command interpreter popular for interactive work) describes many +commonly used UNIX commands, assumes little prior knowledge of UNIX, +and has a glossary useful for beginners. +.ND +.IP +.tl 'DC \- An Interactive Desk Calculator''USD:5' +.QP +A super HP calculator, if you do not need floating point. +.ND +.IP +.tl 'BC \- An Arbitrary Precision Desk-Calculator Language''USD:6' +.QP +A front end for DC that provides infix notation, control flow, and +built\-in functions. +.ND +.SH +Communicating with the World +.ND +.IP +.tl 'Mail Reference Manual''USD:7' +.QP +Complete details on one of the programs for sending and reading your mail. +.ND +.IP +.tl 'The Rand MH Message Handling System''USD:8' +.QP +This system for managing your computer mail uses lots of small programs, +instead of one large one. +.ND +.SH +Text Editing +.ND +.IP +.tl 'A Tutorial Introduction to the Unix Text Editor''USD:9' +.QP +An easy way to get started with the line editor, +.I ed. +.ND +.IP +.tl 'Advanced Editing on Unix''USD:10' +.QP +The next step. +.ND +.IP +.tl 'An Introduction to Display Editing with Vi''USD:11' +.QP +The document to learn to use the \fIvi\fR screen editor. +.ND +.IP +.tl 'Ex Reference Manual (Version 3.7)''USD:12' +.QP +The final reference for the \fIex\fR editor. +.ND +.IP +.tl 'Vi Reference Manual''USD:13' +.QP +The definitive reference for the \fInvi\fR editor. +.ND +.IP +.tl 'Jove Manual for UNIX Users''USD:14' +.QP +Jove is a small, self-documenting, customizable display editor, based on +EMACS. A plausible alternative to +.I vi. +.ND +.IP +.tl 'SED \- A Non-interactive Text Editor''USD:15' +.QP +Describes a one-pass variant of +.I ed +useful as a filter for processing large files. +.ND +.IP +.tl 'AWK \- A Pattern Scanning and Processing Language (Second Edition)''USD:16' +.QP +A program for data selection and transformation. +.ND +.SH +Document Preparation +.ND +.IP +.tl 'Typing Documents on UNIX: Using the \-ms Macros with Troff and Nroff''USD:17' +.QP +Describes and gives examples of the basic use of the typesetting tools and +``-ms'', a frequently used package of formatting requests that make it easier +to lay out most documents. +.ND +.IP +.tl 'A Revised Version of \-ms''USD:18' +.QP +A brief description of the Berkeley revisions made to the \-ms formatting +macros for nroff and troff. +.ND +.IP +.tl 'Writing Papers with \fInroff\fR using \-me''USD:19' +.QP +Another popular macro package for +.I nroff. +.ND +.IP +.tl '\-me Reference Manual''USD:20' +.QP +The final word on \-me. +.ND +.IP +.tl 'NROFF/TROFF User\'s Manual''USD:21' +.QP +Extremely detailed information about these document formatting programs. +.ND +.IP +.tl 'A TROFF Tutorial''USD:22' +.QP +An introduction to the most basic uses of +.I troff +for those who really want to know such things, or want to write their +own macros. +.ND +.IP +.tl 'A System for Typesetting Mathematics''USD:23' +.QP +Describes +.I eqn, +an easy-to-learn language for high-quality mathematical typesetting. +.ND +.IP +.tl 'Typesetting Mathematics \- User\'s Guide (Second Edition)''USD:24' +.QP +More details about how to use +.I eqn. +.ND +.IP +.tl 'Tbl \- A Program to Format Tables''USD:25' +.QP +A program for easily typesetting tabular material. +.ND +.IP +.tl 'Refer \- A Bibliography System''USD:26' +.QP +An introduction to one set of tools used to maintain bibliographic databases. +The major program, +.I refer, +is used to automatically retrieve and format the references +based on document citations. +.ND +.IP +.tl 'Some Applications of Inverted Indexes on the UNIX System''USD:27' +.QP +Mike Lesk's paper describes the +.I refer +programs in a somewhat larger context. +.ND +.IP +.tl 'BIB \- A Program for Formatting Bibliographies''USD:28' +.QP +This is an alternative to +.I refer +for expanding citations in documents. +.ND +.IP +.tl 'Writing Tools \- The STYLE and DICTION Programs''USD:29' +.QP +These are programs which can help you understand and improve your +writing style. +.ND +.SH +Amusements +.ND +.IP +.tl 'A Guide to the Dungeons of Doom''USD:30' +.QP +An introduction to the popular game of \fIrogue\fP, a fantasy game +which is one of the biggest known users of VAX cycles. +.ND +.IP +.tl 'Star Trek''USD:31' +.QP +You are the Captain of the Starship Enterprise. Wipe out the +Klingons and save the Federation. +.KE diff --git a/share/doc/usd/18.msdiffs/Makefile b/share/doc/usd/18.msdiffs/Makefile new file mode 100644 index 0000000..c6353e0 --- /dev/null +++ b/share/doc/usd/18.msdiffs/Makefile @@ -0,0 +1,7 @@ +# @(#)Makefile 8.1 (Berkeley) 6/8/93 + +DIR= usd/18.msdiffs +SRCS= ms.diffs +MACROS= -msU + +.include <bsd.doc.mk> diff --git a/share/doc/usd/18.msdiffs/ms.diffs b/share/doc/usd/18.msdiffs/ms.diffs new file mode 100644 index 0000000..1193f6f --- /dev/null +++ b/share/doc/usd/18.msdiffs/ms.diffs @@ -0,0 +1,287 @@ +.\" Copyright (c) 1983, 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. +.\" +.\" @(#)ms.diffs 8.1 (Berkeley) 6/8/93 +.\" +.nr LL 6.5i +.nr FL 6.0i +.if t .nr PD .5v +.if t .ds m \u\(ul\dm +.if n .ds m -m +.AM +.OH 'A Revised Version of \*ms''USD:18-%' +.EH 'USD:18-%''A Revised Version of \*ms' +.TL +A Revised Version of \*ms +.AU +Bill Tuthill +.AI +Computing Services +University of California +Berkeley, CA 94720 +.PP +The \*ms macros have been slightly revised and re\%arranged for the +Berkeley Unix distribution. +Because of the rearrangement, +the new macros can be read by the computer +in about half the time required by the previous version of \*ms. +This means that output will begin to appear between ten seconds +and several minutes more quickly, depending on the system load. +On long files, however, the savings in total time are not substantial. +The old version of \*ms is still available as \*mos. +.PP +Several bugs in \*ms have been fixed, including +a bad problem with the .1C macro, +minor difficulties with boxed text, +a break induced by .EQ before initialization, +the failure to set tab stops in displays, +and several bothersome errors in the \fBrefer\fP macros. +Macros used only at Bell Laboratories have been removed. +There are a few extensions to previous \*ms macros, +and a number of new macros, but all the documented \*ms macros +still work exactly as they did before, and have the same names as before. +Output produced with \*ms should look like output produced with \*mos. +.PP +One important new feature is automatically numbered footnotes. +Footnote numbers are printed by means of a pre-defined string +(\e\(**\(**), which you invoke separately from .FS and .FE. +Each time it is used, this string increases the footnote number by one, +whether or not you use .FS and .FE in your text. +Footnote numbers will be superscripted on the phototypesetter +and on daisy-wheel terminals, but on low-resolution devices +(such as the lpr and a crt), they will be bracketed. +If you use \e\(**\(** to indicate numbered footnotes, +then the .FS macro will automatically include +the footnote number at the bottom of the page. +This footnote, for example, was produced as follows:\** +.DS +This footnote, for example, was produced as follows:\e\(**\(** +\&.FS +.sp -.2 + ... +\&.FE +.DE +.FS +If you never use the ``\e\(**\(**'' string, +no footnote numbers will appear anywhere in the text, +including down here. +The output footnotes will look exactly like +footnotes produced with \*mos. +.FE +If you are using \e\(**\(** to number footnotes, +but want a particular footnote to be marked with an asterisk or a dagger, +then give that mark as the first argument to .FS: \(dg +.DS +then give that mark as the first argument to .FS: \e(dg +\&.FS \e(dg +.sp -.2 + ... +\&.FE +.DE +.FS \(dg +In the footnote, the dagger will appear where the footnote +number would otherwise appear, as on the left. +.FE +Footnote numbering will be temporarily suspended, +because the \e\(**\(** string is not used. +Instead of a dagger, you could use an asterisk * +or double dagger \(dd, represented as \|\e(dd. +.PP +Another new feature is a macro for printing theses +according to Berkeley standards. +This macro is called .TM, which stands for thesis mode. +(It is much like the .th macro in \*me.) +It will put page numbers in the upper right-hand corner; +number the first page; suppress the date; +and doublespace everything except quotes, displays, and keeps. +Use it at the top of each file making up your thesis. +Calling .TM defines the .CT macro for chapter titles, +which skips to a new page and moves the pagenumber to the center footer. +The .P1 (P one) macro can be used even without thesis mode +to print the header on page 1, +which is suppressed except in thesis mode. +If you want roman numeral page numbering, +use an ``.af\0PN\0i'' request. +.PP +There is a new macro especially for bibliography entries, +called .XP, which stands for exdented paragraph. +It will exdent the first line of the paragraph by \en(PI units, +usually 5n (the same as the indent for the first line of a .PP). +Most bibliographies are printed this way. +Here are some examples of exdented paragraphs: +.XP +Lumley, Lyle S., \fISex in Crustaceans: Shell Fish Habits,\fP\| +Harbinger Press, Tampa Bay and San Diego, October 1979. +243 pages. +The pioneering work in this field. +.XP +Leffadinger, Harry A., ``Mollusk Mating Season: 52 Weeks, or All Year?'' +in \fIActa Biologica,\fP\| vol. 42, no. 11, November 1980. +A provocative thesis, but the conclusions are wrong. +.LP +Of course, you will have to take care of +italicizing the book title and journal, +and quoting the title of the journal article. +Indentation or exdentation can be changed +by setting the value of number register PI. +.PP +If you need to produce endnotes rather than footnotes, +put the references in a file of their own. +This is similar to what you would do if you were +typing the paper on a conventional typewriter. +Note that you can use automatic footnote numbering +without actually having .FS and .FE pairs in your text. +If you place footnotes in a separate file, +you can use .IP macros with \e\(**\(**\| as a hanging tag; +this will give you numbers at the left-hand margin. +With some styles of endnotes, +you would want to use .PP rather then .IP macros, +and specify \e\(**\(** before the reference begins. +.PP +There are four new macros to help produce a table of contents. +Table of contents entries must be enclosed in .XS and .XE pairs, +with optional .XA macros for additional entries; +arguments to .XS and .XA specify the page number, +to be printed at the right. +A final .PX macro prints out the table of contents. +Here is a sample of typical input and output text: +.DS +\&.XS ii +Introduction +\&.XA 1 +Chapter 1: Review of the Literature +\&.XA 23 +Chapter 2: Experimental Evidence +\&.XE +\&.PX +.sp .5 +.lt 5.5i +.tl ''\fBTable of Contents\fP'' +.ta 5i 5.5iR +.sp +Introduction ii\| +Chapter 1: Review of the Literature 1 +Chapter 2: Experimental Evidence 23 +.sp .5 +.DE +The .XS and .XE pairs may also be used in the text, +after a section header for instance, +in which case page numbers are supplied automatically. +However, most documents that require a table of contents +are too long to produce in one run, +which is necessary if this method is to work. +It is recommended that you do a table of contents +after finishing your document. +To print out the table of contents, use the .PX macro; +if you forget it, nothing will happen. +.PP +As an aid in producing text that will format correctly +with both \fBnroff\fP and \fBtroff\fP, +there are some new string definitions that define quotation marks +and dashes for each of these two formatting programs. +The \e\(**\^\u_\d string will yield two hyphens in \fBnroff\fP, +but in \fBtroff\fP it will produce an em dash\*- +like this one. +The \e\(**Q and \e\(**U strings will produce +`` and '' in \fBtroff\fP, but " in \fBnroff\fP. +(In typesetting, the double quote is traditionally considered bad form.) +.PP +There are now a large number of optional +foreign accent marks defined by the \*ms macros. +All the accent marks available in \*mos are present, +and they all work just as they always did. +However, there are better definitions available +by placing .AM at the beginning of your document. +Unlike the \*mos accent marks, +the accent strings should come \fIafter\fP\| the letter being accented. +Here is a list of the diacritical marks, +with examples of what they look like. +.DS +.ta 2i 3i +name of accent input output +\l'3.5i' +acute accent e\e\(**\' e\*' +grave accent e\e\(**\` e\*` +circumflex o\e\(**\d^\u o\*^ +cedilla c\e\(**, c\*, +tilde n\e\(**\d~\u n\*~ +question \e\(**? \*? +exclamation \e\(**! \*! +umlaut u\e\(**: u\*: +digraph s \e\(**8 \*8 +hac\*vek c\e\(**v c\*v +macron a\e\(**_ a\*_ +underdot s\e\(**. s\*. +o-slash o\e\(**/ o\*/ +angstrom a\e\(**o a\*o +yogh kni\e\(**3t kni\*3t +Thorn \e\(**(Th \*(Th +thorn \e\(**(th \*(th +Eth \e\(**(D- \*(D- +eth \e\(**(d- \*(d- +hooked o \e\(**q \*q +ae ligature \e\(**(ae \*(ae +AE ligature \e\(**(Ae \*(Ae +oe ligature \e\(**(oe \*(oe +OE ligature \e\(**(Oe \*(Oe +.DE +If you want to use these new diacritical marks, +don't forget the .AM at the top of your file. +Without it, some will not print at all, +and others will be placed on the wrong letter. +.PP +It is also possible to produce custom headers and footers +that are different on even and odd pages. +The .OH and .EH macros define odd and even headers, +while .OF and .EF define odd and even footers. +Arguments to these four macros are specified as with .tl. +This document was produced with: +.DS +\&.OH \'\ef\^IThe -mx Macros\'\'Page %\ef\^P\' +\&.EH \'\ef\^IPage %\'\'The -mx Macros\ef\^P\' +.DE +Note that it would be a error to have an apostrophe in the header text; +if you need one, you will have to use a different delimiter +around the left, center, and right portions of the title. +You can use any character as a delimiter, provided it doesn't appear +elsewhere in the argument to .OH, .EH, .OF, or EF. +.PP +The \*ms macros work in conjunction with +the \fBtbl\fR, \fBeqn\fR, and \fBrefer\fR preprocessors. +Macros to deal with these items are read in only as needed, +as are the thesis macros (.TM), +the special accent mark definitions (.AM), +table of contents macros (.XS and .XE), +and macros to format the optional cover page. +The code for the \*ms package lives in /usr/lib/tmac/tmac.s, +and sourced files reside in the directory /usr/ucb/lib/ms. +.sp +.tl '''\*(DY' diff --git a/share/doc/usd/19.memacros/Makefile b/share/doc/usd/19.memacros/Makefile new file mode 100644 index 0000000..95d8324 --- /dev/null +++ b/share/doc/usd/19.memacros/Makefile @@ -0,0 +1,7 @@ +# @(#)Makefile 8.1 (Berkeley) 6/8/93 + +DIR= usd/19.memacros +SRCS= intro.me +MACROS= -me + +.include <bsd.doc.mk> diff --git a/share/doc/usd/19.memacros/intro.me b/share/doc/usd/19.memacros/intro.me new file mode 100644 index 0000000..2d8046a --- /dev/null +++ b/share/doc/usd/19.memacros/intro.me @@ -0,0 +1,2347 @@ +.\" 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 +.\" +.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 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 new file mode 100644 index 0000000..7307e80 --- /dev/null +++ b/share/doc/usd/20.meref/Makefile @@ -0,0 +1,7 @@ +# @(#)Makefile 8.1 (Berkeley) 6/8/93 + +DIR= usd/20.meref +SRCS= ref.me +MACROS= -me + +.include <bsd.doc.mk> diff --git a/share/doc/usd/20.meref/ref.me b/share/doc/usd/20.meref/ref.me new file mode 100644 index 0000000..66d0060 --- /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 diff --git a/share/doc/usd/Makefile b/share/doc/usd/Makefile new file mode 100644 index 0000000..8d68c92 --- /dev/null +++ b/share/doc/usd/Makefile @@ -0,0 +1,24 @@ +# @(#)Makefile 8.2 (Berkeley) 4/20/94 + +# The following modules do not build/install: +# 08.mh + +BINDIR= /usr/share/doc/usd +FILES= 00.contents Makefile Title +SUBDIR= 01.begin 02.learn 03.shell 04.csh 05.dc 06.bc 07.mail 09.edtut \ + 10.edadv 11.vitut 12.exref 13.viref 14.jove 15.sed 16.awk 17.msmacros \ + 18.msdiffs 19.memacros 20.meref 21.troff 22.trofftut 23.eqn \ + 24.eqnguide 25.tbl 26.refer 27.invert 28.bib 29.diction 30.rogue \ + 31.trek + +Title.ps: ${FILES} + groff Title > ${.TARGET} + +contents.ps: ${FILES} + groff -ms 00.contents > ${.TARGET} + +beforeinstall: + install -c -o ${BINOWN} -g ${BINGRP} -m 444 ${FILES} \ + ${DESTDIR}${BINDIR} + +.include <bsd.subdir.mk> diff --git a/share/doc/usd/Title b/share/doc/usd/Title new file mode 100644 index 0000000..d36a55f --- /dev/null +++ b/share/doc/usd/Title @@ -0,0 +1,120 @@ +.\" 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. +.\" +.\" @(#)Title 8.2 (Berkeley) 4/19/94 +.\" +.ps 18 +.vs 22 +.sp 2.75i +.ft B +.ce 2 +UNIX User's Supplementary Documents +(USD) +.ps 14 +.vs 16 +.sp |4i +.ce 2 +4.4 Berkeley Software Distribution +.sp |5.75i +.ft R +.pt 12 +.vs 16 +.ce +June, 1993 +.sp |8.2i +.ce 5 +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California +Berkeley, California 94720 +.bp +\& +.sp |1i +.hy 0 +.ps 10 +.vs 12p +Copyright 1979, 1980, 1983, 1986, 1993 +The Regents of the University of California. All rights reserved. +.sp 2 +Other than the specific documents listed below as copyrighted by AT&T, +redistribution and use of this manual in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: +.sp 0.5 +.in +0.2i +.ta 0.2i +.ti -0.2i +1) Redistributions of this manual must retain the copyright +notices on this page, this list of conditions and the following disclaimer. +.ti -0.2i +2) Software or documentation that incorporates part of this manual must +reproduce the copyright notices on this page, this list of conditions and +the following disclaimer in the documentation and/or other materials +provided with the distribution. +.ti -0.2i +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.'' +.ti -0.2i +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. +.in -0.2i +.sp +\fB\s-1THIS 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.\s+1\fP +.sp 2 +Documents USD:1, 2, 3, 5, 6, 9, 10, 15, 16, 17, 21, 22, 23, 24, 25, 26, 27, +and 29 are copyright 1979, AT&T Bell Laboratories, Incorporated. +Holders of \x'-1p'UNIX\v'-4p'\s-3TM\s0\v'4p'/32V, +System III, or System V software licenses are +permitted to copy these documents, or any portion of them, +as necessary for licensed use of the software, +provided this copyright notice and statement of permission +are included. +.sp 2 +Documents USD:8, 14, and 28 are part of the +user contributed software. +.sp 2 +The views and conclusions contained in this manual are those of the +authors and should not be interpreted as representing official policies, +either expressed or implied, of the Regents of the University of California. |