386BSD 0.1 development
[unix-history] / usr / othersrc / public / ghostscript-2.4.1 / hershey.doc
CommitLineData
4586c431
WJ
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.