These elements define a range of procedures for generating various 
marks.
| Source #1: [% PROCESS ps/mm %]
20 mm 20 mm whatever | PostScript Output #1: /mm { 
    72 mul 25.4 div 
} bind def
20 mm 20 mm whatever | 
| 
 | 
| Source #2: [%  PROCESS ps/mm;
    PROCESS ps/ring;
%]
20 mm 20 mm ring | PostScript Output #2: /mm { 
    72 mul 25.4 div 
} bind def
/ring {
    newpath 
    2 mm 0 360 arc
    stroke
} def
20 mm 20 mm ring | 
| 
 | 
| Source #3: [% # ps/ring loads ps/mm if necessary
   PROCESS ps/ring 
%]
20 mm 20 mm ring | PostScript Output #3: /mm { 
    72 mul 25.4 div 
} bind def
/ring {
    newpath 
    2 mm 0 360 arc
    stroke
} def
20 mm 20 mm ring | 
| 
 | 
| Source #4: [% PROCESS ps/ring radius='10 mm' %]
20 mm 20 mm ring | PostScript Output #4: /mm { 
    72 mul 25.4 div 
} bind def
/ring {
    newpath 
    2 mm 0 360 arc
    stroke
} def
20 mm 20 mm ring | 
| 
 | 
| Source #5: [% PROCESS ps/cross %]
20 mm 20 mm cross
 | PostScript Output #5: /mm { 
    72 mul 25.4 div 
} bind def
/cross {
    newpath
    moveto
   -5 mm 0 rmoveto
    5 mm 0 rlineto
    5 mm 0 rlineto
   -5 mm -5 mm rmoveto
    0 5 mm rlineto
    0 5 mm rlineto
    stroke
} def
20 mm 20 mm cross
 | 
| 
 | 
| Source #6: [%  PROCESS ps/mm;
    PROCESS ps/cross radius='10 mm'
-%]
20 mm 20 mm cross
 | PostScript Output #6: /mm { 
    72 mul 25.4 div 
} bind def
/cross {
    newpath
    moveto
   -5 mm 0 rmoveto
    5 mm 0 rlineto
    5 mm 0 rlineto
   -5 mm -5 mm rmoveto
    0 5 mm rlineto
    0 5 mm rlineto
    stroke
} def
20 mm 20 mm cross
 | 
| 
 | 
| Source #7: [%  # ps/cross loads ps/mm anyway
    PROCESS ps/cross radius='10 mm'
-%]
20 mm 20 mm cross
 | PostScript Output #7: /mm { 
    72 mul 25.4 div 
} bind def
/cross {
    newpath
    moveto
   -5 mm 0 rmoveto
    5 mm 0 rlineto
    5 mm 0 rlineto
   -5 mm -5 mm rmoveto
    0 5 mm rlineto
    0 5 mm rlineto
    stroke
} def
20 mm 20 mm cross
 | 
| 
 | 
| Source #8: [% INCLUDE ps/cross;
   INCLUDE ps/ring;
%]
20 mm 20 mm cross
20 mm 20 mm ring
 | PostScript Output #8: /mm { 
    72 mul 25.4 div 
} bind def
/cross {
    newpath
    moveto
   -5 mm 0 rmoveto
    5 mm 0 rlineto
    5 mm 0 rlineto
   -5 mm -5 mm rmoveto
    0 5 mm rlineto
    0 5 mm rlineto
    stroke
} def
/ring {
    newpath 
    2 mm 0 360 arc
    stroke
} def
20 mm 20 mm cross
20 mm 20 mm ring
 | 
| 
 | 
| Source #9: [% PROCESS ps/crosshair %]
20 mm 20 mm crosshair
 | PostScript Output #9: /mm { 
    72 mul 25.4 div 
} bind def
/ring {
    newpath 
    2 mm 0 360 arc
    stroke
} def
/cross {
    newpath
    moveto
   -5 mm 0 rmoveto
    5 mm 0 rlineto
    5 mm 0 rlineto
   -5 mm -5 mm rmoveto
    0 5 mm rlineto
    0 5 mm rlineto
    stroke
} def
/crosshair {
    /y exch def
    /x exch def
    x y ring
    x y cross
} def
20 mm 20 mm crosshair
 | 
| 
 | 
| Source #10: [% PROCESS ps/cross radius='20 mm';
   PROCESS ps/ring  radius='10 mm';
   PROCESS ps/crosshair;
-%]
20 mm 20 mm crosshair
 | PostScript Output #10: /mm { 
    72 mul 25.4 div 
} bind def
/cross {
    newpath
    moveto
   -5 mm 0 rmoveto
    5 mm 0 rlineto
    5 mm 0 rlineto
   -5 mm -5 mm rmoveto
    0 5 mm rlineto
    0 5 mm rlineto
    stroke
} def
/ring {
    newpath 
    2 mm 0 360 arc
    stroke
} def
/crosshair {
    /y exch def
    /x exch def
    x y ring
    x y cross
} def
20 mm 20 mm crosshair
 |