Annotation of 43BSDReno/share/doc/usd/01.begin/u3, revision 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.