3]FONT FACTS 3]General Information About Using Fonts on the Amiga. 4]This document is provided by InterActive Softworks to make the use of fonts 4]easier and more enjoyable. 4]InterActive Softworks 4]57 Post St. #811 4]San Francisco, CA 94104 4](415) 956-2660 3]Written by: 3]Lion Kuntz Fonts are the cornerstone of Desktop Publishing, and the single most vital ingredient in Desktop Video presentations, but seem to be misunderstood by many. I would like to explain some of the differences between typography and Amiga Fonts, and the differences between various Amiga programs which use fonts. Everyone knows about Guttenberg, the first mass production printer, but how many people know that the whole alphabet had not been invented yet in Guttenberg's time? The letters "J", "U", and "W" were spoken but not printed until several more centuries later. Written communication has continuously evolved for the past 100,000 years, and the Amiga is new tool to enhance communication. The Amiga screen is a painted by electron beams, constantly being refreshed or changed 60 times per second. There are three electron beams: Red, Green, and Blue, and they travel across the face of the screen drawing lines of color. It is possible to change the Typefaces and look of the printed word much faster than the eye can see. The Amiga can have animated fonts, color-cycling fonts, multi-colored fonts, scrolling fonts, and more. First let me define "FONT". A "FONT" a set of characters in a single size, with one single picture for each character in the set. A Font may contain from one to 256 characters. On the Amiga there are a number of different kinds of fonts. There are two "ROM-fonts", Topaz 8 and Topaz 9. These are always available in memory for all programs to use, and are part of the KickStart operating system. A second, more common type of font is the "DiskFont", and is comprised of software modules stored on disk, and loaded into programs on request. A sub-category of DiskFont is a ColorFont, which shares all the qualities of a standard DiskFont, but contains information about additional colors to embellish the characters. DiskFonts are used in Deluxe Paint II, PageSetter, Publisher 1000, City Desk Shakespeare, Deluxe Print, Notepad, Deluxe Video, Images, Express Paint, E/FX WordPerfect, Fast Fonts, TV*Text, SetFont, VisaWrite, ProWrite, Genlock Titler, and Aegis VideoTitler. New programs are coming out weekly, so there will be more programs to use DiskFonts. An Amiga DiskFont is a software set of data which comes in three components. There is a data file which contains a bitmap of the individual characters of the font as they will appear on the video screen. The data file is always given a name which is the size of the height that the characters are fitted in -- so Topaz 8 is a set of characters which are eight or less pixels tall, and all characters fit inside that 8 pixel tall limit. The font name is "8" in this instance of a font data file, and the name Topaz is the name of the Font Family of Topaz-looking fonts. The second component of an Amiga DISKfont is a directory which contains the data files of one or more fonts in a font family. In the example above, Topaz would be the name of the directory holding the size data files. The third component of an Amiga DISKfont is a file which serves two purposes: it is a POINTER and an INDEX. The Directory has the name of the font family of sizes, and the POINTER points to that directory. The Pointer/Index file has the same name as the directory, plus a suffix of five characters ".font". The ".font" suffix is an identifier for Amiga Operating System routines which search for fonts on disk. The FONTNAME.font file is a pointer by pointing to a directory where the font sizes are kept, and an index of the actual sizes which are expected to be found in that directory. There is also additional information about the individual fonts of the size directory in the index. The Amiga Operating System makes some assumptions about important things at startup-time, when you put the WorkBench disk in the drive DF0:. Certain ASSIGNments are made at that time, being, SYS:, C:, S:, L:, LIBS:, DEVS:, and FONTS:. Unless you change these the Amiga Operating System will default to the bootup WorkBench disk, to a directory named fonts, as the home directory of your supply of fonts. If there is no FONTS directory on your WorkBench disk, it defaults to the ROM-fonts. You can change where the system searches for fonts using the CLI command ASSIGN. Please consult a good AmigaDOS manual on the use of the ASSIGN command. You may safely store other files in the fonts home directory, since the operating system examines each file for the ".font" suffix to determine which are fonts and which are not. An example of a common problem is when people delete some font datafiles of sizes they never use. They do not rebuild the dot-font header file, and the index still records the existence of fonts. In this case Deluxe Paint II will find the remaining fonts and provide a list of available sizes which actually do exist. This is because DPaint II ignores the index part of the dot-font file, but uses only the pointer to find the existing sizes. Notepad and Pagesetter, on the other hand examine the index portion of the dot-font file, and examine the font directory to see that all fonts which are listed actually do exist. If Notepad or Pagesetter find that there is discrepancy they assume that something is seriously wrong with the dot-font file and ignore all fonts pointed to by that dot-font file. In other words, as far as these two programs are concerned, if you delete one size you might as well delete them all, because none will be used until you rebuild the dot-font file. Rebuilding a dot-font file is easy with another utility on this disk from InterActive Softworks, called FontFixer. If your dot-font file is updated correctly, all programs should be able to find and load all sizes of existing fonts in the fonts home directory. If you are using a hard drive for storage of your fonts you will soon discover that your list of sizes grows too immense to be displayed by pull-down menus. DPaint II gives an unpleasant surprise if the list grows too long: if the bottom of the pull-down menu touches the bottom of the screen your screen blanks. It appears that imminent GURU failure is due. This is harmless, but it does prevent you from using your fonts. Since there are now hundreds of fonts, completely filling many disks, being able to handle lots of fonts, and swap between disks of fonts, is important to Amiga owners. Programmers have not addressed this problem adequately so far. There is a temporary solution I use, but it has a danger you must keep in mind. By using a trick on the Amiga Operating System you can relabel disks you use for FONTS collections to the name "FONTS". The operating system gives a higher priority to disks than to directories. It also ASSIGNs disks automatically while they are mounted, so a disk named "FONTS" becomes a disk named "FONTS:". (Note the colon after the name.) Unless you relabel the disk you will not be able to reASSIGN fonts. But as soon as the disk is inserted it becomes the home directory for fonts while the disk remains in the drive. Take the disk out and your previously ASSIGNed fonts home directory is active again. There is nothing to click, and nothing to type using this method. You can insert and remove disks with different collections of fonts to use in one single project using this trick. The danger in this method is that all fonts collection disks have the exact same name: "FONTS". If you ever forget and insert two disks of the exact same name, you confuse the operating system and it has to go to the GURU to ask advice. Another important thing to remember is to put the disk in the drive BEFORE the system sends out for the list of fonts available in the fonts home directory. Notepad goes looking for fonts before it even gets to the opening screen of the program, so the fonts disk must be in the drive already or it will only find the ROM fonts. DPaint loads the list when you select "Load Fonts Dir" from the fonts pull-down menu. PageSetter loads the fonts list when you select a document to edit, or select a box to create. To make your special fonts disks you need to keep in mind that the DISK is acting as the fonts home directory. The level of the disk where all directories start is called the root, and it branches, and sub-branches into what they call a tree structure. The dot-font files must be in the root. The fonts themselves need to have their directories also in the root, and the individual font datafiles must be inside their correct font directories as recorded in the index files. This is requires kluging around, but it solves a problem in the immediate present. To swap lists of fonts anytime is not possible with most programs. Pagesetter loads only the requested fonts and retains them continually in memory until free memory space gets cramped. Even after you exit PageSetter after working with some fonts, re-enter the program and start using a new set of fonts from another disk or directory, the previous fonts remain available for use. With Deluxe Paint II you load one list of fonts upon request and the only way to access another set of fonts is to use an undocumented feature hidden in the "Screen Format" selector. If you change bit-planes and/or resolution in DPaint II you flush all buffers including your custom brush, undo, spare screen, and your LIST OF FONTS! You can load a list of fonts from one disk, use some styles, and go select your currently selected screen format, and be able to load in a new list of fonts to keep adding to your painting. Just clicking "OK" without changing anything about the size or colors of your screen is enough to flush the buffers. (Be sure you've saved any custom brush you want to use again, or it will be lost by doing this.) Fonts do not use much CHIP RAM, if you have available RAM expansion memory. You can keep lots of fonts in memory without interfering with other programs use of CHIP RAM. The Amiga Operating System version 1.2 and earlier have a feature to allow fonts which have once been used by any program to continue to remain in RAM without being deleted, and be available for fast access by any other program without reloading from disk. If loaded fonts are not actually being used by any program the fonts are deleted if there is a need to use the RAM memory. Unfortunately, some people with memory monitors complain that programs do not "free-up" all the memory they use upon program exit. This is a bad reading of the true availability of the memory upon any programs genuine need, and it saves future font access time. Programmers should not necessarily cater to the "clean exit" crowd, because evidently these people have more free time in their lives to listen to their floppy disk whir reloading data which could have harmlessly remained in memory. Fonts are a series of pictures, usually letters of an alphabet (the alphabet may be roman, greek, russian, hebrew, or scientific symbols, etc.), punctuation, numerals, and other symbols. Each font comes in a single size, described by the font height from the top of the character space to the bottom of the character space. The units of width and height are the pixel, or "Picture Element". The pixel on the Amiga may be one of four possible sizes: Low-res, Interlace, Med-res, or High-res. The "point" is the term for the pixel dots. It derives from the centuries old typographer term of the PICA POINT, or 1/72 of an inch. Modern dot-matrix printers using 24 pins produce 72 dots per inch, or pica points. The pixel is not fixed, however, and will be tall or wide, depending on the currently selected resolution mode. So points on the screen will not correspond to points on paper printouts. First let's examine fonts on the screen so we can understand how to get our best printouts. Then we can look at the alternative ways to get hardcopy with satisfactory results. Most Amiga DiskFonts will be "proportional" space fonts. This means every character will get the portion of space necessary to produce a correct looking character. The lower case "i", the period ".", and some others will get little width of space because the need little. Capital letters, like "M", and "W", will get more space because they are naturally wider. These characters need to be designed this way when they are created. Some programs cannot accept proportional width fonts, like CLI and NEWCLI, ED, EMACS, SCRIBBLE!, TEXTCRAFT, and many more. With Fixed width fonts each character of a font will have the same width. Fixed width fonts are useful in programs which count columns of characters, line up columns of figures (like a spreadsheet). The pictures of each character on the screen are stored on ROM or DISK as fonts, and the position of the current location of the cursor is used as the starting point to draw the picture of the character. The screen is mapped with the top left corner of the screen being the usual starting point. Rows are the lines of dots across the width of the screen, while columns are the lines of dots from top to bottom of the screen. Counting rows and columns gives the location to begin drawing the character. This is called "BIT MAPPED GRAPHICS". Each bit, or pixel dot is mapped to one unique location on the overall screen or window. ROM-fonts and DISK-fonts are bitmaps. There is a picture somewhere used as the master that is copied to the position each time. Normally font bitmaps are not compressed, or compacted, in any way, and may use a lot of memory to store the pictures which make up a large font. The theoretical limit on the maximum size of a font is 16 megabytes, but more practically 5,000,000 bytes is the limit with existing font creation tools. This ultimate size would require a hard drive to store the font, and of course RAM expansion to load it in. The Amiga uses the display monitor as a viewing window into RAM memory. The bitmapped graphic screen can be much larger than the video viewing area. Page make-up programs, and some paint programs do this. You will only see the the part of the bitmap which appears on your monitor, although you can scroll around to see the hidden parts. Your resolution mode will determine how many rows and columns of the bitmap will be visible at any instant. In high resolution you can see 640 columns of pixels in the normal viewing window. In interlaced mode you will see 400 rows of pixels. It uses more hardware resources to view 640 columns of pixels, so that restricts your number of colors to a limit of 16. In low resolution you can get 32, or upto 4096 colors. Desktop publishing (or page make-up) software usually uses the 640 pixel wide mode to fit more information into the width of the screen, and usually uses non-interlace to avoid the bothersome screen jitter. Most programs also use a limit on the colors to 4 or 2, to make more memory available to the page displays. This is usually chosen because color printers are not as available to the users, and mass reproduction is usually done by black and white lithography or xerography. A 24 pin dot matrix printer produces 960 dots per 8 inch wide line of printout. If your page is not exactly 960 dots wide on your bitmapped graphic screen, then there will not be a one-to-one correspondence of printed dots to screen dots. "Scaling" will have to be performed. If your bitmap is 320 dots wide then exactly 3 dots wide will be printed out to represent each one dot on your dot-matrix printer. If your bitmap is 640 dots wide then you will need to print out 1.5 dots on paper for every dot on the graphic bitmap. Printers cannot print half a dot, so the program either prints out the image 640 dots wide as a 2/3rds wide image with a one-to-one correspondence, or it prints every other dot twice and the intermediate dots once. This fattens some columns of the print out and not others. It can be minimal in effect or ruinous, depending on your degree of perfectionism. Scaling is even more difficult to predict if your bitmap is an odd size in width, say 723 pixels wide. You will not get WYSIWYG, and will have to test print it to determine if your result will be acceptable for your needs. Page make-up programs take this into account, and usually provide a page width that corresponds to 24 pin printer lines. None of the bitmap can be successfully printed unless your printer supports a graphics mode to accept screen dumps. Which brings us to the subject of printer drivers and preferences. The system dumps graphics to the selected printer port, either parallel or serial, as if it was saving to a disk. The printer driver reads your preferences and prints accordingly. So preferences must be adjusted to match your desired output. Deluxe Paint II loads up your preferences file, but allows you to over-ride this at print time through a requestor window. You may decide to print in grayscale even if your preferences are set to color or B&W. The third screen back in the preferences program determines if your bitmap printout will be printed sideways or normal horizontal. Again scaling is performed to translate the number of dots in the bitmap to the number of dots in the printout for sideways printing, usually expanding the dots considerably. The threshold value determines if light colored dots will be ignored, and skipped, printing as "white", or whether they will be printed dark, even as full black. You really need to do some experimentation here to find you favorite settings. The width and height of the bitmap printout will be affected by the settings for your margins with some printers, and not at all for others which ignore margin settings. The number of lines per inch, and number of characters per inch settings will affect the scaling done by the printer drive, in addition to any scaling done by the program producing the bitmap. It is best to set for 6 lines per inch (lpi) and10-pica for pitch. Let the program do the scaling, unless you need reduced size miniature printouts, then let preferences do additional scaling through the printer- driver. Experimentation with a variety of programs and a variety of bitmaps is the best thing you can do to get predictable and consistent outputs. Kern is the typographers term for precise fitting of a character to the one to the left of it. There are character pairs which look odd or incorrect if they use the same distance between them as they do between other characters. Amiga kerning involves a positive or negative number of points where the left edge will be positioned relative to the cursor position. If a letter with a kern number of 3 is at the left margin it will be drawn 3 pixels off the left side of the screen. The kern amount is individually adjustable for each character in a font, and only applies to proportional width fonts. On the right side of the character there is a factor called "space". This is not in any way related to the blank character you get if you press the keyboard spacebar. Character "space" is a setting for each character which determines where the cursor position will be placed at the end of drawing the character. Space will affect where the next character's left edge starts. So kern, width, and space all combine to determine how a character will fit inside a word relative to the characters on each side of it, each with their own possibly unique kern, width, and space Amiga fonts get a uniform number of rows, or height in pixels for the letters to exist within. Fonts are stored in their directory, and named by height size. Unless the program provides user over-ride of the height factor, each line of text begins precisely at the next pixel down from where the previous one left off. If there was user control it might be called "leading" (pronounced LEDing), or "line spacing" or such. The baseline is a global factor of a font, like the height, which is the same for all characters in a font. The baseline is used as the point where all the capital letters ascend from. Other typographers terms you may encounter are the "x-height" of the letters is the uniform height of lower case letters without ascenders. "Ascenders" are those parts of lower case letters which go above the x-height (like bdfhijklt). Decenders are those parts of the characters that go below the baseline (like j, g, q and p). Incidentally, printers using pieces of reusable characters cast out of metal kept them in large cabinets of shelves of slide-out trays. The letters we call "capital" letters were kept in the top tray, or case, and the one below it held the smaller letters or lower- case. Here's where we get the still used terms for the big and small letters of the alphabet: UPPER CASE and lower case. A new form of Amiga DiskFonts are COLORFONTS. This was invented by InterActive Softworks. Their Calligrapher program is a font editor which allows you to create and modify standard Amiga DiskFonts, and to control every aspect of every character in your fonts. With the introduction of the CALLIGRAPHER they introduced ColorFonts which allow up to 16 colors per font. ColorFonts have been designated a new IFF type by Commodore, and will be included in the1.3 version of the Amiga Operating System. In the meanwhile new Amiga programs are including the code to activate colorfonts, and the first such program to arrive on the market was PRISM, a HAM paint program from Impulse. Calligrapher and other products from InterActive Softworks include a utility program called "COLORTEXT" to allow use of colorfonts in all programs which allow both color and DiskFonts to be used. Other Amiga fonts to mention, for completeness sake, are PFonts from Sparta, and Stroke font from Aegis. The PFont is a polygon font structure describing a logo-like, or turtle-graphic type of font which is scalable on the screen, and may be stretched or squashed at will. It is used in Aegis VideoTitler product. A similar concept of font is included as objects on the Aegis Videoscape-3D disk as separate characters in 3D. The stroke font is used in Aegis Draw CAD program and is one pixel wide strokes making the letters which is scalable depending on your zoom view. Ultimately these are all dumped to printer as bitmap representations of the screen bitmap, and suffer all the scaling problems in hardcopy as the others. Draw however supports pen plotters which can correctly reproduce the stroke font. TEX is a device independent font system, which adapts to the particular limitations of the Amiga display, and is also output device independent to the extent that it can be output to a number of devices and give approximately similar output on plotter, printer, laser, or phototypesetter. If output to dot-matrix it again suffers every limitation of every other type of font in the scaling of pixels to printer dots. Postscript is a page description language. It is widely used in desktop make-up programs on other computers, and there is LaserPage (PageSetter), and City Desk for the Amiga which produce output files which can be directly sent by cable or modem to laser printers or photo-typesetting machines which support the PostScript language. With PostScript you cannot truly preview what you will see on the output, but you get an approximation on the screen bitmap. Special bitmap Amiga disk-fonts are used to fill in the lines of type with a similar font to the output the PostScript device will produce. There are serious errors in how much width lines of type will need, and in how much vertical column space will be filled by the final text printout. Here's another example of a place where much experimentation will make you an expert. Laser printers use a laser diode device to demagnetize the non-printing areas of a xerography drum. The printing is done like regular xerography, and the image detail is limited to about 300 dots per inch. That is 300 dots per inch wide times 300 dots per inch tall, for a total of 90,000 dots to print a 1 inch black square. This is about four times more detail resolution than dot matrix, but only about1/4th the resolution of the cheaper photo typesetting machines. For people who are used to office typewriters and office xerography machines this is a wonderful improvement. For typographers this is proof copy, unsuitable for ever showing the the public proudly. Amiga owners with dot printers with square dots, which print a good dense black image can get close to laser quality images by printing out four times larger than their final image size and reducing the image at your local copy shop. As you reduce the image the jaggie stairstep dots are similarly reduced. A 25% reduction will give you a final image of 1/4th size. Your 72 dots per inch will now be 288 dots per inch. The final output from a cheap xerography reduction will be similar as the laser printer since they both use xerography to get the black on the paper. Low cost xerography copiers usually have a setting at 64% minimum and a reduction of a reduction will end up 42% size. Most Amigas owners can only justify a dot printer on the desktop, and this is a good cheap alternative to the high cost of laser printing.