plotfont - produce character maps of fonts supported by the plotting
plotfont [ options ] fonts
plotfont produces a character map for any font that is supported by the
plotting utilities, which include graph(1), plot(1), pic2plot(1),
tek2plot(1), 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)
drawing editor. The Times-Roman font is also available when producing
Fig output, which can be viewed or edited with the xfig(1) drawing
editor. The command plotfont -T fig Times-Roman > charmap.fig will
yield the same character map, but in Fig format rather than in
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.
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), CGM format (by default, confirming to the WebCGM
profile), the format used by the xfig(1) 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) 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",
Generate a character map for the lower half of each specified
font. This is the default.
Generate a character map for the upper half of each specified
Number the characters in octal rather than in decimal (the
Number the characters in hexadecimal rather than in decimal (the
--box Surround each character with a box, showing its extent to left
and right. The default is not to do this.
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
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".
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
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.
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".
Set the font used for the numbering of the characters in the
character map(s) to be name, rather than the default.
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
"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.
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.
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
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.
--help Print a list of command-line options, and exit.
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).
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
Print the version number of plotfont and the plotting utilities
package, and exit.
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
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), 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).
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.
graph(1), pic2plot(1), tek2plot(1), plot(1), plot(3), and "The GNU
Plotting Utilities Manual".
plotfont was written by Robert S. Maier (firstname.lastname@example.org).
Email bug reports to email@example.com.