262 lines
11 KiB
Plaintext
262 lines
11 KiB
Plaintext
This file is part of Ghostscript. Unlike the rest of Ghostscript, it
|
|
consists entirely of information copied directly from public sources. It
|
|
therefore is not covered by the Ghostscript copyright or license.
|
|
|
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
Mod.sources: Volume 4, Issue 42
|
|
Submitted by: pyramid!octopus!pete (Pete Holzmann)
|
|
|
|
|
|
This is part 1 of five parts of the first Usenet distribution of
|
|
the Hershey Fonts. See the README file for more details.
|
|
|
|
|
|
Peter Holzmann, Octopus Enterprises
|
|
USPS: 19611 La Mar Court, Cupertino, CA 95014
|
|
UUCP: {hplabs!hpdsd,pyramid}!octopus!pete
|
|
Phone: 408/996-7746
|
|
|
|
|
|
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' attempt 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
|
|
( <x,y> 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 from 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).
|
|
|
|
This distribution:
|
|
- contains
|
|
* a complete copy of the Font data using the original
|
|
glyph-numbering sequence
|
|
* a set of translation tables that could be used to generate
|
|
ASCII-sequence fonts in various typestyles
|
|
* a couple of sample programs in C and Fortran that are
|
|
capable of parsing the font data and displaying it
|
|
on a graphic device (we recommend that if you
|
|
wish to write programs using the fonts, you should
|
|
hack up one of these until it works on your system)
|
|
|
|
- consists of the following files...
|
|
hershey.doc - details of the font data format, typestyles and
|
|
symbols included, etc.
|
|
hersh.oc[1-4] - The Occidental font data (these files can
|
|
be catenated into one large database)
|
|
hersh.or[1-4] - The Oriental font data (likewise here)
|
|
*.hmp - Occidental font map files. Each file is a translation
|
|
table from Hershey glyph numbers to ASCII
|
|
sequence for a particular typestyle.
|
|
hershey.f77 - A fortran program that reads and displays all
|
|
of the glyphs in a Hershey font file.
|
|
hershey.c - The same, in C, using GKS, for MS-DOS and the
|
|
PC-Color Graphics Adaptor.
|
|
|
|
Additional Work To Be Done (volunteers welcome!):
|
|
|
|
- Integrate this complete set of data with the hershey font typesetting
|
|
program recently distributed to mod.sources
|
|
- Come up with an integrated data structure and supporting routines
|
|
that make use of the ASCII translation tables
|
|
- Digitize additional characters for the few places where non-ideal
|
|
symbol substitutions were made in the ASCII translation tables.
|
|
- Make a version of the demo program (hershey.c or hershey.f77) that
|
|
uses the standard Un*x plot routines.
|
|
- Write a banner-style program using Hershey Fonts for input and
|
|
non-graphic terminals or printers for output.
|
|
- Anything else you'd like!
|
|
|
|
SHAR_EOF
|
|
|
|
This file provides a brief description of the contents of the Occidental
|
|
Hershey Font Files. For a complete listing of the fonts in hard copy, order
|
|
NBS Special Publication 424, "A contribution to computer typesetting
|
|
techniques: Tables of Coordinates for Hershey's Repertory of Occidental
|
|
Type Fonts and Graphic Symbols". You can get it from NTIS (phone number is
|
|
+1 703 487 4763) for less than twenty dollars US.
|
|
|
|
Basic Glyph (symbol) data:
|
|
|
|
hersh.oc1 - numbers 1 to 1199
|
|
hersh.oc2 - numbers 1200 to 2499
|
|
hersh.oc3 - numbers 2500 to 3199
|
|
hersh.oc4 - numbers 3200 to 3999
|
|
|
|
These four files contain approximately 19 different fonts in
|
|
the A-Z alphabet plus greek and cyrillic, along with hundreds of special
|
|
symbols, described generically below.
|
|
|
|
There are also four files of Oriental fonts (hersh.or[1-4]). These
|
|
files contain symbols from three Japanese alphabets (Kanji, Hiragana, and
|
|
Katakana). It is unknown what other symbols may be contained therein, nor
|
|
is it known what order the symbols are in (I don't know Japanese!).
|
|
|
|
Back to the Occidental files:
|
|
|
|
Fonts:
|
|
Roman: Plain, Simplex, Duplex, Complex Small, Complex, Triplex
|
|
Italic: Complex Small, Complex, Triplex
|
|
Script: Simplex, Complex
|
|
Gothic: German, English, Italian
|
|
Greek: Plain, Simplex, Complex Small, Complex
|
|
Cyrillic: Complex
|
|
|
|
Symbols:
|
|
Mathematical (227-229,232,727-779,732,737-740,1227-1270,2227-2270,
|
|
1294-1412,2294-2295,2401-2412)
|
|
Daggers (for footnotes, etc) (1276-1279, 2276-2279)
|
|
Astronomical (1281-1293,2281-2293)
|
|
Astrological (2301-2312)
|
|
Musical (2317-2382)
|
|
Typesetting (ffl,fl,fi sorts of things) (miscellaneous places)
|
|
Miscellaneous (mostly in 741-909, but also elsewhere):
|
|
- Playing card suits
|
|
- Meteorology
|
|
- Graphics (lines, curves)
|
|
- Electrical
|
|
- Geometric (shapes)
|
|
- Cartographic
|
|
- Naval
|
|
- Agricultural
|
|
- Highways
|
|
- Etc...
|
|
|
|
|
|
ASCII sequence translation files:
|
|
|
|
The Hershey glyphs, while in a particular order, are not in an
|
|
ASCII sequence. I have provided translation files that give the
|
|
sequence of glyph numbers that will most closely approximate the
|
|
ASCII printing sequence (from space through ~, with the degree
|
|
circle tacked on at the end) for each of the above fonts:
|
|
|
|
File names are made up of fffffftt.hmp,
|
|
|
|
where ffffff is the font style, one of:
|
|
roman Roman
|
|
greek Greek
|
|
italic Italic
|
|
script Script
|
|
cyril Cyrillic (some characters not placed in
|
|
the ASCII sequence)
|
|
gothgr Gothic German
|
|
gothgb Gothic English
|
|
gothit Gothic Italian
|
|
|
|
and tt is the font type, one of:
|
|
p Plain (very small, no lower case)
|
|
s Simplex (plain, normal size, no serifs)
|
|
d Duplex (normal size, no serifs, doubled lines)
|
|
c Complex (normal size, serifs, doubled lines)
|
|
t Triplex (normal size, serifs, tripled lines)
|
|
cs Complex Small (Complex, smaller than normal size)
|
|
|
|
The three sizes are coded with particular base line (bottom of a capital
|
|
letter) and cap line (top of a capital letter) values for 'y':
|
|
|
|
Size Base Line Cap Line
|
|
|
|
Very Small -5 +4
|
|
Small -6 +7
|
|
Normal -9 +12
|
|
|
|
(Note: some glyphs in the 'Very Small' fonts are actually 'Small')
|
|
|
|
The top line and bottom line, which are normally used to define vertical
|
|
spacing, are not given. Maybe somebody can determine appropriate
|
|
values for these!
|
|
|
|
The left line and right line, which are used to define horizontal spacing,
|
|
are provided with each character in the database.
|
|
|
|
SHAR_EOF
|
|
|
|
Format of Hershey glyphs:
|
|
|
|
5 bytes - glyphnumber
|
|
3 bytes - length of data length in 16-bit words including left&right numbers
|
|
1 byte - x value of left margin
|
|
1 byte - x value of right margin
|
|
(length*2)-2 bytes - stroke data
|
|
|
|
left&right margins and stroke data are biased by the value of the letter 'R'
|
|
Subtract the letter 'R' to get the data.
|
|
|
|
e.g. if the data byte is 'R', the data is 0
|
|
if the data byte is 'T', the data is +2
|
|
if the data byte is 'J', the data is -8
|
|
|
|
and so on...
|
|
|
|
The coordinate system is x-y, with the origin (0,0) in the center of the
|
|
glyph. X increases to the right and y increases *down*.
|
|
|
|
The stroke data is pairs of bytes, one byte for x followed by one byte for y.
|
|
|
|
A ' R' in the stroke data indicates a 'lift pen and move' instruction.
|