gri(1) scientific graphics language


gri [ OPTIONS ] [ CommandFile [ optional_arguments ]]


Gri is a programming language for scientific graphics. It can make x-y graphs, contour-graphs, and image graphs. In addition, Gri has a full suite of low-level graphical elements and sufficient programming capabilities (loops, subroutines, etc) to permit complex customization.

Gri is not point-click. In some ways it is analogous to TeX. Extensive power rewards tolerance of a modest learning curve.


If a command file (CommandFile) is named, commands are read from that file; otherwise they are read from the keyboard. If a command file is named, then a file in which to store the PostScript output may also be named; otherwise it is stored in a file named by substituting the .ps extension instead of .gri in CommandFile. If no command file is named, the output is named (or if exists, etc).

There are 3 special forms that do no graphing:

`gri -creator postscript_file'

Extracts the Gri commands that created the Gri PostScript file.

`gri -help' or `gri -h'

Prints this help message.

`gri -version' or `gri -v'

Prints the version number of Gri.

In normal usage, where drawing is expected, Gri takes these options:

-batch or -b

Stops printing of prompts and hints.
-chatty[N] or -c[N]
Let gri print info messages
-debug or -d
Turns debugging on (sets variable ..debug.. to value 1).
Warn if any item is drawn far off a 8.5x11 inch page. (This is the default.)
Don't warn if any item is drawn far off a 8.5x11 inch page
-directory pathname
Specifies the directory where Gri looks for startup files; otherwise it looks in /opt/gri/lib or at whatever directory is defined in configure shellscript, at compile time.
Reports directory where gri.cmd should be found, if not supplied by -directory.
Make bounding-box be full page.
Prevent warning message if `expecting version .n.' command is missing.
Stops printing of startup message.
-publication or -p
Sets the builtin variable ..publication.. to 1; normally it is 0. One might use if statements (`if !..publication..' ...) on drafts.
-superuser or -s
Used only by Gri programmers (who can check the value with the C function `superuser()'.) An optional value can be supplied without spaces (e.g. `-s2') to set the debugging level. Flags are listed below; add flags to get several actions at once
1: print cmdline before/after substituting synonyms

2: print cmdline before/after substituting rpn expressions

4: print new commands being defined

8: print system commands and `open "... | "' commands before

they are passed to the system
128: for author's use only

256: for author's use only

Note that all flags are equal to 2 raised to an integer power. Since the flag values are detected by a bitwise OR, you can combine flags by adding; thus specifying a flag of 5 yields flags 1 and 4 together; specifying 15 yields flags 1, 2, 4 and 8.
-trace or -t
Makes Gri print out command lines as they are executed.
-true or -y
Makes Gri think the answer to all `query's is RETURN.


Two Perl scripts are provided with Gri to manipulate the PostScript output.

gri_merge is used to merge multiple Gri output files into a single PostScript file. See gri_merge -h and its man page for usage information.

gri_unpage is used is split a multi-page Gri output file (in which the new page command was used) into separate PostScript files, one for each page.

See their respective man pages.


An emacs mode is provided with Gri. It is documented in the gri Info or HTML manual.

The mode is installed automatically in Debian by the elisp file:


The emacs mode itself is gri-mode.el and is installed on Debian as /usr/share/emacs/site-lisp/gri-mode.el

Byte-compiled versions of this file are produced for every flavour of Emacs that is installed, and are located in places like /usr/share/emacs/23.1/site-lisp/gri-el/gri-mode.elc


Gri (c) 1991-2010 Dan Kelley <[email protected]>

This manual page by Peter S Galbraith <[email protected]>.