File: groff.info, Node: Preprocessor Intro, Next: Output Device Intro, Prev: Macro Package Intro, Up: Introduction 1.5 Preprocessors ================= An alternative approach to complexity management, particularly when constructing tables, setting mathematics, or drawing diagrams, lies in preprocessing. A "preprocessor" employs a domian-specific language to ease the generation of tables, equations, and so forth in terms that are convenient for human entry. Each preprocessor reads a document and translates the parts of it that apply to it into GNU 'troff' input. Command-line options to 'groff' tell it which preprocessors to use. 'groff' provides preprocessors for laying out tables ('gtbl'), typesetting equations ('geqn'), drawing diagrams ('gpic' and 'ggrn'), inserting bibliographic references ('grefer'), and drawing chemical structures ('gchem'). An associated program that is useful when dealing with preprocessors is 'gsoelim'.(1) (*note Preprocessor Intro-Footnote-1::) 'groff' also supports 'grap', a preprocessor for drawing graphs. A free implementation of it can be obtained separately. Unique to 'groff' is the 'preconv' preprocessor that enables 'groff' to handle documents in a variety of input encodings. Other preprocessors exist, but no free implementations are known. An example is 'ideal', which draws diagrams using a mathematical constraint language.