www.riscos.com Technical Support:
RISC OS 3.7 User Guide
RISC OS uses fonts in all its windows and directory displays. This chapter shows you how to choose, use, control and print with fonts.
Strictly speaking, a font is a set of characters with the same fontname (or typeface), weight, style and size. An example is Homerton Bold Oblique 18pt:
Your computer is supplied with a set of fonts permanently built in. You can choose the font used by the Desktop (see Fonts in the section on Configuration) and use different fonts in some application windows that allow it (e.g. Draw). Here are the fonts supplied:
Most RISC OS fonts are Acorn versions of standard fonts. The table below tells you more about this.
Most fonts can be used in any size and have italic and bold variants; some of them use proportional spacing, so that a narrow letter such as 'l' takes up less horizontal space than a wide letter, such as 'M'. Other fonts are 'monospaced' (or fixed pitch).
A serif font (like Trinity) has strokes at the edges of the letters which allow your eye to follow on from one letter to another. Sans serif fonts (like Homerton) don't have these. Sans serif fonts can make the page look tidier; they're often used for headings and other places where large font sizes are used.
Most applications let you select the size of the font you want to use. Font size is measured in points (a point being 1/72 of an inch) and is the distance between the highest ascender and lowest descender of characters in the font.
Some applications also allow you to set the font height separately. If you want characters with different height and width values, set the size first and then the height. Acorn fonts can be sized to any height or width allowed by the application.
Fonts are controlled by a part of the operating system called the Font manager. Initially, the Font manager stores just the outlines of fonts.
When you choose to use a particular font, the computer calculates the bitmap font needed to display that font at the desired size. A bitmap tells the computer exactly which pixels to paint on the screen to render a given character at a given size.
Outline fonts are converted into bitmap fonts because the computer can send these to the screen much faster.
You can purchase additional Acorn outline fonts for your system from third party suppliers (use !Boot to add new fonts. You can also use many of the PostScript type 1 fonts available, see !T1ToFont.
Two applications (Edit and Draw) are supplied that use fonts, but they use them in different ways.
Most applications you'll buy that can make use of fonts (e.g. desktop publishing packages, word processors or drawing tools) will behave like Draw.
You can use the Display/Font/Font List menu to change the font used to display text on the screen.
To use different fonts in Draw:
Now, when you type in text, it will appear in your chosen font. See the section Defining a path object's style for more details. You can also choose the outline and fill colours for the text.
You can use the Chars application to see what a particular typeface looks like before you decide to use it. You can also use Chars to enter special characters into an application window or dialogue box. See Chars.
For other ways of entering special characters, see Character sets on page 457.
The Font manager uses various techniques to optimise font quality (on-screen or printed) whilst ensuring that your computer's performance doesn't suffer.
If the outline of a character passes partially through a pixel (a pixel is the smallest building block available on the monitor screen), a non-anti-aliasing font can only paint the whole pixel or none of it. The result is a jagged edge to the character.
Anti-aliasing relies on an optical trick: the jagged edges are smoothed out by the addition of extra pixels in intermediate colours. You can see how this is done by first typing some text in an Edit window using a fairly small size (12 or 14 point) and choosing Display/Font/Trinity/Medium to display the text in an anti-aliased font. Then use !CloseUp to have a closer look at the text.
This controls a refinement of anti-aliasing in which four separate versions of each character are stored in the font cache. This can have a beneficial effect on the quality of characters at small sizes. However it is heavy on computing power (see Controlling anti-aliasing) and may result in unacceptably slow screen updates. This parameter is relevant only to the screen; it does not affect printing.
This is another technique used by the Font manager to improve the appearance of fonts. It applies both to the screen and to printers. The outline of the character being displayed (or printed) is subtly altered in ways that depend on the resolution of the image being produced. It is used on-screen if anti-aliasing is disabled.
Hinting is particularly effective when fonts are scaled, and when half-tones are not available (as on most printers). You can't control hinting, as you can anti-aliasing; it's used automatically if you disable anti-aliasing.
The computer keeps as many bitmap fonts as it can in an area of memory called the font cache. If the font cache is not large enough to hold the bitmaps of all the current fonts, any extra fonts are loaded as necessary.
The computer attempts to retain in memory the fonts which are in greatest demand, but this requires some sophisticated guesswork. Since this is not always totally successful (the computer cannot read your mind!) there is sometimes a delay as the font is loaded from the filing system and displayed on the screen.
The Font manager is set up to provide a reasonable blend of screen quality and performance for the majority of users. There is inevitably a trade-off between speed and font appearance. RISC OS provides two ways of tailoring font performance to your needs and preferences. You can
You can use the Fonts Configuration window of !Boot to place an upper limit on the size of anti-aliased fonts; fonts in larger sizes are printed without anti-aliasing. Larger fonts benefit less from anti-aliasing, and since a computed anti-aliased bitmap font occupies a lot more memory than a non-anti-aliased bitmap, for most purposes it is not worth displaying large fonts with anti-aliasing. This parameter is relevant only to the screen display.
Note: If you use sub-pixel anti-aliasing, you should increase your font cache by four times to store the extra font shapes needed. If you don't, your computer may slow down considerably.
If you're using a lot of different fonts, increasing the minimum size of the cache means that the text is drawn more quickly. You can set it permanently (see Memory) or for the current session only (see System memory allocation).
The best size for the font cache depends on several factors: how much memory your computer has, whether you have a hard disc, and the number of fonts you're using. A computer with 4MB of memory can benefit from a cache of 256KB.
If the cached bitmaps value is set high, and you're using a few large fonts - for headlines, perhaps - they may take up all the font cache, flushing out smaller fonts. The smaller characters will then have to be cached again when needed. This effect can slow down printing and the display.
This parameter is relevant for the printer, especially if you are printing documents with a lot of text. Its ideal value depends on the screen mode, printer type and the printer resolution. If you are printing at a high resolution, you may want to increase the font cache.
Warning: The Font cache size set in the Memory allocation screen is overridden by the value given in your Desktop boot file. If you change the Font cache size you must also save your Desktop boot file again so that your change can take effect (see Saving a Desktop boot file on page 53).
Note: Do not set a font cache of less than 32K. Sub-pixel anti-aliasing (see page 189) requires more font cache. For example, Homerton.Medium as a desktop font needs a font cache of 32K. With sub-pixel anti-aliasing turned on, it needs 128K. If you see an hourglass on the screen as the desktop is redrawn you may need to increase the font cache size.
You can set the maximum font cache size using the Font cache limit option on the Memory allocation screen of !Boot.
If the font cache is too small, the Font manager attempts to increase its size up to the Font cache limit. If this happens, it shrinks back to the normal current size as soon as any fonts can be discarded. The Font manager decides to do this rather than throw away cached blocks of fonts currently displayed.
If the Font cache limit is zero, or smaller than the default font cache, the cache will not expand. If you are using several fonts you may want to set this to a high value (e.g. 256K). A rough yardstick, if you're using fonts intensively, is to allow 64K per megabyte of memory.
When printing, there are conflicting requirements for memory. The Font manager needs memory to cache fonts, and the printer driver needs memory to build up a page image to send to the printer. As both of these affect printing speed, you will have to experiment to find the optimum. Typically, more memory given to the font cache (or maximum font cache option) results in quicker printing.
The maximum size of cached bitmaps affects whether fonts are cached when printing. If this value is smaller than your typical body text size, there may be a very long pause at the start of each printed page, as all the characters on the page are rendered from the outline form.
The RISC OS Printer manager program sits between an application and the printer, and oversees the printing process. Printers, printing and printer drivers are explained fully in Printing your files and Setting up printers.
Most Acorn fonts can be mapped to PostScript fonts. For more information about using Acorn fonts with PostScript printers, refer to FontPrint.
You can change the font displayed in directory displays, menus and so on. It's best to choose one of the fonts stored in the computer's ROM (e.g. Homerton or Trinity) as the screen will redraw more quickly.
If every screen redraw causes intensive disc and hourglass activity, then the font cache may be too small to hold the range of fonts you are trying to use. In these circumstances, try the following: