PSAlter and fonts
PSAlter has more advanced font handling than a typical printer, allowing you to make more effective use of the fonts you have installed.
Most printers and other PostScript products offer limited control over font handling. A font may be included within a PostScript file, or may be built in to the printer. If the font cannot be found, most printers will substitute a single font (often Courier). This gives you no chance to maintain the look of a document.
Font handling features
PSAlter offers these features with font handling:
- Fonts found inside a PostScript file are handled as usual.
- When PSAlter is first installed it makes available to the program the 35 fonts which are built in to a typical PostScript printer. This is done using the fonts already installed in your Windows system, maintaining the document's appearance using advanced substitution facilities.
- If a font is referred to which is not found, you can choose what PSAlter is to do. It can substitute a specific font, as in a printer, but normally it will prompt you. Given the name of the font, you can choose a substitute from the fonts in your Windows system. These are (optionally) remembered between sessions.
- PSAlter works with TrueType fonts and also with PostScript fonts installed with Adobe Type Manager (ATM). (ATM is no longer needed in Windows 2000).
- You can use PostScript fonts even without Adobe Type Manager (though the quality is not as good), by defining one or more directories to search for fonts.
Advanced substitution features
Substitutions can be defined in PSAlter in advance, or added dynamically when a font is seen for the first time. A substitution indicates which font is to be used when a PostScript program refers to a particular name. For instance, if you do not have the Helvetica font installed, there will be a substitution in effect so that if a program asks for 'Helvetica-Bold', then the bold version of the Windows Arial font will be used.
User font substitution
User font substitution is as described above. It is under your control. Substitutions can be grouped into 'packages' and they can be selectively enabled or disabled. New substitutions are automatically added to a package 'Not saved'. On exit, if anything is left in 'Not Saved' you are given the choice of discarding it or moving it to a saved package for future runs.
Special features available when choosing a font substitute include the ability to define a horizontal scale factor. For instance, you might define Helvetica-Wide to mean Arial with a width of 130%. You can also define a font to be a symbol font, to avoid the remapping of accented characters which PSAlter does automatically.
A substitute font uses the width of the Windows font, by default, which means spacing could go astray. You can avoid this by using metrics files.
System font substitution
When it is installed, PSAlter comes with a set of system font substitutions already defined. The aim of this is to give the best possible reproduction of the 35 fonts which are built in to a typical PostScript printer.
Several alternative substitutions are defined. For instance, if you have installed the 'Adobe Type Basics' product, you will have all of the 35 fonts already installed, and PSAlter will use them. If they are not found, PSAlter will try a series of commercial font packages, and conclude by providing substitutes from the fonts built into every Windows system. Because the widths are correct, text should be perfectly readable, and most users will find the results with just the basic fonts acceptable - see font substitution comparisons.
The following commercial font packages are recognised automatically:
- Adobe Type Basics (fonts also found in ATM Plus Pack and supplied with some versions of Acrobat Distiller). Can use a subset of fonts in any package: for instance if you have ATM only, it may have come with Times, Helvetica and Courier; these will be used.
- Microsoft TrueType font pack volume 1.
- Corel Draw versions 3 to 5.
- Built in: Arial, Times New Roman, Courier New, Symbol, Wingdings.
If you have a different collection it can readily be added as a user package.
If you have a collection of PostScript fonts but do not want to install them into ATM, you can define to PSAlter one or more font directories. These are scanned looking for font files, and the fonts are automatically available.
If practical, ATM is recommended, since it produces clearer fonts at small type sizes.
PSAlter has a highly efficient system for rescanning font directories when restarted. Because it assumes that a font file always contains the same font, it only needs to check the list of files. This means that hundreds of fonts can be used without undue delays starting PSAlter.
Font metrics (AFM files)
Each font has slightly different character spacing. The dimensions and spacing of a font are referred to as its metrics.
If one font is substituted for another, the substitute may not be exactly the same size. This can lead to reduced quality - for instance text may have gaps of areas of overlap. Since it is not always possible or desirable to obtain the actual font (apart from anything else, a large font library is extremely expensive), PSAlter allows you to provide the metrics of fonts that you do not have, in order to maintain accurate spacing.
The standard file for defining font metrics is an Adobe Font Metrics (AFM) file. This is an ASCII file in a simple format. Many font manufacturers make AFM files available freely for their fonts. Adobe make theirs available on their FTP server.
When you have collected AFM files you can put them in a directory and instruct PSAlter to search it. Then, whenever a font is substituted, the directory will be searched to see if an accurate set of metrics is available.
The full specification of AFM files is available from Adobe in Acrobat PDF (168K) format. This is very detailed, and includes much information not used by PSAlter.
Questions and answers
What types of font does PSAlter support?
Within a PostScript file, PSAlter supports the common 'type 1' and 'type 3' font format. It also supports the 'type 0' composite fonts used mostly for far Eastern fonts. However it does not support 'type 42' (TrueType) or CID fonts; these were added to later implementations of level 2 printers by Adobe, but aren't considered part of the original level 2 specification.
For substitution, PSAlter can use any TrueType font installed into Windows, or any font installed using Adobe Type Manager. Also, PostScript fonts installed into a directory provided that they start with a recognisable header given the font name.
What about Multiple Master fonts?
Multiple Master fonts are a new kind of font developed by Adobe to support variations in character shape. Because they are based on type 1 fonts, PSAlter supports them fully.
Why don't you include any fonts?
Many windows users already have their disks packed with fonts, and would not welcome several dozen more. In our experience, most users are not unduly concerned with the exact look of fonts, provided that the character spacing and style remains consistent (take a look at the font substitution comparisons).
Professional users who are particularly concerned with the look of fonts will probably already have invested in a set - quite likely one of those built in to PSAlter - containing high quality fonts suitable for use. Fonts of a sufficiently high quality would also add substantially to the cost of PSAlter, with many users paying for something that they did not need.
How do Windows fonts appear to the PostScript programmer?
This contains technical details not of interest to most users. The PostScript programmer will find that a Windows font in PSAlter can be used in exactly the same way as a resident type 1 font in a printer. These notes may be of interest:
- Windows fonts appear as type 1 PostScript fonts, except that the CharStrings entries are special. They do not exist in FontDirectory until the first reference to them.
- Fonts can be used in all contexts, including with the CharPath operator, and converting to stroked fonts by changing PaintType.
- Updating of Encoding is supported. By default, Windows fonts are assumed to follow the Microsoft font encoding and are re-encoded to use StandardEncoding. However, a font can be defined as a symbol font to prevent automatic remapping.
- The glyphs present in the font will normally be based on either StandardEncoding or SymbolEncoding, but if an AFM file is provided for the font, it can give a different set of glyphs.
- An attempt is made to support every character in StandardEncoding and ISOLatin1Encoding, even if Windows does not directly support the character. Ligatures like 'fi' and 'fl' are synthesised.
- The only known restrictions are
- a Metrics or Metrics2 dictionary cannot be used to change character spacing;
- character outlines are not 'normalised' to ensure that they are anticlockwise;
- it is not possible to access characters outside the windows encoding in an ATM font (except for the special cases of simulated ligatures for fi, fl, Lslash and lslash; note that ae and oe do appear in the Windows font encoding).
- to access characters by their glyph name in a font which is not based on either the Windows or Symbol encoding, an AFM file for the font may be needed.
We are confident that these will not affect many programs.
Go to Quite At Home.
Back to information on PSAlter.