GIST(1)

NAME
gist - browse binary cgm graphics files

SYNOPSIS
gist [[ -in ] cgmfile ] [ page-number-list ] [ options ]

DESCRIPTION
Gist is a binary CGM (Computer Graphics Metafile) browser. It reads an input cgmfile and produces output to the X window system, PostScript files (which can be printed using lpr(1)), or another binary CGM file. The cgmfile may be a family of CGMs; a family is recognized whenever the final one or two characters of the filenames (excluding an optional trailing ".cgm") are digits in a numerical sequence (e.g.- myfile00.cgm, myfile01.cgm, myfile02.cgm, etc.). In this case, the cgmfile argument should be the name of the first file in the family; gist will automatically hop back and forth from file to file as necessary. (A single page must not be split across files, and each file must be a legal CGM in its own right.) When gist opens a CGM for input, it must catalog the pages in the file by scanning through the file to find them. This cataloguing operation takes place in the background while gist waits for your input. Therefore, if you open a large family of CGMs, gist will be able to display the first few pages immediately, but if you ask for the last few pages, you will have to wait until the catalog is complete. After gist has catalogued the input family, you can render any page without delay.

  Options

-in cgmfile
    The -in is necessary if and only if the cgmfile name begins with a digit or - sign.

-ps psout
    to specify a PostScript output file.

-cgm cgmout
    to specify a binary CGM output file.

-display host:server.screen
    to specify an X server connection. If this option is not given, gist will use the DISPLAY environment variable.

-75 create window(s) at 75 dpi (small window)

-100
    create window(s) at 100 dpi (large window, default)

-geometry WxH
    create window(s) with specified width and height (in pixels)

-gks
    create window(s) at 8x8 inches (default 6x6). If your cgm file was NOT created by yorick(1), this may be a better guess at an appropriate window size. You can also resize the gist window using your window manager or -geometry.

-nd to suppress the automatic display of the first picture when gist starts in interactive mode

-b  to run in batch mode (either -cgm or -ps must also be specified, implies -nd)

-f  to run in filter mode, placing PostScript output on stdout (implies -b)

-x  to run as a pure X window program (no keyboard)

-fmbug
    to compensate for a bug in FrameMaker, reverse the EPS preview top-for-bottom in EPS files. But I recommend using ghostscript(1) from project GNU to convert gist's PostScript output files into EPS files instead of gist's EPS command, which makes much cruder preview images.

-bg0fg1
    commercial packages which produce CGM files may use color index 0 to mean background, index 1 to mean foreground, despite their own palette -- this switch compensates

-nowarn
    suppress all but first warning message

  Page-number-list

is any number of space-delimited list elements; each element has one of the following forms:

m   just page m

m-n pages m through n, inclusive

m-n-s
    pages m through n in steps of s Using m<=0 or n>=total number of pages is legal, causing the loop to terminate at the end-of-file (or end-of-file-family)

Thus, pages 3, 5, 7, 9, 31, and 17 through 26 (in that order) would be specified as:
3-9-2 31 17-26

A page number list on the command line is most useful in conjunction with the -b or -f options.

  Commands
Unless the -b or -f options were specified, gist expects further commands from the keyboard, or typed in its X window. Keyboard commands are:

open cgmfile
    open a new CGM for input, closing the current input CGM. This has no effect on any output device.

quit
    finish and close any output files, then exit. Synonyms for the quit command are exit and end.

cgm cgmout [size]
    create a new output CGM. If size is specified, the file will be split into a family whose members are about that size in bytes as more frames are added. The default family member size is four megabytes.

ps psout
    create a new output PostScript file. The lpr(1) utility can print PostScript files.

display host:server.screen [dpi]
    create a new output X window. The dpi (dots per inch) can be either 75 (a small window), or 100 (a large window, the default).

draw [page-number-list]
    render the specified pages on the "drawing" devices (X windows by default).

send [page-number-list]
    render the specified pages on the "sending" devices (PostScript files and CGMs by default).

info
    list current output devices and their states. Also prints the current input CGM and page number.

draw to dev1 [dev2...]
    specify "drawing" devices; dev1, dev2, etc., are device numbers printed by the info command. By default, X windows are the "drawing" devices.

send to dev1 [dev2...]
    specify "sending" devices; dev1, dev2, etc., are device numbers printed by the info command. By default, PostScript files and CGMs are the "sending" devices.

free dev1 [dev2 ...]
    close the output file or X window; dev1, dev2, etc., are device numbers printed by the info command.

eps epsout
    create an encapsulated PostScript file, render the current page there, then close it. This command is provided only for sites without the project GNU ghostscript(1) program. Ghostscript's ps2epsi command produces an infinitely better preview bitmap. If you are interested in this command, get ghostscript; it's free software.

help [topic]
    prints a summary of these commands. If specified, topic is one of the command names; gist prints a more detailed description of that command.

Any of these commands may be abbreviated to the shortest part of their name which is unique -- dr for draw, s for send, etc.

The following commands may be typed either in a gist X window or at the keyboard prompt. The n is a prefix consisting of zero or more digits; if you do not specify n the default is always 1.

nf  advance n pages and draw

nb  back up n pages and draw

ng  go to page n and draw

s   send the current page to all "sending" devices

q   quit

If the -x option is specified on the command line, gist can be run in the background like other X window programs. In this case, only the window commands will be recognized.

EXAMPLES

To print every page of a CGM file family myfile00.cgm:
gist myfile00.cgm -f | lpr
To print only pages 3, 5, 7, 9, 31, and 17 through 26 (in that order):
gist myfile00.cgm 3-9-2 31 17-26 -f | lpr

To start gist as a pure X window program, with output to PostScript file myfile.ps:
gist myfile00.cgm -ps myfile.ps -x &
Type the f, b or g commands in the gist graphics window to navigate through myfile00.cgm. Use the s command to write the current page into myfile.ps; the q command quits.

To use gist on foreign.cgm which was not generated by Yorick, try:
gist -75 -gks -bg0fg1 foreign.cgm

AUTHOR

David H. Munro, Lawrence Livermore National Laboratory

FILES

Y_SITE refers to the Yorick site directory; use the help command in yorick(1) to find its name at your site:

Y_SITE/gist/*
    graphics style sheets, palettes, and PostScript template

BUGS

Gist is designed to convert yorick(1) binary CGM output files into PostScript perfectly. That is, running a yorick binary CGM through gist will produce exactly the same PostScript file (and X window) as yorick would have produced directly.

However, the ANSI CGM standard is not a page description language like PostScript. Therefore, non-yorick CGMs may or may not be acceptably rendered by Gist. The -gks and -bg0fg1 options may help, but you can expect fonts, polymarkers, and line styles to look different with Gist than with other CGM browsers (.e.g- idt from NCAR graphics).

If gist cannot find the PostScript template Y_SITE/gist/ps.ps, PostScript output will not work.

You can't use multiple X windows to compare two different pages (they all display the same page). Start a second copy of gist.

On pseudocolor displays, a color image may require you to move the mouse into gist's X window to display properly. Unless your window manager allows you to set colormap focus independently of keyboard focus, this can be annoying.

SEE ALSO
yorick(1)