Linux cli command pic
4 minute read
Name
pic - compile pictures for troff or TeX
Synopsis
pic [-CnSU] [*file *. . .] pic -t [-cCSUz] [*file *. . .] pic –help pic -v pic –version
Description
The GNU implementation of pic is part of the
document formatting system. pic is a
preprocessor that translates descriptions of diagrammatic pictures embedded in
or TeX input files into the language understood by TeX or troff. It copies the contents of each file to the standard output stream, except that lines between .PS and any of .PE, .PF, or .PY are interpreted as picture descriptions in the pic language. End a pic picture with .PE to leave the drawing position at the bottom of the picture, and with .PF or .PY to leave it at the top. Normally, pic is not executed directly by the user, but invoked by specifying the -p option to
If no file operands are given on the command line, or if file is “-”, the standard input stream is read.
It is the user’s responsibility to provide appropriate definitions of the PS, PE, and one or both of the PF and PY macros. When a macro package does not supply these, obtain simple definitions with the groff option -mpic; these will center each picture.
GNU pic supports PY as a synonym of PF to work around a name space collision with the mm macro package, which defines PF as a page footer management macro. Use PF preferentially unless a similar problem faces your document.
Options
–help displays a usage message, while -v and –version show version information; all exit afterward.
-c
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.
-C
Recognize .PS, .PE, .PF, and .PY even when followed by a character other than space or newline.
-n
Don’t use groff extensions to the troff drawing commands. Specify this option if a postprocessor you’re using doesn’t support these extensions, described in
This option also causes pic not to use zero-length lines to draw dots in troff mode.
-S
Operate in safer mode; sh commands are ignored. This mode, enabled by default, can be useful when operating on untrustworthy input.
-t
Produce TeX output.
-U
Operate in unsafe mode; sh commands are interpreted.
-z
In TeX mode, draw dots using zero-length lines.
The following options supported by other versions of pic are ignored.
-D
Draw all lines using the \D escape sequence. GNU pic always does this.
**-T **dev
Generate output for the troff device dev. This is unnecessary because the troff output generated by GNU pic is device-independent.
Usage
This section primarily discusses the differences between GNU pic and the Eighth Edition Research Unix version of AT&T pic (1985). Many of these differences also apply to later versions of AT&T pic.
TeX mode
TeX-compatible output is produced when the -t option is specified. You must use a TeX driver that supports tpic version 2 specials. (tpic was a fork of AT&T pic by Tim Morgan of the University of California at Irvine that diverged from its source around 1984. It is best known today for lending its name to a group of \special commands it produced for TeX.)
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 the value of aselineskip. Anything else may well produce undesirable results; use at your own risk. By default, lines beginning with a dot are not treated specially—but see the -c option.
In TeX mode, pic will define a vbox called \graph for each picture. Use GNU pic’s figname command to change the name of the vbox. You must print that vbox yourself using the command
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.