PostScript operators
Some basic PostScript operators.
Interaction
These operators can be used interactively in the Ghostscript interpreter (gs
).
Use =
or ==
to pop the top item from the stack and display it.
1 2 3 4 5 =
% Prints: 5
% Contents of stack: 1 2 3 4
Use stack
or pstack
to display the stack contents, one per line.
1 2 3 stack
% Prints:
% 3
% 2
% 1
Stack
clear
removes all items from the stack.
1 2 3 clear
% stack is now empty
pop
removes the top item from the stack.
1 2 3 pop
% stack: 1 2
dup
duplicates the top item on the stack.
1 2 3 dup
% stack: 1 2 3 3
n j roll
rotates the stack. This takes the top n items and rotates them j times. The sign of j indicates in which direction to rotate.
6 7 8 9 3 1 roll
% stack: 6 9 7 8
6 7 8 9 3 -1 roll
% stack: 6 8 9 7
exch
exchanges the top two items on the stack. This is useful to let procedures take arguments.
1 2 3 exch
% stack: 1 3 2
Arithmetic
Addition, subtraction, and multiplication:
1 2 add % 1 + 2 => stack: 3
3 4 sub % 3 - 4 => stack: -1
5 6 mul % 5 * 6 => stack: 30
Floating point division, integer division, and modulo:
5 3 div % 5 / 3 => stack: 1.66667
5 3 idiv % 5 / 3 => stack: 1
5 3 mod % 5 % 3 => stack: 2
Reverse sign:
1 neg % stack: -1
Variables and procedures
def
assigns a value to a key.
/ppi 72 def
% 72 is assigned to "ppi"
% stack is empty
5 ppi % stack: 5 72
mul % stack: 360