pic - compile pictures for troff or TeX


pic [ __-nvCSU__? [ ''filename'' ...? pic -t [ __-cvzCSU__? [ ''filename'' ...?


This manual page describes the GNU version of pic, which is part of the groff document formatting system. pic compiles descriptions of pictures embedded within troff or TEX input files into commands that are understood by TEX or troff. Each picture starts with a line beginning with .PS and ends with a line beginning with .PE. Anything outside of .PS and .PE is passed through without change.

It is the user's responsibility to provide appropriate definitions of the PS and PE macros. When the macro package being used does not supply such definitions (for example, old versions of -ms), appropriate definitions can be obtained with -mpic: these will center each picture.


Options that do not take arguments may be grouped behind a single -. The special option -- can be used to mark the end of the options. A filename of - refers to the standard input.


Recognize .PS and .PE even when followed by a character other than space or newline.


Safer mode; do not execute sh commands. This can be useful when operating on untrustworthy input. (enabled by default)


Unsafe mode; revert the default option -S.


Don't use the groff extensions to the troff drawing commands. You should use this if you are using a postprocessor that doesn't support these extensions. The extensions are described in groff_out(5). The -n option also causes pic not to use zero-length lines to draw dots in troff mode.


TEX mode.


Be more compatible with tpic. Implies -t. Lines beginning with \ are not passed through transparently. Lines beginning with . are passed through with the initial . changed to \. A line beginning with .ps is given special treatment: it takes an optional integer argument specifying the line thickness (pen size) in milliinches; a missing argument restores the previous line thickness; the default line thickness is 8 milliinches. The line thickness thus specified takes effect only when a non-negative line thickness has not been specified by use of the thickness attribute or by setting the linethick variable.


Print the version number.


In TEX mode draw dots using zero-length lines.

The following options supported by other versions of pic are ignored:


Draw all lines using the D escape sequence. pic always does this.

-T dev

Generate output for the troff device dev. This is unnecessary because the troff output generated by pic is device-independent.


This section describes only the differences between GNU pic and the original version of pic. Many of these differences also apply to newer versions of Unix pic.

TEX mode

TEX mode is enabled by the -t option. In TEX mode, pic will define a vbox called graph for each picture. You must yourself print that vbox using, for example, the command


Actually, since the vbox has a height of zero this will produce slightly more vertical space above the picture than below it;

centerline{raise 1emboxgraph}

would avoid this.

You must use a TEX driver that supports the tpic specials, version 2.

Lines beginning with \ are passed through transparently; a % is added to the end of the line to avoid unwanted spaces. You can safely use this feature to change fonts or to change the value of baselineskip. Anything else may well produce undesirable results; use at your own risk. Lines beginning with a period are not given any special treatment.


for variable = expr1 to expr2 [__by__ [[__*__?expr3] do X body X

Set variable to expr1. While the value of variable is less than or equal to expr2, do body and increment variable by expr3; if by is not given, increment variable by 1. If expr3 is prefixed by * then variable will instead be multiplied by expr3. X can be any character not occurring in body.

if expr then X if-true X [__else__ ''Y if-false Y''?

Evaluate expr; if it is non-zero then do if-true, otherwise do if-false. X can be any character not occurring in if-true. Y can be any character not occurring in if-false.

print arg...

Concatenate the arguments and print as a line on stderr. Each arg must be an expression, a position, or text. This is useful for debugging.

command arg...

Concatenate the arguments and pass them through as a line to troff orTEX. Each arg must be an expression, a position, or text. This has a similar effect to a line beginning with . or \, but allows the values of variables to be passed through.

sh X command X

Pass command to a shell. X can be any character not occurring in command.

copy filename

Include filename at this point in the file.

copy [____''filename''____? thru X body X

Fatal Error:

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual

Fatal PhpWiki Error

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual