File: groff.info, Node: troff and nroff Modes, Next: Line Layout, Prev: Character Translations, Up: GNU troff Reference 5.14 'troff' and 'nroff' Modes ============================== Historically, 'nroff' and 'troff' were two separate programs; the former for terminal output, the latter for typesetters. GNU 'troff' merges both functions into one executable(1) (*note troff and nroff Modes-Footnote-1::) that sends its output to a device driver ('grotty' for terminal devices, 'grops' for PostScript, and so on) which interprets this intermediate output format. When discussing AT&T 'troff', it makes sense to talk about "'nroff' mode" and "'troff' mode" since the differences are hard-coded. GNU 'troff' takes information from device and font description files without handling requests specially if a terminal output device is used, so such a strong distinction is unnecessary. Usually, a macro package can be used with all output devices. Nevertheless, it is sometimes necessary to make a distinction between terminal and non-terminal devices: GNU 'troff' provides two built-in conditions 'n' and 't' for the 'if', 'ie', and 'while' requests to decide whether GNU 'troff' shall behave like 'nroff' or like 'troff'. -- Request: .troff Make the 't' built-in condition true (and the 'n' built-in condition false) for 'if', 'ie', and 'while' conditional requests. This is the default if GNU 'troff' (_not_ 'groff') is started with the '-R' switch to avoid loading of the startup files 'troffrc' and 'troffrc-end'. Without '-R', GNU 'troff' stays in 'troff' mode if the output device is not a terminal (e.g., 'ps'). -- Request: .nroff Make the 'n' built-in condition true (and the 't' built-in condition false) for 'if', 'ie', and 'while' conditional requests. This is the default if GNU 'troff' uses a terminal output device; the code for switching to 'nroff' mode is in the file 'tty.tmac', which is loaded by the startup file 'troffrc'. *Note Conditionals and Loops::, for more details on built-in conditions.