Line-breaking formats divide the display into nested break
zones. There are 3 kinds of break zone
: hard , linear , and
soft . The effect of {
a}
( break) formats
depends on the break zone kind:
The zones are started and ended by zone delimiters. There is one end delimiter { ]} ( ezone) for all kinds of zones. Each kind of zone has its own start delimiter:
A linear zone is special in that all zones nested inside are also forced to be linear. Therefore a linear zone contains no line-breaks and always is laid out on one line. If a linear zone doesn't fit on a single line, the layout algorithm chooses subterms to elide to try and make it fit.
When laying out a soft zone, the layout algorithm first tries treating it as a linear zone. If that results in any elision, then it treats the zone as a hard zone.
The soft break format {
a}
sbreak is similar to the
break format but is not as sensitive to the zone kind. Soft breaks in
linear zones are never taken, but otherwise, the layout algorithm uses
a separate procedure to choose which soft breaks to take and which not.
This procedure uses various heuristics to try and layout a term sensibly
in a given size window with at little elision of subterms as possible.
Display form format sequences should usually include matching start
and end zone formats.