1 09/25/79  New Graphic Character Fonts
  2 
  3      A clean and particularly pleasing set of fonts based on the Hershey Occi-
  4 dental Character Sets are now available to users of the Multics Graphics Sys-
  5 tem.  This info file gives a brief description of this repertory, describes the
  6 available fonts, and explains how to access and use them.  In addition, persons
  7 responsible for maintaining modules that DIRECTLY access graphic_char_table_
  8 should read the section on conversion.
  9 
 10 
 11 Description of the Hershey Repertory:
 12      The Hershey Repertory consists of about 16 distinct character sets
 13 (fonts).  Each character is described as a series of vectors and shifts, allow-
 14 ing it to be drawn (stroked) on a graphics terminal, plotter, or other suitable
 15 device.  The full repertory contains various versions of the Roman, Greek, and
 16 Cyrillic alphabets, with additional standard, italic, script, and gothic forms
 17 for some sets.
 18 
 19 
 20 Difference between old and new-style characters:
 21      The "standard" font previously available via the graphic_chars_ subroutine
 22 (or via varying_text in the graphics_editor) is a simple, serviceable
 23 nine-by-seven point font.  All characters have the same dimensions, and carry
 24 with themselves a fixed inter-character spacing.  It is fast and readable; but
 25 its appearance is distinctly mechanical, and it is not suitable for formal doc-
 26 ument production or typesetting.
 27 
 28      Each character in a Hershey font has the same nominal height as its font-
 29 mates, but its width is unique.  Each character also carries two fixed
 30 inter-character spacings-- leading and trailing.  In addition, the characters
 31 are described in much more detail.  Not only are they described in terms of a
 32 64 X 64 (finer) grid, but some contain "heavy" strokes made up of several adja-
 33 cent vectors.  The resultant effect is that of proportionally-spaced type, and
 34 is very well suited for formal production work.
 35 
 36 
 37 How to use the new fonts:
 38      Users of the graphic_chars_ subroutine can specify the desired font via a
 39 call to graphic_chars_$set_table.  Note that no call to any other entry (in-
 40 cluding graphic_chars_$init) will alter this selection.
 41 
 42      Users of the graphic editor can specify a font to be used as the default
 43 font for all "varying_text" elements via the new "vtext_type" request.  Addi-
 44 tionally, a specific font may be specified for any varying_text element by spe-
 45 cifying the font to be used as the last parameter of the element.
 46 
 47 
 48 Names of defined fonts, and what they mean:
 49      All graphic character tables (GCT's) now have names beginning with "gct_".
 50 The remainder of the name specifies the complexity of the font and the style or
 51 alphabet.
 52 
 53      The complexity describes the detail to which the character is drawn, usu-
 54 ally in terms of the number of strokes used to thicken heavy portions of the
 55 character.  There are six complexities:
 56    block-- equal-sized characters, like the old standard set
 57    simplex-- no heavy portions
 58    duplex-- heavy portions stroked twice
 59    triplex-- heavy portions stroked three times
 60    complex-- heavy portions contain curves
 61    gothic-- heavy portions done in medieval style
 62 
 63 
 64      Three alphabets are defined-- Roman, Cyrillic, and Greek.  The Roman al-
 65 phabet is subdivided into several styles; namely:
 66    script
 67    italic
 68    italian
 69    german
 70    english
 71 
 72      The name of a GCT is composed of concatenations of these items, e.g.,
 73 "gct_triplex_roman_", "gct_gothic_english_".
 74 
 75     Not all possible combinations are included in the Hershey Repertory, and
 76 not all of the Hershey fonts are yet available.  For a list of available fonts,
 77 issue the command:
 78           list >unb>bound_graphic_fonts_
 79 
 80 
 81 Converting to the new GCT's:
 82      Maintainers and users of programs that call graphic_chars_ should see no
 83 change in operation.  The default character table used by graphic_chars_ is
 84 gct_block_roman_, which corresponds to the old standard character set.  Users
 85 desiring to use the new fonts should be aware of the accomodations made by
 86 graphic_chars_ to enable the use of proportional type.  The user-supplied para-
 87 meter to graphic_chars_ which specifies how wide a single character is to be is
 88 not applied to each character, but is distributed over the entire length of the
 89 string.  The result is that regardless of font, a string will always take up
 90 the same space on the screen, although the individual characters will vary.
 91 
 92      Users of the graphic editor will notice the name of the GCT appearing
 93 whenever varying_text elements are replayed;  this will have no other effect.
 94 As described above, the same accomodations are made to normalize individual
 95 character widths over the length of the entire string.
 96 
 97 
 98 Conversion from the graphic_char_table_:
 99      Maintainers of programs which reference the old graphic_char_table_ di-
100 rectly should be prepared to convert to the new-style format, which is over
101 four times more space-effective, and is largely similar to the old format.
102 Declarations for the format of new GCT's may be found in the include file
103 graphic_char_dcl.incl.pl1.