* The Hershey fonts

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\\\\HHH
Where 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 data directory which contains: The fonts 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).