@Section
   @Title { "@Break" }
   @Tag { break }
@Begin
@PP
The @@Break symbol influences the appearance of paragraphs (Section
{@NumberOf concatenation}), offering a fixed set of eight styles:
@IL

@LI {
2i @Wide { |1rt @Code adjust @@Break @I object }
adjust.break @Index { @Code adjust @@Break }
|2m Break the paragraphs of {@I object} into lines, and apply @@PAdjust
(Section {@NumberOf hadjust}) to every line except the last in
each paragraph;
}

@LI {
2i @Wide { |1rt @Code outdent @@Break @I object }
outdent.break @Index { @Code outdent @@Break }
|2m Like {@Code adjust}, except that @Code "2.0f @Wide {} &0i" is
inserted at the beginning of every line except the first, creating
an outdented paragraph;
}

@LI {
2i @Wide { |1rt @Code ragged @@Break @I object }
ragged.break @Index { @Code ragged @@Break }
|2m Break the paragraphs of {@I object} into lines, but do not adjust
the lines (`ragged right');
}

@LI {
2i @Wide { |1rt @Code cragged @@Break @I object }
cragged.break @Index { @Code cragged @@Break }
|2m Like {@Code ragged}, except that each line will be centred with
respect to the others;
}

@LI {
2i @Wide { |1rt @Code rragged @@Break @I object }
rragged.break @Index { @Code rragged @@Break }
|2m Like {@Code ragged}, except that each line will be right-justified with
respect to the others (`ragged left');
}

@LI {
2i @Wide { |1rt @Code lines @@Break @I object }
lines.break @Index { @Code lines @@Break }
|2m Break the paragraphs of {@I object} into lines at the same points
that they are broken into lines in the input; do not adjust the lines.  Any
spaces at the start of a line other than the first will appear in the output;
}

@LI {
2i @Wide { |1rt @Code clines @@Break @I object }
clines.break @Index { @Code clines @@Break }
|2m Break the paragraphs of {@I object} into lines at the same points
that they are broken into lines in the input file, then centre each line with
respect to the others;
}

@LI {
2i @Wide { |1rt @Code rlines @@Break @I object }
rlines.break @Index { @Code rlines @@Break }
|2m Break the paragraphs of {@I object} into lines at the same points
that they are broken into lines in the input file, then right-justify
each line with respect to the others.
}

@EL
If the paragraph was an entire component of a galley, so will each of
its lines be; otherwise the lines are enclosed in a {@Code "@OneRow"}
symbol after breaking.
@PP
The length of the gap used to separate the lines produced by paragraph
breaking is always {@Code 1v}.  However, the @Code v unit itself and the
v.unit.effect @SubIndex { effect on paragraph breaking }
gap mode may be changed:
@IL

@LI {
2i @Wide { |1rt @I gap @Code "@Break" @I object }
|2m Within {@I object}, take the value of the @Code "v" unit to be the
length of {@I gap};
}

@LI {
2i @Wide { |1rt + & @I gap @Code "@Break" @I object }
|2m Within {@I object}, take the value of the @Code "v" unit to be
larger by the length of @I gap than it would otherwise have been;
}

@LI {
2i @Wide { |1rt -- & @I gap @Code "@Break" @I object }
|2m Within {@I object}, take the value of the @Code "v" unit to be
smaller by the length of @I gap than it would otherwise have been.
}

@EL
In each case, the mode of @I gap is adopted within {@I object}.
@PP
Finally, the @@Break symbol influences hyphenation:
@IL

@LI {
2i @Wide { |1rt @Code "hyphen @Break" @I object }
hyphen.break @Index { @Code hyphen @@Break }
|2m Permit hyphenation within the paragraphs of {@I object};
}

@LI {
2i @Wide { |1rt @Code "nohyphen @Break" @I object }
nohyphen.break @Index { @Code nohyphen @@Break }
|2m Prohibit hyphenation within the paragraphs of {@I object}; all
hyphenation gaps without exception revert to edge-to-edge mode.
}

@EL
Several options may be given to the @@Break symbol simultaneously, in
any order.  For example,
@ID @Code "{ adjust 1.2fx hyphen }  @Break  ..."
is a typical initial value.  There may be empty objects and @@Null objects
in the left parameter of @@Break; these are ignored.
@End @Section
