.ig .get file includes copy of file right here. normally used as .P1 .get file .P2 discards .G1/.G2 .zzz file same as .get, but keeps .G1/.G2 .grap file runs file thru grap and pic, inserts output here input file assumed to include .G1/.G2 .dot file runs file thru dot, grap and pic, inserts output here input file does NOT include .G1/.G2 .scat file runs file thru scatmat, grap and pic, inserts output here input file does NOT include .G1/.G2 .d file prints the first 5 and last line of the file (pretty dumb so far) normally needs .P1/.P2 .. .so cprog.mac .de ge \" assumes .ge called as .get .sy trget \\n(.$ \\$2 '\\$3' '\\$4' '\\$5' | sed '/^.&.G[12]/d' >junk.\\n($$ .so junk.\\n($$ .sy rm junk.\\n($$ .. .de zz \" assumes .zz called as .zzz .sy trget \\n(.$ \\$2 '\\$3' '\\$4' '\\$5' >junk.\\n($$ .so junk.\\n($$ .sy rm junk.\\n($$ .. .de gr \" assumes called as .grap .sy grap \\$2 | pic | eqn '-d$$' >junk.\\n($$ .so junk.\\n($$ .sy rm junk.\\n($$ .. .de d ....sy sed -n -e 1,5p -e '6s/.*/ .../p' -e '$p' \\$1 >junk.\\n($$ .sy awk '{if(NR<=5)print;else x=$0}; END {if(NR>5){print "\\\\\\\\\\e&...";print x}}' \\$1 >junk.\\n($$ .so junk.\\n($$ ...sy rm junk.\\n($$ .. .de do \" assumes called as .dot .sy dot \\$2 | grap | pic | eqn '-d$$' >junk.\\n($$ .so junk.\\n($$ .sy rm junk.\\n($$ .. .de sc \" assumes called as .scat .sy scatmat \\$2 | grap | pic | eqn '-d$$' >junk.\\n($$ .so junk.\\n($$ .sy rm junk.\\n($$ ..