---
name: "grodvi"
section: "1"
platform: "linux"
package: "groff"
version: "1.24.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/grodvi"
---

# grodvi(1)

groff output driver for TeX DVI format

## Name

grodvi - *groff* output driver for TeX DVI format

## Synopsis

**grodvi** \[**-dl**\] \[**-F**  *dir*\] \[**-p**  *paper-format*\] \[**-w**  *n*\] \[*file* ...\]

**grodvi** **--help**

**grodvi** **-v**

**grodvi** **--version**

## Description

The GNU *roff* DVI output driver translates the output of [*troff*(1)](/troff/1.md) into TeX DVI format. Normally, *grodvi* is invoked by [*groff*(1)](/groff/1.md) when the latter is given the “**-T dvi**” option. (In this installation, **ps** is the default output device.) Use *groff*'s **-P** option to pass any options shown above to *grodvi*. If no *file* arguments are given, or if *file* is “-”, *grodvi* reads the standard input stream. It writes to the standard output stream.

The DVI file generated by *grodvi* can be interpreted by any correctly written DVI driver. *troff* drawing primitives are implemented using *tpic* version 2 specials. If the driver does not support these, **\\D** escape sequences will not produce any output.

Encapsulated PostScript (EPS) files can be easily included; use the **PSPIC** macro. *pspic.tmac* is loaded automatically by *dvi.tmac*. See [*groff\_tmac*(5)](/groff_tmac/5.md).

The default color used by the **\\m** and **\\M** escape sequences is black. Currently, the stroke color for **\\D** drawing escape sequences is black; fill color values are translated to gray.

In *groff*, as in AT&T *troff*, the **\\N** escape sequence can be used to access any glyph in the current font by its position in the corresponding TFM file.

By design, the DVI format doesn't care about the physical dimensions of the output medium. See subsection “Device extension commands” below.

### Typefaces

*grodvi* supports the standard four styles: **R** (roman), **I** (*italic*), **B** (**bold**), and **BI** (***bold-italic***). Fonts are grouped into families **T** and **H** having members in each style. “CM” abbreviates “Computer Modern”.

- **TR** **TI** **TB** **TBI** **HR** **HI** **HB** **HBI**

  CM Roman (cmr10)

  CM Text Italic (cmti10)

  CM Bold Extended Roman (cmbx10)

  CM Bold Extended Text Italic (cmbxti10)

  CM Sans Serif (cmss10)

  CM Slanted Sans Serif (cmssi10)

  CM Sans Serif Bold Extended (cmssbx10)

  CM Slanted Sans Serif Bold Extended (cmssbxo10)

The following fonts are not members of a family.

- **CW** **CWI**

  CM Typewriter Text (cmtt10)

  CM Italic Typewriter Text (cmitt10)

Special fonts include **MI** (cmmi10), **S** (cmsy10), **EX** (cmex10), **SC** (cmtex10, only for **CW**), and, perhaps surprisingly, **TR**, **TI**, and **CW**, because TeX places some glyphs in text fonts that *troff* generally does not. For italic fonts, **CWI** is used instead of **CW**.

Finally, the symbol fonts of the American Mathematical Society are available as special fonts **SA** (msam10) and **SB** (msbm10). They are not mounted by default.

You can load the *ec.tmac* macro file to employ the EC and TC fonts instead of CM, which they resemble. They also provide Euro **\\\[Eu\]** and per mille **\\\[%0\]** glyphs. Do so before loading localization macro files, because *ec.tmac* does not set up automatic hyphenation codes.

### Device extension commands

*grodvi* emits the equivalent to TeX's **\\special{papersize=***width***,***length***}** on the first page; *dvips* (or another DVI driver) then sets the page size accordingly. If either the page width or length is not positive, no **papersize** special is output.

*grodvi* supports one device extension, accessed with the *groff* request **device** or *roff* **\\X** escape sequence.

