|
Line breaking primitives |
|
Operator |
Arity |
Accessible |
|
Process |
Usage |
|
|
border |
children |
|
|
new-line |
0 |
Yes |
- |
Typesetting |
Physical |
next-line |
0 |
Yes |
- |
Typesetting |
Physical |
line-break |
0 |
Yes |
- |
Typesetting |
Physical |
no-break |
0 |
Yes |
- |
Typesetting |
Physical |
|
|
Table 1. Line breaking primitives
|
A simple document is a sequence of logical paragraphs,
one for each subtree of a document
node. Paragraphs whose width exceed the available horizontal space are
broken in soft lines by the hyphenation algorithm.
Hyphenated lines are filled, horizontal spaces can be shrunk or
extended in order to produce a good-looking layout.
(start a new paragraph)
Split a logical paragraph in physical paragraphs.
Physical paragraphs are typeset in the same way as logical
paragraphs, but are not distinct subtrees of a document node.
Paragraphs are important structures for the typesetting
process. Many primitives and environment variables (vertical
spacing, paragraph style, indentation, page breaking, etc.) operate
on whole paragraphs or at the boundaries of the enclosing
paragraph.
(start a new line)
Split a paragraph in
hard lines.
Hard lines are typeset in a way similar to hyphenated lines, but
their boundaries are specified by
next-line
tags. The last soft line in a hard line is never filled.
(line breaking hint, with
filling)
Print an invisible space with zero hyphenation penalty. The line
breaking algorithm searches for the set of hyphenation points
minimizing the total penalty, so line breaking is much more likely
to occur at a line-break
than anywhere else in its vicinity.
Unlike next-line,
this is a hint which may or may not be obeyed by the typesetter, and
it does not prevent the previous line from being filled.
(forbid line breaking at this
point)
Set an hyphenation point with an infinite penalty. That
is useful when the hyphenation patterns for a language fall short of
preventing some forbidden patterns like “arse-nal” or
“con-genital”.
© 2004 David Allouche
Permission is
granted to copy, distribute and/or modify this document under the terms of
the GNU Free Documentation License, Version 1.1 or any later version
published by the Free Software Foundation; with no Invariant Sections,
with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the
license is included in the section entitled "GNU Free Documentation
License".