---
name: "post-grohtml"
section: "1"
platform: "linux"
package: "groff"
version: "1.23.0-9"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/grohtml"
---

# post-grohtml(1)

groff output driver for HTML

Part of [grohtml(1)](/grohtml/1.md).

## Name

grohtml, post-grohtml, pre-grohtml - *groff* output driver for HTML

## Synopsis

**pre-grohtml** \[**-epV**\] \[**-a** *anti-aliasing-text-bits*\] \[**-D** *image-directory*\] \[**-F** *font-directory*\] \[**-g** *anti-aliasing-graphic-bits*\] \[**-i** *resolution*\] \[**-I** *image-stem*\] \[**-o** *image-vertical-offset*\] \[**-x** *html-dialect*\] *troff-command* *troff-argument* ...

**pre-grohtml** **--help**

**pre-grohtml** **-v**

**pre-grohtml** **--version**

**post-grohtml** \[**-bCGhlnrVy**\] \[**-F** *font-directory*\] \[**-j** *output-stem*\] \[**-s** *base-point-size*\] \[**-S** *heading-level*\] \[**-x** *html-dialect*\] \[*file* ...\]

**post-grohtml** **--help**

**post-grohtml** **-v**

**post-grohtml** **--version**

## Description

The GNU *roff* system's HTML support consists of a preprocessor, *pre-grohtml*, and an output driver, *post-grohtml*; together, they translate [*roff*(7)](/roff/7.md) documents to HTML. Because a preprocessor is (uniquely) required for this output driver, users should invoke *grohtml* via the [*groff*(1)](/groff/1.md) command with the **-Thtml** or **-Txhtml** options. (In this installation, **ps** is the default output device.) Use *groff*'s **-P** option to pass any options shown above to *grohtml*. If no operands are given, or if *file* is “**-**”, *grohtml* reads the standard input stream. Output is written to the standard output stream.

*grohtml* invokes *groff* twice. In the first pass, the preprocessor *pre-grohtml* renders pictures, equations, and tables as images in PostScript format using the **ps** output device. In the second pass, the output driver *post-grohtml* translates the output of [*troff*(1)](/troff/1.md) to HTML.

*grohtml* writes output encoded in UTF-8 and has built-in HTML entities for all non-composite Unicode characters. In spite of this, *groff* may issue warnings about unknown special characters if they can't be found during the first pass. Such warnings can be safely ignored unless the special characters appear inside a table or equation.

### Typefaces

*grohtml* supports the standard four styles: **R** (roman), **I** (*italic*), **B** (**bold**), and **BI** (***bold-italic***). Fonts are grouped into families **T** and **C** having members in each style.

- **TR** **TI** **TB** **TBI** **CR** **CI** **CB** **CBI**

  Times roman

  Times italic

  Times bold

  Times bold-italic

  Courier roman

  Courier italic

  Courier bold

  Courier bold-italic

A special font, **S**, is also provided to accommodate *roff* documents that expect it to always be available.

### Font description files

The font description files used with *grohtml* expose the same glyph repertoire in their **charset** sections. See [*groff\_font*(5)](/groff_font/5.md).

### Dependencies

*pre-grohtml* generates an image whenever an *eqn* equation, *tbl* table, or *pic* picture is encountered in the input. *grohtml* therefore may run several commands as part of its operation. These include the Netpbm tools *pnmcrop*, *pnmcut*, and *pnmtopng*; Ghostscript (*gs*); and the PSUtils tool *psselect*.

## Options

**--help** displays a usage message, while **-v** and **--version** show version information; all exit afterward.

- **-a** *anti-aliasing-text-bits*

  Number of bits of antialiasing information to be used by text when generating PNG images. The default is **4** but **0**, **1**, and **2** are also valid. Your system's version of *gs* must support the **-dTextAlphaBits** option in order to exploit antialiasing. A value of **0** stops *grohtml* from issuing antialiasing commands to *gs*.

- **-b**

  Initialize the background color to white.

- **-C**

  Suppress output of “CreationDate:” HTML comment.

- **-D** *image-directory*

  Instruct *grohtml* to place all image files into directory *image-directory*.

- **-e**

  Direct *eqn* to produce MathML.

-

  This option should not be manually specified; it is synthesized by *groff* depending on whether it was given the **-Thtml** or **-Txhtml** option.

- **-F** *font-directory*

  Prepend directory font-directory*/dev*name to the search path for font and device description files; *name* is the name of the device, usually **html**.

