1.5 Typesetter Independence
One of the design goals of FunnelWeb was to provide a target-language independent literate programming system. This goal has been achieved simply by treating the text written to the product file as homogeneous and typesetting it in tt font. A secondary goal was to provide a typesetter independent literate programming system. By this is meant that it be possible to create FunnelWeb input files that do not contain typesetter-specific commands. To a lesser extent this goal has also been achieved.
The difficulty with providing typesetter-independent typesetting is that each desired typesetting feature must be recreated in a typesetter-independent FunnelWeb typesetting construct that FunnelWeb can translate into whatever typesetting language is being targeted by Weave. Taken to the extreme, this would result in FunnelWeb providing the full syntactic and semantic power of TeX, but with a more generic, FunnelWeb-specific syntax. This was unfeasible in the time available, and undesirable as well.
The compromise struck in the FunnelWeb design is to provide a set of primitive typesetter-independent typesetting features that are implemented by FunnelWeb. These are the typesetter directives. If the user is prepared to restrict to these directives, then the user's FunnelWeb document will be both target-language and typesetter independent. However, if the user wishes to use the more sophisticated features of the target typesetting system, the user can specify the typesetter in a "typesetter" pragma and then place typesetter commands in the free text of the FunnelWeb document where they will be passed verbatim to the documentation file. The choice of the trade-off between typesetter independence and typesetting power is left to the user.
This said, experience with FunnelWeb, over more than a decade, indicates that the typesetting facilities provided by FunnelWeb are sufficient for most documentation.
Webmaster Copyright © Ross N. Williams 1992,1999. All rights reserved.