Activating rendering rules provides a convenient mechanism for obtaining different views of a single object type. However, this is cumbersome when changing how several object types are rendered -we will have to explicitly activate a different rule for each object type. This is obviated by the introduction of rendering styles.
A rendering style style-1 is the collection of rendering rules named style-1, each of which renders a different object type. AsTeR maintains a list of active styles in the order in which they were activated. Initially, this list contains only style default, which specifies a default rendering for all objects.
The user can execute
[displaymath5620]
to add style-1 to the front of the list of active styles. This effectively activates all rules that appear in style-1 -when rendering an object, AsTeR uses the most recently activated style that defines a rule for that object.
Style style-1 can be deactivated by executing
[displaymath5621]
A listener can create a new rendering style simply by defining rendering rules for one or more object types. The style need not provide rules for all the known object types -rules for the remaining objects are taken from previously active styles. Thus, we might define rules in style descriptive for summations, integrals and coproducts. If descriptive is now activated, and style simple is the next most-recently activated style, AsTeR uses rendering rules from simple for all other objects. Typically, the list of active styles is:
[LVerbatim1291]
If no rule has been explicitly activated for an object type [tex2html_wrap5626], then the active rule for [tex2html_wrap5628] is provided by the most recently activated style that defines a rendering rule for [tex2html_wrap5630] or one of its superclasses. Thus, in the above example, if the list of active styles is descriptive, simple, default, the active rule for an integral is descriptive. If we now want to have all objects rendered using this list of active styles but would like integrals rendered using rule simple, then we would execute
[displaymath5622]
The ability to obtain different views of an object is a very useful learning aid. It gives the listener a chance to obtain different perspectives of complex expressions. Further, this system of rendering rules and styles has proven very useful in experimenting with different ways of rendering mathematics.
Rendering rules can be used in many interesting ways. For instance, defining and activating the following rule for paragraphs provides a thumb-nail view of a document.
[LVerbatim1297]
The body of this rule is empty, so the contents of paragraphs are not rendered. When this rule is activated, only the titles of the sectional units will be spoken.
: Rendering only displayed math.
The rendering rule in fig:read-only-display-math renders only the displayed math from a document. Activating this rule allows the listener to locate an equation of interest quickly. The user can now reactivate the normal rendering rule for paragraphs and listen to the entire paragraph that contains the math expression. This is like flicking through the pages of a book until something of interest is located and then reading the relevant content.