Output Language Compatibility (The GNU Troff Manual)

#### 6.1.4 Output Language Compatibility

The intermediate output language of AT&T `troff` was first documented in A Typesetter-independent TROFF, by Brian Kernighan, and by 1992 the AT&T `troff` manual was updated to incorprate a description of it.

The GNU `troff` intermediate output format is compatible with this specification except for the following features.

- The classical quasi-device independence is not yet implemented.
- The old hardware was very different from what we use today. So the `groff` devices are also fundamentally different from the ones in AT&T `troff`. For example, the AT&T PostScript device is called `post` and has a resolution of only 720 units per inch, suitable for printers 20 years ago, while `groff`’s `ps` device has a resolution of 72000 units per inch. Maybe, by implementing some rescaling mechanism similar to the classical quasi-device independence, `groff` could emulate AT&T’s `post` device.
- The B-spline command ‘`D~`’ is correctly handled by the intermediate output parser, but the drawing routines aren’t implemented in some of the postprocessor programs.
- The argument of the commands ‘`s`’ and ‘`x H`’ has the implicit unit scaled point ‘`z`’ in `gtroff`, while AT&T `troff` has point (‘`p`’). This isn’t an incompatibility but a compatible extension, for both units coincide for all devices without a `sizescale` parameter in the `DESC` file, including all postprocessors from AT&T and `groff`’s text devices. The few `groff` devices with a `sizescale` parameter either do not exist for AT&T `troff`, have a different name, or seem to have a different resolution. So conflicts are very unlikely.
- The position changing after the commands ‘`Dp`’, ‘`DP`’, and ‘`Dt`’ is illogical, but as old versions of `gtroff` used this feature it is kept for compatibility reasons.