Package de.dante.extex.typesetter

This package contains the typesetter definitions for ExTeX.


Interface Summary
Discardable This is a marker interface for discardable nodes.
ListMaker This interface describes the capabilities of a list maker.
ParagraphObserver This interface describes the capability of a class to act as callback handler to be invoked when a paragraph is complete.
Typesetter This interface describes the capabilities of a typesetter.
TypesetterOptions This interface describes the possibilities of the typesetter to access its options.

Class Summary
Badness This class provides some static methods to deal with badness values.
Mode This class provides type-safe constants for the modes of a typesetter.
TypesetterFactory This is the factory for instances of Typesetter.

Package de.dante.extex.typesetter Description

This package contains the typesetter definitions for ExTeX. The typesetter has the aim of building lists of nodes and compute their optimal distribution.

The Way to the Document Writer

In this section we want to see which instances are involved to come to a page being sent to the DocumentWriter. For this purpose we consider the sequence diagram in the figure below.

Sequence Diagram: A Page Break

The start of out consideration is at the par primitive wich is triggered in TeX explicitely or implicitely when two empty lines are encountered. The primitive has a Typesetter at hand and forwards the message to this typesetter.

The typesetter maintains a stack of ListMakers. If the top of this stack is a horizontal list then it is closed first. this leaves a vertical list (HorizontalListMaker). The par message is propagated to the list maker at the top of the stack.

The horizontal list maker instructs his manager – which is also the typesetter – to build the paragraph. The typesetter propagates this message to the ParagraphBuilder.

When the contents is added to the topmost list maker – which is the global vertical list – the page builder is triggered. It tries to determine whether the page is full enough and invokes the output routine

The output routine is an implementation of the interface OutputRoutine. The TeX implementation for the output routine executes some tokens with the help of an interpreter. In the course of this execution the primitive \shipout can be used to send some material to the document writer.

The primitive asks the typesetter to perform the shipout. Thus the material is finaly forwarded to the document writer.