---
name: "gri"
section: "1"
platform: "linux"
package: "gri"
version: "2.12.27-1.2+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/gri"
---

# gri(1)

scientific graphics language

## NAME

gri - scientific graphics language

## SYNOPSIS

**gri** \[ **OPTIONS** \] \[ *CommandFile* \[ *optional\_arguments* \]\]

## DESCRIPTION

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.

## OPTIONS

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  gri-00.ps (or gri-01.ps if gri-00.ps 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\_offpage**

-

  Warn if any item is drawn far off a 8.5x11 inch page. (This is the default.)

**-nowarn\_offpage**

-

  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.

**-directory\_default**

-

  Reports directory where gri.cmd should be found, if not supplied by **-directory**.

**-no\_bounding\_box**

-

  Make bounding-box be full page.

**-no\_expecting**

-

  Prevent warning message if \`expecting version .n.' command is missing.

**-no\_startup\_message**

-

  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.

## SEE ALSO

For more information, please consult online  *info* and *html* manuals.

The  *info* manual included in the main **gri** Debian package is normally accessed by typing

**info gri**

(or from within Emacs' own info).

There are also  *reference cards* in postscript format.  See **/usr/share/doc/gri/\*refcard.ps**

The Debian package **gri-html-doc** provides the *html* manual, which when installed is then located at

-

  **/usr/share/doc/gri/html/index.html**

or, if you have a web server installed, at

-

  **http://localhost/doc/gri/html/index.html**

The HTML manual is accessible via  *dwww* and *dhelp* Debian help interfaces. The  *html* FAQ is located at

-

  **/usr/share/doc/gri/html/FAQ.html**

The **gri-html-doc** package also includes *examples* in **/usr/share/doc/gri/examples/** which are described in the manual, and are included as a quick start primer.

The **gri-pdf-doc** package is a  *PDF* version of the manual suitable for printing.

## GRI\_MERGE AND GRI\_UNPAGE COMMANDS

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.

## EMACS SUPPORT

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:

**/etc/emacs/site-start.d/50gri-el.el**

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**

## SEE ALSO

**[gri\_merge(1)](/gri_merge/1.md), [gri\_unpage(1)](/gri_unpage/1.md)**

## AUTHOR

Gri (c) 1991-2010 Dan Kelley \<Dan.Kelley@Dal.CA\>

This manual page by Peter S Galbraith \<psg@debian.org\>.
