postmd(1) UNIX System V(LP Print Service) postmd(1)
NAME
postmd - matrix display program for PostScript printers
SYNOPSIS
/usr/lib/lp/postscript/postmd [options] [files]
DESCRIPTION
The postmd filter reads a series of floating point numbers from files,
translates them into a PostScript gray scale image, and writes the
results on the standard output. In a typical application the numbers
might be the elements of a large matrix, written in row major order,
while the printed image could help locate patterns in the matrix. If no
files are specified, or if - is one of the input files, the standard
input is read. The following options are understood:
-b num Pack the bitmap in the output file using num byte patterns. A
value of 0 turns off all packing of the output file. By
default, num is 6.
-c num Print num copies of each page. By default, only one copy is
printed.
-d dimen Sets the default matrix dimensions for all input files to
dimen. The dimen string can be given as rows or rowsxcolumns.
If columns is omitted it will be set to rows. By default,
postmd assumes each matrix is square and sets the number of
rows and columns to the square root of the number of elements
in each input file.
-g list List is a comma or space separated string of integers, each
lying between 0 and 255 inclusive, that assigns PostScript gray
scales to the regions of the real line selected by the -i
option. 255 corresponds to white, and 0, to black. The postmd
filter assigns a default gray scale that omits white (that is,
255) and gets darker as the regions move from left to right
along the real line.
-i list List is a comma, space or slash(/) separated string of N
floating point numbers that partition the real line into 2N+1
regions. The list must be given in increasing numerical order.
The partitions are used to map floating point numbers read from
the input files into gray scale integers that are either
assigned automatically by postmd or arbitrarily selected using
the -g option. The default interval list is -1,0,1, which
partions the real line into seven regions.
-m num Magnify each logical page by the factor num. Pages are scaled
uniformly about the origin which, by default, is located at the
center of each page. The default magnification is 1.0.
10/89 Page 1
postmd(1) UNIX System V(LP Print Service) postmd(1)
-n num Print num logical pages on each piece of paper, where num can
be any positive integer. By default, num is set to 1.
-o list Print pages whose numbers are given in the comma separated
list. The list contains single numbers N and ranges N1 - N2.
A missing N1 means the lowest numbered page, a missing N2 means
the highest.
-p mode Print files in either portrait or landscape mode. Only the
first character of mode is significant. The default mode is
portrait.
-w window Window is a comma or space separated list of four positive
integers that select the upper left and lower right corners of
a submatrix from each of the input files. Row and column
indices start at 1 in the upper left corner and the numbers in
the input files are assumed to be written in row major order.
By default, the entire matrix is displayed.
-x num Translate the origin num inches along the positive x axis. The
default coordinate system has the origin fixed at the center of
the page, with positive x to the right and positive y up the
page. Positive num moves everything right. The default offset
is 0 inches.
-y num Translate the origin num inches along the positive y axis.
Positive num moves everything up the page. The default offset
is 0.
Only one matrix is displayed on each logical page, and each of the input
files must contain complete descriptions of exactly one matrix. Matrix
elements are floating point numbers arranged in row major order in each
input file. White space, including newlines, is not used to determine
matrix dimensions. By default, postmd assumes each matrix is square and
sets the number of rows and columns to the square root of the number of
elements in the input file. Supplying default dimensions on the command
line with the -d option overrides this default behavior, and in that case
the dimensions apply to all input files.
An optional header can be supplied with each input file and is used to
set the matrix dimensions, the partition of the real line, the gray scale
map, and a window into the matrix. The header consists of keyword/value
pairs, each on a separate line. It begins on the first line of each
input file and ends with the first unrecognized string, which should be
the first matrix element. Values set in the header take precedence, but
apply only to the current input file. Recognized header keywords are
dimension, interval, grayscale, and window. The syntax of the value
string that follows each keyword parallels what's accepted by the -d, -i,
-g, and -w options.
Page 2 10/89
postmd(1) UNIX System V(LP Print Service) postmd(1)
EXAMPLES
For example, suppose file initially contains the 1000 numbers in a 20x50
matrix. Then you can produce exactly the same output by completing three
steps. First, issue the following command line:
postmd -d20x50 -i"-100 100" -g0,128,254,128,0 file
Second, prepend the following header to file:
dimension 20x50
interval -100.0 .100e+3
grayscale 0 128 254 128 0
Third, issue the following command line:
postmd file
The interval list partitions the real line into five regions and the gray
scale list maps numbers less than -100 or greater than 100 into 0 (that
is, black), numbers equal to -100 or 100 into 128 (that is, 50 percent
black), and numbers between -100 and 100 into 254 (that is, almost
white).
NOTES
The largest matrix that can be adequately displayed is a function of the
interval and gray scale lists, the printer resolution, and the paper
size. A 600x600 matrix is an optimistic upper bound for a two element
interval list (that is, five regions) using 8.5x11 inch paper on a 300
dpi printer.
Using white (that is, 255) in a gray scale list is not recommended and
won't show up in the legend and bar graph that postmd displays below each
image.
DIAGNOSTICS
An exit status of 0 is returned if files were successfully processed.
FILES
/usr/lib/lp/postscript/postmd.ps
/usr/lib/lp/postscript/forms.ps
/usr/lib/lp/postscript/ps.requests
SEE ALSO
dpost(1), postdaisy(1), postdmd(1), postio(1), postprint(1),
postreverse(1), posttek(1)
10/89 Page 3