---
name: "plotfont"
section: "1"
platform: "linux"
package: "plotutils"
version: "2.6-12"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/plotfont"
---

# plotfont(1)

produce character maps of fonts supported by the plotting utilities

## NAME

plotfont - produce character maps of fonts supported by the plotting utilities

## SYNOPSIS

**plotfont** \[ *options* \] *fonts*

## DESCRIPTION

**plotfont** produces a character map for any font that is supported by the plotting utilities, which include [**graph**(1)](/graph/1.md), [**plot**(1)](/plot/1.md), [**pic2plot**(1)](/pic2plot/1.md), [**tek2plot**(1)](/tek2plot/1.md), and the GNU libplot 2-D graphics export library (see **plot**(3)). Which fonts are supported depends on the output format, which is specified by the  **-T** option. A listing of the fonts available in any specified output format may be obtained with the **--help-fonts** option (see below).

The character map, or maps, will be written to standard output in the specified format. For example, the Times-Roman font is available when producing Postscript output. The command **plotfont -T ps Times-Roman \> charmap.ps** will yield a character map of the Times-Roman font, in a Postscript format that can be viewed or edited with the [**idraw**(1)](/idraw/1.md) drawing editor. The Times-Roman font is also available when producing Fig output, which can be viewed or edited with the  [**xfig**(1)](/xfig/1.md) drawing editor. The command **plotfont -T fig Times-Roman \> charmap.fig** will yield the same character map, but in Fig format rather than in Postscript format.

As another example, the Univers font is available when producing PCL 5 output. The command **plotfont -T pcl Univers \> charmap.pcl** will produce a character map of the Univers font, in PCL 5 format.

When producing output for the X Window System, i.e., for a popped-up window, any scalable X Window System font that has an XLFD (i.e., X Logical Font Description) name is supported. For example, the command **plotfont -T X utopia-medium-r-normal** will pop up a window, and draw a character map of the Utopia-Regular font. "utopia-medium-r-normal" is a truncated version of the Utopia-Regular  font's XLFD name. The Utopia-Regular font is available on most X Window System displays.

## OPTIONS

### General Options

- **-T** *type*

  - **--output-format** *type*

  Select  *type* as the output format. It may be "X", "png", "pnm", "gif", "svg", "ai", "ps", "cgm", "fig", "pcl", "hpgl", "regis", "tek", or "meta" (the default). These refer respectively to the X Window System,  PNG (Portable Network Graphics) format, portable anymap format (PBM/PGM/PPM),  a pseudo-GIF format that does not use LZW encoding, the new XML-based Scalable Vector Graphics format, the format used by Adobe Illustrator, Postscript or Encapsulated Postscript (EPS) that can be edited with [**idraw**(1)](/idraw/1.md), CGM format (by default, confirming to the WebCGM profile), the format used by the  [**xfig**(1)](/xfig/1.md) drawing editor, the Hewlett-Packard PCL 5 printer language, the Hewlett-Packard Graphics Language,  ReGIS graphics format (which can be displayed  by the **dxterm**(1) terminal emulator or by a VT330 or VT340 terminal), Tektronix format (which can be displayed by the [**xterm**(1)](/xterm/1.md) terminal emulator), and device-independent GNU metafile format itself. Unless *type* is "X", an output file is produced and written to standard output.

-

  Files in PNG, PNM, pseudo-GIF, AI, or Fig format contain only a single page of graphics. So if the **-T png** option, the  **-T pnm** option, the  **-T gif** option, the  **-T ai** option, or the  **-T fig** option is used, the output file will contain a character map for only the first-specified font.

-

  A listing of the fonts available in any specified output format may be obtained with the **--help-fonts** option (see below). If a requested font is unavailable, a default font will be substituted. The default font is "Helvetica" for "X", "svg", "ai", "ps", "cgm", and "fig", "Univers" for "pcl", and "HersheySerif" for "png", "pnm", "gif", "hpgl", "regis", "tek", and "meta".

- **-1**

  - **--lower-half**

  Generate a character map for the lower half of each specified font. This is the default.

- **-2**

  - **--upper-half**

  Generate a character map for the upper half of each specified font.

- **-o**

  - **--octal**

  Number the characters in octal rather than in decimal (the default).

- **-x**

  - **--hexadecimal**

  Number the characters in hexadecimal rather than in decimal (the default).

- **--box**

  Surround each character with a box, showing its extent to left and right. The default is not to do this.

