Date: 3 Mar 86 09:41 EST From: Harry Bovik (C410HB00) To: Harry.Bovik@A.CS.CMU.EDU Subject: Scribe Fonts Message-Id: <03Mar86.094104.HB00@A.CS.CMU.EDU> This appeared on the Scribe BBoard: 28-Feb-86 22:19 Michael E. Fryd Scribe Fonts and Size (long) From: Michael E. Fryd This post describes more than you ever wanted to know about some of the details on how Scribe handles fonts and font familes. If you don't like hacking Scribe Database files you should ignore this message. [This post does not specifically answer the question "How do I find out what fonts are available on the dover?"] One of the problems with understanding how fonts work is that different people assign different meanings to the various words. When you buy a new font for your printer, what you get is determined by what kind of printer you have. If you have a daisy wheel printer, you get a new daisy wheel. If you have a Dover or an Imagen you get bitmaps that describe one instance of font style and size (for instance Helvetica Italic 10 point). If you have a Typesetter or a PostScript printer, you get a scalable description for a font and style that can be used at any size (Helvetic Italic). Scribe calls the fonts that come with your printer "RawFonts". In general RawFonts are described in Database files with the extension ".Raw" (the Dover is an exception in uses a Fonts.Width file) If you are not pleased with the character selection in your RawFonts (perhaps most fonts do not contain '$', '"', '@', '<', or '>') you can combine characters from different RawFonts to make a logical rawfont called a TypeCase. TypeCases are defined in the database in .TYP files. A Scribe FontFamily is a two dimensional matrix, one axis is "FaceCode", the other is "Font" and each element contains a FaceCode or RawFont. Font Families are defined in .FON files. Sample Family | Facecode R | FaceCode B | FaceCode I ----------------+---------------+------------------+---------------------- BodyFont | Helvetica 10 | Helvetica 10 Bold| Helvetica 10 Italic SmallBodyFont | Helvetica 8 | Helvetica 8 Bold | Helvetica 8 Italic HeadingFont1 | Times 12 Bold | Times 12 Extra B | Times 12 Bold Italic HeadingFont2 | Times 14 Bold | Times 14 Extra B | Times 14 Bold Italic Few environments change both the Font and FaceCode. The environment used for running text (called Text) specifies BodyFont. The Environment used for FootNotes (called FNenv) specifies SmallBodyFont. Environments like @B and @I jsut select facecode B or I in the current font. Things get a little bit hairier on devices such as the LaserWriter and the Omnitech, which can scale fonts. On such devices RawFonts can scaled to almost any size. In Scribe, the selection of RawFont is still made with the "Font" and "FaceCode" environment attributes, but the size is determined by the "Size" environment attribute. For most devices (all except the GIGI) the argument to size attribute is in points. (there are about 72 points to an inch) A size of 12 gives you 12 point text. A size of +3 gives you text that is 3 points bigger then the surrounding environment. A size of -2 gives you text two points smaller. Size must always be an integer. To answer some specific questions asked in a previous post: If the database defines @heading to be (Font HeadingFont, Size +3), then Headings will be printed 3 points bigger than the surrounding text, and you must look at the FontFamily file to determine what fonts you will actually be getting. A "quad" is a unit of horizontal distance generally equal to the font height. More information on these subjects can be found in the Scribe Database Administrator's Guide.