"Personal Fonts Maker - 12. Other Utilities" 12. Other Utilities 12.1 TextChars 12.2 PrintRawFiles 12.3 RevLin 12.4 AskAssign 12.5 Predefined Macros 12.5.1 The "Shadow" Macro 12.5.2 The "Outline" Macro 12.5.3 The "OutlineSqr" Macro 12.5.4 The "CopyOver127" Macro 12.5.5 The "SetSpcKrn" Macro 12.6 Predefined Parameter Files 12.6.1 Parameter Files: "StartupF1.prf" 12.6.2 Parameter Files: "StartupF2.prf" 12.6.3 Parameter Files: "SizeTable.prf" 12.6.4 Parameter Files: Printer Font Descriptions 12.6.5 Parameter Files: Printer Driver Modifier Definitions 12.7 Predefined Fonts 12.8 Predefined Character Sets "Personal Fonts Maker - 12. Other Utilities" 12. Other Utilities The Personal Fonts Maker comes with different utility programs designed to work in the same environment in which the main program is used. The Printer Driver Modifier, which is the most complex of these support programs, is described in chapters 9 to 11. This chapter describes some other programs stored in the "PFM_Tools" drawer of the program disk, as well as how to use some data files which are enclosed with the Personal Fonts Maker. 12.1 TextChars This utility is particularly useful to reduce the size of the printer download data to a minimum. This may be necessary if the printer's memory is not sufficient to store all the characters in a font. Most characters in a font are not used together to write the same text. TextChars analyzes a text file and creates a Personal Fonts Maker macro which switches the characters which are not used in the text to "Off", as described in section 3.10. To run TextChars from the Workbench, the following icons must be selected, keeping the key pressed: the TextChars program icon, the text file icon, the character set icon, and the icon of the drawer (or volume) in which the macro is to be saved. The last icon must be selected with a double-click. The order in which the four icons are selected must be exactly as described above. The key must be pressed immediately after the selection of the first icon. The program can also be run from the Amiga Shell or Command Line Interface. In this case, the same file names must be written in the command line to be executed. The text file must be a plain text file, i.e. with no formatting or control sequences. The Amiga character set must be used to store the text. The character set file to be selected must be the set used in the font to be downloaded (by the printer too, usually). The selected character set may be (and in most cases is) different from the Amiga set. As an output, TextChars creates a macro file with the same name as the text file plus the standard ".mcr" suffix. A Workbench icon is also associated with the new macro. TextChars does not print the text, nor download a font. The macro generated by the program can be loaded from the Personal Fonts Maker. After the macro is executed, only the characters in the current font which are used in the text analyzed by TextChars will be marked as "On" (section 3.10, "The 'ON/OFF' Gadget"). As described in section 7.3.7 ("OFF Sequence"), characters marked as "Off" are usually not downloaded to a printer, and therefore do not occupy any printer memory. The font must be downloaded with the Personal Fonts Maker, as described in section 4.13 ("Write Font Data"). The text can then be printed with a word processor. 12.2 PrintRawFiles As described in section 4.13.1 ("Write Font Data/File"), the Personal Fonts Maker can create files containing data ready to be processed by the printer. This is extremely useful to create a library of fonts which can be downloaded at any time without having to load the Personal Fonts Maker. Most word processors have a "Print File" or "Set Printer Control File" option which can be used to download a font from a file automatically. It may sometimes happen that the download needs to be done when a word processor is not at hand, or such an option does not exist in the program being used. PrintRawFiles is a compact program which sends the contents of one or more files to the printer. The data is not processed by the printer driver, and must therefore already be in the printer's format. This is generally the case for font download files created by the Personal Fonts Maker. Files containing data which other programs intended to print, but which were deviated to a file with the Commodore "Cmd" program (which can be found in the "Utilities" drawer of the Workbench disk) can also be printed with PrintRawFiles. The standard file name suffix for printer font files created by the Personal Fonts Maker is ".pft", as described in section 1.4 ("File Names and Titles"). This makes printer font files immediately recognizable by their name. The icons associated with the printer font files created by the Personal Fonts Maker contain an information, called the default tool, which tells the operating system about the program to be executed when that icon is double-clicked. The default tool is the PrintRawFiles program, which is searched by the system in the "PFM_Tools" drawer of the "PFM" volume. PrintRawFiles can also be started manually. From the Workbench screen, it is sufficient to select the program's icon and then select (keeping a key pressed) one or more printer font file icons. The last icons must be double-clicked. The files are sent to the printer in the order in which they are selected. This can be extremely useful to test different fonts quickly. On selecting a font, followed by a text stored with "Cmd", that text will be printed using the desired font. Section 14.2 ("Problems with Printers") contains some suggestions on what can be done if the printer does not work as expected. If the program is started from the Amiga Shell or CLI, a maximum of 30 data files can be specified. 12.3 RevLin Some printers are capable of printing on surfaces other than paper. In some cases it may be useful to print a text in "mirror" mode, so that it can be read from the other side from which it was printed, or after some additional processing by optical equipment. Transparencies sometimes need to be treated in a particular way, so that it may be necessary to print on a particular side. This may be the case, for example, if one side is exposed to wet or heat more than the other side. In this case, the text must be printed "from the back". Some printers are advertised as being capable of printing on aluminium foil (with or without ink ribbon). This can be very nice (and "ecological", if the aluminium is recycled) to print original greeting cards, but the result is even more impressive if the text can be read from the "other" side. The "RevLin" utility (the name comes from "REVerse LINes"), combined with the Personal Fonts Maker, can be used to print text in mirror mode. RevLin takes an ASCII text file as an input, and creates a second file in which the order of the characters in each line is reversed. The lines must be separated by LF (Line Feed, decimal code 10) codes. The lines may have different lengths, but RevLin needs a right margin (maximum line length) to be determined, to format the lines properly. If no right margin is specified, the default value of 79 characters per line is used. The right margin information is important because the program has to add space characters in order to maintain the text left aligned, centred or right aligned even when it is printed starting from the margin opposite to the normal one. If such types of formattings are important, proportionally spaced characters should be avoided, since RevLin does not use a character spacing table. The text to be processed by RevLin must be in plain ASCII format. Line Feed codes (LF, decimal value 10) should mark the end of each line. This is done automatically by the print-to-file functions of word processors (e.g. "Print ASCII" in Personal Write). Control codes (e.g. underline mode or horizontal tabs) are not handled by the program. These codes can be added with a word processor, loading the text after the lines have been reversed by RevLin. RevLin does not modify the original file. Instead, a new file is created with the same name as the source plus a final "_r" suffix. RevLin can be executed from the Amiga Shell or Command Line Interface. The syntax of RevLin is: RevLin [linelength] filename For example: PFM:PFM_Tools/RevLin 60 AluText creates a file named "AluText_r" containing the same text as in "AluText", but with the characters in each line in reverse order. To print the text, a special "negative" font must be used. Such a font can easily be prepared with the Personal Fonts Maker. The "Horizontal Flip" function, described in section 5.3 is ideal for reversing the characters in a font. A macro can be created to flip all the characters in the font automatically. The font can then be downloaded to the printer, as described in sections 2.5 ("Downloaded Printer Fonts"), 4.13 ("Write Font Data") and 7.3 ("Font Description"). 12.4 AskAssign As explained in section 1.12 ("Environment Variables and Standard Drawers") it may sometimes be necessary to use the AmigaDOS "Assign" command to assign logical names. The AskAssign program, which comes with the Personal Fonts Maker package, can also be accessed with the mouse from the Workbench environment, rather than the Amiga Shell or CLI. AskAssign is also used by the InstallPFM procedure. Section 1.13.1 ("Automatic Installation: the InstallPFM Program") explains how to create drawers and select the directory (or volume) to which a logical name is to be assigned. When called by InstallPFM, AskAssign is used to specify the position where the Personal Fonts Maker environment is to be installed. If AskAssign is executed as a stand-alone program (double-clicking its Workbench icon with the mouse), an Amiga logical device name (like "PFM" or "FONTS") may be assigned. The logical device name can be modified by editing the "ASKNAME" field in the "Tool Types" string gadget of the Workbench "Info" window. To do this, the Workbench "Info" menu must be selected while the "AskAssign" icon is highlighted (e.g. after a mouse selection). The texts displayed in the file requester may be modified by editing the other fields which can be displayed in the "Tool Types" string gadget. By default, the version of AskAssign which comes with the Personal Fonts Maker package is configured to allow the user to assign the "FONTS" logical device name, if executed from the Workbench. 12.5 Predefined Macros Chapter 6 contains all the information necessary to create, analyze, use, save and load macros. The Personal Fonts Maker comes with several predefined macros, stored in the "PFM_Macros" drawers on the program and/or the data disk. The macros are identical with those which can be created by the user of the Personal Fonts Maker. These files are particularly useful to understand what can be done with a macro, and how macros work. The following subsections explain the predefined macros in detail. The name of the file containing the macro is the same as the name which is quoted, plus the standard ".mcr" suffix. 12.5.1 The "Shadow" Macro This is an extremely short and simple macro. Section 13.2 ("A Simple Macro") explains how a macro like this can be recorded. The "Shadow" macro does exactly what the name implies: it creates the image of a shadow below the current character. The macro can be repeated with the "Controlled Execution" function (section 6.8) on all characters in the font, or on a range of characters defined by the user. 12.5.2 The "Outline" Macro The "Outline" macro transforms the current character image into an outline of the original character. Section 2.3 ("Typeface Classification and Typographic Basics") contains additional information on the possible variations of a basic typeface. The outline is generated by creating a brush of the current character, pasting that same brush (OR mode) immediately on the left, top, right and bottom of the character, and finally clearing the original character (paste with right mouse button). Interesting results can be obtained by executing the macro more than once on the same character. The macro can be automatically executed on more than one character with the "Controlled Execution" function (section 6.8). 12.5.3 The "OutlineSqr" Macro This macro is similar to the "Outline" described in section 12.5.2, only that the brush is pasted eight times around the original character rather than four times. The brush is pasted in the four corners around the character (top left, top right, bottom right and bottom left). This gives a more "squared" outline than the simple "Outline" macro. 12.5.4 The "CopyOver127" Macro This macro is extremely useful for designers having to use a font created for the standard 7-bit ASCII character set as a point of departure for the creation of a full font of an 8-bit character set. This is also described in the introduction to chapter 6. The highest character code addressable with 7 bits is 127 (decimal). Many characters having a code over 127 are variants of characters which are coded by the 7-bit US ASCII set. These are the letters, for example, with accents or other diacritical signs. The "CopyOver127" macro puts a copy of the US ASCII characters to all those positions where these characters can be modified to create new characters. Several variants of this macro may exist, each working on a different 8-bit character set (e.g. PC or Amiga). In this case, a suffix is appended to the name "CopyOver127". For example, "CopyOver127_PCUsa2.mcr" identifies the macro dealing with the standard IBM PC character set. 12.5.5 The "SetSpcKrn" Macro This macro sets the "Space" parameter (section 3.5) of the current character to "X Size" (section 3.4) plus one, and the "Kerning" parameter (section 3.6) to 1 (one). The macro can be repeated on several characters with the "Controlled Execution" function (section 6.8). This is an example of how a macro can be used to modify the spacing of the characters in the text, when a font created with the Personal Fonts Maker is used. 12.6 Predefined Parameter Files Sections 2.6 ("Program and Font Parameters"), 7.1 ("Load Preferences"), 7.2 ("Save Preferences") and 7.3 ("Font Description") contain a detailed description of what can be done with Personal Fonts Maker parameter files. The Printer Driver Modifier can also store its definitions in special files, as described in sections 10.3 ("Load Definitions") and 10.4 ("Save Definitions"). The Personal Fonts Maker package comes with different predefined parameter files. Section 1.12 ("Environment Variables and Standard Drawers") explains where these files are stored. The files contain a lot of precious material to experiment with for a better understanding of program and font parameters, the Font Format Definition Language and the Printer Driver Modifier's definitions. The following subsections describe some of the most important files which come with the Personal Fonts Maker package. 12.6.1 Parameter Files: "StartupF1.prf" This file is loaded by the Personal Fonts Maker immediately after the program is loaded. If the file is found, and the parameters contained therein do not contain any errors, these are used as the default parameters for the first font environment (sections 1.11 and 2.6). 12.6.2 Parameter Files: "StartupF2.prf" This file is similar to "StartupF1.prf", but determines the initial settings of the second font environment. When the Personal Fonts Maker is loaded, it reads this file before "StartupF1.prf", so that the program parameters contained in "StartupF1.prf" (the last parameter file to be read) prevail over the same program parameters set in "StartupF2.prf". For this reason, it is not necessary to set any program parameters in "StartupF2.prf" which are also set in "StartupF1.prf". 12.6.3 Parameter Files: "SizeTable.prf" This is an example of what can be done with the Font Format Description Language. Section 13.6 ("Creating a Word Processor Font Size Table") explains the function of the FFDL sequences contained in this file. 12.6.4 Parameter Files: Printer Font Descriptions The Personal Fonts Maker comes with several parameter files containing information on different download formats of the most used printers. These files are stored in different drawers, named after the printer standards the parameter files refer to. The files describing different download formats of the Nec Pinwriter compatible printers, for example, are contained in the "Nec" drawer. One file in this drawer may be named, for example, "PinwriterPlus_PS.prf", indicating that it describes the download format for proportionally spaced fonts on a Pinwriter Plus printer. The first part of the file name usually makes the printer standard referred to by the data in the file immediately recognizable by the user. Several short suffixes can be appended to this name, usually separated by an underscore ('_') character from the first part of the file name, to further specify the kind of font which can be downloaded using the format description contained in the file. "Draft", for example, indicates that the description contained in the file refers to a draft print mode font format. "LQ" indicates a letter quality format, while "PS" is associated with the download format of proportionally spaced fonts. A number, like "10" or "12", indicates that the font format description activates a particular horizontal pitch, such as 10 or 12 characters per inch. The "Optim" suffix stands for "Optimized", and refers to a download format description which can be processed faster by the Personal Fonts Maker and the printer, but only in particular conditions (usually downloading only a set of contiguous characters). Most printers support an "Optim" format description where there are no "Off" characters between the first and the last "On" character in the font to be downloaded. On some printers it is possible to download dummy characters having zero-width (section 7.3.7, "Off Sequence") to fill the place left by "Off" characters. The standard ".prf" suffix always terminates the file name. These naming conventions are not rigid, and can be varied by the user. However, a standard for font format file names makes files created by different developers easily recognizable by all users. A parameter file containing the description of a font download format usually contains at least two important pieces of information: the format of the characters in the font (e.g. "Y Max") and the FFDL sequences which translate the font data into a format which can be interpreted by the printer. Different file name suffixes, like "PS", "LQ" or "Draft", should be used to indicate that the FFDL sequences in the font description (usually the "Prologue" and/or the "Epilogue" sequence) activate a particular print mode through the appropriate printer control sequences. These print modes are usually associated with a particular character density and format. The font format definition files which come with the Personal Fonts Maker package contain only font parameters. Program parameters do not need to be filtered by the user, as they are not contained in these parameter files. The predefined font download format description files which come with the Personal Fonts Maker cover the needs of the vast majority of Amiga users. Most printers will work with one or more of the existing formats, even if the printer's brand or model is not the same as the name of the drawer or file. The existing files can be used as a point of departure for the creation of new parameter files. Usually, it is sufficient to modify only a small part of the FFDL sequences of an existing format description to create a format suitable for a new printer. 12.6.5 Parameter Files: Printer Driver Modifier Definitions The parameter files which come with the Printer Driver Modifier are very similar to those of the Personal Fonts Maker. The Printer Driver Modifier uses these files to store the control sequences associated with the characters and the commands in a printer driver. The standard file name suffix is ".def". The subset of the Font Format Description Language adopted by the Printer Driver Modifier uses only constants to describe the control sequences. A file may contain either the definitions of the sequences associated with the commands or those for the characters whose code is between 160 and 255, or both. The files which come with the Personal Fonts Maker package contain information regarding the character set to be used by the printer. These definitions specify which control codes have to be sent to the printer to print a character whose code is greater than 127. The files are named either after a 7-bit character set (e.g. "7ITA.def"), or after a full 8-bit set (e.g. "PC_USA2.def" and "Roman8.def"). The definitions for 7-bit character sets can be used if text containing national characters (i.e. characters not in the US 7-bit ASCII set, but defined by a national 7-bit set) is to be printed with a redefined font on a printer which does not support the downloading of characters whose code is greater than 127. In this case, a 7-bit character set must be used with the Personal Fonts Maker to design (or re-arrange) the font, and the same character set can be loaded with the Printer Driver Modifier to modify the driver accordingly. The definitions of the 8-bit character sets are useful to replace complex sequences which appear in some Amiga drivers (more in section 9.2, "Problems with Standard Drivers") with a single code from the printer's character set. 12.7 Predefined Fonts The Personal Fonts Maker package comes with several original font files. The fonts are stored in the "PFM_Fonts" drawer. The default suffix for files stored in the PFM format is ".fnt". Other font-oriented suffixes are also used, as explained in section 1.4 ("File Names and Titles"). Sections 2.4 ("Storage of Fonts"), 4.3 ("Load PFM Font") and 4.4 ("Save PFM Font") have more on Personal Fonts Maker font files. The fonts which are stored on the Personal Fonts Maker disks come in sizes which are ideal for printer downloading. The heights (in dots) are always a multiple of eight. Most 8-pin and 9-pin printers, for example, can print letter quality text using a font whose height is 16. This is done by printing each line of text in two passes, as explained in section 2.5 ("Downloaded Printer Fonts"). 24-pin printers, of course, can make full use of fonts 24 dots high. A font height of 48 produces extremely good quality text not only on 48-pin printers, but also on all page printers in the 300 to 400 dpi (dots per inch) range. Different font sizes can be obtained using existing fonts as a point of departure, as explained in sections 4.3 ("Load PFM Font") and 7.10 ("Stretch"). Most printer download format description files (section 12.6.4, "Parameter Files: Printer Font Descriptions") are flexible enough to handle the downloading of fonts having sizes smaller than the maximum allowed font height. This means that a font whose height is 18 can be downloaded and printed on a 300 dpi laser printer or a 24-pin impact printer (in this case, most 24-pin printers require the font height to be redefined to 24). Some printers require the use of special commands to handle the downloading of fonts whose height rounded to the next multiple of eight is smaller than the number of printer head pins. In such a case, it may be simpler to load the small font using a larger (i.e. higher) font format, selecting the "Proceed" option (rather than "Stretch" or "Adapt") of the requester giving information on the difference between the font format and the current format (section 4.3, "Load PFM Font"). Some fonts on the Personal Fonts Maker disks were designed to produce the best-looking results when printed by partially overlapping adjacent printer pins. Section 2.5 ("Downloaded Printer Fonts") explains this printing technique in more detail. 12.8 Predefined Character Sets As explained in sections 2.8 ("Character Sets"), 4.8 ("Load Character Set") and 4.9 ("Save Character Set"), the Personal Fonts Maker comes with several character set files. These can be loaded at any time to set the character set of the current font environment. Before an Amiga font is designed, for example, the "Amiga.set" can be loaded. This ensures that the order in which the characters are arranged and the default character images adhere to the Amiga standards. Character set files are stored in the "PFM_CharSets" drawer of the Personal Fonts Maker disk. The standard suffix for character set files is ".set". As explained in sections 10.3 ("Load Definitions") and 12.6.5 ("Parameter Files: Printer Driver Modifier Definitions"), similar character set descriptions exist for the Printer Driver Modifier. Among the most important character sets is the group of "PC" sets. The "PC_Full.set" file describes a character set commonly used on many IBM (and IBM-compatible) personal computers. It is called "full", because it contains graphical characters even in those positions generally reserved for control codes like LF, ESC (Line Feed and Escape) and others. For this reason, this set is not suited for printer fonts, as control codes play a very important role in the computer-to-printer data transmission. The "PC_Usa1.set", on the contrary, reserves all codes from (decimal) 0 to 31 and 127 to 159 for control codes. The "PC_Usa2.set" is likely to be the default set for users working with impact printer download fonts. This character set is similar to the "PC_Usa1.set", but has some additional graphical characters in positions which are generally never used for printer control codes. "Roman8.set" describes the default character set of the HP LaserJet series printers and those which are compatible with them. The "Amiga.set" is, of course, the character set used by the Amiga. Character sets of other computers and operating systems also exist. These are useful to exchange data to and from different computing environments. A set of 7-bit character sets also exists. Sections 2.8 ("Character Sets"), 9.1 ("How Printer Drivers Work"), 9.2 ("Problems with Standard Drivers") and appendix E ("7-bit Character Sets") have more on these character sets. The "NoFilter.set" file describes a special character set. This set contains "dummy" character images. The special thing about this set is its encoding vector, which contains a one-to-one mapping for every character, including all control codes. The encoding vector of the set is very simple: each element contains the same code as the position code of the element in the array. Element 1 contains a 1, 2 a 2, and so on up to position 255, where a 255 code is stored. This is similar to the Amiga character set (described in section 4.10, "Define Character Set"), only that the positions which the Amiga set reserves for control codes are also mapped. It may be necessary to adopt the "NoFilter.set" description in some unusual situations so that an "Import Amiga Font" or "Export Amiga Font" operation (sections 4.5 and 4.6) will not "filter" any characters of the font. For example, some Amiga telecommunications programs work with fonts which contain all characters of the IBM PC character set (or other non-Amiga sets). The fonts are, however, stored in the standard Amiga font file format. To create such a font, the desired character set must be loaded (e.g. "PC_Usa2.set"). Then, an Amiga font (e.g. "Topaz 8") can be imported (section 4.5) and used as a point of departure to create the full font. Finally, the "NoFilter.set" character set description file can be loaded, and the font be exported (section 4.6) to create the Amiga font file which will be read by the other program. Appendices B to E contain useful tables regarding character sets.