xref: /plan9/sys/src/cmd/gs/doc/Hershey.htm (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
13ff48bf5SDavid du Colombier<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
27dd7cddfSDavid du Colombier<html>
37dd7cddfSDavid du Colombier<head>
47dd7cddfSDavid du Colombier<title>Hershey fonts for Ghostscript</title>
5*593dc095SDavid du Colombier<!-- $Id: Hershey.htm,v 1.5 2002/02/21 21:36:33 giles Exp $ -->
67dd7cddfSDavid du Colombier<!-- Originally: hershey.txt -->
73ff48bf5SDavid du Colombier<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
87dd7cddfSDavid du Colombier</head>
97dd7cddfSDavid du Colombier
107dd7cddfSDavid du Colombier<body>
117dd7cddfSDavid du Colombier<!-- [1.0 begin visible header] ============================================ -->
127dd7cddfSDavid du Colombier
137dd7cddfSDavid du Colombier<!-- [1.1 begin headline] ================================================== -->
147dd7cddfSDavid du Colombier
153ff48bf5SDavid du Colombier<h1>Hershey fonts for Ghostscript</h1>
167dd7cddfSDavid du Colombier
177dd7cddfSDavid du Colombier<!-- [1.1 end headline] ==================================================== -->
187dd7cddfSDavid du Colombier
197dd7cddfSDavid du Colombier<!-- [1.2 begin table of contents] ========================================= -->
207dd7cddfSDavid du Colombier
217dd7cddfSDavid du Colombier<!-- [1.2 end table of contents] =========================================== -->
227dd7cddfSDavid du Colombier
237dd7cddfSDavid du Colombier<!-- [1.3 begin hint] ====================================================== -->
247dd7cddfSDavid du Colombier
257dd7cddfSDavid du Colombier<p>
267dd7cddfSDavid du ColombierThis file, unlike the rest of Ghostscript, consists entirely of information
273ff48bf5SDavid du Colombiercopied from public sources.  It therefore is not covered by the
287dd7cddfSDavid du ColombierGhostscript copyright or license: it is in the public domain.
297dd7cddfSDavid du Colombier
307dd7cddfSDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript
317dd7cddfSDavid du Colombieroverview</a>. You can also read about <a href="Fonts.htm">Ghostscript
327dd7cddfSDavid du Colombierfonts</a> in general.
337dd7cddfSDavid du Colombier
347dd7cddfSDavid du Colombier<!-- [1.3 end hint] ======================================================== -->
357dd7cddfSDavid du Colombier
367dd7cddfSDavid du Colombier<hr>
377dd7cddfSDavid du Colombier
387dd7cddfSDavid du Colombier<!-- [1.0 end visible header] ============================================== -->
397dd7cddfSDavid du Colombier
407dd7cddfSDavid du Colombier<!-- [2.0 begin contents] ================================================== -->
417dd7cddfSDavid du Colombier
427dd7cddfSDavid du Colombier<pre>
437dd7cddfSDavid du ColombierMod.sources:  Volume 4, Issue 42
447dd7cddfSDavid du ColombierSubmitted by: pyramid!octopus!pete (Pete Holzmann)
457dd7cddfSDavid du Colombier
467dd7cddfSDavid du ColombierThis is part 1 of five parts of the first Usenet distribution of
477dd7cddfSDavid du Colombierthe Hershey Fonts. See the README file for more details.
487dd7cddfSDavid du Colombier
497dd7cddfSDavid du ColombierPeter Holzmann, Octopus Enterprises
507dd7cddfSDavid du ColombierUSPS: 19611 La Mar Court, Cupertino, CA 95014
517dd7cddfSDavid du ColombierUUCP: {hplabs!hpdsd,pyramid}!octopus!pete
527dd7cddfSDavid du ColombierPhone: 408/996-7746
537dd7cddfSDavid du Colombier
547dd7cddfSDavid du ColombierThis distribution is made possible through the collective encouragement
557dd7cddfSDavid du Colombierof the Usenet Font Consortium, a mailing list that sprang to life to get
567dd7cddfSDavid du Colombierthis accomplished and that will now most likely disappear into the mists
577dd7cddfSDavid du Colombierof time... Thanks are especially due to Jim Hurt, who provided the packed
587dd7cddfSDavid du Colombierfont data for the distribution, along with a lot of other help.
597dd7cddfSDavid du Colombier
607dd7cddfSDavid du ColombierThis file describes the Hershey Fonts in general, along with a description of
617dd7cddfSDavid du Colombierthe other files in this distribution and a simple re-distribution restriction.
627dd7cddfSDavid du Colombier
637dd7cddfSDavid du ColombierUSE RESTRICTION:
647dd7cddfSDavid du Colombier        This distribution of the Hershey Fonts may be used by anyone for
657dd7cddfSDavid du Colombier        any purpose, commercial or otherwise, providing that:
667dd7cddfSDavid du Colombier                1. The following acknowledgements must be distributed with
677dd7cddfSDavid du Colombier                        the font data:
687dd7cddfSDavid du Colombier                        - The Hershey Fonts were originally created by Dr.
697dd7cddfSDavid du Colombier                                A. V. Hershey while working at the U. S.
707dd7cddfSDavid du Colombier                                National Bureau of Standards.
717dd7cddfSDavid du Colombier                        - The format of the Font data in this distribution
727dd7cddfSDavid du Colombier                                was originally created by
737dd7cddfSDavid du Colombier                                        James Hurt
747dd7cddfSDavid du Colombier                                        Cognition, Inc.
757dd7cddfSDavid du Colombier                                        900 Technology Park Drive
767dd7cddfSDavid du Colombier                                        Billerica, MA 01821
777dd7cddfSDavid du Colombier                                        (mit-eddie!ci-dandelion!hurt)
787dd7cddfSDavid du Colombier                2. The font data in this distribution may be converted into
797dd7cddfSDavid du Colombier                        any other format *EXCEPT* the format distributed by
807dd7cddfSDavid du Colombier                        the U.S. NTIS (which organization holds the rights
817dd7cddfSDavid du Colombier                        to the distribution and use of the font data in that
827dd7cddfSDavid du Colombier                        particular format). Not that anybody would really
837dd7cddfSDavid du Colombier                        *want* to use their format... each point is described
847dd7cddfSDavid du Colombier                        in eight bytes as "xxx yyy:", where xxx and yyy are
857dd7cddfSDavid du Colombier                        the coordinate values as ASCII numbers.
867dd7cddfSDavid du Colombier
877dd7cddfSDavid du Colombier*PLEASE* be reassured: The legal implications of NTIS' attempt to control
887dd7cddfSDavid du Colombiera particular form of the Hershey Fonts *are* troubling. HOWEVER: We have
897dd7cddfSDavid du Colombierbeen endlessly and repeatedly assured by NTIS that they do not care what
907dd7cddfSDavid du Colombierwe do with our version of the font data, they do not want to know about it,
917dd7cddfSDavid du Colombierthey understand that we are distributing this information all over the world,
927dd7cddfSDavid du Colombieretc etc etc... but because it isn't in their *exact* distribution format, they
937dd7cddfSDavid du Colombierjust don't care!!! So go ahead and use the data with a clear conscience! (If
947dd7cddfSDavid du Colombieryou feel bad about it, take a smaller deduction for something on your taxes
957dd7cddfSDavid du Colombiernext week...)
967dd7cddfSDavid du Colombier
977dd7cddfSDavid du ColombierThe Hershey Fonts:
987dd7cddfSDavid du Colombier        - are a set of more than 2000 glyph (symbol) descriptions in vector
997dd7cddfSDavid du Colombier                ( &lt;x,y&gt; point-to-point ) format
1007dd7cddfSDavid du Colombier        - can be grouped as almost 20 'occidental' (english, greek,
1017dd7cddfSDavid du Colombier                cyrillic) fonts, 3 or more 'oriental' (Kanji, Hiragana,
1027dd7cddfSDavid du Colombier                and Katakana) fonts, and a few hundred miscellaneous
1037dd7cddfSDavid du Colombier                symbols (mathematical, musical, cartographic, etc etc)
1047dd7cddfSDavid du Colombier        - are suitable for typographic quality output on a vector device
1057dd7cddfSDavid du Colombier                (such as a plotter) when used at an appropriate scale.
1067dd7cddfSDavid du Colombier        - were digitized by Dr. A. V. Hershey while working for the U.S.
1077dd7cddfSDavid du Colombier                Government National Bureau of Standards (NBS).
1087dd7cddfSDavid du Colombier        - are in the public domain, with a few caveats:
1097dd7cddfSDavid du Colombier                - They are available from NTIS (National Technical Info.
1107dd7cddfSDavid du Colombier                        Service) in a computer-readable from which is *not*
1117dd7cddfSDavid du Colombier                        in the public domain. This format is described in
1127dd7cddfSDavid du Colombier                        a hardcopy publication "Tables of Coordinates for
1137dd7cddfSDavid du Colombier                        Hershey's Repertory of Occidental Type Fonts and
1147dd7cddfSDavid du Colombier                        Graphic Symbols" available from NTIS for less than
1157dd7cddfSDavid du Colombier                        $20 US (phone number +1 703 487 4763).
1167dd7cddfSDavid du Colombier                - NTIS does not care about and doesn't want to know about
1177dd7cddfSDavid du Colombier                        what happens to Hershey Font data that is not
1187dd7cddfSDavid du Colombier                        distributed in their exact format.
1197dd7cddfSDavid du Colombier                - This distribution is not in the NTIS format, and thus is
1207dd7cddfSDavid du Colombier                        only subject to the simple restriction described
1217dd7cddfSDavid du Colombier                        at the top of this file.
1227dd7cddfSDavid du Colombier
1237dd7cddfSDavid du ColombierHard Copy samples of the Hershey Fonts are best obtained by purchasing the
1247dd7cddfSDavid du Colombierbook described above from NTIS. It contains a sample of all of the Occidental
1257dd7cddfSDavid du Colombiersymbols (but none of the Oriental symbols).
1267dd7cddfSDavid du Colombier
1277dd7cddfSDavid du ColombierThis distribution:
1287dd7cddfSDavid du Colombier        - contains
1297dd7cddfSDavid du Colombier                * a complete copy of the Font data using the original
1307dd7cddfSDavid du Colombier                        glyph-numbering sequence
1317dd7cddfSDavid du Colombier                * a set of translation tables that could be used to generate
1327dd7cddfSDavid du Colombier                        ASCII-sequence fonts in various typestyles
1337dd7cddfSDavid du Colombier                * a couple of sample programs in C and Fortran that are
1347dd7cddfSDavid du Colombier                        capable of parsing the font data and displaying it
1357dd7cddfSDavid du Colombier                        on a graphic device (we recommend that if you
1367dd7cddfSDavid du Colombier                        wish to write programs using the fonts, you should
1377dd7cddfSDavid du Colombier                        hack up one of these until it works on your system)
1387dd7cddfSDavid du Colombier
1397dd7cddfSDavid du Colombier        - consists of the following files...
1407dd7cddfSDavid du Colombier                hershey.doc - details of the font data format, typestyles and
1417dd7cddfSDavid du Colombier                                symbols included, etc.
1427dd7cddfSDavid du Colombier                hersh.oc[1-4] - The Occidental font data (these files can
1437dd7cddfSDavid du Colombier                                        be catenated into one large database)
1447dd7cddfSDavid du Colombier                hersh.or[1-4] - The Oriental font data (likewise here)
1457dd7cddfSDavid du Colombier                *.hmp - Occidental font map files. Each file is a translation
1467dd7cddfSDavid du Colombier                                table from Hershey glyph numbers to ASCII
1477dd7cddfSDavid du Colombier                                sequence for a particular typestyle.
1487dd7cddfSDavid du Colombier                hershey.f77 - A fortran program that reads and displays all
1497dd7cddfSDavid du Colombier                                of the glyphs in a Hershey font file.
1507dd7cddfSDavid du Colombier                hershey.c   - The same, in C, using GKS, for MS-DOS and the
1517dd7cddfSDavid du Colombier                                PC-Color Graphics Adaptor.
1527dd7cddfSDavid du Colombier
1537dd7cddfSDavid du ColombierAdditional Work To Be Done (volunteers welcome!):
1547dd7cddfSDavid du Colombier
1557dd7cddfSDavid du Colombier        - Integrate this complete set of data with the hershey font typesetting
1567dd7cddfSDavid du Colombier                program recently distributed to mod.sources
1577dd7cddfSDavid du Colombier        - Come up with an integrated data structure and supporting routines
1587dd7cddfSDavid du Colombier                that make use of the ASCII translation tables
1597dd7cddfSDavid du Colombier        - Digitize additional characters for the few places where non-ideal
1607dd7cddfSDavid du Colombier                symbol substitutions were made in the ASCII translation tables.
1617dd7cddfSDavid du Colombier        - Make a version of the demo program (hershey.c or hershey.f77) that
1627dd7cddfSDavid du Colombier                uses the standard Un*x plot routines.
1637dd7cddfSDavid du Colombier        - Write a banner-style program using Hershey Fonts for input and
1647dd7cddfSDavid du Colombier                non-graphic terminals or printers for output.
1657dd7cddfSDavid du Colombier        - Anything else you'd like!
1667dd7cddfSDavid du Colombier
1677dd7cddfSDavid du ColombierThis file provides a brief description of the contents of the Occidental
1687dd7cddfSDavid du ColombierHershey Font Files. For a complete listing of the fonts in hard copy, order
1697dd7cddfSDavid du ColombierNBS Special Publication 424, "A contribution to computer typesetting
1707dd7cddfSDavid du Colombiertechniques: Tables of Coordinates for Hershey's Repertory of Occidental
1717dd7cddfSDavid du ColombierType Fonts and Graphic Symbols". You can get it from NTIS (phone number is
1727dd7cddfSDavid du Colombier+1 703 487 4763) for less than twenty dollars US.
1737dd7cddfSDavid du Colombier
1747dd7cddfSDavid du ColombierBasic Glyph (symbol) data:
1757dd7cddfSDavid du Colombier
1767dd7cddfSDavid du Colombier        hersh.oc1       - numbers 1 to 1199
1777dd7cddfSDavid du Colombier        hersh.oc2       - numbers 1200 to 2499
1787dd7cddfSDavid du Colombier        hersh.oc3       - numbers 2500 to 3199
1797dd7cddfSDavid du Colombier        hersh.oc4       - numbers 3200 to 3999
1807dd7cddfSDavid du Colombier
1817dd7cddfSDavid du Colombier        These four files contain approximately 19 different fonts in
1827dd7cddfSDavid du Colombierthe A-Z alphabet plus greek and cyrillic, along with hundreds of special
1837dd7cddfSDavid du Colombiersymbols, described generically below.
1847dd7cddfSDavid du Colombier
1857dd7cddfSDavid du Colombier        There are also four files of Oriental fonts (hersh.or[1-4]). These
1867dd7cddfSDavid du Colombierfiles contain symbols from three Japanese alphabets (Kanji, Hiragana, and
1877dd7cddfSDavid du ColombierKatakana). It is unknown what other symbols may be contained therein, nor
1887dd7cddfSDavid du Colombieris it known what order the symbols are in (I don't know Japanese!).
1897dd7cddfSDavid du Colombier
1907dd7cddfSDavid du Colombier        Back to the Occidental files:
1917dd7cddfSDavid du Colombier
1927dd7cddfSDavid du ColombierFonts:
1937dd7cddfSDavid du Colombier        Roman: Plain, Simplex, Duplex, Complex Small, Complex, Triplex
1947dd7cddfSDavid du Colombier        Italic: Complex Small, Complex, Triplex
1957dd7cddfSDavid du Colombier        Script: Simplex, Complex
1967dd7cddfSDavid du Colombier        Gothic: German, English, Italian
1977dd7cddfSDavid du Colombier        Greek: Plain, Simplex, Complex Small, Complex
1987dd7cddfSDavid du Colombier        Cyrillic: Complex
1997dd7cddfSDavid du Colombier
2007dd7cddfSDavid du ColombierSymbols:
2017dd7cddfSDavid du Colombier        Mathematical (227-229,232,727-779,732,737-740,1227-1270,2227-2270,
2027dd7cddfSDavid du Colombier                        1294-1412,2294-2295,2401-2412)
2037dd7cddfSDavid du Colombier        Daggers (for footnotes, etc) (1276-1279, 2276-2279)
2047dd7cddfSDavid du Colombier        Astronomical (1281-1293,2281-2293)
2057dd7cddfSDavid du Colombier        Astrological (2301-2312)
2067dd7cddfSDavid du Colombier        Musical (2317-2382)
2077dd7cddfSDavid du Colombier        Typesetting (ffl,fl,fi sorts of things) (miscellaneous places)
2087dd7cddfSDavid du Colombier        Miscellaneous (mostly in 741-909, but also elsewhere):
2097dd7cddfSDavid du Colombier                - Playing card suits
2107dd7cddfSDavid du Colombier                - Meteorology
2117dd7cddfSDavid du Colombier                - Graphics (lines, curves)
2127dd7cddfSDavid du Colombier                - Electrical
2137dd7cddfSDavid du Colombier                - Geometric (shapes)
2147dd7cddfSDavid du Colombier                - Cartographic
2157dd7cddfSDavid du Colombier                - Naval
2167dd7cddfSDavid du Colombier                - Agricultural
2177dd7cddfSDavid du Colombier                - Highways
2187dd7cddfSDavid du Colombier                - Etc...
2197dd7cddfSDavid du Colombier
2207dd7cddfSDavid du ColombierASCII sequence translation files:
2217dd7cddfSDavid du Colombier
2227dd7cddfSDavid du Colombier        The Hershey glyphs, while in a particular order, are not in an
2237dd7cddfSDavid du Colombier        ASCII sequence. I have provided translation files that give the
2247dd7cddfSDavid du Colombier        sequence of glyph numbers that will most closely approximate the
2257dd7cddfSDavid du Colombier        ASCII printing sequence (from space through ~, with the degree
2267dd7cddfSDavid du Colombier        circle tacked on at the end) for each of the above fonts:
2277dd7cddfSDavid du Colombier
2287dd7cddfSDavid du Colombier        File names are made up of fffffftt.hmp,
2297dd7cddfSDavid du Colombier
2307dd7cddfSDavid du Colombier                where ffffff is the font style, one of:
2317dd7cddfSDavid du Colombier                        roman   Roman
2327dd7cddfSDavid du Colombier                        greek   Greek
2337dd7cddfSDavid du Colombier                        italic  Italic
2347dd7cddfSDavid du Colombier                        script  Script
2357dd7cddfSDavid du Colombier                        cyril   Cyrillic (some characters not placed in
2367dd7cddfSDavid du Colombier                                           the ASCII sequence)
2377dd7cddfSDavid du Colombier                        gothgr  Gothic German
2387dd7cddfSDavid du Colombier                        gothgb  Gothic English
2397dd7cddfSDavid du Colombier                        gothit  Gothic Italian
2407dd7cddfSDavid du Colombier
2417dd7cddfSDavid du Colombier                and tt is the font type, one of:
2427dd7cddfSDavid du Colombier                    p       Plain (very small, no lower case)
2437dd7cddfSDavid du Colombier                    s       Simplex (plain, normal size, no serifs)
2447dd7cddfSDavid du Colombier                    d       Duplex (normal size, no serifs, doubled lines)
2457dd7cddfSDavid du Colombier                    c       Complex (normal size, serifs, doubled lines)
2467dd7cddfSDavid du Colombier                    t       Triplex (normal size, serifs, tripled lines)
2477dd7cddfSDavid du Colombier                    cs      Complex Small (Complex, smaller than normal size)
2487dd7cddfSDavid du Colombier
2497dd7cddfSDavid du ColombierThe three sizes are coded with particular base line (bottom of a capital
2507dd7cddfSDavid du Colombier        letter) and cap line (top of a capital letter) values for 'y':
2517dd7cddfSDavid du Colombier
2527dd7cddfSDavid du Colombier        Size            Base Line       Cap Line
2537dd7cddfSDavid du Colombier
2547dd7cddfSDavid du Colombier        Very Small         -5              +4
2557dd7cddfSDavid du Colombier        Small              -6              +7
2567dd7cddfSDavid du Colombier        Normal             -9              +12
2577dd7cddfSDavid du Colombier
2587dd7cddfSDavid du Colombier        (Note: some glyphs in the 'Very Small' fonts are actually 'Small')
2597dd7cddfSDavid du Colombier
2607dd7cddfSDavid du ColombierThe top line and bottom line, which are normally used to define vertical
2617dd7cddfSDavid du Colombier        spacing, are not given. Maybe somebody can determine appropriate
2627dd7cddfSDavid du Colombier        values for these!
2637dd7cddfSDavid du Colombier
2647dd7cddfSDavid du ColombierThe left line and right line, which are used to define horizontal spacing,
2657dd7cddfSDavid du Colombier        are provided with each character in the database.
2667dd7cddfSDavid du Colombier
2677dd7cddfSDavid du ColombierFormat of Hershey glyphs:
2687dd7cddfSDavid du Colombier
2697dd7cddfSDavid du Colombier5 bytes - glyphnumber
2707dd7cddfSDavid du Colombier3 bytes - length of data  length in 16-bit words including left&amp;right numbers
2717dd7cddfSDavid du Colombier1 byte  - x value of left margin
2727dd7cddfSDavid du Colombier1 byte  - x value of right margin
2737dd7cddfSDavid du Colombier(length*2)-2 bytes      - stroke data
2747dd7cddfSDavid du Colombier
2757dd7cddfSDavid du Colombierleft&amp;right margins and stroke data are biased by the value of the letter 'R'
2767dd7cddfSDavid du ColombierSubtract the letter 'R' to get the data.
2777dd7cddfSDavid du Colombier
2787dd7cddfSDavid du Colombiere.g. if the data byte is 'R', the data is 0
2797dd7cddfSDavid du Colombier     if the data byte is 'T', the data is +2
2807dd7cddfSDavid du Colombier     if the data byte is 'J', the data is -8
2817dd7cddfSDavid du Colombier
2827dd7cddfSDavid du Colombierand so on...
2837dd7cddfSDavid du Colombier
2847dd7cddfSDavid du ColombierThe coordinate system is x-y, with the origin (0,0) in the center of the
2857dd7cddfSDavid du Colombierglyph.  X increases to the right and y increases *down*.
2867dd7cddfSDavid du Colombier
2877dd7cddfSDavid du ColombierThe stroke data is pairs of bytes, one byte for x followed by one byte for y.
2887dd7cddfSDavid du Colombier
2893ff48bf5SDavid du ColombierAn 'R' in the stroke data indicates a 'lift pen and move' instruction.
2907dd7cddfSDavid du Colombier</pre>
2917dd7cddfSDavid du Colombier
2927dd7cddfSDavid du Colombier<!-- [2.0 end contents] ==================================================== -->
2937dd7cddfSDavid du Colombier
2947dd7cddfSDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== -->
2957dd7cddfSDavid du Colombier
2967dd7cddfSDavid du Colombier<hr>
2977dd7cddfSDavid du Colombier
2983ff48bf5SDavid du Colombier<p>
2993ff48bf5SDavid du Colombier<small>Public Domain.</small>
3003ff48bf5SDavid du Colombier<small>Distributed with Ghostscript 6.50, November 2000</small>
3013ff48bf5SDavid du Colombier
3027dd7cddfSDavid du Colombier<!-- [3.0 end visible trailer] ============================================= -->
3037dd7cddfSDavid du Colombier
3047dd7cddfSDavid du Colombier</body>
3057dd7cddfSDavid du Colombier</html>
306