|
||||||||||||
| Development | Documentation | Download | ||||||||||
|
|
State of ImplementationThe state of development is associated to the following component diagram of ExTeX. You can click on the diagram to navigate to the corresponding information.
Main ControlThe components of ExTeX are tied together by a main program. Currently a TeX-compatible command line main program is provided with ExTeX. This main program is pretty complete. Other main programs can be envisaged in the future. ExTeX InstanceThe ExTeX instance ties together the core funtionality. It abstracts from any user interaction. This central component is fully functional. Input SubsystemThe input subsystem is responsible for reading from an input stream and tokenizes it. Input FilterInput filters can be used to preprocess the input stream before it is seen by the scanner. Currently no input filters are provided. ScannerTwo implementations for the scanner are fully functional. They provide a TeX-compatible and an extended functionality. Interpreter SubsystemThe interpreter subsystem provides a TeX-compatible macro processor. This is based on a context which contains the state of the whole engine – like the eqtable of TeX. InterpreterThe interpreter is nearly complete. Registers, conditionals, macros, file IO – including a configurable \write18 – are in place. Some functionality is not complete – like the outer flag for macros. Interpreter ContextThere are two implementation of the context. One with the TeX-compatible set of registers and one with additional registers – like real numbers. Those contexts are pretty stable. Only the observability for tracing and debugging needs to be completed. All primitives of TeX are present but not fully functional. Especially the primitives related to math typesetting and table typesetting need further attention. Some extensions from ε-TeX, pdfTeX, and Ω have already been implemented. BackendThe backend contains all components which process the page after the typesetting is complete. Usually this processing involves the translation of the nodes into some external format. Optionally some processing can be performed on the nodes before they are translated and on the byte stream after the translation. Document WriterThe document writer defines the translation of nodes into a native output format. Several implementations are provided. DVI WriterThe DVI format is the original output format of TeX. ExTeX comes with two implementations to produce DVI. One is just for plain DVI and one includes support for dvips specials. Both are pretty complete. PDF WriterThe first draft of a translation into PDF is present. PS WriterA translation into PostScript format is present. The embedding of fonts is missing. EPS WriterA translation into encapsulated PostScript format is present. The embedding of fonts is missing. SVG WriterThe SVG writer produces SVG files. Node PipeThe node pipe processes the nodes before they are translated to a native format. Output FilterThe concept of an ouput filter completes the chain of processing by manipulation on the level of the output format. This component is not implemented at all. Typesetting SubsystemThe typesetting subsystem is responsible of taking a stream of nodes and producing pages. In the course of this action several tasks have to be performed: hyphenation, ligature insertion, paragraph breaking, and page breaking. The interfaces for the componets are defined. The implementation of several components has to be completed. TypesetterThe typesetter ties togeter the sub-components. It is fully functional. Page BuilderThe page builder splits material off the main vertical list and ships it out as pages. A basic implementation id present. Further implementations have to be provided. Paragraph BuilderThe paragraph builder splits paragraphs into lines and aligns them properly. Several implementations are provided. One of them is a TeX-compatible reimplementation. Ligature BuilderThe ligature builder inserts ligatures into the paragraph at hand. HypenationThe hyphenation component encapsulates language specific processing of the paragraph at hand. The insertion of soft hyphenations and splitting off words are the major tasks. One TeX-compatible implementation is present; Other implementations with enhanced functionality can be envisioned.
Font SubsystemThe task of the font subsystem is to provide the information about the glyphs in a font. Various types of fonts should be supported. Type-1 fonts and tfm fonts can already be processed. Other types like vf fonts have to be completed or completely implemented. FontFont is the generic interface to handle different kinds of fonts in ExTeX. A first implementation is present. A massive refactoring towards full support of Unicode fonts is under way. ExTeX Font MetricsEFM provides a means to store the internal representation of a font for fast loading. This feaure is functional for the first generation of fonts. TeX Font MetricsTFM files as defined by TeX can be read and used. Adobe Font MetricsAFM files can be read. A massive refactoring towards full support of Unicode fonts is under way. TrueType FontsTruetype fonts can be read. A massive refactoring towards full support of Unicode fonts is under way. Virtual FontsVirtal fonts can be read and used. PFBPFB files can be read. A massive refactoring towards full support of Unicode fonts is under way. OpenType FontsWork on OpenType fonts has been started. Font FamilyThe concept of font families is known from macro packages like LaTeX on the other side target output formats like RTF use font families as well. Thus ExTeX will be extended to support font families in addition to solitary fonts. FrameworkThe implementation of ExTeX is based on a component framework. This component framework provides means for managing the lifecycle of a component – especially the creation in factories. This includes services like configuration and logging. The framework is inspired by the Apache Avalon framework. The framework is pretty stable. The functionality needed is provided. This part can be considered complete. LocalizerThe localizer can be used to access resource bundles. It provides some convenience functionality for localizing, i.e. the translation of messages into other languages. The default language is English. This is fully functional. Some experiments with German have shown that the concept is vlaid and complete. Generic FactoryThe generic facory provides support for all kinds of factories. It automaticaly takes care of several cross cutting concerns like logging and configuration. The generic factory is completed. Configuration SupportThe configuration support can be used to configure an application. Currently an implementation based on an XML configuration is provided. This is fully functional. Resource FinderThe start of processing consists of the finding of an input file. This applies to TeX documents, formats, fonts, etc. The task of finding files of different kinds is accomplished by file finders. The interface and infrastructure is in place. Several implementations of file finders are present. They can be selected and combined in the configuration. |
Team Members
Gerd Neugebauer
Michael Niedermair Sebastian Waschik Rolf Niepraschk Torsten Krüger Andre Wobst Torsten Bronger Markus Kohm Bernd Raichle David Kastrup
Contact Address
|