- **-j** *row*

  - **--jis-row** *row*

  Generate a character map for row  *row* of a Japanese font arranged according to JIS \[Japanese Industrial Standard\] X0208. The only such font currently available is the HersheyEUC \[Extended Unix Code\] font. If used, this option overrides the  **-1** and  **-2** options. The valid rows are 1...94. In the JIS X0208 standard, Roman characters are located in row 3, and Japanese syllabic characters (Hiragana and Katakana) are located in rows 4 and 5. Greek and Cyrillic characters are located in rows 6 and 7. Japanese ideographic characters (Kanji) are located in rows 16...84.

- **--bg-color** *name*

  Set the color used for the background to be *name*. This is relevant only to  **plotfont -T X**, **plotfont -T png**, **plotfont -T pnm**, **plotfont -T gif**, **plotfont -T svg**, **plotfont -T cgm**, and **plotfont -T regis**. An unrecognized name sets the color to the default, which is "white". The environment variable **BG\_COLOR**  can equally well be used to specify the background color.

-

  If the  **-T png** or **-T gif** option is used, a transparent PNG file or a transparent pseudo-GIF, respectively, may be produced by setting the  **TRANSPARENT\_COLOR**  environment variable to the name of the background color. If the  **-T svg** or **-T cgm** option is used, an output file without a background may be produced by setting the background color to "none".

- **--bitmap-size** *bitmap\_size*

  Set the size of the graphics display in which the character map(s)  will be drawn, in terms of pixels, to be *bitmap\_size*. The default is "570x570". This is relevant only to  **plotfont -T X**, **plotfont -T png**, **plotfont -T pnm**, and **plotfont -T gif**, all of which produce bitmaps. If you choose a rectangular (non-square) window size, the fonts in the character map(s) will be scaled anisotropically, i.e., by different factors in the horizontal and vertical directions. For **plotfont -T X**, this requires an X11R6 display. Any font that cannot be scaled in this way will be replaced by a default scalable font, such as the vector font "HersheySerif".

-

  The environment variable  **BITMAPSIZE**  can equally well be used to specify the window size. For backward compatibility, the X resource  **Xplot.geometry** may be used instead.

- **--emulate-color** *option*

  If  *option* is  *yes*, replace each color in the output by an appropriate shade of gray. This is seldom useful, except when using  **plotfont -T pcl** to prepare output for a PCL 5 device. (Many monochrome PCL 5 devices, such as monochrome LaserJets, do a poor job of emulating color on their own.) You may equally well request color emulation by setting the environment variable **EMULATE\_COLOR**  to "yes".

- **--numbering-font** *name*

  Set the font used for the numbering of the characters in the character map(s) to be *name*, rather than the default.

- **--page-size** *pagesize*

  Set the size of size of the page on which the character map(s) will be positioned. This is relevant only to **plotfont -T svg**, **plotfont -T ai**, **plotfont -T ps**, **plotfont -T cgm**, **plotfont -T fig**, **plotfont -T pcl**, and **plotfont -T hpgl**. The default is "letter", which means an 8.5 inch by 11 inch page. Any ISO page size in the range "a0"..."a4" or ANSI page size in the range "a"..."e" may be specified ("letter" is an alias for "a" and "tabloid" is an alias for "b"). "legal" and "ledger" are recognized page sizes also. The environment variable **PAGESIZE**  can equally well be used to specify the page size.

-

  The graphics display in which each character map is drawn will be a square region that would occupy nearly the full width of the specified page. An alternative size for the graphics display can be specified. For example, the page size could be specified as "letter,xsize=4in,ysize=6in", or "a4,xsize=5.0cm,ysize=100mm". For all of the above except **plotfont -T hpgl**, the graphics display will, by default, be centered on the page. For all of the above except **plotfont -T svg** and **plotfont -T cgm**, the graphics display may be repositioned manually, by specifying the location of its lower left corner, relative to the lower left corner of the page. For example, the page size could be specified as "letter,xorigin=2in,yorigin=3in", or "a4,xorigin=0.5cm,yorigin=0.5cm". It is also possible to specify an offset vector. For example, the page size could be specified as "letter,xoffset=1in", or "letter,xoffset=1in,yoffset=1.2in", or "a4,yoffset=-1cm". In SVG format and WebCGM format it is possible to specify the size of the graphics display, but not its position.

- **--rotation** *angle*

  Rotate the graphics display by *angle* degrees. Recognized values are "0", "90", "180", and "270". "no" and "yes" are equivalent to "0" and "90", respectively. The environment variable  **ROTATION**  can also be used to specify a rotation angle.

- **--pen-color** *name*

  Set the pen color to be  *name*. An unrecognized name sets the pen color to the default, which is "black".

### Options for Metafile Output

The following option is relevant only if the **-T** option is omitted or if  **-T meta** is used. In this case the output of **plotfont** will be in GNU graphics metafile format. It may be translated to other formats by invoking [**plot**(1)](/plot/1.md).

- **-O**

  - **--portable-output**

  Output the portable (human-readable) version of GNU metafile format, rather than the binary version (the default). The format of the binary version is machine-dependent.

### Informational Options

- **--help**

  Print a list of command-line options, and exit.

- **--help-fonts**

  Print a table of available fonts, and exit. The table will depend on which output format is specified with the  **-T** option. **plotfont -T X**, **plotfont -T svg**, **plotfont -T ai**, **plotfont -T ps**, **plotfont -T cgm**, and  **plotfont -T fig** each support the 35 standard Postscript fonts. **plotfont -T svg**, **plotfont -T pcl**, and  **plotfont -T hpgl** support the 45 standard PCL 5 fonts, and the latter two support a number of Hewlett-Packard vector fonts. All seven support a set of 22 Hershey vector fonts, as do **plotfont -T png**, **plotfont -T pnm**, **plotfont -T gif**, **plotfont -T regis**, and **plotfont -T tek**. **plotfont** without a **-T** option in principle supports any of these fonts, since its output must be translated to other formats by invoking [**plot**(1)](/plot/1.md).

- **--list-fonts**

  Like  **--help-fonts**, but lists the fonts in a single column to facilitate piping to other programs. If no output format is specified with the **-T** option, the full set of supported fonts is listed.

- **--version**

  Print the version number of  **plotfont** and the plotting utilities package, and exit.

## ENVIRONMENT

The environment variables  **BITMAPSIZE,**  **PAGESIZE,**  **BG\_COLOR,**  **EMULATE\_COLOR,**  and **ROTATION**  serve as backups for the options  **--bitmap-size**, **--page-size**, **--bg-color**, **--emulate-color**, and **--rotation**, respectively. The remaining environment variables are specific to individual output formats.

**plotfont -T X**, which pops up a window on an X Window System display for each character map, checks the **DISPLAY**  environment variable. Its value determines the display that will be used.

**plotfont -T png** and **plotfont -T gif**, which produce output in PNG format and pseudo-GIF format respectively, are affected by the  **INTERLACE**  environment variable. If its value is "yes", the output will be interlaced. Also, if the  **TRANSPARENT\_COLOR**  environment variable is set to the name of a color, that color will be treated as transparent in the output.

**plotfont -T pnm**, which produces output in portable anymap (PBM/PGM/PPM) format, is affected by the  **PNM\_PORTABLE**  environment variable. If its value is "yes", the output will be in a human-readable format rather than binary (the default).

**plotfont -T cgm**, which produces output in CGM (Computer Graphics Metafile) format, is affected by the  **CGM\_MAX\_VERSION**  and **CGM\_ENCODING**  environment variables. By default, it produces a binary-encoded version of CGM version 3 format. For backward compatibility, the version number may be reduced by setting **CGM\_MAX\_VERSION**  to "2" or "1". Irrespective of version, the output CGM file will use the human-readable clear text encoding if  **CGM\_ENCODING**  is set to "clear\_text". However, only binary-encoded CGM files conform to the WebCGM profile.

**plotfont -T pcl**, which produces PCL 5 output for Hewlett-Packard printers and plotters, is affected by the environment variable **PCL\_ASSIGN\_COLORS.**  It should be set to "yes" when producing PCL 5 output for a color printer  or other color device. This will ensure accurate color reproduction by giving the output device complete freedom in assigning colors, internally, to its "logical pens". If it is "no" then the device will use a fixed set of colored pens, and will emulate other colors by shading. The default is "no" because monochrome PCL 5 devices, which are much more common than colored ones, must use shading to emulate color.

**plotfont -T hpgl**, which produces Hewlett-Packard Graphics Language output, is affected by several environment variables. The most important is  **HPGL\_VERSION,**  which may be set to "1", "1.5", or "2" (the default). "1" means that the output should be generic HP-GL, "1.5" means that the output should be suitable for the HP7550A graphics plotter and the HP758x, HP7595A and HP7596A drafting plotters (HP-GL with some HP-GL/2 extensions), and "2" means that the output should be modern HP-GL/2. If the version is "1" or "1.5" then the only available fonts will be vector fonts, and all lines will be drawn with a default width. Additionally, if the version is "1" then the filling of arbitrary curves with solid color will not be supported (circles and rectangles aligned with the coordinate axes may be filled, though).

