Unified Typesetting API M1-20040817

Package de.inghuimische.uta.linebreaking

Contains the linebreaking API, classes and methods for splitting one paragraph into several lines.


Interface Summary
Breakpoint A breakpoint determines a line in a paragraph.
LinebreakAlgorithm A linebreak algorithm breaks one line of text into several ones with each of them having a given length.
LineWidthModel An interface to allow variable line width while linebreaking a paragraph.
Width A width consists of three values, a minimal, preferred and a maximal width.

Class Summary
AbstractBreakpoint Abstract breakpoint which implements AbstractBreakpoint.getDemerits(Breakpoint).
AbstractLinebreakAlgorithm An abstract linebreaker providing some utiltiy methods and a empty feature list.
AbstractWidth An abstract implementation of the Width interface where all three widths are equal to the preferred width.
BreakpointFactory Implementing a singleton pattern this factory associates an item to exactly one breakpoint.
DefaultBreakpoint Default implementation of a breakpoint.
DefaultWidth Default implementation of the width interface.
FirstFitAlgorithm A simple implementation of a line based break algorithm.
LineBasedBreakAlgorithm Base class for local optimizing line break algorithms.
ParagraphBasedBreakAlgorithm Base class for global optimizing line break algorithms.

Package de.inghuimische.uta.linebreaking Description

Contains the linebreaking API, classes and methods for splitting one paragraph into several lines. The API is design to work on item basis. This means a linebreak algorithm receives a sequence of socalled items, where each item can contain anything (the linebreak algorithm is not interested in the content) and a linebreak is allowed behind every such item. Therefore an item will most commonly represent a word or a syllable.

The model used by UTA is a generalization/simplification of TeX's box/glue/penalty model. In Digital Typography Knuth also mentions the kerfs model which is most probably very similar to UTA's model. Therefore it should be possible to do everything in linebreaking TeX does. Although this is not a goal of UTA.

Unified Typesetting API M1-20040817

An inghuimische.de project.
Copyright (C) 2004 Christian Ziesemer; See the Mozilla Public License for more details.