A [[pretty printer]] is a mapping from terms to text. If this is done in a nice way, i.e., layout is placed in appropriate places, the formatter deserves the term _pretty_ printer. For some applications, e.g., inspecting an intermediate term in a transformation pipeline, an [[ugly printer]] is sufficient. pretty printers can be defined manually, but that is a lot of work. A better way is to use an intermediate format for representing layout instructions and leaving the actual formatting to a tool that knows about it. The [[GPP][generic pretty printing (gpp)]] package that comes with StrategoXT provides tools for translating terms to the [[BoxLanguage][Box language]] and formatting the [[BoxLanguage][Box language]] to text, html, and latex. The package even supports generation of [[Tools.PrettyPrintTables][pretty print tables]] from SDF syntax definitions. If you need more control over pretty printing you can also write a [[pretty printer]] with StrategoBox. This approach uses [[concrete syntax ]]for the [[BoxLanguage][Box language]] inside the [[Stratego language]]. ---- CategoryPrettyPrint