The position of the  **plotfont -T hpgl** graphics display on the page can be rotated 90 degrees counterclockwise by setting the **HPGL\_ROTATE**  environment variable to "yes". This is not the same as the rotation obtained with the  **--rotation** option, since it both rotates the graphics display and repositions its lower left corner toward another corner of the page.  Besides "no" and "yes", recognized values for  **HPGL\_ROTATE**  are "0", "90", "180", and "270".   "no" and "yes" are equivalent to "0" and "90", respectively. "180" and "270" are supported only if  **HPGL\_VERSION**  is "2" (the default).

By default,  **plotfont -T hpgl** will draw with a fixed set of pens. Which pens are present may be specified by setting the **HPGL\_PENS**  environment variable. If **HPGL\_VERSION**  is "1", the default value of **HPGL\_PENS**  is "1=black"; if **HPGL\_VERSION**  is "1.5" or "2", the default value of  **HPGL\_PENS**  is "1=black:2=red:3=green:4=yellow:5=blue:6=magenta:7=cyan". The format should be self-explanatory. By setting **HPGL\_PENS**  you may specify a color for any pen in the range #1...#31. All color names recognized by the X Window System may be used. Pen #1 must always be present, though it need not be black. Any other pen in the range #1...#31 may be omitted.

If **HPGL\_VERSION**  is "2" then  **plotfont -T hpgl** will also be affected by the environment variable  **HPGL\_ASSIGN\_COLORS.**  If its value is "yes", then  **plotfont -T hpgl** will not be restricted to the palette specified in  **HPGL\_PENS:**  it will assign colors to "logical pens" in the range #1...#31, as needed. The default value is "no" because other than color LaserJet printers and DesignJet plotters, not many HP-GL/2 devices allow the assignment of colors to logical pens.

Opaque filling and the drawing of visible white lines are supported only if **HPGL\_VERSION**  is "2" and the environment variable  **HPGL\_OPAQUE\_MODE**  is "yes" (the default). If its value is "no" then white lines (if any), which are normally drawn with pen #0, will not be drawn. This feature is to accommodate older HP-GL/2 devices. HP-GL/2 pen plotters, for example, do not support opacity or the use of pen #0 to draw visible white lines. Some older HP-GL/2 devices may, in fact, malfunction if asked to draw opaque objects.

**plotfont -T tek**, which produces output for a Tektronix terminal or emulator, checks the **TERM**  environment variable. If the value of **TERM**  is a string beginning with "xterm", "nxterm", or "kterm", it is taken as a sign that **plotfont** is running in an X Window System VT100 terminal emulator: a copy of [**xterm**(1)](/xterm/1.md), **nxterm**(1), or **kterm**(1). Before drawing graphics, **plotfont -T tek** will emit an escape sequence that causes the terminal emulator's auxiliary Tektronix window, which is normally hidden, to pop up. After the graphics are drawn, an escape sequence that returns control to the original VT100 window will be emitted. The Tektronix window will remain on the screen.

If the value of **TERM**  is a string beginning with "kermit", "ansi.sys", or "nansi.sys", it is taken as a sign that  **plotfont** is running in the VT100 terminal emulator provided by the MS-DOS version of [**kermit**(1)](/kermit/1.md). Before drawing graphics, **plotfont -T tek** will emit an escape sequence that switches the terminal emulator to Tektronix mode. Also, some of the Tektronix control codes emitted by  **plotfont -T tek** will be **kermit**-specific. There will be a limited amount of color support, which is not normally the case (the 16 \`ansi.sys' colors will be supported). After drawing graphics, **plotfont -T tek** will emit an escape sequence that returns the emulator to VT100 mode. The key sequence \`ALT minus' can be employed manually within **kermit** to switch between the two modes.

## SEE ALSO

[**graph**(1)](/graph/1.md), [**pic2plot**(1)](/pic2plot/1.md), [**tek2plot**(1)](/tek2plot/1.md), [**plot**(1)](/plot/1.md), **plot**(3), and "The GNU Plotting Utilities Manual".

## AUTHORS

**plotfont** was written by Robert S. Maier (**rsm@math.arizona.edu**).

## BUGS

Email bug reports to **bug-gnu-utils@gnu.org**.