- **\\X'papersize=***width***,***length***'**

  Set the page dimensions in centimeters to *width* by *length.* If the **-l** option was specified, these dimensions are swapped. Changes to the paper dimensions should occur prior to the first page, or during page ejection before starting a subsequent one.

-

  *Caution:* the ordering of dimensions differs from that used by *papersize.tmac* and [*troff*(1)](/troff/1.md)'s “**-d paper**” option.

The parameter(s) to **device** and **\\X** are translated to the same DVI file instructions as would be produced by **\\special{***anything***}** in TeX; *anything* cannot contain a newline.

### Font description files

Use [*tfmtodit*(1)](/tfmtodit/1.md) to create *groff* font description files from TFM (TeX font metrics) files. The font description file should contain the following additional directives, which *tfmtodit* generates automatically.

- **internalname** *name*

  The name of the TFM file (without the *.tfm* extension) is *name*.

- **checksum** *n*

  The checksum in the TFM file is *n*.

- **designsize** *n*

  The design size in the TFM file is *n*.

### Drawing commands

*grodvi* supports an additional drawing command.

- **\\D'R** *dh dv***'**

  Draw a rule (solid black rectangle) with one corner at the drawing position, and the diagonally opposite corner at the drawing position +(*dh*,*dv*), which becomes the new drawing position afterward. This command produces a rule in the DVI file and so can be printed even with a driver that does not support *tpic* specials, unlike the other **\\D** commands.

## Options

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

- **-d**

  Do not use *tpic* specials to implement drawing commands. Horizontal and vertical lines are implemented by rules. Other drawing commands are ignored.

- **-F** *dir*

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

- **-l**

  Use landscape orientation rather than portrait.

- **-p** *paper-format*

  Set physical dimensions of output medium, overriding the **papersize**, **paperlength**, and **paperwidth** directives in the *DESC* file. *paper-format* can be any argument accepted by the **papersize** directive; see [*groff\_font*(5)](/groff_font/5.md).

- **-w** *n*

  Draw rules (lines) with a thickness of *n* thousandths of an em. The default thickness is **40** (0.04 em).

## Exit status

*grodvi* exits with status **0** on successful operation, status **2** if the program cannot interpret its command-line arguments, and status **1** if it encounters an error during operation.

## Environment

- *GROFF\_FONT\_PATH*

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

## Files

- */usr/share/groff/1.24.2/font/devdvi/DESC*

  describes the **dvi** output device.

- */usr/share/groff/1.24.2/font/devdvi/*F

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

- */usr/share/groff/1.24.2/tmac/dvi.tmac*

  defines font mappings, special characters, and colors for use with the **dvi** output device. It is automatically loaded by *troffrc* when the **dvi** output device is selected.

- */usr/share/groff/1.24.2/tmac/ec.tmac*

  configures the **dvi** output device to use the EC and TC font families instead of CM (Computer Modern).

## Bugs

DVI files produced by *grodvi* use a different resolution (57,816 units per inch) from those produced by TeX. Incorrectly written drivers which assume the resolution used by TeX, rather than using the resolution specified in the DVI file, will not work with *grodvi*.

When using the **-d** option with boxed tables, vertical and horizontal lines can sometimes protrude by one pixel. This is a consequence of the way TeX requires that the heights and widths of rules be rounded.

## See also

“What are the EC fonts?” ⟨https://\\:texfaq\\:.org/\\:FAQ\\-\\:ECfonts⟩; TeX FAQ: Frequently Asked Question List for TeX

[*tfmtodit*(1)](/tfmtodit/1.md), [*groff*(1)](/groff/1.md), [*troff*(1)](/troff/1.md), [*groff\_out*(5)](/groff_out/5.md), [*groff\_font*(5)](/groff_font/5.md), [*groff\_char*(7)](/groff_char/7.md), [*groff\_tmac*(5)](/groff_tmac/5.md)
