Unroff is free software and is distributed both as source and as precompiled binaries. Instead, the translation process is controlled by a set of user-supplied procedures written in the Scheme programming language.
Additional requests facilitate use of arbitrary hypertext links in troff documents.
It includes a full Scheme language implementation with the usual amenities such as garbage collection, interactive programming and testing, and dynamic loading. To help writing new unroff back-ends, unroff has augmented standard Scheme by a set of new Scheme data types and primitives. Approximately half of its source consists of portable ANSI C code, and the other half is written in Scheme and can be configured and tailored easily without the need to recompile unroff. Authors of Elk-based applications are encouraged to look into the source code or reuse parts of it for their own projects. Managing Hypertext Documents with Troff Authors can benefit from unroff not only as a converter for existing documents, but also when writing new documents that must exist both in high-quality paper form and in the World Wide Web as hypertext.