The Hershey fonts are characters that are drawn one at a time with straight-line vectors. The VOGLE graphics library uses Hershey fonts for all it's software fonts. The characters are suitable for basic labeling over a wide range of sizes when drawn with an appropriate line width.
Now that many devices support scalable and rotatable hardware fonts the drawbacks are that the Hershey fonts typically require far more data in an output file than hardware text, usually do not look as crisp as hardware text, and can take significantly longer to render. Perhaps their biggest drawback is that they are not "editable" as text when imported into packages such as FrameMaker and MicroSoft Word. But the Hershey fonts are still useful. They do not require licensing. They are essentially device independent and are easy to scale and rotate and apply 3-dimensional perspective to. They also permit drawing characters in output formats that still do not have hardware characters available (such as most bitmap file formats).
Long ago in a galaxy far away plotters used an actual pen instead of printing rasters. They had no hardware character sets and could not do polygon fill except by hatching lines across an area. Plotters were slow and often had one mechanical pen (ie.. one color and thickness). Therefore characters were drawn with vectors. Characters needed to be composed of a minimum of strokes to optimize plotting time (and plotters had limited resolution anyway). Usually a few characters were being used to annotate a plot, not print a document. During those times the following "Hershey" stroked fonts were developed.
At about the same time data was often stored on paper cards that could hold 72 characters per card; and file space was a precious commodity so you looked for ways to minimize file size.
Computer time was expensive and drawing devices scarce, so you might very well
make characters by making a Cartesian grid with coordinate letters on the grid
on a board or paper, and draw from point to point
a shape and then write down the coordinates. Short of something more substantial
a grid of letters spaced as follows printed nearly square on
a line printer (using a fixed-space font):
BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB [B \B ]B ^B _B `B aB
BC CC DC EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC [C \C ]C ^C _C `C aC
BD CD DD ED FD GD HD ID JD KD LD MD ND OD PD QD RD SD TD UD VD WD XD YD ZD [D \D ]D ^D _D `D aD
BE CE DE EE FE GE HE IE JE KE LE ME NE OE PE QE RE SE TE UE VE WE XE YE ZE [E \E ]E ^E _E `E aE
BF CF DF EF FF GF HF IF JF KF LF MF NF OF PF QF RF SF TF UF VF WF XF YF ZF [F \F ]F ^F _F `F aF
BG CG DG EG FG GG HG IG JG KG LG MG NG OG PG QG RG SG TG UG VG WG XG YG ZG [G \G ]G ^G _G `G aG
BH CH DH EH FH GH HH IH JH KH LH MH NH OH PH QH RH SH TH UH VH WH XH YH ZH [H \H ]H ^H _H `H aH
BI CI DI EI FI GI HI II JI KI LI MI NI OI PI QI RI SI TI UI VI WI XI YI ZI [I \I ]I ^I _I `I aI
BJ CJ DJ EJ FJ GJ HJ IJ JJ KJ LJ MJ NJ OJ PJ QJ RJ SJ TJ UJ VJ WJ XJ YJ ZJ [J \J ]J ^J _J `J aJ
BK CK DK EK FK GK HK IK JK KK LK MK NK OK PK QK RK SK TK UK VK WK XK YK ZK [K \K ]K ^K _K `K aK
BL CL DL EL FL GL HL IL JL KL LL ML NL OL PL QL RL SL TL UL VL WL XL YL ZL [L \L ]L ^L _L `L aL
BM CM DM EM FM GM HM IM JM KM LM MM NM OM PM QM RM SM TM UM VM WM XM YM ZM [M \M ]M ^M _M `M aM
BN CN DN EN FN GN HN IN JN KN LN MN NN ON PN QN RN SN TN UN VN WN XN YN ZN [N \N ]N ^N _N `N aN
BO CO DO EO FO GO HO IO JO KO LO MO NO OO PO QO RO SO TO UO VO WO XO YO ZO [O \O ]O ^O _O `O aO
BP CP DP EP FP GP HP IP JP KP LP MP NP OP PP QP RP SP TP UP VP WP XP YP ZP [P \P ]P ^P _P `P aP
BQ CQ DQ EQ FQ GQ HQ IQ JQ KQ LQ MQ NQ OQ PQ QQ RQ SQ TQ UQ VQ WQ XQ YQ ZQ [Q \Q ]Q ^Q _Q `Q aQ
#--#
BR CR DR ER FR GR HR IR JR KR LR MR NR OR PR QR |RR| SR TR UR VR WR XR YR ZR [R \R ]R ^R _R `R aR
#--#
BS CS DS ES FS GS HS IS JS KS LS MS NS OS PS QS RS SS TS US VS WS XS YS ZS [S \S ]S ^S _S `S aS
BT CT DT ET FT GT HT IT JT KT LT MT NT OT PT QT RT ST TT UT VT WT XT YT ZT [T \T ]T ^T _T `T aT
BU CU DU EU FU GU HU IU JU KU LU MU NU OU PU QU RU SU TU UU VU WU XU YU ZU [U \U ]U ^U _U `U aU
BV CV DV EV FV GV HV IV JV KV LV MV NV OV PV QV RV SV TV UV VV WV XV YV ZV [V \V ]V ^V _V `V aV
--BW--CW--DW--EW--FW--GW--HW--IW--JW--KW--LW--MW--NW--OW--PW--QW--RW--SW--TW--UW--VW--WW--XW--YW--ZW--[W--\W--]W--^W--_W--`W--aW
Very Small
--BX--CX--DX--EX--FX--GX--HX--IX--JX--KX--LX--MX--NX--OX--PX--QX--RX--SX--TX--UX--VX--WX--XX--YX--ZX--[X--\X--]X--^X--_X--`X--aX
Small
BY CY DY EY FY GY HY IY JY KY LY MY NY OY PY QY RY SY TY UY VY WY XY YY ZY [Y \Y ]Y ^Y _Y `Y aY
BZ CZ DZ EZ FZ GZ HZ IZ JZ KZ LZ MZ NZ OZ PZ QZ RZ SZ TZ UZ VZ WZ XZ YZ ZZ [Z \Z ]Z ^Z _Z `Z aZ
--B[--C[--D[--E[--F[--G[--H[--I[--J[--K[--L[--M[--N[--O[--P[--Q[--R[--S[--T[--U[--V[--W[--X[--Y[--Z[--[[--\[--][--^[--_[--`[--a[
Normal
B\ C\ D\ E\ F\ G\ H\ I\ J\ K\ L\ M\ N\ O\ P\ Q\ R\ S\ T\ U\ V\ W\ X\ Y\ Z\ [\ \\ ]\ ^\ _\ `\ a\
B] C] D] E] F] G] H] I] J] K] L] M] N] O] P] Q] R] S] T] U] V] W] X] Y] Z] [] \] ]] ^] _] `] a]
B^ C^ D^ E^ F^ G^ H^ I^ J^ K^ L^ M^ N^ O^ P^ Q^ R^ S^ T^ U^ V^ W^ X^ Y^ Z^ [^ \^ ]^ ^^ _^ `^ a^
B_ C_ D_ E_ F_ G_ H_ I_ J_ K_ L_ M_ N_ O_ P_ Q_ R_ S_ T_ U_ V_ W_ X_ Y_ Z_ [_ \_ ]_ ^_ __ `_ a_
B` C` D` E` F` G` H` I` J` K` L` M` N` O` P` Q` R` S` T` U` V` W` X` Y` Z` [` \` ]` ^` _` `` a`
Ba Ca Da Ea Fa Ga Ha Ia Ja Ka La Ma Na Oa Pa Qa Ra Sa Ta Ua Va Wa Xa Ya Za [a \a ]a ^a _a `a aa
Bb Cb Db Eb Fb Gb Hb Ib Jb Kb Lb Mb Nb Ob Pb Qb Rb Sb Tb Ub Vb Wb Xb Yb Zb [b \b ]b ^b _b `b ab
Anyone familiar with those times understands why the Hershey stroke data is
described in what at first seems a cryptic format like the one found here
(it made great sense at the time).
For example, to make character number 9999 (which will be a simple box) start with point "HH", draw to "H\", then "\\", \H", "HH". The character left edge will be at X coordinate "H", the right at "\" (ie.. no spacing between this character and others). The description in the data file then looks something like ...
fffffccclrp1p2p3p4p5... 9999 5H\HHH\\\\HHHWhere fffff is the character ID number, ccc is the count of character pairs, l is the left-most X coordinate, r the right-most X coordinate (used for character spacing), and the rest of the data to the right is the coordinates used to draw the character. Use the coordinate " R" as a flag to move to the next coordinate instead of drawing to it (you always move to the first coordinate). The count of the character pairs +1 (for the edges) is the count you put into ccc. If you get to column 72, start a new line. Note that "RR" is the center of the "character". That's how the data is stored (see the README file in the data directory for further info).
The hershey subtree contains the ASCII data files that define the strokes used to compose the hershey fonts and the h2v program that converts these files to the specific binary format used by the Vogle graphics library.
This distribution consists of 3 essential directories:
The src directory which contains:
The following is an excerpt from the original Usenet distribution. Latest rumours have it that the book referred to is now only available on microfiche. So, the program EXE/see_hershey_data.F is available for reading the entire file. It requires the VOGLE graphics library and some auxiliary routines not provided in the hershey distribution itself.
This distribution is made possible through the collective encouragement of the Usenet Font Consortium, a mailing list that sprang to life to get this accomplished and that will now most likely disappear into the mists of time... Thanks are especially due to Jim Hurt, who provided the packed font data for the distribution, along with a lot of other help. This file describes the Hershey Fonts in general, along with a description of the other files in this distribution and a simple re-distribution restriction. USE RESTRICTION: This distribution of the Hershey Fonts may be used by anyone for any purpose, commercial or otherwise, providing that: 1. The following acknowledgements must be distributed with the font data: - The Hershey Fonts were originally created by Dr. A. V. Hershey while working at the U. S. National Bureau of Standards. - The format of the Font data in this distribution was originally created by James Hurt Cognition, Inc. 900 Technology Park Drive Billerica, MA 01821 (mit-eddie!ci-dandelion!hurt) 2. The font data in this distribution may be converted into any other format *EXCEPT* the format distributed by the U.S. NTIS (which organization holds the rights to the distribution and use of the font data in that particular format). Not that anybody would really *want* to use their format... each point is described in eight bytes as "xxx yyy:", where xxx and yyy are the coordinate values as ASCII numbers. *PLEASE* be reassured: The legal implications of NTIS' attempting to control a particular form of the Hershey Fonts *are* troubling. HOWEVER: We have been endlessly and repeatedly assured by NTIS that they do not care what we do with our version of the font data, they do not want to know about it, they understand that we are distributing this information all over the world, etc etc etc... but because it isn't in their *exact* distribution format, they just don't care!!! So go ahead and use the data with a clear conscience! (If you feel bad about it, take a smaller deduction for something on your taxes next week...) The Hershey Fonts: - are a set of more than 2000 glyph (symbol) descriptions in vector (point-to-point ) format - can be grouped as almost 20 'occidental' (english, greek, cyrillic) fonts, 3 or more 'oriental' (Kanji, Hiragana, and Katakana) fonts, and a few hundred miscellaneous symbols (mathematical, musical, cartographic, etc etc) - are suitable for typographic quality output on a vector device (such as a plotter) when used at an appropriate scale. - were digitized by Dr. A. V. Hershey while working for the U.S. Government National Bureau of Standards (NBS). - are in the public domain, with a few caveats: - They are available from NTIS (National Technical Info. Service) in a computer-readable form which is *not* in the public domain. This format is described in a hardcopy publication "Tables of Coordinates for Hershey's Repertory of Occidental Type Fonts and Graphic Symbols" available from NTIS for less than $20 US (phone number +1 703 487 4763). - NTIS does not care about and doesn't want to know about what happens to Hershey Font data that is not distributed in their exact format. - This distribution is not in the NTIS format, and thus is only subject to the simple restriction described at the top of this file. Hard Copy samples of the Hershey Fonts are best obtained by purchasing the book described above from NTIS. It contains a sample of all of the Occidental symbols (but none of the Oriental symbols).