Annotation of 43BSDReno/share/doc/usd/01.begin/u3, revision 1.1.1.1

1.1       root        1: .\"    @(#)u3  6.1 (Berkeley) 5/22/86
                      2: .\"
                      3: .sp
                      4: .SH
                      5: III. DOCUMENT PREPARATION
                      6: .PP
                      7: .UC UNIX
                      8: systems are used extensively for document preparation.
                      9: There are two major 
                     10: formatting
                     11: programs,
                     12: that is,
                     13: programs that produce a text with
                     14: justified right margins, automatic page numbering and titling,
                     15: automatic hyphenation,
                     16: and the like.
                     17: .UL nroff
                     18: is designed to produce output on terminals and
                     19: line-printers.
                     20: .UL troff
                     21: (pronounced ``tee-roff'')
                     22: instead drives a phototypesetter,
                     23: which produces very high quality output
                     24: on photographic paper.
                     25: This paper was formatted with
                     26: .UL troff .
                     27: .SH
                     28: Formatting Packages
                     29: .PP
                     30: The basic idea of
                     31: .UL nroff 
                     32: and 
                     33: .UL troff
                     34: is that the text to be formatted contains within it
                     35: ``formatting commands'' that indicate in detail
                     36: how the formatted text is to look.
                     37: For example, there might be commands that specify how long
                     38: lines are, whether to use single or double spacing,
                     39: and what running titles to use on each page.
                     40: .PP
                     41: Because
                     42: .UL nroff
                     43: and
                     44: .UL troff
                     45: are relatively hard to learn to use effectively,
                     46: several
                     47: ``packages'' of canned formatting requests are available
                     48: to let you specify
                     49: paragraphs, running titles, footnotes, multi-column output,
                     50: and so on, with little effort
                     51: and without having to learn
                     52: .UL nroff
                     53: and
                     54: .UL troff .
                     55: These packages take a modest effort to learn,
                     56: but the rewards for using them are so great
                     57: that it is time well spent.
                     58: .PP
                     59: In this section,
                     60: we will provide a hasty look at the ``manuscript'' 
                     61: package known as
                     62: .UL \-ms .
                     63: Formatting requests typically consist of a period and two upper-case letters,
                     64: such as
                     65: .UL .TL ,
                     66: which is used to introduce a title,
                     67: or
                     68: .UL .PP
                     69: to begin a new paragraph.
                     70: .PP
                     71: A document is typed so it looks something like this:
                     72: .P1
                     73: \&.TL
                     74: title of document
                     75: \&.AU
                     76: author name
                     77: \&.SH
                     78: section heading
                     79: \&.PP
                     80: paragraph ...
                     81: \&.PP
                     82: another paragraph ...
                     83: \&.SH
                     84: another section heading
                     85: \&.PP
                     86: etc.
                     87: .P2
                     88: The lines that begin with a period are the formatting requests.
                     89: For example,
                     90: .UL .PP
                     91: calls for starting a new paragraph.
                     92: The precise meaning of
                     93: .UL .PP
                     94: depends on what output device is being used
                     95: (typesetter or terminal, for instance),
                     96: and on what publication the document will appear in.
                     97: For example,
                     98: .UL \-ms
                     99: normally assumes that a paragraph is preceded by a space
                    100: (one line in
                    101: .UL nroff ,
                    102: \(12 line in
                    103: .UL troff ),
                    104: and the first word is indented.
                    105: These rules can be changed if you like,
                    106: but they are changed by changing the interpretation
                    107: of
                    108: .UL .PP ,
                    109: not by re-typing the document.
                    110: .PP
                    111: To actually produce a document in standard format
                    112: using
                    113: .UL \-ms ,
                    114: use the command
                    115: .P1
                    116: troff -ms files ...
                    117: .P2
                    118: for the typesetter, and
                    119: .P1
                    120: nroff -ms files ...
                    121: .P2
                    122: for a terminal.
                    123: The
                    124: .UL \-ms
                    125: argument tells
                    126: .UL troff
                    127: and
                    128: .UL nroff
                    129: to use the manuscript package of formatting requests.
                    130: .PP
                    131: There are several similar packages;
                    132: check with a local expert to determine which ones
                    133: are in common use on your machine.
                    134: .SH
                    135: Supporting Tools
                    136: .PP
                    137: In addition to the basic formatters,
                    138: there is
                    139: a host of supporting programs
                    140: that help with document preparation.
                    141: The list in the next few paragraphs
                    142: is far from complete,
                    143: so browse through the manual
                    144: and check with people around you for other possibilities.
                    145: .PP
                    146: .UL eqn
                    147: and
                    148: .UL neqn
                    149: let you integrate mathematics
                    150: into the text of a document,
                    151: in an easy-to-learn language that closely resembles the way
                    152: you would speak it aloud.
                    153: For example, the
                    154: .UL eqn
                    155: input
                    156: .P1
                    157: sum from i=0 to n x sub i ~=~ pi over 2
                    158: .P2
                    159: produces the output
                    160: .EQ
                    161: sum from i=0 to n x sub i ~=~ pi over 2
                    162: .EN
                    163: .PP
                    164: The program
                    165: .UL tbl
                    166: provides an analogous service for preparing tabular material;
                    167: it does all the computations necessary to align complicated columns
                    168: with elements of varying widths.
                    169: .PP
                    170: .UL refer
                    171: prepares bibliographic citations from a data base,
                    172: in whatever style is defined by the formatting package.
                    173: It looks after all the details of numbering references in sequence,
                    174: filling in page and volume numbers,
                    175: getting the author's initials and the journal name right,
                    176: and so on.
                    177: .PP
                    178: .UL spell
                    179: and
                    180: .UL typo
                    181: detect possible spelling mistakes in a document.\(dg
                    182: .FS
                    183: \(dg "typo" is not provided with Berkeley Unix.
                    184: .FE
                    185: .UL spell
                    186: works by comparing the words in your document
                    187: to a dictionary,
                    188: printing those that are not in the dictionary.
                    189: It knows enough about English spelling to detect plurals and the like,
                    190: so it does a very good job.
                    191: .UL typo
                    192: looks for words which are ``unusual'',
                    193: and prints those.
                    194: Spelling mistakes tend to be more unusual,
                    195: and thus show up early when the most unusual words
                    196: are printed first.
                    197: .PP
                    198: .UL grep
                    199: looks through a set of files for lines
                    200: that contain a particular text pattern 
                    201: (rather like the editor's context search does,
                    202: but on a bunch of files).
                    203: For example,
                    204: .P1
                    205: grep \(fming$\(fm chap*
                    206: .P2
                    207: will find all lines that end with
                    208: the letters
                    209: .UL ing
                    210: in the files
                    211: .UL chap* .
                    212: (It is almost always a good practice to put single quotes around
                    213: the pattern you're searching for,
                    214: in case it contains characters like
                    215: .UL *
                    216: or
                    217: .UL $
                    218: that have a special meaning to the shell.)
                    219: .UL grep
                    220: is often useful for finding out in which of a set of files
                    221: the misspelled words detected by
                    222: .UL spell
                    223: are actually located.
                    224: .PP
                    225: .UL diff
                    226: prints a list of the differences between
                    227: two files,
                    228: so you can compare
                    229: two versions of something automatically
                    230: (which certainly beats proofreading by hand).
                    231: .PP
                    232: .UL wc
                    233: counts the words, lines and characters in a set of files.
                    234: .UL tr
                    235: translates characters into other characters;
                    236: for example it will convert upper to lower case and vice versa.
                    237: This translates upper into lower:
                    238: .P1
                    239: tr A-Z a-z <input >output
                    240: .P2
                    241: .PP
                    242: .UL sort
                    243: sorts files in a variety of ways;
                    244: .UL cref
                    245: makes cross-references;
                    246: .UL ptx
                    247: makes a permuted index
                    248: (keyword-in-context listing).
                    249: .UL sed
                    250: provides many of the editing facilities
                    251: of
                    252: .UL ed ,
                    253: but can apply them to arbitrarily long inputs.
                    254: .UL awk
                    255: provides the ability to do both pattern matching and numeric computations,
                    256: and to conveniently process fields within lines.
                    257: These programs are for more advanced users,
                    258: and they are not limited to document preparation.
                    259: Put them on your list of things to learn about.
                    260: .PP
                    261: Most of these programs are either independently documented
                    262: (like
                    263: .UL eqn
                    264: and
                    265: .UL tbl ),
                    266: or are sufficiently simple that the description in
                    267: the
                    268: .ul 2
                    269: .UC UNIX
                    270: Programmer's Manual
                    271: is adequate explanation.
                    272: .SH
                    273: Hints for Preparing Documents
                    274: .PP
                    275: Most documents go through several versions (always more than you expected) before they
                    276: are finally finished.
                    277: Accordingly, you should do whatever possible to make
                    278: the job of changing them easy.
                    279: .PP
                    280: First, when you do the purely mechanical operations of typing,
                    281: type so that subsequent editing will be easy.
                    282: Start each sentence on a new line.
                    283: Make lines short,
                    284: and break lines at natural places,
                    285: such as after commas and semicolons,
                    286: rather than randomly.
                    287: Since most people change documents by rewriting phrases
                    288: and adding, deleting and rearranging sentences,
                    289: these precautions simplify any editing
                    290: you have to do later.
                    291: .PP
                    292: Keep the individual files of a document down
                    293: to modest size,
                    294: perhaps ten to fifteen thousand characters.
                    295: Larger files edit more slowly,
                    296: and of course if you make a dumb mistake
                    297: it's better to have clobbered a small file than a big one.
                    298: Split into files at natural boundaries in the document,
                    299: for the same reasons that you start each sentence
                    300: on a new line.
                    301: .PP
                    302: The second aspect of making change easy
                    303: is to not commit yourself to formatting details too early.
                    304: One of the advantages of formatting packages like
                    305: .UL \-ms
                    306: is that they permit you to delay decisions
                    307: to the last possible moment.
                    308: Indeed,
                    309: until a document is printed,
                    310: it is not even decided whether it will be typeset
                    311: or put on a line printer.
                    312: .PP
                    313: As a rule of thumb, for all but the most trivial jobs,
                    314: you should type a document in terms of a set of requests
                    315: like
                    316: .UL .PP ,
                    317: and then define them appropriately,
                    318: either by using one of the canned packages
                    319: (the better way)
                    320: or by defining your own
                    321: .UL nroff
                    322: and
                    323: .UL troff
                    324: commands.
                    325: As long as you have entered the text in some systematic way,
                    326: it can always be cleaned up and re-formatted
                    327: by a judicious combination of
                    328: editing commands and request definitions.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.