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