.fill.lm
.ifnot hlp
.AX FILL/JUSTIFY
.x Fill
.x Justify
The commands .FILL and .JUSTIFY allow the user a large number of options
for the final text format.  To understand how these work the following
rules may clarify their operation.
.endif hlp
.if hlp.i-1;2 FILL
.endif hlp
.s.c;FILL
.s
.list 0
.le When .FILL is enabled, multiple or reduncant spaces are removed.  This
includes the following:
.list 0
.le Spaces following spaces.
.le Spaces following non expandable spaces "#"
.le Spaces following "tabs"
.le Spaces at the beginning of a line.
.end list 0
.le When .FILL is enabled the end of a line is treated exactly like a space.
.le If both .FILL and .PERIOD are enabled a punctuation followed by a
space is converted to "punctuation", "space", "non expandable space".
.le If .NO FILL is used, the end of a line is treated as a break ("_|").
.le Regardless of whether .FILL or .NO FILL is used, if the input line
is longer than the available page size, and it contains no "normal" spaces,
it will be truncated to fit the available space.  The only exception to this
is when the line contains a "break" character ("_|").  Then the line
is divided at the break character to make it fit.
.end list 1
.if hlp.i-1;2 JUSTIFY
.endif hlp
.s.c;JUSTIFY
.s.list 0
.le If .JUSTIFY is enabled then all "normal" spaces are expanded or padded
to right justify the final output.
.le If a break occurrs between lines, then the previous line is ^&NOT\&
justified.
.le If an input line is shorter than the output line size and it
contains no "normal" spaces, the line can not be justified.  This is
indicated by an error message:
.c;"Can't justify  line"
.le If .NO JUSTIFY is used then the output will not be padded with extra spaces
, but if .FILL is enabled it will be missing redundant spaces.
.end list