- **-g** *anti-aliasing-graphic-bits*

  Number of bits of antialiasing information to be used by graphics when generating PNG images. The default is **4** but **0**, **1**, and **2** are also valid. Your system's version of *gs* must support the **-dGraphicAlphaBits** option in order to exploit antialiasing. A value of **0** stops *grohtml* from issuing antialiasing commands to *gs*.

- **-G**

  Suppress output of “Creator:” HTML comment.

- **-h**

  Generate section headings by using HTML **B** elements and increasing the font size, rather than HTML **H** elements.

- **-i** *resolution*

  Set the image resolution in pixels per inch; the default is **100**.

- **-I** *image-stem*

  Determine the image file name stem. If omitted, *grohtml* uses *grohtml-*XXXXX (where *XXXXX* is the process ID). A dash is appended to the stem to separate it from the following image number.

- **-j** *output-stem*

  Instruct *grohtml* to split the HTML output into multiple files. Output is written to a new file at each section heading (but see option **-S** below) named *output-stem-*n*.html*.

- **-l**

  Turn off the production of automatic section links at the top of the document.

- **-n**

  Generate simple heading anchors whenever a section/number heading is found. Without the option the anchor value is the textual heading. This can cause problems when a heading contains a “?” on older versions of some browsers. This feature is automatically enabled if a heading contains an image.

- **-o** *image-vertical-offset*

  Specify the vertical offset of images in points.

- **-p**

  Display page rendering progress to the standard error stream. *grohtml* displays a page number only when an image is required.

- **-r**

  Turn off the automatic header and footer line (HTML rule).

- **-s** *base-type-size*

  Set the document's base type size in points. When this size is used in the source, it corresponds to the HTML base type size. Every increase of two points in the source will produce a “**big**” element, and conversely when a decrease of two points is seen, a “**small**” element is emitted.

- **-S** *heading-level*

  When splitting HTML output (see option **-j** above), split at each nested heading level defined by *heading-level*, or higher). The default is **1**.

- **-V**

  Create an XHTML or HTML validator button at the bottom of each page of the document.

- **-x** *html-dialect*

  Select HTML dialect. Currently, *html-dialect* should be either the digit **4** or the letter **x**, which indicates whether *grohtml* should generate HTML 4 or XHTML, respectively.

-

  This option should not be manually specified; it is synthesized by *groff* depending on whether it was given the **-Thtml** or **-Txhtml** option.

- **-y**

  Produce a right-aligned *groff* signature at the end of the document (only if **-V** is also specified).

## Environment

- *GROFF\_FONT\_PATH*

  lists directories in which to search for *devhtml*, *grohtml*'s directory of device and font description files. See [*troff*(1)](/troff/1.md) and [*groff\_font*(5)](/groff_font/5.md).

- *SOURCE\_DATE\_EPOCH*

  A timestamp (expressed as seconds since the Unix epoch) to use as the output creation timestamp in place of the current time. The time is converted to human-readable form using [*gmtime*(3)](/gmtime/3.md) and [*asctime*(3)](/asctime/3.md), and recorded in an HTML comment.

- *TZ*

  The time zone to use when converting the current time to human-readable form; see [*tzset*(3)](/tzset/3.md). If *SOURCE\_DATE\_EPOCH* is used, it is always converted to human-readable form using UTC.

## Files

- */usr/share/groff/1.23.0/font/devhtml/DESC*

  describes the **html** output device.

- */usr/share/groff/1.23.0/font/devhtml/*F

  describes the font known as *F* on device **html**.

- */usr/share/groff/1.23.0/tmac/html.tmac*

  defines font mappings, special characters, and colors for use with the **html** output device. It is automatically loaded by *troffrc* when either of the **html** or **xhtml** output devices is selected.

- */usr/share/groff/1.23.0/tmac/html-end.tmac*

  finalizes setup of the **html** output device. It is automatically loaded by *troffrc-end* when either of the **html** or **xhtml** output devices is selected.

*grohtml* uses temporary files. See [*groff*(1)](/groff/1.md) for details about where such files are created.

## Bugs

*grohtml* is still beta code.

*grohtml* does not truly support hyphenation, but you can fool it into hyphenating long input lines, which can appear in HTML output with a hyphenated word followed by a space but no line break.

## See also

[*groff*(1)](/groff/1.md), [*troff*(1)](/troff/1.md), [*groff\_font*(5)](/groff_font/5.md)
