thwack, the typesetting engine

Table of Contents


thwack (formerly trhack) is a typesetting engine. It will accept troff input and produce either ditroff output or XSL-FO output. It is in early stages of development and is missing a significant number of features; however, development is progressing rapidly.

thwack has interesting internals that make programming easy. It internally uses a SAX2-like interface, including namespace support, for parsing and converting data. Because of this interface, thwack can emit valid XML, even in troff mode, which may be useful for creating macro packages that emit DocBook, for example. It can also emit limited XSL-FO.

Some fairly sensible but ugly output is available using the -me and -ms macros. thwack does not include its own versions of macro packages; instead, it uses the groff versions.

Planned features include XSL-FO input, full troff typesetting, and a shared library. Features being considered are PostScript and PDF output. Basic troff to XSL-FO output is considered the first milestone. Releases are made fairly frequently; we follow the motto Release early, release often.

Tarballs may be found in the thwack download directory. Source code may also be found in the git repository. Patches and other contributions are gratefully accepted and encouraged.

thwack is licensed under the MIT License.