pic2graph(1) General Commands Manual pic2graph(1)

# [Name](#Name)

pic2graph - convert a *pic* diagram into a cropped image

# [Synopsis](#Synopsis)

`pic2graph` \[**-unsafe**] \[**-format output-format**] \[**-eqn delimiters**] \[*convert-argument* ...]

`pic2graph` **--help**

`pic2graph` **-v**

`pic2graph` **--version**

# [Description](#Description)

*pic2graph* reads a [*pic*(1)](/man/os/groff/pic.1) program from the standard input and writes an image file, by default in Portable Network Graphics (PNG) format, to the standard output. It furthermore translates [*eqn*(1)](/man/os/groff/eqn.1) constructs, so it can be used to generate images of mathematical formulae.

The input PIC code should *not* be wrapped with the **.PS** and **.PE**/**.PF**/**.PY** macros that normally guard it within [*groff*(1)](/man/os/groff/groff.1) documents.

Arguments not recognized by *pic2graph* are passed to the ImageMagick or GraphicsMagick program [*convert*(1)](/man/os/groff/convert.1). By specifying these, you can give your image a border, set the image's pixel density, or perform other useful transformations.

The output image is clipped using *convert*'s **-trim** option to the smallest possible bounding box that contains all the black pixels.

# [Options](#Options)

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

[**-eqn delimiters**](#eqn)

Use *delimiters* as the opening and closing characters that delimit *eqn* directives; the default is “$$”. The option argument *delimiters* should be a two-character string, but an empty string ("") is accepted as a directive to disable *eqn* processing.

[**-format output-format**](#format)

Write the image in *output-format*, which must be understood by *convert*; the default is PNG.

[**-unsafe**](#unsafe)

Run *groff* in *unsafe* mode, enabling the PIC command **sh** to execute arbitrary Unix shell commands. The *groff* default is to forbid this.

# [Environment](#Environment)

[*GROFF\_TMPDIR*](#GROFF_TMPDIR)

[*TMPDIR*](#TMPDIR)

[*TMP*](#TMP)

[*TEMP*](#TEMP)

These environment variables are searched in the order shown to determine the directory where temporary files will be created. If none are set, */tmp* is used.

# [Authors](#Authors)

*pic2graph* was written by [Eric S. Raymond](mailto:esr@thyrsus.com), based on a recipe by W. Richard Stevens.

# [See also](#See_also)

W. Richard Stevens, [*Turning PIC into HTML*](http://www.kohala.com/start/troff/pic2html.html)

[*eqn2graph*(1)](/man/os/groff/eqn2graph.1), [*grap2graph*(1)](/man/os/groff/grap2graph.1), [*pic*(1)](/man/os/groff/pic.1), [*eqn*(1)](/man/os/groff/eqn.1), [*groff*(1)](/man/os/groff/groff.1), [*convert*(1)](/man/os/groff/convert.1)

2026-10-01 groff 1.24.2

---

Document: pic2graph(1) from groff 1.24.2-r0 (Chainguard OS)
Source: https://git.savannah.gnu.org/git/groff.git
