.MH "Filling and Margin Adjustment" .# .SH "Filled Text" 'Fmt' collects as many words as will fit on a single output line before actually writing it out, regardless of line boundaries in its input stream. This is called 'filling' and is standard practice for 'fmt'. It can, however, be turned off with the 'no-fill' command .be [bf .nf] .ee and lines thenceforth will be copied from input to output unaltered. When you want to turn filling back on again, you may do so with the 'fill' command .be [bf .fi] .ee and 'fmt' will resume its normal behavior. .pp If there is a partially filled line that has not yet been written out when an [bf nf] command is encountered, the line is forced out before any other action is taken. This phenomenon of forcing out a partially filled line is known as a 'break' and occurs implicitly with many formatting commands. To cause one explicitly, the 'break' command .be [bf .br] .ee is available. .# .SH "Hyphenation" If, while filling an output line, it is discovered that the next word will not fit, an attempt is made to hyphenate it. Although 'fmt' is usually quite good in its choice of where to split a word, it occasionally makes a gaffe or two, giving reason to want to turn the feature off. Automatic hyphenation can be disabled with the 'no-hyphenation' command .be [bf .nh] .ee long enough for a troublesome word to be processed, and then reenabled with the 'hyphenate' command .be [bf .hy] .ee Neither command causes a break. .# .SH "Margin Adjustment" After filling an output line, 'fmt' inserts extra blanks between words so that the last word on the line is flush with the right margin, giving the text a "professional" appearance. This is one of several margin adjustment modes that can be selected with the 'adjust' command .be [bf .ad] .ee The optional parameter may be any one of four single characters: "b", "c", "l" or "r". If the parameter is "b" or missing, normal behavior will prevail -- both margins will be made even by inserting extra blanks between words. This is the default margin adjustment mode. If "c" is specified, lines will be shifted to the right so that they are centered between the left and right margins. If the parameter is "l", no adjustment will be performed; the line will start at the left margin and the right margin will be ragged. If "r" is specified, lines will be moved to the right so that the right margin is even, leaving the left margin ragged. .pp The 'no-adjustment' command .be [bf .na] .ee has exactly the same effect as the following 'adjust' command: .be [bf .ad] l .ee No adjustment will be performed, leaving the left margin even and the right margin ragged. In no case does a change in the adjustment mode cause a break. .# .SH "Centering" Input lines may be centered, without filling, with the help of the 'center' command .be [bf .ce] N .ee The optional parameter N is the number of subsequent input lines to be centered between the left and right margins. If the parameter is omitted, only the next line of input text is centered. Typically, one would specify a large number, say 1000, to avoid having to count lines; then, immediately following the lines to be centered, give a 'center' command with an parameter of zero. For example: .be 5 [bf .ce] 1000 more lines than I care to count [bf .ce] 0 .ee It is worth noting the difference between .be [bf .ce] .ee and .be [bf .ad] c .ee When the former is used, an implicit break occurs before each line is printed, preventing filling of the centered lines; when the latter is used, each line is filled with as many words as possible before centering takes place. .# .SH "Sentence Punctuation" By default, 'fmt' adds an extra blank after punctuation at the end of a sentence; specifically, after periods, colons, exclamation points and question marks. This may not be desirable, particularly when abbreviations or a person's initials are involved. Thus, it can be turned on and off at will. The 'single-blank' command .be [bf .sb] .ee turns the mode off, while the 'extra-blank' command .be [bf .xb] .ee turns it back on again. As with hyphenation, neither command causes a break. .# .BT 35 "Summary - Filling and Margin Adjustment" ?RQ ".ad " """b""" """b""" no Set margin adjustment mode. ?RQ .br - - yes Force a break. ?RQ ".ce N" N=0 N=1 yes Center N input text lines. ?RQ .fi on - no Turn on fill mode. ?RQ .hy on - no Turn on automatic hyphenation. ?RQ .na - - no Turn off margin adjustment. ?RQ .nf - - yes Turn off fill mode. (Also inhibits adjustment.) ?RQ .nh - - no Turn off automatic hyphenation. ?RQ .sb "off" - no Single blank after end of sentence. ?RQ .xb on - no Extra blank after end of sentence. ?ET .########################################################################