@Section
   @Title { Paragraph breaking }
   @Tag { paras }
@Begin
@PP
@I { Paragraph breaking } is the process of
paragraph.breaking @Index { paragraph breaking }
inserting line breaks into paragraphs at places appropriate to the column
width.  Lout works out suitable column widths and performs paragraph
breaking automatically, finding an `optimal' break with the method
used by the @TeX
tex.paragraph @SubIndex { paragraph breaking }
system.  It offers nine styles of paragraph breaking,
which we will explore with the aid of this example:
@ID @OneRow @Code {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}
Changing the paragraph breaking style is similar to changing the font,
colour, or language, and is done using the @Code "@Break" symbol:
breakzzz.sym @Index { @Code "@Break" symbol }
@ID @Code "ragged @Break ..."
This example causes every paragraph in the following object to be
broken using the @Code ragged style, of which more below.
@PP
The first two of the nine styles perform @I { line adjustment }, which
line.adjustment @Index { line adjustment }
means that they enlarge the spaces between the objects making up each
line so as to fill the lines completely:
@IndentedList
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "adjust @Break ..." }
    B { adjust @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "outdent @Break ..." }
    B { outdent @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@EndList
The @Code adjust style is frequently used, so it has been chosen as the
default style.  Outdenting adds a small space at the start of each line
outdent. @Index { outdented paragraphs }
except the first, and is much less common.
@PP
The next four styles do not adjust lines, leaving the paragraph
ragged. @Index { @Code ragged paragraph breaking style }
cragged. @Index { @Code cragged paragraph breaking style }
rragged. @Index { @Code rragged paragraph breaking style }
oragged. @Index { @Code oragged paragraph breaking style }
{@I ragged}:
@IndentedList
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "ragged @Break ..." }
    B { ragged @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "cragged @Break ..." }
    B { cragged @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "rragged @Break ..." }
    B { rragged @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "oragged @Break ..." }
    B { oragged @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@EndList
The paragraph is broken in the same places as @Code adjust breaks it,
but the resulting lines are left-justified, centred, or right-justified
with respect to each other, rather than adjusted; @Code "oragged"
is like @Code "outdent" except the resulting lines are not adjusted.
@PP
If you have a few words that must be kept together on one line, the
preventing. @Index { preventing line breaks }
keeping. @Index { keeping things on one line }
recommended way is to separate them by an @Code "~" symbol:
@ID @Code "According to Prof.~Jones, the effect of ..."
It's best not to bother about this until you actually get a bad line
break, since chances are good that the words will fall on one line anyway.
@PP
The last three styles differ from the first five in breaking the
paragraph at the points where it is broken in the original input:
lines. @Index { @Code lines paragraph breaking style }
clines. @Index { @Code clines paragraph breaking style }
rlines. @Index { @Code rlines paragraph breaking style }
@IndentedList
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "lines @Break ..." }
    B { lines @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "clines @Break ..." }
    B { clines @Break {
It @PageMark clines is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@LI @Tab
    @Fmta { @Col 6c @Wide @Code A ! @Col 7c @Wide B }
{
@Rowa
    A { "rlines @Break ..." }
    B { rlines @Break {
It is a truth universally
acknowledged, that a single man
in possession of a good fortune,
must be in want of a wife.
}}
}
@EndList
The lines are left-justified, centred, or right-justified with respect
to each other in the same way as for the ragged styles.
@PP
When using the @Code lines style, there are some fine points concerning
the proper use of white space.  Consider this example:
@ID @OneRow @Code {
"@IndentedDisplay lines @Break @I {"
"Teach me to hear Mermaides singing,"
"Or to keep off envies stinging,"
"     And finde"
"     What winde"
"Serves to'advance an honest minde."
"}"
}
The result is the indented display
@IndentedDisplay lines @Break @I {
Teach me to hear Mermaides singing,
Or to keep off envies stinging,
     And finde
     What winde
Serves to'advance an honest minde.
}
This style is the only one for which it is useful to indent individual
lines in the input; as the result shows, such indents will be
respected, as will blank lines.  However, Lout's rule that only white
space separating objects affects the result (Section {@NumberOf spaces})
still holds, which means that indenting the first line is not
effective:
@ID @OneRow @Code {
"@IndentedDisplay lines @Break @I {"
"     And finde"
"     What winde"
"Serves to'advance an honest minde."
"}"
}
produces
@IndentedDisplay lines @Break @I {
     And finde
     What winde
Serves to'advance an honest minde.
}
This may seem awkward at first, but actually it is extremely convenient
because you don't have to worry about whether the first line of the
paragraph should appear on a new line as above, or immediately after
the opening brace:  space at that point does not separate two objects,
so it has no effect.  The indent can be obtained by
starting the first line with an empty object (Section {@NumberOf empty}):
@ID @OneRow @Code {
"@IndentedDisplay lines @Break @I {"
"{}     And finde"
"     What winde"
"Serves to'advance an honest minde."
"}"
}
The result is
@IndentedDisplay lines @Break @I {
{}     And finde
     What winde
Serves to'advance an honest minde.
}
as desired.  To set the entire document in a paragraph breaking style other
than {@Code "adjust"}, you need to change the @Code "@InitialBreak" option,
as explained at the end of Section {@NumberOf linespace}.
@PP
Some people don't like to see the first line of a paragraph alone at the
widows @Index { widow lines }
orphans @Index { orphan lines }
unbreakablefirst. @Index { @Code unbreakablefirst }
unbreakablelast. @Index { @Code unbreakablelast }
foot of a page or column (the rest appearing on the next page).  You can
instruct Lout not to allow this with
@ID @Code "unbreakablefirst @Break ..."
meaning that the first line cannot be broken off from the rest of the
paragraph.  Similarly,
@ID @Code "unbreakablelast @Break ..."
instructs Lout to prevent the last line of a paragraph from appearing
alone at the top of a page or column.  These features would probably be
invoked in the @Code "@InitialBreak" option, like this:
@ID
@Code "@InitialBreak { unbreakablefirst unbreakablelast hyphen adjust 1.2fx }"
You can turn them off with @Code "breakablefirst @Break"
and @Code "breakablelast @Break".  In both cases Lout makes it happen by
breaking at the previous place, either between paragraphs or two lines from
the end of a paragraph.  Both features are compatible with Lout's
@Code "@OptimizePages" option, which optimizes the overall page
layout subject to these requirements.
@End @Section
