day@grand.UUCP (Dave Yost) (11/06/88)
When comp.fonts was formed, I hoped to see PostScript fonts posted here. But nooo, until now, not a one. In hopes of starting the flow, as it were, I hereby post a font I whipped up for drawing flow diagrams. It draws arrows and rounded-corner pipe fittings for use with Courier text (each element is the same width as a Courier character). I used it to document the flow of the spelling checker menus in the Grand Editor. I am cross-posting to comp.lang.postscript as a reminder to that group that the fonts group is here, and as an request for more posting of fonts here. It's not a nice, clean, fully-fleshed-out font, but it works. If someone would like to take it and finish it, great. A more complete set of fittings including square cornered ones would be fitting, as would all the normal font parameters that are supposed to be there. If you send the following PostScript file to your printer, you'll see what it does. --dave yost %! %%Creator: Dave Yost %%Title: Download font: flow %%CreationDate: 880129 %%Pages: 0 % November 5, 1988 Dave Yost, Grand Software, Inc. % 213-650-1089 {uunet,attmail}!grand!dyost or dyost@grand.COM % Permission granted to all to copy, enhance, and use. %%EndComments % FontDirectory /flow known{(flow in place--not loaded\n)print flush stop} % {0 serverdict begin exitserver}ifelse % - or - % 0 serverdict begin exitserver /F_flow 17 dict def F_flow begin /FontType 3 def /FontMatrix [.001000 0 0 .001000 0 0] def /FontBBox [-100 -400 700 1100 ] def /Encoding 256 array def 0 1 256 1 sub {Encoding exch /.notdef put} for /CharProcs 256 1 add dict def CharProcs begin %/PreserveWidth 32 def % Put entire width adjust into space char /.notdef {} def /.notdef {600 0 setcharwidth {}} def % 65 A curve up left Encoding 65 /A put /A { 300 -200 moveto 0 200 rlineto stroke newpath 0 0 300 0 90 arc stroke} def % 66 B curve down left Encoding 66 /B put /B { 300 800 moveto 0 -200 rlineto stroke newpath 0 600 300 0 270 arcn stroke} def % 67 C curve up right Encoding 67 /C put /C { 300 -200 moveto 0 200 rlineto stroke newpath 600 0 300 180 90 arcn stroke} def % 68 D curve down right Encoding 68 /D put /D { 300 800 moveto 0 -200 rlineto stroke newpath 600 600 300 180 270 arc stroke} def % 69 E horiz left up Encoding 69 /E put /E { 0 300 moveto 600 0 rlineto stroke newpath 600 600 300 270 180 arcn 0 200 rlineto stroke} def % 70 F horiz left down Encoding 70 /F put /F { 0 300 moveto 600 0 rlineto stroke newpath 600 0 300 90 180 arc 0 -200 rlineto stroke} def % 71 G horiz right up Encoding 71 /G put /G { 600 300 moveto -600 0 rlineto stroke newpath 0 600 300 270 0 arc 0 200 rlineto stroke} def % 72 H horiz right down Encoding 72 /H put /H { 600 300 moveto -600 0 rlineto stroke newpath 0 0 300 90 0 arcn 0 -200 rlineto stroke} def % 73 I vert up left Encoding 73 /I put /I { 300 800 moveto 0 -1000 rlineto stroke newpath 0 0 300 0 90 arc stroke} def % 74 J vert up right Encoding 74 /J put /J { 300 800 moveto 0 -1000 rlineto stroke newpath 600 0 300 180 90 arcn stroke} def % 75 K vert down left Encoding 75 /K put /K { 300 -200 moveto 0 1000 rlineto stroke newpath 0 600 300 0 270 arcn stroke} def % 76 L vert down right Encoding 76 /L put /L { 300 -200 moveto 0 1000 rlineto stroke newpath 600 600 300 180 270 arc stroke} def % 77 M horiz Encoding 77 /M put /M { 0 300 moveto 600 0 rlineto stroke } def % 78 N vert Encoding 78 /N put /N { 300 -200 moveto 0 1000 rlineto stroke } def % 79 O cross Encoding 79 /O put /O { 0 300 moveto 600 0 rlineto stroke newpath 300 -200 moveto 0 1000 rlineto stroke} def % 80 P right arrow back Encoding 80 /P put /P { 600 300 moveto 600 1000 700 270 230 arcn stroke 600 300 moveto newpath 600 -400 700 90 130 arc stroke} def % 81 Q right arrow front Encoding 81 /Q put /Q { 0 300 moveto 600 0 rlineto stroke newpath 600 1000 700 270 230 arcn stroke 600 300 moveto newpath 600 -400 700 90 130 arc stroke} def end % CharProcs %% BuildChar is called by PS %% whenever a character is to be imaged out of Code39 /BuildChar { 600 0 -300 -300 1100 1100 setcachedevice exch begin Encoding exch get CharProcs exch get end 100 setlinewidth exec } def end % Code39FontDict /flow F_flow definefont pop /DoDemo true def DoDemo { /C { /Courier findfont 50 scalefont setfont show } def /F { /flow findfont 50 scalefont setfont show } def 72 725 moveto (flowfont.ps) C 72 650 moveto (A) C (A) F (B) C (B) F (C) C (C) F (D) C (D) F 72 600 moveto (E) C (E) F (F) C (F) F (G) C (G) F (H) C (H) F 72 550 moveto (I) C (I) F (J) C (J) F (K) C (K) F (L) C (L) F 72 500 moveto (M) C (M) F (N) C (N) F (O) C (O) F (P) C (P) F (Q) C (Q) F /flow findfont 50 scalefont setfont 72 450 moveto (CFFHA) show 72 400 moveto (JOOOI) show 72 350 moveto (LOOOI) show 72 300 moveto (LOOOK) show 72 250 moveto (DEGGB) show /X { 72 200 moveto (A) C (MMMMA) F 72 150 moveto (B) C (MMA N) F 72 100 moveto (C) C (MMI N) F 72 50 moveto (D) C (MMEMEMMQ) F (E) C } def X 400 170 translate .2 .2 scale X showpage } if