xref: /386bsd/usr/local/lib/ghostscript/doc/hershey.doc (revision a2142627)
1This file is part of Ghostscript.  Unlike the rest of Ghostscript, it
2consists entirely of information copied directly from public sources.  It
3therefore is not covered by the Ghostscript copyright or license.
4
5- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6
7Mod.sources:  Volume 4, Issue 42
8Submitted by: pyramid!octopus!pete (Pete Holzmann)
9
10
11This is part 1 of five parts of the first Usenet distribution of
12the Hershey Fonts. See the README file for more details.
13
14
15Peter Holzmann, Octopus Enterprises
16USPS: 19611 La Mar Court, Cupertino, CA 95014
17UUCP: {hplabs!hpdsd,pyramid}!octopus!pete
18Phone: 408/996-7746
19
20
21This distribution is made possible through the collective encouragement
22of the Usenet Font Consortium, a mailing list that sprang to life to get
23this accomplished and that will now most likely disappear into the mists
24of time... Thanks are especially due to Jim Hurt, who provided the packed
25font data for the distribution, along with a lot of other help.
26
27This file describes the Hershey Fonts in general, along with a description of
28the other files in this distribution and a simple re-distribution restriction.
29
30USE RESTRICTION:
31	This distribution of the Hershey Fonts may be used by anyone for
32	any purpose, commercial or otherwise, providing that:
33		1. The following acknowledgements must be distributed with
34			the font data:
35			- The Hershey Fonts were originally created by Dr.
36				A. V. Hershey while working at the U. S.
37				National Bureau of Standards.
38			- The format of the Font data in this distribution
39				was originally created by
40					James Hurt
41					Cognition, Inc.
42					900 Technology Park Drive
43					Billerica, MA 01821
44					(mit-eddie!ci-dandelion!hurt)
45		2. The font data in this distribution may be converted into
46			any other format *EXCEPT* the format distributed by
47			the U.S. NTIS (which organization holds the rights
48			to the distribution and use of the font data in that
49			particular format). Not that anybody would really
50			*want* to use their format... each point is described
51			in eight bytes as "xxx yyy:", where xxx and yyy are
52			the coordinate values as ASCII numbers.
53
54*PLEASE* be reassured: The legal implications of NTIS' attempt to control
55a particular form of the Hershey Fonts *are* troubling. HOWEVER: We have
56been endlessly and repeatedly assured by NTIS that they do not care what
57we do with our version of the font data, they do not want to know about it,
58they understand that we are distributing this information all over the world,
59etc etc etc... but because it isn't in their *exact* distribution format, they
60just don't care!!! So go ahead and use the data with a clear conscience! (If
61you feel bad about it, take a smaller deduction for something on your taxes
62next week...)
63
64The Hershey Fonts:
65	- are a set of more than 2000 glyph (symbol) descriptions in vector
66		( <x,y> point-to-point ) format
67	- can be grouped as almost 20 'occidental' (english, greek,
68		cyrillic) fonts, 3 or more 'oriental' (Kanji, Hiragana,
69		and Katakana) fonts, and a few hundred miscellaneous
70		symbols (mathematical, musical, cartographic, etc etc)
71	- are suitable for typographic quality output on a vector device
72		(such as a plotter) when used at an appropriate scale.
73	- were digitized by Dr. A. V. Hershey while working for the U.S.
74		Government National Bureau of Standards (NBS).
75	- are in the public domain, with a few caveats:
76		- They are available from NTIS (National Technical Info.
77			Service) in a computer-readable from which is *not*
78			in the public domain. This format is described in
79			a hardcopy publication "Tables of Coordinates for
80			Hershey's Repertory of Occidental Type Fonts and
81			Graphic Symbols" available from NTIS for less than
82			$20 US (phone number +1 703 487 4763).
83		- NTIS does not care about and doesn't want to know about
84			what happens to Hershey Font data that is not
85			distributed in their exact format.
86		- This distribution is not in the NTIS format, and thus is
87			only subject to the simple restriction described
88			at the top of this file.
89
90Hard Copy samples of the Hershey Fonts are best obtained by purchasing the
91book described above from NTIS. It contains a sample of all of the Occidental
92symbols (but none of the Oriental symbols).
93
94This distribution:
95	- contains
96		* a complete copy of the Font data using the original
97			glyph-numbering sequence
98		* a set of translation tables that could be used to generate
99			ASCII-sequence fonts in various typestyles
100		* a couple of sample programs in C and Fortran that are
101			capable of parsing the font data and displaying it
102			on a graphic device (we recommend that if you
103			wish to write programs using the fonts, you should
104			hack up one of these until it works on your system)
105
106	- consists of the following files...
107		hershey.doc - details of the font data format, typestyles and
108				symbols included, etc.
109		hersh.oc[1-4] - The Occidental font data (these files can
110					be catenated into one large database)
111		hersh.or[1-4] - The Oriental font data (likewise here)
112		*.hmp - Occidental font map files. Each file is a translation
113				table from Hershey glyph numbers to ASCII
114				sequence for a particular typestyle.
115		hershey.f77 - A fortran program that reads and displays all
116				of the glyphs in a Hershey font file.
117		hershey.c   - The same, in C, using GKS, for MS-DOS and the
118				PC-Color Graphics Adaptor.
119
120Additional Work To Be Done (volunteers welcome!):
121
122	- Integrate this complete set of data with the hershey font typesetting
123		program recently distributed to mod.sources
124	- Come up with an integrated data structure and supporting routines
125		that make use of the ASCII translation tables
126	- Digitize additional characters for the few places where non-ideal
127		symbol substitutions were made in the ASCII translation tables.
128	- Make a version of the demo program (hershey.c or hershey.f77) that
129		uses the standard Un*x plot routines.
130	- Write a banner-style program using Hershey Fonts for input and
131		non-graphic terminals or printers for output.
132	- Anything else you'd like!
133
134SHAR_EOF
135
136This file provides a brief description of the contents of the Occidental
137Hershey Font Files. For a complete listing of the fonts in hard copy, order
138NBS Special Publication 424, "A contribution to computer typesetting
139techniques: Tables of Coordinates for Hershey's Repertory of Occidental
140Type Fonts and Graphic Symbols". You can get it from NTIS (phone number is
141+1 703 487 4763) for less than twenty dollars US.
142
143Basic Glyph (symbol) data:
144
145        hersh.oc1       - numbers 1 to 1199
146        hersh.oc2       - numbers 1200 to 2499
147        hersh.oc3       - numbers 2500 to 3199
148        hersh.oc4       - numbers 3200 to 3999
149
150        These four files contain approximately 19 different fonts in
151the A-Z alphabet plus greek and cyrillic, along with hundreds of special
152symbols, described generically below.
153
154        There are also four files of Oriental fonts (hersh.or[1-4]). These
155files contain symbols from three Japanese alphabets (Kanji, Hiragana, and
156Katakana). It is unknown what other symbols may be contained therein, nor
157is it known what order the symbols are in (I don't know Japanese!).
158
159        Back to the Occidental files:
160
161Fonts:
162        Roman: Plain, Simplex, Duplex, Complex Small, Complex, Triplex
163        Italic: Complex Small, Complex, Triplex
164        Script: Simplex, Complex
165        Gothic: German, English, Italian
166        Greek: Plain, Simplex, Complex Small, Complex
167        Cyrillic: Complex
168
169Symbols:
170        Mathematical (227-229,232,727-779,732,737-740,1227-1270,2227-2270,
171                        1294-1412,2294-2295,2401-2412)
172        Daggers (for footnotes, etc) (1276-1279, 2276-2279)
173        Astronomical (1281-1293,2281-2293)
174        Astrological (2301-2312)
175        Musical (2317-2382)
176        Typesetting (ffl,fl,fi sorts of things) (miscellaneous places)
177        Miscellaneous (mostly in 741-909, but also elsewhere):
178                - Playing card suits
179                - Meteorology
180                - Graphics (lines, curves)
181                - Electrical
182                - Geometric (shapes)
183                - Cartographic
184                - Naval
185                - Agricultural
186                - Highways
187                - Etc...
188
189
190ASCII sequence translation files:
191
192        The Hershey glyphs, while in a particular order, are not in an
193        ASCII sequence. I have provided translation files that give the
194        sequence of glyph numbers that will most closely approximate the
195        ASCII printing sequence (from space through ~, with the degree
196        circle tacked on at the end) for each of the above fonts:
197
198        File names are made up of fffffftt.hmp,
199
200                where ffffff is the font style, one of:
201                        roman   Roman
202                        greek   Greek
203                        italic  Italic
204                        script  Script
205                        cyril   Cyrillic (some characters not placed in
206                                           the ASCII sequence)
207                        gothgr  Gothic German
208                        gothgb  Gothic English
209                        gothit  Gothic Italian
210
211                and tt is the font type, one of:
212                    p       Plain (very small, no lower case)
213                    s       Simplex (plain, normal size, no serifs)
214                    d       Duplex (normal size, no serifs, doubled lines)
215                    c       Complex (normal size, serifs, doubled lines)
216                    t       Triplex (normal size, serifs, tripled lines)
217                    cs      Complex Small (Complex, smaller than normal size)
218
219The three sizes are coded with particular base line (bottom of a capital
220        letter) and cap line (top of a capital letter) values for 'y':
221
222        Size            Base Line       Cap Line
223
224        Very Small         -5              +4
225        Small              -6              +7
226        Normal             -9              +12
227
228        (Note: some glyphs in the 'Very Small' fonts are actually 'Small')
229
230The top line and bottom line, which are normally used to define vertical
231        spacing, are not given. Maybe somebody can determine appropriate
232        values for these!
233
234The left line and right line, which are used to define horizontal spacing,
235        are provided with each character in the database.
236
237SHAR_EOF
238
239Format of Hershey glyphs:
240
2415 bytes	- glyphnumber
2423 bytes	- length of data  length in 16-bit words including left&right numbers
2431 byte	- x value of left margin
2441 byte	- x value of right margin
245(length*2)-2 bytes	- stroke data
246
247left&right margins and stroke data are biased by the value of the letter 'R'
248Subtract the letter 'R' to get the data.
249
250e.g. if the data byte is 'R', the data is 0
251     if the data byte is 'T', the data is +2
252     if the data byte is 'J', the data is -8
253
254and so on...
255
256The coordinate system is x-y, with the origin (0,0) in the center of the
257glyph.  X increases to the right and y increases *down*.
258
259The stroke data is pairs of bytes, one byte for x followed by one byte for y.
260
261A ' R' in the stroke data indicates a 'lift pen and move' instruction.
262