grodvi(1)

πŸ’… grodvi β€” the groff output driver for TeX DVI format πŸ’…

okay bestie, this one's from the General Commands Manual β€” it's grodvi(1) and it is literally the glow-up pipeline from roff-land to TeX DVI-land ✨


πŸŽ€ NAME πŸŽ€

grodvi β€” groff output driver for TeX DVI format. that's it, that's the whole vibe 🫢


✨ 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) into TeX DVI format. Normally, grodvi is invoked by groff(1) 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. classic filter behavior, we stan 🧚

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 β€” so like, no cap, that's a whole nothing-burger on that driver πŸ’€

Encapsulated PostScript (EPS) files can be easily included; use the PSPIC macro. pspic.tmac is loaded automatically by dvi.tmac. See groff_tmac(5).

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. monochrome chic, honestly iconic πŸ–€

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 β€” CM Roman (cmr10)
  • TI β€” CM Text Italic (cmti10)
  • TB β€” CM Bold Extended Roman (cmbx10)
  • TBI β€” CM Bold Extended Text Italic (cmbxti10)
  • HR β€” CM Sans Serif (cmss10)
  • HI β€” CM Slanted Sans Serif (cmssi10)
  • HB β€” CM Sans Serif Bold Extended (cmssbx10)
  • HBI β€” CM Slanted Sans Serif Bold Extended (cmssbxo10)

The following fonts are not members of a family, they're solo main characters πŸ‘‘

  • CW β€” CM Typewriter Text (cmtt10)
  • CWI β€” 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. iykyk 🀭

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 gotta go get them yourself, bestie.

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. order matters, fr fr πŸŽ€


πŸ¦‹ 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)'s β€œ-d paper” option. don't get it twisted πŸ™ˆ

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) 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. lowkey the reliable one of the group 🫢

πŸ“ 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/devname 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. turn that page sideways, slay πŸ“
  • -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).
  • -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. three moods, all valid πŸ’…


🌈 ENVIRONMENT 🌈

  • GROFF_FONT_PATH β€” lists directories in which to search for devdvi, grodvi's directory of device and font description files. See troff(1) and groff_font(5).

πŸ‘‘ 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. not me calling out badly written drivers 😭

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. one (1) pixel of chaos, we survive πŸ™ˆ


πŸŽ€ SEE ALSO πŸŽ€

β€œWhat are the EC fonts?”; TeX FAQ: Frequently Asked Question List for TeX

tfmtodit(1), groff(1), troff(1), groff_out(5), groff_font(5), groff_char(7), groff_tmac(5)


and that's the whole page, bestie πŸ’– this lil icon is groff 1.24.2, dated 2026-10-01 β€” go forth and make DVI files that ate, no cap βœ¨πŸ¦‹

πŸ“¦ where this page comes from