Sfware A Manual for the Shell and Other Utilities Copyright 1990-92 by Norman Walsh All Rights Reserved Version 1.0 Notice: This document is written and maintained by Small Planet Software. All rights reserved. No part of this publication may be reproduced, photocopied, stored in a retrieval system, or transmitted, in any form or by any means except those provided for by the shareware license agreement of the accompanying software. Copyright 1991 by Small Planet Software All Rights Reserved Although every reasonable precaution has been taken in the preparation of this document, no warranty of any kind is made with regard to the use of this material, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. No patent or copyright liability is assumed with respect to the use of the information contained herein or the use of the accompanying software. Acknowledgments: I would like to thank Tom Bruhns and Philippe Weil for their invaluable assistance. They were my primary gunea pigs as the product went through alpha and early beta testing. Without their patience and helpful comments, neither this software nor this manual would be what they are today. All trademarks used within this document are the trademarks of their respective owners. NO WARRANTY THESE PROGRAMS ARE DISTRIBUTED FREELY. THESE PROGRAMS IS PROVIDED ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAMS IS WITH YOU. SHOULD THE PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL ANY COPYRIGHT HOLDER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMS TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Every reasonable effort has been made to assure the quality and completeness of these programs. If you have any questions, comments or suggestions, or if you believe that you have found a bug, please contact the author at the address given at the end of this document. Table of Contents 1. Introduction 2. Conventions Used in This Manual 3. Configuring Sfware 4. Running SfWare 5. Downloading Fonts 6. Special Effects 7. Compressing Fonts 8. Rotating Fonts 9. Showing Fonts 10. Viewing Fonts 11. Softfont Information 12. The Bold Effect 13. The Fixed Spacing Effect 14. The Fill Effect 15. The Halftone Effect 16. The Horizontal Fade/Mist Effect 17. The Hollow Effect 18. The Invert Effect 19. The Mirror Effect 20. The Mist Effect 21. The Outline Effect 22. The Proportional Spacing Effect 23. The Resize Effect 24. The Reverse Effect 25. The Shadow Effect 26. The Shade Effect 27. The Slant Effect 28. The Stripe Effect 29. The Three-D Drop Shadow Effect 30. The Hollow Three-D Drop Shadow Effect 31. The Filled Three-D Drop Shadow Effect 32. The Vertical Fade/Mist Effect 33. Patterns 34. Softfont Directory Listings 35. Sfware Registration 36. Contacting the Author 37. Glossary 1. Introduction The Sfware softfont utilities from Small Planet Software are MS-DOS programs distributed under a shareware license agreement. These utilities provide extensive font manipulation capabilities for HP LaserJet softfonts. The Sfware utilities allow you to download, rotate, compress, expand, view, and perform special effects on softfonts. The effects provided include bold, fill, convert to fixed spacing, halftone, hollow, invert, mirror, outline, convert to proportional spacing, resize, reverse, shade, shadow, slant, stripe, three-d, hollow-three-d, and filled-three-d. The effects can be tailored and customized for any font with various parameters and shading patterns. All of these features are available from an integrated, easy-to-use menu interface. For situations when you would like to run these programs without human intervention (to download a selected group of fonts every morning, for example) every feature is available from a stand-alone utility. The standalone utilities are described in another manual---this manual documents the menu interface. 1.1. Getting Started Sfware is ``shareware,'' and the author encourages archive maintainers to post Sfware for downloading; you may have received your copy from almost anywhere and almost anyone. Please make sure that you have a complete distribution before you try to install Sfware. 1.1.1. Hardware Requirements In order to use Sfware, you will need a PC, PS/2, or close compatible with 150KB or so of free memory. A hard disk is recommended, but not required. A LaserJet+ or compatible printer is not actually required, but Sfware is probably a little pointless without one! Note: the original LaserJet printer does not have the ability to use softfonts; the Sfware utilities cannot help you use fonts with the original LaserJet printer. If you want to use the SfShell program, you will need 300-400KB of free memory and either a hard disk, a ram disk, or sufficient expanded memory for swapping. You cannot use a removable (floppy) drive for swapping. The shell is not required for any of the features available in Sfware, but it does provide a user-interface for the Sfware utilities that is less intimidating than the command line. If you are running a version of DOS prior to 3.30, read the configuration section carefully since you may have to do a little more work to get Sfware installed. 1.1.2. Software Requirements In addition to Sfware, you must have at least one HP LaserJet softfont file. 1.1.3. Packing List Sfware is distributed in four archive files. The archives are named SFWverP1, SFWverP2, SFWverD1, and SFWverD2. In each file, the ver is replaced by the Sfware version number. Every archive contains a file called PACKING.xx that lists the files that should be present in the archive. Please make sure that you have complete archives before you proceed to install Sfware. The ``P'' archives contain the Sfware programs and both are required in order to install Sfware. The ``D'' archives contain documentation. The ``D1'' archive documents the SfShell interface, the ``D2'' archive documents the individual utilities. Please refer to the file PRINTDOC in SFWverP1 for instructions describing how to print the documentation. 1.2. Installation 1.2.1. Making Backups Like any software package, it is always advisable to make backup copies of the distribution diskettes or distribution archives. This is especially important if you use an ``on the fly'' compression program to compress executable files (e.g. PkLite). Sfware cannot be registered after it has been compressed--you will need the original programs in order to register Sfware. There is no compelling reason not to compress the programs after you have registered them. 1.2.2. Hard Drive Installation Create a subdirectory on your hard drive for the Sfware utilities; it does not matter what drive you install onto or what you name the directory. For the purpose of this manual, the directory D:\SF is assumed. Copy all of the files from the distribution diskette (or from the distribution archive) into the Sfware directory. 1.2.3. Floppy Disk Installation Copy all of the files from the distribution diskette (or from the distribution archive) onto a floppy disk. This manual assumes that Sfware has been installed in the directory D:\SF but it is not necessary to install Sfware onto a hard disk. Due to space limitations on floppy disks, it may not be possible to place all of the files on a single diskette. If is the case, it is recommended that you put SFSHELL.EXE and SFSHELL.HLP, on one floppy and all of the other utilities on a second floppy. If you do not plan to use the shell, you will not need the SfShell files on a diskette. If you use a floppy-only system, you will only be able to use the SfShell program if you have sufficient expanded memory (EMS) for SfShell to use a swapping space when it runs the other utility programs. SfShell requires either sufficient EMS or a non-removable disk for swapping. Splitting the Sfware utilities across two floppies does not present any real technical difficulties (aside from the location of swapping space) but you should read the Configuration chapter carefully to make sure that you have set things up properly. In particular, you will need to tell SfShell where the utility programs are located. 1.3. Initial Configuration Before you can use Sfware, you must run SfConfig to establish an initial configuration. Please follow the 'quick start' instructions in the READ.ME file or read the Configuration chapter before trying to run Sfware. 2. Conventions Used in This Manual [NOTE: Typographic conventions are not present in this unformatted file] 2.1. Typographic convensions 2.1.1. typewriter Typewriter type is used within this manual to denote explicit words or commands or filenames that you type exactly the way they appear in this manual. In this manual, FRUIT means you type ``F'' ``R'' ``U'' ``I'' ``T'' , whereas a fruit (italics are described below) might mean apple, or pear, or any specific fruit. 2.1.2. italics Italics are used to name a general ``class'' of things. If a command in this manual contains a word in italics, you should replace that word with a concrete example of ``one of those things'' when you type the command. For example, a fontname in this manual means any valid, existing softfont; you should type the name of an existing font file. Occasionally, italics are used for emphasis (as they are in general typography) but it will be clear from the context when that is the case. 2.1.3. boldface Boldface is used to highlight words that appear in selection lists. It is roughly analogous to the way typewriter text is used to indicate things you should type; boldface indicates things you should select off of a list of choices. In this version of the manual, this convention is not always strictly obeyed. It will be in the next version of the manual. 2.1.4. [[ brackets ]] The stylized square brackets denote optional parameters. You should only type what appears within the brackets when you want to use the associated optional feature. 2.2. Sections 2.2.1. Captured Screens Many of the chapters contain ``captured screens'' to provide a context for the discussion of the choices available. These captured screens are taken directly from version 1.0 of SfShell. 2.2.2. Technically Speaking Many chapters end with a ``technically speaking'' section. This section describes, more technically, what Sfware does. You don't have to read it unless you want to. If you find the material in the technically speaking sections intimidating, just ignore it. On the other hand, if you find that something is not performing exactly the way that you thought it was supposed to, this section may help you figure out why Sfware is doing something other than what you expected. 3. Configuring Sfware In order to make Sfware easier to use, all of the programs read a configuration file each time they are executed. This configuration file gives you the flexibility to assign default values to many of the options and parameters of each program. 3.1. Name of the configuration file All of the utilities can share the same configuration file. However, rather than hardcoding the name of the configuration file, Sfware relies on the existance of a DOS environment variable to determine the name of the configuration file. Each Sfware utility expects the DOS environment variable SFCFG to name the complete drive, path, and filename of a suitable configuration file. For example, if you make a configuration file called SF.CFG and you put it in the D:\SF directory, the DOS command SET SFCFG=D:\SF\SF.CFG would be appropriate. If the DOS environment variable SFCFG is undefined, each of the utilities looks for a configuration file with the same name as its executable file and the extension .CFG. For example, SFFX.EXE looks for SFFX.CFG. 3.1.1. Special note for DOS 2.xx users In versions of DOS prior to version 3.xx, it was not possible for a program to find out the name or directory of its executable file. If SFCFG is undefined, the utilities will look in the current directory for configuration files. It is especially important to define SFCFG if you are not using DOS 3.xx or later. 3.2. Using SfConfig Frequently, the most difficult part of installing new software is the task of configuring it to work correctly in your system. This may be true of Sfware as well. In an effort to make the initial configuration as painless as possible, Sfware comes with the SfConfig program. SfConfig should be run after the SFCFG environment variable, discussed above, has been set. SfConfig will create a configuration file initialized with appropriate defaults and allow you to select, interactively, the laser printer that you use, the print device that you use, and name of your softfont directory. These are the most site-specific configuration options. SfConfig can be run again to change any one of these values; it will not change anything else in the configuration file that you have changed manually since the first time that you used SfConfig. The following three settings can be made from within SfConfig: 3.2.1. Laser Printer The Laser printer selection helps Sfware decide if font compression should be enabled. Later versions of Sfware may make more use of this option. 3.2.2. Printer Output The most common selection for printer output is LPT1. However, you can select LPT1-4, PRN, or any valid file or device for printer output. 3.2.3. Font Directory Most users keep all of their softfonts in one directory. If this is the case, you can tell Sfware always to look for fonts in that directory regardless of what directory you are currently in. This becomes the default font directory. However, even if you do select a default font directory, you can still override it and use any directory you want be selecting a new directory with ``F4'' in SfShell or by specifying a fontdir on the command line. 3.3. Format of the configuration file The configuration file is a plain ASCII text file, and it should be edited with a program that will not insert extra formatting characters when the file is saved (I recommend Multi-Edit by American Cybernetics). Each line of the configuration file is divided into three parts as follows: programid parameter=value The programid is seperated from the parameter by one or more spaces and the parameter is separated from the value by an equal sign (=). The programid is optional but the parameter and the value are required (actually, the value can technically be empty or blank but that is exactly the same as not defining it at all). Individual Sfware programs use the combination of programid and parameter as a key to lookup the default value of each parameter. Any configuration line that does not contain a programid automatically matches all programid's for that parameter. Case is insignificant in the programid and parameter. A simple example should make everything clearer. Given the following configuration file: PROG APPLE=1 PROG ORANGE=2 APPLE=3 OTHER ORANGE=4 The value of PROG APPLE is 1, PROG ORANGE is 2, ANYTHING-ELSE APPLE is 3, OTHER ORANGE is 4, and ANYTHING-ELSE ORANGE is undefined (blank, or non-existant). Each possible configuration parameter is described in the sections that follow. The section header lists only the parameter if the programid is the name of the utility program that uses it. For configuration parameters that make special use of the programid, both parts are listed. The parameters are listed in alphabetical order by parameter. 3.4. ActionListSize Usage: program ACTIONLISTSIZE=number Used by: SfShell Controls the amount of memory reserved for the font action list. Each time you choose to do something to a font (download it, compress it, perform a special effect, etc.) that choice gets added to an action list. The actions in the action list get performed when you press ``F10'' in SfShell. The ACTIONLISTSIZE can be large, but it is advantageous to keep it relatively small unless you have a lot of expanded memory (EMS). If it is too large, it will be written to disk which may have a considerable impact on program performance (especially on response time). 3.5. CommandFile Usage: program COMMANDFILE=filename Used by: SfShell Specifies the name of the SfShell command file. The command file is used to communicate between SfShell and the utility programs. The command file can also be saved for later use to automatically re-run the selected actions. 3.6. Compress Usage: program COMPRESS=YES or NO Used by: SfFx, SfRotate The Sfware utilities that write new softfont files use this flag to determine if the softfonts should be written in PCL4/5 compressed format or in the older, non-compressed format. Compression can produce very dramatic decreases in the amount of disk space required for a softfont. However, the compressed fonts are only recognized by LaserJet printers that are PCL4 compatible. The LaserJet Series II is not PCL4 compatible. Note, however, that the Sfware utilities provide for decompression ``on the fly'' in most cases. Please consult the section about downloading fonts for more information. 3.7. Device Usage: program DEVICE=filename Used by: SfLoad, SfShow Names the output device for Sfware utilities that interact directly with the printer. The most common value is LPT1, but any DOS file or device name may be used. 3.8. Esc Usage: program ESC=YES or NO Used by: SfDir Controls how SfDir displays font information. If ESC is YES, escape sequences are displayed by default. Otherwise a readable, text description is displayed by default. 3.9. ExecOutput Usage: program EXECOUTPUT=WINDOW or FULLSCREEN Used by: SfShell The individual Sfware utilities are run as ``child tasks'' from within SfShell to perform the actions. The EXECOUTPUT option controls how output is redirected from each utility. If WINDOW is used, the utilities are run within a window on the screen, if FULLSCREEN is used, the utilities run on a full DOS screen. The WINDOW selection looks better but it is an option so that the feature can be disabled if it causes problems with your version of DOS. If SfShell hangs your machine whenever you try to execute an action list, the first thing you should try is setting EXECOUTPUT=FULLSCREEN. 3.10. FontDir Usage: program FONTDIR=directory Used by: SfShell, SfCmpr, SfFx, SfLoad, SfRotate, SfShow Names the DOS subdirectory where HP LaserJet softfonts are located. This is the default input and output directory for Sfware utilities that read or write softfont files. 3.11. FontExtn Usage: program FONTEXTN=ext Used by: SfShell, SfCmpr, SfFx, SfLoad, SfRotate, SfShow Names the default filename extension for softfont files. If you specify either an input softfont name or an output softfont name that does not include an extension, the Sfware utilities will append this extension to the filename. Note: it is possible to specify that a file should not have any extension by ending the filename with a period. 3.12. FontListSize Usage: program FONTLISTSIZE=number Used by: SfShell The size of the font list determines how many softfonts SfShell can place in the scrolling font window. Like the action list, this parameter can be very large but performance will be degraded if it is so large that it is written to disk. 3.13. GraphBack Usage: program GRAPHBACK=number Used by: SfShell, SfView Controls the background color in graphics mode. The following colors can be used (they must be selected by number): 0=black, 1=blue, 2=green, 3=cyan, 4=red, 5=magenta, 6=brown, 7=light gray, 8=dark gray, 9=light blue, 10=light green, 11=light cyan, 12=light red, 13=light magenta, 14=yellow, and 15=white. 3.14. GraphCard Usage: program GRAPHCARD=cardname Used by: SfShell, SfView Tells SfShell what kind of graphics card you are using. By default, SfShell tries to determine what kind of graphics card you have and adjust accordingly. However, if it makes the wrong choice, you can force SfShell to select one of the following: CGA, MCGA, VGA, EGA, EGA64, EGAMONO, IBM8514, ATT, HERC, and PC3270. A complete list of available graphics resolutions for each card/mode is available under the section on ``GraphMode''. 3.15. GraphForg Usage: program GRAPHFORG=number Used by: SfShell, SfView Controls the foreground color in graphics mode. 3.16. GraphGrid Usage: program GRAPHGRID=number Used by: SfShell, SfView Controls the color of the gridlines in the graphics display. 3.17. GraphMode Usage: program GRAPHMODE=number Used by: SfShell, SfView Controls the graphics mode number for the selected graphics card. It is impossible for SfShell to know if you have selected a reasonable graphics mode. The results of using an incorrect or invalid graphics mode are undefined (and unpredictable!). The following table lists all of the graphics cards and the modes associated with them. In general, it is not necessary to specify a graphics mode since the highest resolution mode is selected by default: Card | Mode | Resolution | Palette -------------------------------------------------------------------- CGA | 0 | 320x200 | 0 CGA | 1 | 320x200 | 1 CGA | 2 | 320x200 | 2 CGA | 3 | 640x200 | 3 CGA | 4 | 640x200 (default) | 2 colr MCGA | 0 | 320x200 | 0 MCGA | 1 | 320x200 | 1 MCGA | 2 | 320x200 | 2 MCGA | 3 | 320x200 | 3 MCGA | 4 | 320x200 | 2 colr MCGA | 5 | 640x480 (default) | 2 colr EGA | 0 | 640x200 | 16 colr EGA | 1 | 640x350 (default) | 16 colr EGA64 | 0 | 640x200 | 16 colr EGA64 | 1 | 640x350 (default) | 4 colr EGAMONO | 3 | 640x350 (default) | 2 colr HERC | 0 | 720x348 (default) | 2 colr ATT | 0 | 320x200 | 0 ATT | 1 | 320x200 | 1 ATT | 2 | 320x200 | 2 ATT | 3 | 320x200 | 3 ATT | 4 | 640x200 | 2 colr ATT | 5 | 640x400 (default) | 2 colr VGA | 0 | 640x200 | 16 colr VGA | 1 | 640x350 | 16 colr VGA | 2 | 640x480 (default) | 16 colr PC3270 | 0 | 720x350 (default) | 2 colr IBM8514 | 0 | 640x480 | 256 colr IBM8514 | 1 | 1024x768 (default) | 256 colr -------------------------------------------------------------------- 3.18. MsgFile Usage: program MSGFILE=filename Used by: SfShell SfShell forces all of the Sfware utilities to write error and completion messages to the message file that you specify. When you leave SfShell, this file will be displayed to give you a summary of the things that you did. 3.19. Numbers Usage: program NUMBERS=base Used by: SfShow The numbers parameter is used by SfShow to select the numeric base of the numbers printed around the reference grid. Valid options are hex, oct, dec, and none for hexadecimal (base 16), octal (base 8), decimal (base 10) and no reference numbers respectively. The default value is hex. 3.20. Pattern name Usage: PATTERN name=pattern-string Used by: SfShell, SfFx The pattern programid introduces named patterns. Any pattern that you plan to use more than once or that is very complex should probably be saved in the configuration file. There is a whole chapter devoted to patterns and pattern strings. Please consult that chapter for more information about patterns. The pattern created in the pattern chapter could be saved in the configuration file with the name zig-zag by placing the following line in the configuration file: PATTERN ZIG-ZAG=0;34;85;136 3.21. Quiet Usage: program QUIET=YES or NO Used by: SfDir Controls the degree of verboseness of messages from SfDir. In the future, other utilities may use this flag for the same purpose. 3.22. RefSet Usage: program REFSET=symbol-set Used by: SfShow If the reference set is defined, the reference character for each position in the font will be printed in the upper right hand corner of each cell on SfShow's grid. For example, setting sfshow refset=8u would make SfShow print the reference characters with the 8U symbol set. You must select a symbol set that is available in your laser printer's line-printer font. If you don't want reference characters to be printed, use sfshow refset=none. 3.23. Replace Usage: program REPLACE=YES or NO Used by: SfCmpr, SfFx, SfLoad, SfRotate, SfShow Each of the Sfware programs that can create new files use this flag to determine if existing files should be destroyed without warning. If you set this flag to YES, you can shoot yourself in the foot; if you leave it NO, the Sfware utilities will always make sure the safety is on! 3.24. Sentence Usage: program SENTENCE=string Used by: SfShell, SfView, SfShow Identifies the sentence to be displayed on graphical font preview screens and printed on the reference page. The default sentence is: The quick red fox jumped over the lazy brown dog. I said (very loudly), ``THE QUICK RED FOX JUMPED OVER THE LAZY BROWN DOG!'' How many times?0, 1, 2, or 3456789 times. 3.25. SwitchChar Usage: program SWITCHCHAR=char Used by: SfShell, SfCmpr, SfFx, SfLoad, SfRotate, SfShow, SfView, SfInfo Identifies the switch character. It must be set to either ``/'' or ``-''. Under MS-DOS, ``/'' is recommended. The switch character setting can be ignored by SfShell users. SfShell makes sure that the correct switch character is used when the utilities are invoked. For more information about the uses of the switch character, consult the ``technically speaking'' note at the end of the Conventions for Describing the Standalone Utilities chapter. 3.26. Style name Usage: STYLE name=number Used by: SfShell, SfShow, SfFx The ``style'' of a softfont is one of the font parameters that is used to distinguish between two otherwise identical softfonts. The values defined by HP are ``upright,'' ``italic'' and ``oblique.'' Using SfFx to create variations on a font can potentially create two fonts that are indistinguishable from each other. For example, ``hollowing'' a softfont does not change any of its font characteristics. The STYLE parameter tells the SfFx what style value to use in the font header for each effect. In this way, it will always be possible to tell the old and new fonts apart. The name of the style must be one of the following: Bold, Fix, Fill, Fill3d, HalfTone, Hollow, Hollow3d, Invert, Mirror, OutLine, Prop, Resize, Reverse, Shade, Shadow, Stripe, and Threed. The style value can be any number between 0 and 255. If the effect changes some other characteristic of the font, it is not necessary to change the style; this is indicated with a style value of 0. 3.27. SfCmpr, SfFx, SfLoad, SfRotate, SfShow Usage: program name=filename Used by: SfShell If the executable files for the Sfware utilities are kept in a different directory or drive than the SfShell executable (for example, if you are using the two-floppy disk setup described in the getting started chapter), these parameters should name the respective executable files. The filename given should be a complete filename with drive, path and extension. For example, if SfShell is in your utilities directory but you keep the other Sfware utilities in the directory D:\SF, then SFSHELL SFCMPR in the configuration file should be defined like this: SFSHELL SFCMPR=D:\SF\SFCMPR.EXE And analogously for all the other utilities. 3.28. SwapFile Usage: program SWAPFILE=filename Used by: SfShell The swapfile parameter names the file that SfShell should use for a swapfile if it cannot swap to EMS. The swapfile filename should be a complete filename with drive and path. The swapfile must be on a non-removable medium. If you specify a swapfile on a removable medium, SfShell will not be able to swap and you will not be able to use the shell very effectively. 3.29. Typefaces Usage: program TYPEFACES=filename Used by: SfShell, SfInfo, SfShow The typefaces parameter names the file that lists typeface names. Every softfont has a typeface number. A name is associated with each typeface number; this is the name displayed by SfShell in the typeface column, and by SfInfo and SfShow. Because the number of typefaces is growing and is subject to change, you can supply an additional typeface list that identifies any and all typeface numbers. Sfware is distributed with the file TYPEFACES.LST that contains all of the Hewlett Packard typeface names defined as of PCL5. If you have an old or non-standard softfont, this name may not accurately reflect the style of the characters contained in the font. The typefaces file is a plain text file. Each line should begin with a typeface number (typeface numbers 0 through 511 are valid as of PCL5; earlier printers only recognize typefaces numbered 0 through 255). The rest of the line is the typeface name. Lines that begin with a semicolon are ignored. The typeface numbers must be entered, one per line, in ascending order. 3.30. Sample File This is a sample configuration file. This sample does not contain all of the possible configuration variables because many require defaults that are system-specific (graphics cards, program filenames, etc.) and many repetitious lines have been deleted. ------------------------------------------------------------------------- Device = LPT1 FontDir = . FontExtn = SFP Replace = No Compress = No ; SfShow Sentence=The quick red fox jumped over the lazy brown dog. ; SfShell CommandFile=SFSHELL.CMD SfShell SwapFile=SFSHELL.\$\$\$ SfShell MsgFile=SFSHELL.MSG SfShell ExecOutput=Window ; SfShell FontListSize = 35 SfShell ActionListSize = 35 ; ; The Pattern and Style lines are for SfFx ; Pattern DarkSaw = 255/127/62/28/8/128/193/227/247 Pattern LightSaw = 128/65/34/20/8/0/0/0 Pattern NarrowBackslash = 136/68/34/17 Pattern TightSaw = \$6B/\$DD/\$B6/\$6B/\$DD/\$B6 Pattern DecoSlash = \$D2/\$69/\$B4/\$5A/\$2D/\$96/\$4B/\$A5 Pattern Cross = \$11/\$BB/\$EE/\$BB ; ; Styles defined by HP: ; ; 0 = Upright ; 1 = Italic ; 2 = Oblique ; Style Fill = 5 Style Halftone = 15 Style Hollow = 3 Style Invert = 14 Style Mirror = 13 ------------------------------------------------------------------------- 3.31. Command Files The standalone utilities, whether they are run from the command line directly or invoked automatically by SfShell, accept all of their input on the command line. Since this imposes a severe limit on the amount of input that can be provided, the utilities also accept input from a command file. SfShell creates a command file automatically to communicate with the standalone utilities and you can use them outside of SfShell, but understanding what they are and how they work is not important to using Sfware. Feel free to skip this section. The standalone utilities accept the name of the command file on the /@:filename option. If a command file is used, the utility will read commands from the file as if they were typed as parameters. The format of the command file is simple: each line should begin with an asterisk followed by the name of the utility followed by a space. The rest of each line is interpreted exactly as if it were typed on the command line. Because each line identifies which utility it is for, the same command file can be passed to several utilites. Each utility will only use the lines that are intended for it. For example, the command file below downloads several fonts: *sfload tr* /expand *sfload tr* /expand /landscape *sfload logo.sfp /expand If this command file is saved as AUTOLOAD.CMD, I would tell SfLoad to execute it by entering: SFLOAD /@:AUTOLOAD.CMD In general, this ability is of little use beyond downloading fonts (every morning, for example). However, the SfShell program makes extensive use of this feature to pass parameters to child processes when it executes the individual utilities to perform actions for the user. 4. Running SfWare There are two ways to use the Sfware package. First, the SfShell program provides an easy to use menu interface to all the utilities. This is the easiest way to become familiar with the Sfware utilities. However, if you have limited memory available, or if you want to run the Sfware utilities automatically (from a batch file, for example) you can run each utility separately. If you run the utilities individually, you must supply the parameters as command line options. If you use Sfware from within the shell, you will be prompted for each parameter. The rest of this document assumes that you are using the shell. If you do not plan to use the shell, you should still skim this manual for a brief overview of Sfware's features. The reference to the individual Sfware utilities is in the files SFUTILSO.PCL and SFUTILSE.PCL. To start the shell, go to (To ``go to'' the Sfware subdirectory, move to the drive that contains Sfware and use the CHDIR command to make the Sfware subdirectory the current directory (e.g. D: ``Enter'' CHDIR \SF ``Enter'' ).) the Sfware subdirectory (or the Sfware floppy) and enter: SFSHELL [[fontdir]] [[/MONO]] [[/NOEMS]] When the shell is run, it will attempt to detect what kind of video adapter you have and adjust itself accordingly. If you find that SfShell makes the wrong decision, or you are using a computer with an LCD monitor and would prefer a simple black-and-white display, use the /MONO switch. If you do not want SfShell to use EMS memory for swapping, use the /NOEMS switch. The /NOEMS switch forces SfShell to swap to disk. The optional parameter fontdir selects what drive/directory and mask SfShell should use to scan for softfonts. The default fontdir is set in the configuration file. 4.1. Up and running When run, SfShell will display a brief startup message. The startup message displays memory usage and indicates where various buffers are allocated. -------------------------------------------------------------------------------- D:\SF>sfshell Ŀ SfShell vers 1.0: Copyright (c) 1990-92 by Small Planet Software 184kb of RAM, 2176kb of EMS, and 1052kb of disk space available. Temporary files will be written to D:\TMP\ Font list allocated, 35 elements in EMS, 2144 kb remain. Action list allocated, 35 elements in EMS, 2080 kb remain. -------------------------------------------------------------------------------- Figure 4.1. Initialization message Performance may suffer noticably if SfShell is forced to place one or more buffers on disk. It is probably better to make the buffers small enough to fit in main memory (or EMS, if it is available). Consult the configuration chapter for more information about buffers and memory usage. After the startup message, SfShell will display its main title screen. -------------------------------------------------------------------------------- Ŀ SFSHELL vers 1.0: Copyright (c) 1990-92 by Small Planet Software ٰ ReadingDirectory... * Please register this program * 19/20 -------------------------------------------------------------------------------- Figure 4.2. Main title screen The numbers at the bottom left of the title screen will change as SfShell reads the font directory. The first number is the number of fonts that SfShell has found so far, and the second is the number of files that match the fontdir mask. 4.2. Main menu After reading the font directory, SfShell will display the main menu. The main menu is the starting point for all further font actions. If there are no softfonts in the font directory, SfShell will present the ``changing directories'' prompt discussed below. If the number of fonts in the directory exceeds the size of the font list buffer, SfShell will print a message indicating that the main-menu font-list is incomplete. --------------------------------------------------------------------------------  SfShell vers 1.0 Ŀ Typeface Sty Set O Bold Height Pitch Filename ij Courier Upri 10J P Med 9.9pt 12.0cpi ar010aaa.esp  Times Roman Upri 0Q L Bold 12.0pt n/a trb1ctxc.sfl Times Roman Upri 0U P Med 9.9pt n/a cmr10.sfp Times Roman Upri 0Q P Bold 12.0pt n/a trb1ctxc.sfp Times Roman Upri 0U P Med 6.0pt n/a trr0ousc.sfp Times Roman Upri 0U P Med 8.0pt n/a trr0wusc.sfp Times Roman Upri 0Q P Med 10.0pt n/a trr14txc.sfp Times Roman Upri 0Q P Med 12.0pt n/a trr1ctxc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Roman Upri 0U P Med 14.0pt n/a trr1kusc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Upri 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Upri 0U P Med 6.0pt n/a unr0ousc.sfp Univers Upri 0U P Med 8.0pt n/a unr0wusc.sfp  ij į  for More ٰ Enter=SelectFontF1=HelpF3=ExitF4=DirectoryF10=Process 168kb -------------------------------------------------------------------------------- Figure 4.3. Main menu The column headings across the top of the main menu describe the primary characteristics of each font. Heading Font characteristic displayed ---------- --------------------------------------------------------- Typeface HP typeface name of the font Fontname The fontname in the softfont file Sty Style of the font Set Font symbol set O Font Orientation, Portrait or Landscape Bold Degree of ``boldness'' of the font Height Font size in points Pitch Font pitch (characters-per-inch) for fixed pitch fonts Filename Name of the HP softfont file SfShell attempts to display informative names for each characteristic. However, if the value of a characteristic falls outside the bounds expected by SfShell, the numerical value of the characteristic will be printed in square brackets. Either the typeface or the fontname can be displayed in the first column. The ``Tab'' key alternates between them. For proportionally spaced fonts, the pitch is listed as n/a because the font has no fixed pitch. For scalable fonts, the height is listed as n/a for the same reason. The great majority of actions that can be selected for softfonts apply to bitmapped (non-scalable) fonts only. For example, SfShell cannot perform any special effects on scalable fonts. SfShell can download scalable fonts and print font summaries of scalable fonts. 4.3. Selecting fonts You can't see the highlight bar in the screen-capture images in this document but it is apparent when you are running the shell. The arrow keys allow you to select which font you want to work with. You can apply multiple actions to a single font. 4.4. Changing Directories The initial font directory, fontdir, is either the default font directory specified in the configuration file or is selected with a command line option when running SfShell. You can change the current font directory by pressing ``F4'' while the main menu is displayed. -------------------------------------------------------------------------------- SfShell vers 1.0 Enter new softfont drive/directory Ŀ New softfont mask: D:\FONTS\*.* F1=Help Esc=Exit Enter=Accept ٰ 168kb -------------------------------------------------------------------------------- Figure 4.4. Changing font directories The directory that you select must contain at least one font file. If no fonts match the fontdir mask that you enter, you will be returned to the directory prompt. 4.5. Font actions (in brief) After selecting a font with the highlight bar, press ``Enter'' (or ``Return'' , as appropriate). SfShell will respond by ``popping up'' the action menu. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Download Effect Compress Rotate Show View Info tch Filename ij Courier Upri 10J P Med 9.9pt 12.0cpi ar010aaa.esp  Times Roman Upri 0Q L Bold 12.0pt n/a trb1ctxc.sfl Times Roman Upri 0U P Med 9.9pt n/a cmr10.sfp Times Roman Upri 0Q P Bold 12.0pt n/a trb1ctxc.sfp Times Roman Upri 0U P Med 6.0pt n/a trr0ousc.sfp Times Roman Upri 0U P Med 8.0pt n/a trr0wusc.sfp Times Roman Upri 0Q P Med 10.0pt n/a trr14txc.sfp Times Roman Upri 0Q P Med 12.0pt n/a trr1ctxc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Roman Upri 0U P Med 14.0pt n/a trr1kusc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Upri 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Upri 0U P Med 6.0pt n/a unr0ousc.sfp Univers Upri 0U P Med 8.0pt n/a unr0wusc.sfp  ij į  for More ٰ 158kb ------------------------------------------------------------------------------- Figure 4.5. Action menu (overlaying the main menu screen) The action menu has seven choices. These seven choices correspond to seven of the utility programs that come with Sfware(actually, the View and Info choices are builtin, but corresponding utilities are provided). The action choices are described in detail in future chapters. You select an action by moving the highlight bar with the arrow keys and pressing ``Enter'' when the highlight bar is on the selection you wish to make. You can select more than one action per font. 4.6. Pulling the Trigger After you have selected an action (as described above) for a softfont, pressing ``F10'' will cause SfShell to perform the action. You can select more than one effect for more than one font before you press ``F10'' . If you do not press ``F10'' before you leave SfShell, no actions will be performed. Later chapters describe exactly what happens when press ``F10'' but you do not need to know how your actions are performed if you are always going to use the shell. 5. Downloading Fonts Downloading fonts ``teaches'' the LaserJet printer how to print a particular font. The actual downloading is performed by the SfLoad utility. -------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ DownloadĿct Compress Rotate Show View Info tch Filename Ĵij Image Upri 10J P Med 9.9pt 12.0cpi ar010aaa.esp  Expand Upri 0Q L Bold 12.0pt n/a trb1ctxc.sfl Compress Upri 0U P Med 9.9pt n/a cmr10.sfp Portrait Upri 0Q P Bold 12.0pt n/a trb1ctxc.sfp Landscape Upri 0U P Med 6.0pt n/a trr0ousc.sfp Upri 0U P Med 8.0pt n/a trr0wusc.sfp Times Roman Upri 0Q P Med 10.0pt n/a trr14txc.sfp Times Roman Upri 0Q P Med 12.0pt n/a trr1ctxc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Roman Upri 0U P Med 14.0pt n/a trr1kusc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Upri 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Upri 0U P Med 6.0pt n/a unr0ousc.sfp Univers Upri 0U P Med 8.0pt n/a unr0wusc.sfp  ij į  for More ٰ 164kb ------------------------------------------------------------------------------- Figure 5.1. Download options 5.1. Options As you can see, there are five additional options that can be selected for the download action. These options are described below. The option(s) that are selected are marked with a small square. The options that do not have a square are not selected. Use the ``Spacebar'' to toggle an option between selected and unselected. Some combinations of options are not allowed (for example, you cannot select both Compress and Expand at the same time). When you select an option, other options that cannot be selected in combination with it will be unselected automatically. 5.1.1. Image Downloading a softfont as an image has two advantages: first, it is the fastest method and second, it should work for softfont formats that the Sfware utilities are not otherwise equipped to handle. For example, if a new laserjet printer, the Series IV perhaps, is developed with a new kind of softfont, downloading will continue to work with that new printer as long as you select the image option. The image option is the default. If the image option is so great, why would I use anything else? Good question. There are two possible reasons. First, softfonts, especially large softfonts, take up a lot of disk space. The LaserJet IIP, III, and IIIP printers all support softfont compression (which provides substantial disk space savings for large softfonts). However, the LaserJet Series II printer does not support compression. If you have a LaserJet Series II printer and you always use Sfware to download your softfonts, you can still take advantage of the substantial space savings of softfont compression: compress all of your softfonts on disk and expand them when they are downloaded. You can't use the image option if you want to expand them when they are downloaded. In a similar manner, softfonts can be rotated as they are downloaded if your laser printer does not support auto-rotation of fonts. 5.1.2. Expand When the expand option is used, softfonts that are in PCL4 compressed format are expanded as they are being downloaded to the printer. This allows you to keep compressed softfonts on disk even if your printer does not support softfont compression. 5.1.3. Compress When the compress option is used, softfonts are compressed using the PCL4 compression format as they are being downloaded to the printer. I can't think of a single good reason to use this option. It is provided only to satisfy the author's compulsive desire to provide the greatest possible flexibility. 5.1.4. Portrait The Portrait option rotates the softfont to portrait orientation before downloading it. This option has no effect if the font is already portrait. 5.1.5. Landscape The Landscape option rotates the softfont to landscape orientation before downloading it. This option has no effect if the font is already landscape. Note: downloading both orientations does not imply that you will be able to use both orientations on the same page. The LaserJet Series II printer, for example, cannot print both portrait and landscape fonts on the same page. 6. Special Effects Because they are many and varied, each special effect is described in its own chapter (later in this document). All of the effects are produced by the SfFx program. The effects are available from the following menu (and the appropriate submenus from this menu): -------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Download Effect Compress Rotate Show View Info tch Filename ij Courier Bold 10J P Med 9.9pt 12.0cpi ar010aaa.esp  Times Rom Fade/Mist  0Q L Bold 12.0pt n/a trb1ctxc.sfl Times Rom Fill 0U P Med 9.9pt n/a cmr10.sfp Times Rom Halftone 0Q P Bold 12.0pt n/a trb1ctxc.sfp Times Rom Hollow 0U P Med 6.0pt n/a trr0ousc.sfp Times Rom Invert 0U P Med 8.0pt n/a trr0wusc.sfp Times Rom Mirror 0Q P Med 10.0pt n/a trr14txc.sfp Times Rom Outline 0Q P Med 12.0pt n/a trr1ctxc.sfp Times Rom Resize 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Rom Reverse 0U P Med 14.0pt n/a trr1kusc.sfp Times Rom Shade 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Shadow 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Slant 0U P Med 6.0pt n/a unr0ousc.sfp Univers Spacing  0U P Med 8.0pt n/a unr0wusc.sfp  ij Stripe ij Three-D  į  for More ٰ 168kb ------------------------------------------------------------------------------- Figure 6.1. Effect options Although you can select more than one effect for a given font, this does not apply the effects in sequence. In order to perform two effects in sequence, you must perform the first effect by selecting it and pressing ``F10'' , then perform the second effect on the font produced as output by the first effect. In the following chapters, where each effect is discussed, there are no examples of the effects because it was necessary to limit the number of fonts used in this document. This reflects a limitation in some LaserJet printers that prohibits printing more than sixteen different fonts on a given page. A second document called EXAMPLES.PCL is included in the Sfware distribution. This file contains examples of some of the effects that are possible. The corresponding document EXAMPL16.PCL is provided for those printers that cannot print more than sixteen fonts per page. Technically, every character within a softfont is defined within a rectangle. The rectangle is subdivided into squares like a sheet of graph paper. Inside the rectangle, some of the squares are black and some are white. Because the squares are very small, the effect of printing them on a sheet of paper is that they form the lines and curves that make up each charcter. In the descriptions of effects that follow, it is sometimes necessary to describe the way that ``squares'' within the rectangle are manipulated. The region of the grid that defines the character (the black dots on the ``graph paper'') is referred to as either the black area or the foreground, and the other ``squares'' are referred to as the white area or the background. 6.1. Ranges Because the range option is available on almost every effect, it is described once here rather than repeating it for every effect. The range option is available on all of the effects except proportional and fixed spacing. Specifying a range limits an effect to certain, specific characters. For example, you could limit the range of an effect to all of the uppercase letters. Pressing ``F2'' on any of the special effect panels that support the range option will present a list like the following: -------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij Select Range Start Ŀ ij ^@ sp @ ` Ŀ r010aaa.esp  ^A ! A a rb1ctxc.sfl ^B " B b mr10.sfp ^C # C c ٰ rb1ctxc.sfp ^D $ D d rr0ousc.sfp ^E % E e rr0wusc.sfp ^F & F f rr14txc.sfp ^G ' G g rr1ctxc.sfp ^H ( H h rr1ktxc.sfp ^I ) I i rr1kusc.sfp ^J * J j rr1kxxc.sfp ^K + K k nb1ctxc.sfp ^L , L l nr0ousc.sfp ^M - M m t/Preview Pattern nr0wusc.sfp  ij ^N . N n ij ^O / O o More  ( 0-255) į  for More ٰ 160kb ------------------------------------------------------------------------------- Figure 6.2. The Range selection menu Use the arrow keys (and ``PgUp'' and ``PgDn'' ) to move the highlight bar to the desired character then press ``Enter'' . The first time that you press ``Enter'' , you will be selecting the first character of the range and the second time you will be selecting the last character of the range. The range effect is limited to a specific, contiguous subset of the ASCII character set. That is, you can specify any single range but you cannot specify an ``exception range'' (e.g. do all the characters except the lowercase letters) or two or more discontiguous ranges (e.g. do all the upper case letters and all the lower case letters). 6.2. Technically Speaking Most fonts do not contain a real blank space character. The LaserJet printer moves over by the default HMI everytime it encounters a character that does not exist in the current font; most fonts rely on the fact that the default HMI is exactly one space wide. This can create an unpleasant, choppy appearance if a special effect (e.g. halftoning) is applied that modifies the white background of each character. In several places, SfShell inserts a physical space for you to circumvent this problem. There is no way to control this action from within SfShell, but if you run SfFx directly you can have complete control. 7. Compressing Fonts Compression, available in the LaserJet IIP and subsequent printers, allows you to keep softfonts in a compressed format on disk. For fonts with large point sizes, this can achieve a very significant space savings. The actual compression is performed by the SfCmpr utility. -------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Download Effect CompressĿ Ĵij Courier TRR14TXC.SFP is compressed. It will be expanded. p  Times Roman Expanded file: D:\FONTS\TRR14TXC.SFP l Times Roman Times Roman Upri 0Q P Bold 12.0pt n/a trb1ctxc.sfp Times Roman Upri 0U P Med 6.0pt n/a trr0ousc.sfp Times Roman Upri 0U P Med 8.0pt n/a trr0wusc.sfp Times Roman Upri 0Q P Med 10.0pt n/a trr14txc.sfp Times Roman Upri 0Q P Med 12.0pt n/a trr1ctxc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Roman Upri 0U P Med 14.0pt n/a trr1kusc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Upri 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Upri 0U P Med 6.0pt n/a unr0ousc.sfp Univers Upri 0U P Med 8.0pt n/a unr0wusc.sfp  ij į  for More ٰ 163kb ------------------------------------------------------------------------------- Figure 7.1. The Compress panel The panel indicates the name of the current font and whether it will be compressed or expanded. You must enter the name of the font file which will be created to hold the new font. The default filename is the same as the original filename. In this case, the original file will be replaced by the compressed or expanded font. 8. Rotating Fonts Softfonts come in two orientations: portrait and landscape. Newer LaserJet printers are capable of ``automagic'' internal font rotation but older LaserJets and some compatibles do not have this ability. Sfware provides the ability to convert from one orientation to the other. The actual rotation is performed by the SfRotate utility. -------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Download Effect Compress RotateĿ Ĵij Courier Upri 1 TRR14TXC.SFP is a portrait font. p  Times Roman Upri Landscape file: TRR14TXC.SFL l Times Roman Upri Times Roman Upri 0Q P Bold 12.0pt n/a trb1ctxc.sfp Times Roman Upri 0U P Med 6.0pt n/a trr0ousc.sfp Times Roman Upri 0U P Med 8.0pt n/a trr0wusc.sfp Times Roman Upri 0Q P Med 10.0pt n/a trr14txc.sfp Times Roman Upri 0Q P Med 12.0pt n/a trr1ctxc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Roman Upri 0U P Med 14.0pt n/a trr1kusc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Upri 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Upri 0U P Med 6.0pt n/a unr0ousc.sfp Univers Upri 0U P Med 8.0pt n/a unr0wusc.sfp  ij į  for More ٰ 163kb ------------------------------------------------------------------------------- Figure 8.1. The Rotate Panel The panel indicates the name of the current font and its orientation. You must enter the name of the font file which will contain the rotated font. The default filename is the same as the original filename. In this case, the original file will be replaced by the rotated font. 9. Showing Fonts Showing a font creates a reference page that displays every character in the font. The reference page includes all of the font characteristics, the font selection sequence and a chart of all of the characters in the font. This function is performed by the SfShow utility. 9.0.1. What's to Show? Every softfont can contain up to 256 different characters numbered from 0 to 255. Most fonts don't define all 256 different characters. The character chart is a grid that has ``spaces'' for each of the possible characters. If there are some character positions in the font that are not used, the spaces for those characters will be blank in the chart. For small fonts, the character chart is a 16x16 grid on a single page. If the font is larger than about 36pt (or has some very tall or very wide characters), the characters may be too large to fit into the spaces in a 16x16 grid. In this case, multiple reference pages may be printed for the font. When multiple reference pages are required, SfShell attempts to use the minimum number of pages. -------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Download Effect Compress Rotate ShowĿfo tch Filename Ĵij Courier Upri 10J P Image 12.0cpi ar010aaa.esp  Times Roman Upri 0Q L Expand n/a trb1ctxc.sfl Times Roman Upri 0U P Compress n/a cmr10.sfp Times Roman Upri 0Q P Portrait n/a trb1ctxc.sfp Times Roman Upri 0U P Landscape n/a trr0ousc.sfp Times Roman Upri 0U P No grid n/a trr0wusc.sfp Times Roman Upri 0Q P No refset n/a trr14txc.sfp Times Roman Upri 0Q P ٳ n/a trr1ctxc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1ktxc.sfp Times Roman Upri 0U P Med 14.0pt n/a trr1kusc.sfp Times Roman Upri 0Q P Med 14.0pt n/a trr1kxxc.sfp Univers Upri 0Q P Bold 12.0pt n/a unb1ctxc.sfp Univers Upri 0U P Med 6.0pt n/a unr0ousc.sfp Univers Upri 0U P Med 8.0pt n/a unr0wusc.sfp  ij į  for More ٰ 163kb ------------------------------------------------------------------------------- Figure 9.1. Show options 9.1. Options As you can see, there are five additional options that can be selected for the download action. These options are described below. The option(s) that are selected are marked with a small square. The options that do not have a square are not selected. Use the ``Spacebar'' to toggle an option between selected and unselected. Some combinations of options are not allowed (for example, you cannot select both Compress and Expand at the same time). When you select an option, other options that cannot be selected in combination with it will be unselected automatically. 9.1.1. Downloading Options In order to create a reference page, SfShow must first download the softfont. The following options control how each font is downloaded--they have precisely the same meaning as the SfLoad options with the same names: Image, Compress, Expand, Portrait, and Landscape. 9.1.2. No grid The No grid option supresses grid lines on the reference page. 9.1.3. No Refset For decorative or special purpose fonts, it may be helpful to have an additional reference character printed (in plain ASCII) next to each symbol in the chart. If reference marks are used, the reference character for each position in the font will be printed in the upper right hand corner of each cell on the grid. The No Refset option turns off the reference characters for this font. You must specify the reference set in the configuration file. 9.2. Technically Speaking When multiple reference pages are required, SfShell attempts to use the minimum number of pages, however, there are a few ``hidden'' constraints on how it selects the first character for each page. In particular, it will not skip characters on any single page (i.e. if the font defines ABCEFG but not D, SfShell will not print ABCEFG on a reference page without an intervening blank space where the D would be if it was defined. It wouldn't be difficult to provide this option but it would make numbering the grid much more difficult. The reference numbers (printed around the chart) can be printed in hexadecimal, decimal or octal or they can be turned off. The numbers option (discussed in the configuration chapter) is provided to control this feature. At present, this option cannot be changed from within SfShell. 10. Viewing Fonts Viewing a font is the on-line equivalent of printing a reference page. Viewing displays every character in the font on a grid similar to the printed output created by showing a font. It can also display a sentence in the font. A graphics adapter is required to view fonts. The following adapters are supported at this time: CGA, MCGA, VGA, EGA, EGA (Mono), PC3270, IBM 8514, AT&T, and Hercules. Selecting view switches to graphics mode and displays something like the following: [NOTE: Graphics screens are not included in this unformated file] Figure 10.1. The view display 10.1. Running View The keys described below allow you to change the range of characters displayed, the quality of the display, and the format of the display. 10.1.1. ``Esc'' You can leave at any time by pressing ``Esc'' . 10.1.2. ``PgUp'' / ``PgDn'' Pressing ``PgDn'' moves the range of characters displayed forward by one ``screenfull.'' If ASCII 255 is currently in the display, pressing ``PgDn'' has no effect. Pressing ``PgUp'' moves the range of characters displayed backward by one screenfull. If ASCII 0 is currently in the display, pressing ``PgUp'' has no effect. 10.1.3. ``Alt'' + ``A'' If you are displaying the font in a graphics mode that has the same number of pixels-per-inch both horizontally and vertically across the display, the ``Alt'' + ``A'' key combination is not available. If the number of pixels-per-inch horizontally and vertically is not the same, (i.e.the display has a non-square aspect ratio) it is impossible to display the characters without some distortion because the softfont is defined with the same number of pixels-per-inch both horizontally and vertically. There are two kinds of distortion: stretch-distortion and ``reduced resolution'' distortion. If every pixel of each character is displayed, the letters will be stretch-distorted by the fact that the pixels are ``closer together'' on the screen in one direction than the other. Alternatively, some rows or columns of pixels can be removed to avoid stretch distortion; characters drawn this way suffer from distortion because they are printed at a reduced resolution. The ``Alt'' + ``A'' key-combination alternates between these two types of distortion. 10.1.4. ``Alt'' + ``S'' Sometimes it is more useful to look at a font in the context of a sentence than it is to look at each individual character. This allows you to see how the characters interact with each other on the ``printed page.'' The ``Alt'' + ``S'' key-combination alternates between the grid display and the sentence display. The sentence display looks like this: [NOTE: Graphics screens are not included in this unformated file] Figure 10.2. The view sentence display 10.1.5. ``Other'' Pressing any other key changes the range of characters displayed to begin with the key you pressed. 11. Softfont Information If you have difficulty printing a particular font, SfInfo can help pinpoint the source of the problem. SfInfo displays the contents of the softfont header and the header of each character in the font. In addition, SfInfo examines the font looking for possible printer incompatibilities. New printers have a much more relaxed opinion about what constitutes a valid font. A font that works on a LaserJet III may not work on a Series II; SfInfo will be able to tell you why. 11.1. Running Info Selecting Info displays a panel something like the following: -------------------------------------------------------------------------------- SfShell vers 1.0 Į Softfont Information Ŀ Font name: CG Times Font filename: D:\FONTS\TRR14TXC.SFP Orientation : Portrait [ 0] All distances are in PCL dots Symbol Set : 0Q, Name unknown Ŀ Spacing : Proportional [ 1] Baseline=30 Pitch : 25.00cpi [ 48, 0] _ Height : 10.00pt [166,171] x Xheight=19.00 Style : Upright [ 0] Ĵ Stroke weight: Medium [ 0] ----- Uline=8 Typeface : Times Roman [ 5] Cell height=40 PCL5 Typeface: Times Roman [4101] Ĵ Cell width=43 Font selection : (0Q(s1p25h1v0s0b5T PCL5 selection : (0Q(s1p25h1v0s0b4101T F1=Help F4=Char Info F5=Addnl Desc F6=Warnings Esc=Exit 163kb -------------------------------------------------------------------------------- Figure 11.1. Info Main Panel 11.1.1. ``F1'' Pressing ``F1'' provides context-sensitive help for the Info panels. 11.1.2. ``Esc'' You can leave at any time by pressing ``Esc'' . 11.1.3. ``F4'' Pressing ``F4'' displays character information for the font. The dimensions of the largest character in the font are summarized and a scrolling list of the characters in the font is displayed. The additional info panel looks like this: --------------------------------------------------------------------------------  SfShell vers 1.0 Į Character Information Ŀ Widest bounding box on any character: 39 ("W") Tallest bounding box on any character: 38 ("j") Tallest ascender on any character: 30 (Ctrl-D) Deepest descender on any character: 10 ("<") Largest combined cell: 39x40 (max width X max height) Ŀ Character Cl Or Left Top Wd Ht dX Data ij Ctrl-@ 2 P 2 28 21 29 100 40  Ctrl-A 1 P 1 28 26 29 112 116 Ctrl-B 1 P 2 29 26 31 120 124 Ctrl-C 1 P 0 28 27 29 112 116 Ctrl-D 2 P 1 30 25 34 112 124  Ctrl-E 2 P 1 28 28 29 120 26 ij į  for More F1=Help Arrows=Move Esc=Exit 163kb -------------------------------------------------------------------------------- Figure 11.2. Additional Character Information Panel The scrolling list of characters displays the class, orientation, leftoffset, top-offset, width, height, delta-X, and data sizes of every character in the font. These are technical measurements in the softfont and can be ignored by most users. The left-offset, top-offset, width, and height fields are PCL coordinate system dots. The delta-X field is in 1/4 dot units. The data size is in bytes. For compressed fonts (class 2 characters), this is the data size of the compressed character, not the expanded character. 11.1.4. ``F5'' Pressing ``F5'' displays any additional information present in the font header. The most common use of this area is font copyright information. The special effects program in Sfware uses this area to describe what effects have been performed on the font. Not all fonts have additional information in the header. 11.1.5. ``F6'' When the font is scanned, it is frequently possible to recognize that it is not ``valid'' for some printers. The LaserJet III printer (and, presumably, printers that follow it) have a very relaxed set of guidelines as to what constitutes a valid font. Older printers, the LaserJet Series II in particular, have very stringent requirements. Info recognizes these incompatabilities and will display a warning message for each problem that it finds. If the problem can easily be corrected, the appropriate action is described. 12. The Bold Effect Emboldening a font makes it appear darker on the page. Adding a large amount of boldness to a font will cause it to blur and become difficult to read. In professional typography, the characters in a bold version of a font have different shapes and proportions. This is beyond the ability of Sfware. A normal font made bolder with Sfware will not look the same (and probably will not look as good) as a real bold version of the original font. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Amount of boldness: 0 r010aaa.esp  rb1ctxc.sfl The Bold effect emboldens each mr10.sfp character by adding dots to the rb1ctxc.sfp perimeter. The amount specified rr0ousc.sfp above is the number of dots that rr0wusc.sfp will be added. rr14txc.sfp rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 12.1. The Bold panel 12.1. Options 12.1.1. Amount of boldness The amount of boldness controls how much darker the characters are made to appear. The larger the number, the darker the characters will be. For best results, the amount of boldness should be small with respect to the size of the font. It's difficult to define ``small'' in this context; one-tenth of the point size of the font (or less) is probably a good estimate. Experiment and see what looks most pleasing to the eye. 12.2. Technically Speaking The bold effect locates ``edge'' pixels (that is, pixels that are on a border of the character) by scanning horizontally across each row of pixels. Every time a pixel position is found that is currently off and adjacent to, but not surrounded by, pixels that are on, the pixel is turned on. This has the effect of adding pixels to the border of the character. The appropriate font and character parameters are updated so that the original character shape (now surrounded by a border) prints in the same position as the original. In other words, the left offset is incremented by one, the baseline is incremented by one, and the character bounding box is expanded. If an amount of boldness greater than one is specified, the above algorithm is iterated to produce the correct amount of boldness. 13. The Fixed Spacing Effect Fixed spacing uses the same width for each character in the font. This is the opposite of proportional spacing in which each character is given a width appropriate to its appearance. In a fixed spaced font, all characters have the same width. The fixed spacing effect creates a fixed spaced font from a proportionally spaced font. This can be useful if you need to line up columns of characters, for example, although it's generally better to use a font specifically designed for fixed spacing. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij The Fix effect creates a fixed r010aaa.esp  spaced font from a proportionally rb1ctxc.sfl spaced font. Each character will mr10.sfp be centered in a character box rb1ctxc.sfp as wide as the widest character in rr0ousc.sfp the font. rr0wusc.sfp rr14txc.sfp rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help nr0wusc.sfp  ij Three-D  Proportional į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 13.1. The Fixed Spacing panel 13.1. Options There are no options for this effect. 13.2. Technically Speaking In the fixed spaced version of the font, all characters have the maximum cell width. Bitmaps that are narrower than the maximum cell width are adjusted to print as if they were centered in a box as wide as the maximum cell width. 14. The Fill Effect Filling a font creates outlined characters filled with a user-specified pattern. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Pattern: Ŀ Ŀ r010aaa.esp  Ŀ rb1ctxc.sfl The Fill effect is essentially ĿĿĿ mr10.sfp the combination of two effects. Ŵ İ rb1ctxc.sfp Filled characters are hollowed ٰٰ rr0ousc.sfp characters with their centers Ĵ rr0wusc.sfp shaded with the specified pattern. ĿĿ rr14txc.sfp Ŀ rr1ctxc.sfp ٰ rr1ktxc.sfp ٰٰ rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range F4/F5=Select/Preview Pattern nr0wusc.sfp  ij Three-D  į  for More ٰ 159kb -------------------------------------------------------------------------------- Figure 14.1. The Fill panel 14.1. Options 14.1.1. Pattern Patterns can be specified directly or by using names defined in the configuration file. The Patterns chapter describes how to create patterns; the Configuration chapter describes how to save and name patterns. 14.2. Technically Speaking Patterns are described in more technical detail in the Patterns chapter. 15. The Halftone Effect Halftoning a font can produce a wide variety of results. It is one of the most general effects in SfFx's repertoire. In brief, it allows you to specify the fill patterns for both the foreground and the background of two different regions of each character. This can create, for example, half-inverted characters. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Black top : İ r010aaa.esp  White top : Ŀ rb1ctxc.sfl * mr10.sfp Invert start : 0.00 (% from top) rb1ctxc.sfp Invert stop : 0.00 (% from top) ۰ rr0ousc.sfp ۰۰ rr0wusc.sfp Black bottom : İ۰ rr14txc.sfp White bottom : ۰۰ rr1ctxc.sfp ۰۰ rr1ktxc.sfp The Halftone effect allows you to create ۰ rr1kusc.sfp partially Inverted characters. rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range F4/F5=Select/Preview Pattern nr0wusc.sfp  ij Three-D  į  for More ٰ 157kb -------------------------------------------------------------------------------- Figure 15.1. The Halftone panel 15.1. Options Every character is divided into two areas, a selected area and a non-selected area. These areas are referred to as as the ``top'' area and the ``bottom'' area because that is the way they are drawn in the reference panel. Within each area, two shading patterns are applied-- one to the currently black portion of the character cell (the character itself) and one to the white portion of the character cell (everything else). The reference panel displays a font that is being halftoned with the following parameters: the black top is using a pattern of 170;85, the white top is using a pattern of 0, the invert start is 50%, the invert stop is 100%, the black bottom is using a pattern of 0, and the white bottom is using a pattern of 170;85. Please refer to the Patterns chapter elsewhere in this manual for more information about patterns. 15.1.1. Black top The black top pattern replaces the black areas of the non-selected region. 15.1.2. White top The white top pattern replaces the white area (everything in the cell that isn't black) of the non-selected region. 15.1.3. Invert start The invert start specifies where the selected area begins. This value should be expressed as a percentage from the top of the tallest character in the font. For example, specifing 25 begins the selected area 1/4 of the way down from the top of the character, similarly, 50 selects a position halfway down the character and 67 selects a position 67% of the way down from the top of the character. The panel refers to these areas as ``top'' and ``bottom;'' however, there is no reason why you cannot specify a selected region that forms a band across the middle of the character (e.g. from 33% to 66%). 15.1.4. Invert stop By analogy with invert start, this option specifies where the select region ends. The invert stop value should be larger than the starting value. The area between the start position and the stop position is the ``selected region'' of the character. 15.1.5. Black bottom The black bottom pattern replaces the foreground (black) area of the selected region. 15.1.6. White bottom The white bottom pattern replaces the background (white) area of the selected region. 15.2. Technically Speaking This effect forms the heart of several effects in SfFx. For example, the ``shade'' effect is nothing more than the halftone effect applied to a selected region from 0% to 100% of the character! If you understand the concept of a pattern (discussed in the Patterns chapter), it shouldn't be too difficult to understand the halftone effect. Note:in any effect that changes the background pattern, it may be necessary to turn off ``kerning'' within the word processor or other program that you use to print the font. Normally, causing two characters to overlap by a small amount (for example a capital ``T'' followed by a lowercase ``o'') is not noticable because they only overlap in the ``white'' background. However, after you have changed the background to a pattern other than plain white, the effect of overlapping two characters by even a small amount may be undesirable. 16. The Horizontal Fade/Mist Effect Fading a font with this effect ``smudges'' out the leading or trailing edge of each character. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Fade percent : 0.00 r010aaa.esp  rb1ctxc.sfl Fade backward: N mr10.sfp rb1ctxc.sfp The fade effect fades a character from rr0ousc.sfp left to right or (if backward is Y) from rr0wusc.sfp right to left. The fade percent determines rr14txc.sfp where the fade reaches 100% black. If rr1ctxc.sfp it is greater than 100%, the fade will rr1ktxc.sfp reach 100% before the right edge of the rr1kusc.sfp character. If it is less, the fade will rr1kxxc.sfp never reach 100%. nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb Figure 16.1. The Horizontal Fade panel -------------------------------------------------------------------------------- 16.1. Options 16.1.1. Fade Percent The fade percent determines what percentage of the character is faded out.A fade factor of 100% applies the fade all the way across each character so that a 100% black saturation is achieved in the last column of pixels. Fade factors below 100% apply the fade more rapidly so that a 100% black saturation is achieved before the edge of the character. Conversly, fade factors above 100% draw the fade out so that it never reaches saturation. 16.1.2. Fade Backward By default, a horizontal fade begins with 0% black on the left edge of the character and proceeds towards 100% on the right edge (at a rate determined by ``fade percent.'' See above). If backwards fading is selected, the fade proceeds from right to left instead of left to right. 16.2. Technically Speaking The fade effect examines each pixel in the bitmap and decides randomly if the pixel should be turned off. In any given column, 100*ColumnNumber*(FadePercent/100)/CharacterWidth percent of the pixels are turned off. 17. The Hollow Effect Hollowing a font produces an unfilled outline of each character. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij The Hollow effect removes all interior Ŀ r010aaa.esp  'black' space from each character. Ŀ Ŀ rb1ctxc.sfl The result is similar to outlining. mr10.sfp However, hollowed characters are exactly rb1ctxc.sfp the same size as the originals, whereas Ŀ Ŀ rr0ousc.sfp outlined characters are one row of Ŀ Ŀ rr0wusc.sfp dots larger in each direction. In rr14txc.sfp short, outlining traces around each rr1ctxc.sfp character and hollowing carves out rr1ktxc.sfp the middle out of each character. rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 17.1. The Hollow panel 17.1. Options The hollow effect has no options. 17.2. Technically Speaking The hollow effect and the outline effect are very closely related. The only difference is the placement of the outline. In the hollow effect, the existing perimeter of each character is left in place and the interior is ``scooped out''. For the outline effect, the entire character is erased and a new perimeter is added just around the character. In effect, an outlined character is a hollowed bold character (see the technically speaking section of the bold effect for more details). It should also be noted that the hollow and fill effects are closely related. A hollowed character is a filled character with a pattern of 0. 18. The Invert Effect Inverting a character creates a ``reverse video'' effect. However, the choice of patterns in this effect can dramatically change the result. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Black pattern: Ŀ r010aaa.esp  rb1ctxc.sfl White pattern: mr10.sfp rb1ctxc.sfp The Invert effect replaces the rr0ousc.sfp `black' and `white' regions of rr0wusc.sfp each character with the specified rr14txc.sfp patterns. rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range F4/F5=Select/Preview Pattern nr0wusc.sfp  ij Three-D  į  for More ٰ 159kb -------------------------------------------------------------------------------- Figure 18.1. The Invert panel 18.1. Options Both of the options for this effect are patterns. See the Patterns chapter elsewhere in this manual for more information. 18.1.1. Black pattern This pattern replaces all of the black areas of the character. 18.1.2. White pattern This pattern replaces all of the white areas of the character. 18.2. Technically Speaking See the technically speaking section of the halftone effect for more information. 19. The Mirror Effect Mirroring a font creates characters that are upside down. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Mirror baseline adjustment: 0 r010aaa.esp  rb1ctxc.sfl The Mirror effect turns each character mr10.sfp upside down. The Mirror baseline rb1ctxc.sfp adjustment changes the placement of rr0ousc.sfp the 'mirror.' Positive values move rr0wusc.sfp it above the baseline, negative values rr14txc.sfp below. rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 19.1. The Mirror panel 19.1. Options 19.1.1. Mirror baseline adjustment The mirror baseline adjustment changes the relative position of the (virtual) mirror across which each character is rotated. A value of zero specifies that the mirror is on the baseline, values larger than zero move the mirror above the baseline, smaller values move it below. 19.2. Technically Speaking If you plan to use a font and its mirror to create a special display effect (by placing one above the other), you may find that the descenders on the original font overlap the ``descenders'' (now ascenders!)on the mirrored font. This is where it is helpful to change the mirror baseline adjustment. By making the adjustment roughly equal to the number of pixels in the descenders of the original font, you can move the mirrored font ``down'' a little so that the mirrored descenders don't overlap the descenders on the original font. 20. The Mist Effect Misting a font ``smudges'' each character. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Mist percent : 0.00 r010aaa.esp  rb1ctxc.sfl The mist effect is very much like the mr10.sfp shade effect. However, there is no rb1ctxc.sfp pattern; instead, each character is rr0ousc.sfp uniformly faded by the specified percent. rr0wusc.sfp The fade is randomly distributed over the rr14txc.sfp character which produces a random, misty rr1ctxc.sfp appearance. rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 20.1. The Mist panel 20.1. Options 20.1.1. Mist Percent The mist percent determines what percentage of the character is misted (faded) out. Larger mist percentages remove more pixels than smaller ones. A 100% (or larger) mist percent removes all trace of the character. 20.2. Technically Speaking This effect is identical to the horizontal and vertical fade effects with the exception that the fade percentage is calculated once and does not vary for each row or column in the bitmap. 21. The Outline Effect Outlining a font produces an unfilled outline of each character. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij The Outline effect creates Ŀ r010aaa.esp  characters that are outlined. Ŀ rb1ctxc.sfl Each character is replaced by a Ŀ Ŀ mr10.sfp tracing of its perimeter. rb1ctxc.sfp rr0ousc.sfp Outlining is similar to hollowing. Ĵ rr0wusc.sfp For a more complete discussion of Ŀ Ŀ rr14txc.sfp the differences, please read the Ŀ rr1ctxc.sfp description of the Hollow effect. rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 159kb -------------------------------------------------------------------------------- Figure 21.1. The Outline panel 21.1. Options The outline effect has no options. 21.2. Technically Speaking See the technical discussion of the hollow effect for more information. 22. The Proportional Spacing Effect Proportional spacing is the opposite of fixed spacing. In a proportionally spaced font, each character is only as wide as its printed image, plus a small border. The proportional spacing effect creates a proportionally spaced version of a fixed spaced font. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij The Prop effect creates a r010aaa.esp  proportionally spaced font from rb1ctxc.sfl a fixed spaced font. Each character mr10.sfp will be as wide as its image with rb1ctxc.sfp two additional columns of dots on rr0ousc.sfp each side for padding. The default rr0wusc.sfp HMI for the font will be the width rr14txc.sfp of the lowercase letter 'i'. rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help nr0wusc.sfp  ij Three-D  Proportional į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 22.1. The Proportional Spacing panel 22.1. Options There are no options for this effect. 22.2. Technically Speaking In the proportionally spaced version of the font, all characters are four dots wider than the natural width of the bitmaps required to print each character (two dots on each side). Note: in many fonts, conversion from proportional spacing to fixed and back to proportional will yield a proportionally spaced font that is not as attractive as the original font since conversion to fixed spacing effectively destroys any special spacing information. For example, in many fonts the tail of a lower case letters like ``j'' and ``g'' are allowed to ``hang back'' below the character that precedes them. When a font is converted from fixed spacing to proportional spacing, there is no way to insert this kind of aesthetic hint automatically. 23. The Resize Effect Resizing a font creates characters that are larger or smaller than the same characters in the original font. The characters can be scaled uniformly (creating more or less accurate renditions of the original characters with the same proportions) or non-uniformly (creating elongated or widened characters). --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij New width : 0.00 (% of orig. width) r010aaa.esp  rb1ctxc.sfl New height: 0.00 (% of orig. height) mr10.sfp rb1ctxc.sfp The Resize effect allows you to change rr0ousc.sfp the height and width of the characters rr0wusc.sfp in the font. rr14txc.sfp rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 23.1. The Resize panel 23.1. Options 23.1.1. New Width The new width specifies the width of each resized character as a percentage of its original size. Values less than 100 make the characters narrower, while values larger than 100 make them wider. 23.1.2. New Height Like the width, the new height specifies the height of each resized character as a percentage of its original height. 23.2. Technically Speaking In practice, this effect has few uses. Unlike more modern font scaling technology (which relies on mathematical descriptions of each character) SfFx has only the bitmap description of each character to work with. As a result, gross changes in the size of a character create ``jagged'' edges and very poor quality letters. Making fonts larger generally works better than making them smaller. As a rule of thumb, you probably won't like the results if you try to resize a font by more than a factor of two. If you hold one dimension constant (100%), it may be possible to stretch or compress the other dimension by a larger factor without significant loss of detail. 24. The Reverse Effect Reversing a font creates backwards characters. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij The Reverse effect makes each r010aaa.esp  character in the font backwards. rb1ctxc.sfl mr10.sfp rb1ctxc.sfp rr0ousc.sfp rr0wusc.sfp rr14txc.sfp rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 24.1. The Reverse panel 24.1. Options There are no options for the reverse effect. 24.2. Technically Speaking The reverse effect simply rotates each bitmap through its center. The left offset and delta-x values of each character are adjusted to keep the correct amount of space ``in front of'' and ``behind'' each character. 25. The Shadow Effect Shadowing attempts to produce the effect that you would get if all you could see on the page were the shadows from an embossed image of the original character. It's a bit difficult to describe, but it is one of my favorite effects. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Shadow width : 0 dots Ŀ r010aaa.esp  Ŀ rb1ctxc.sfl Shadow height: 0 dots Ŀ mr10.sfp rb1ctxc.sfp The Shadow effect removes each rr0ousc.sfp character and leaves behind only rr0wusc.sfp the shadow that might be present rr14txc.sfp if they were embossed letters rr1ctxc.sfp illuminated obliquely. rr1ktxc.sfp rr1kusc.sfp Ĵ rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 159kb -------------------------------------------------------------------------------- Figure 25.1. The Shadow panel 25.1. Options 25.1.1. Shadow Width The shadow width controls the width (in dots) of the shadow to the right or left of the original character. Positive values create a shadow on the right hand side of the character, while negative values create a shadow on the left. This value should be small relative to the total width of the character. 25.1.2. Shadow Height By analogy with the shadow width, the shadow height controls the height of the shadow above or below the character. Positive values create shadows below the character, negative values above. This value should be small relative to the total height of the character. 25.2. Technically Speaking The effect is produced by moving a copy of the character over and down by the specified amounts and then removing all dots that fall within the original character (including all of the original character). For small widths, this works fine; however when the widths become larger than the widths of the strokes that make up the chacter, the effect falls apart. 26. The Shade Effect Shading a font replaces all off the ``black'' areas of a font with the specified shading pattern. This effect changes dramatically depending on the pattern that you select. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Pattern: Ŀ r010aaa.esp  rb1ctxc.sfl The shade effect replaces all of mr10.sfp the 'black' areas of each character ٰ rb1ctxc.sfp in the font with the specified rr0ousc.sfp pattern. rr0wusc.sfp rr14txc.sfp rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range F4/F5=Select/Preview Pattern nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 26.1. The Shade panel 26.1. Options 26.1.1. Pattern All of the black areas of each character are replaced by the specified pattern. Please refer to the chapter on patterns elsewhere in this manual for more information about patterns. 26.2. Technically Speaking Patterns are described in more technical detail in the pattern chapter. 27. The Slant Effect Slanting is a poor-man's version of italics. In practice, italic fonts are not just slanted versions of the upright characters. But slanting will suffice in a pinch and it does allow you to produce oblique characters (slanted backwards), which are occasionally useful. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Slant: 0.00 r010aaa.esp  rb1ctxc.sfl The Slant effect creates italic- mr10.sfp like characters. Each character rb1ctxc.sfp can be slanted forward or obliquely rr0ousc.sfp by as much as 60. rr0wusc.sfp rr14txc.sfp rr1ctxc.sfp rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp F1=Help Enter=Done F3=Exit nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 27.1. The Slant panel 27.1. Options 27.1.1. Slant The slant specifies the amount of slant in degrees. A positive value causes the characters to slant toward the right. A negative value causes the characters to slant toward the left. 27.2. Technically Speaking This effect is produced by calculating how far over each row of pixels must be moved in order to produce a slant of the requested angle. Using a little bit of trigonometry, it is easy to calculate how far over the top row must be moved. Each row below the top must be moved over some fraction of the total height of the character. Rows below the baseline must be moved in the opposite direction. Considering that this algorithm does nothing more than slide rows of dots back and forth, it should be easy to see that large slant values may produce jagged, non-contiguous characters. 28. The Stripe Effect Striping places alternating white and black horizontal lines across each character in the font. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Black stripe width: 0 dots r010aaa.esp  rb1ctxc.sfl White stripe width: 0 dots mr10.sfp rb1ctxc.sfp The Stripe effect creates letters rr0ousc.sfp formed from alternating black and rr0wusc.sfp white stripes. The stripes in rr14txc.sfp different characters of the same rr1ctxc.sfp font will line up. rr1ktxc.sfp rr1kusc.sfp rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 28.1. The Stripe panel 28.1. Options 28.1.1. Black stripe width Selects the width (in dots) of the black stripes. 28.1.2. White stripe width Selects the width (in dots) of the white stripes. 28.2. Technically Speaking In each character, the stripes are adjusted so that a black stripe begins at the baseline. This assures that the stripes will line up when characters are placed next to each other. Note: a similar effect with vertical stripes can be created with the shade effect using an appropriate pattern. 29. The Three-D Drop Shadow Effect Three-D drop shadows create a patterned shadow-image of each character that appears to be below the original. It is possible to change the apparent ``distance'' of the shadow by changing the offsets used to create it. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij X-Offset: 0 dots Ŀ r010aaa.esp  ڰ rb1ctxc.sfl Y-Offset: 0 dots mr10.sfp Ŀ rb1ctxc.sfp Pattern : Ĵ rr0ousc.sfp ۰ rr0wusc.sfp Three-D characters are created with a rr14txc.sfp patterned shadow beneath them. The rr1ctxc.sfp shadow is created down/right X/Y-Offset rr1ktxc.sfp dots using the pattern specified. rr1kusc.sfp ۰ rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range F4/F5=Select/Preview Pattern nr0wusc.sfp  ij Three-D Ŀ ij Drop shadow į  for More ٰ Hollow/Drop Filled/Drop 158kbٰ -------------------------------------------------------------------------------- Figure 29.1. The Three-D Drop Shadow panel 29.1. Options 29.1.1. X-Offset The x-offset controls the distance (in dots) of the shadow to the right or left of the original character. Positive values create a shadow on the right hand side of the character, negative values create a shadow on the left. 29.1.2. Y-Offset By analogy with the x-offset, the y-offset controls the distance of the shadow above or below the character. Positive values create shadows below the character, negative values above. 29.1.3. Pattern The pattern specified is applied to the areas used in the shadow. 29.2. Technically Speaking The original character is moved left or right and up or down by the distances specified. If necessary the character cell is enlarged to accommodate the new character. The character is then shaded with the specified pattern and the original character is painted back into the character cell at its original position. 30. The Hollow Three-D Drop Shadow Effect Hollow Three-D drop shadows are simply a combination of the three-d drop shadow effect and the hollow effect. It is a limitation of the algorithms used to create the three-d drop shadow effect that it is not possible to hollow a three-d character. This effect is provided to circumvent that limitation. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij X-Offset: 0 dots Ŀ r010aaa.esp  rb1ctxc.sfl Y-Offset: 0 dots Ŀ mr10.sfp ۳ Ŀ rb1ctxc.sfp The Hollow-3D effect combines the ۳ ۳ rr0ousc.sfp hollow and three-d effects. A ۳ rr0wusc.sfp `hollow'ed character is given a ۳ rr14txc.sfp solid `three-d' shadow. ۳ Ŀ rr1ctxc.sfp ۳ ۳ rr1ktxc.sfp ۳ rr1kusc.sfp ۳ rr1kxxc.sfp nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D Ŀ ij Drop shadow į  for More ٰ Hollow/Drop Filled/Drop 160kbٰ -------------------------------------------------------------------------------- Figure 30.1. The Hollow Three-D Drop Shadow panel 30.1. Options 30.1.1. X-Offset The x-offset controls the distance (in dots) of the shadow to the right or left of the original character. Positive values create a shadow on the right hand side of the character, negative values create a shadow on the left. 30.1.2. Y-Offset By analogy with the x-offset, the y-offset controls the distance of the shadow above or below the character. Positive values create shadows below the character, negative values above. 30.2. Technically Speaking This option is exactly the same as the three-d drop shadow effect except that the shadow is always solid black and instead of painting the original character back into the cell, a hollowed version of the original character is painted back in. 31. The Filled Three-D Drop Shadow Effect Filled Three-D drop shadows are simply a combination of the three-d drop shadow effect and the fill effect. It is a limitation of the algorithms used to create the three-d drop shadow effect that it is not possible to create a filled three-d character. This effect is provided to circumvent that limitation. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ ilename ij X-Offset: 0 dots Ŀ ij r010aaa.esp  Y-Offset: 0 dots ۰ rb1ctxc.sfl Ŀ ۰ mr10.sfp Pattern : Ĵ rb1ctxc.sfp ٰ rr0ousc.sfp The Fill-3D effect combines the fill ۰ rr0wusc.sfp and three-d effects. A 'fill'ed letter ۰ ۰ rr14txc.sfp is given a solid 'three-d' shadow. ۰ ۰ rr1ctxc.sfp ۰ rr1ktxc.sfp Note: the fill outline isn't shown ۰ rr1kusc.sfp in this representation. rr1kxxc.sfp nb1ctxc.sfp Enter=Done F1=Help F2=Range F4/F5=Select/Preview pattern nr0ousc.sfp nr0wusc.sfp  ij Stripe ij Three-D Ŀ ij Drop shadow į  for More ٰ Hollow/Drop Filled/Drop 159kbٰ -------------------------------------------------------------------------------- Figure 31.1. The Filled Three-D Drop Shadow panel 31.1. Options 31.1.1. X-Offset The x-offset controls the distance (in dots) of the shadow to the right or left of the original character. Positive values create a shadow on the right hand side of the character, negative values create a shadow on the left. 31.1.2. Y-Offset By analogy with the x-offset, the y-offset controls the distance of the shadow above or below the character. Positive values create shadows below the character, negative values above. 31.1.3. Pattern The pattern specified is applied to the original character. 31.2. Technically Speaking This option is exactly the same as the three-d drop shadow effect except that the shadow is always solid black and instead of painting the original character back into the cell, a pattern-filled version of the original character is painted back in. 32. The Vertical Fade/Mist Effect Fading a font with this effect ``smudges'' out the top or bottom edge of each character. --------------------------------------------------------------------------------  SfShell vers 1.0 ĿĿ Ŀilename ij ij Fade percent : 0.00 r010aaa.esp  rb1ctxc.sfl Fade backward: N mr10.sfp rb1ctxc.sfp The fade effect fades a character from rr0ousc.sfp top to bottom or (if backward is Y) from rr0wusc.sfp bottom to top. The fade percent determines rr14txc.sfp where the fade reaches 100% black. If rr1ctxc.sfp it is greater than 100%, the fade will rr1ktxc.sfp reach 100% before the bottom of the rr1kusc.sfp character. If it is less, the fade will rr1kxxc.sfp never reach 100%. nb1ctxc.sfp nr0ousc.sfp Enter=Done F1=Help F2=Range nr0wusc.sfp  ij Three-D  į  for More ٰ 160kb -------------------------------------------------------------------------------- Figure 32.1. The Vertical Fade panel 32.1. Options 32.1.1. Fade Percent The fade percent determines what percentage of the character is faded out.A fade factor of 100% applies the fade all the way down each character so that 100% black saturation is achieved in the last row of pixels. Fade factors below 100% apply the fade more rapidly so that a 100% black saturation is achieved before the bottom of the character. Conversely, fade factors above 100% draw the fade out so that it never reaches saturation. 32.1.2. Fade Backward By default, a vertical fade begins with 0% black on the top row of the character and proceeds towards 100% on the bottom row (at a rate determined by ``fade percent.'' See above). If backwards fading is selected, the fade begins with 0% black on the bottom row of the character and proceeds towards 100% on the top row. 32.2. Technically Speaking See the technically speaking section for the Horizontal Fade/Mist effect. The vertical fade algorithm is a natural analog of the horizontal fade algorithm. 33. Patterns 33.1. What are patterns? Patterns change the appearance of many effects. A pattern is a rectangular region of on-and-off dots that is repeated across and down to cover the region being filled. The pattern is specified as a series of numbers separated by commas and semicolons. The binary representation of the numbers separated by commas indicates the dots that are on and off in each row and semicolons separate rows. 33.2. How do I create one? Creating a new pattern is not difficult. The best way to begin is with a piece of graph paper and a pencil. Experiment until you have something that you like and then follow the directions below. For example, suppose that you wish to create a zig-zag pattern. Here is one possibility: +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | * | | | | * | | | | * | | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | * | | * | | * | | * | | * | | * | | * | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | * | | | | * | | | | * | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | | | | | | | | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | | | * | | | | * | | | | * | | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | * | | * | | * | | * | | * | | * | | * | +---+---+---+---+---+---+---+---+---+---+---+---+---+ | | * | | | | * | | | | * | | | | +---+---+---+---+---+---+---+---+---+---+---+---+---+ 33.2.1. Isolate a ``generating region'' Isolate the smallest region that can be used to generate the pattern. This region, when repeated to the right and down, should create the entire pattern. In this case, the smallest acceptable region is this: +---+---+---+---+ | | | | | +---+---+---+---+ | | | * | | +---+---+---+---+ | | * | | * | +---+---+---+---+ | * | | | | +---+---+---+---+ Note: there is frequently more than one smallest region that will produce the pattern. I have intentionally chosen this region because it is not the upper-left hand corner. Usually the upper-left hand corner contains a generating region, but not always. 33.2.2. Round to 8-dots The region used to generate the pattern must be an even multiple of eight dots wide. Repeat the smallest region to the right until it is a multiple of eight dots wide. You must repeat the entire pattern (for example, if the region is 6 dots wide, you will have to repeat it until it is 24 dots wide). In this case the smallest region a multiple of eight dots wide is this: +---+---+---+---+---+---+---+---+ | | | | | | | | | +---+---+---+---+---+---+---+---+ | | | * | | | | * | | +---+---+---+---+---+---+---+---+ | | * | | * | | * | | * | +---+---+---+---+---+---+---+---+ | * | | | | * | | | | +---+---+---+---+---+---+---+---+ 33.2.3. Use zeros and ones Redraw the pattern using zeros for ``off'' dots and ones for ``on'' dots. If the pattern is more than eight dots wide, write the zeros and ones of each row in groups of eight as you copy the pattern. In our example, the result is this: +---+---+---+---+---+---+---+---+ | | | | | | | | | = 00000000 +---+---+---+---+---+---+---+---+ | | | * | | | | * | | = 00100010 +---+---+---+---+---+---+---+---+ | | * | | * | | * | | * | = 01010101 +---+---+---+---+---+---+---+---+ | * | | | | * | | | | = 10001000 +---+---+---+---+---+---+---+---+ 33.2.4. Convert to number Treat each group of eight digits in each row like a binary number. Using a calculator or a conversion chart (there is a conversion chart in the online help facility for SfShell), change each eight digit binary number into a decimal number. If the rows have more than one group of eight digits, separate the resulting decimal numbers with commas. Our example becomes: 00000000 = 0 00100010 = 34 01010101 = 85 10001000 = 136 33.2.5. Rewrite Use the decimal numbers to create the pattern command. Optionally, you may wish to add the pattern to the configuration file (as described below). The decimal numbers for each row are separated by commas and the rows are separated by semicolons. The pattern we set out to create can be specified as follows: 0;34;85;136 Remember that you can use preview to look at the pattern before creating a font with it. This is a good way to check that you did the conversion correctly. 33.3. Saving the pattern Alternatively, the patterns may be saved in the configuration file and selected by name. Read the Configuration chapter for more information. 33.4. Previewing Patterns It is possible to preview any pattern by pressing ``F5'' when you are on a pattern field or when the list of patterns is displayed. The list of patterns will be displayed if you press ``F4'' when you are on a pattern field. 33.5. Technically Speaking The fact that patterns are used for so many effects makes it apparent that Sfware really needs a pattern editor and a better mechanism for storing patterns. These are planned additions but Sfware is already beginning to suffer from ``creeping featurism'' (in the author's opinion, at least) and it has been decided that these changes will just have to wait until the next release. However, in view of the fact that creating patterns by the above method is very tedious, a simple program (PATTERN.EXE) has been added to Sfware that eliminates most of the ``hard parts.'' Please consult the file PATTERN.DOC for more information. 34. Softfont Directory Listings The softfont directory program, SfDir, is not integrated into SfShell. This chapter describes the standalone SfDir program. The SfShell main menu contains most of the features of the standalone program. The SfDir program provides a useful alternative to the standard DOS DIR command for softfonts. SfDir prints the font characteristics of each softfont that matches the fontmask. 34.1. Example Directory of D:\FONTS\*.* AR010AAA ESP Port 10J Fix 12.00cpi 9.96pt Up Medium Courier TRB1CTXC SFL Land 0Q Pro 12.00pt Up Bold TmsRmn CMR10 SFP Port 0U Pro 9.96pt Up Medium TmsRmn TRB1CTXC SFP Port 0Q Pro 12.00pt Up Bold TmsRmn TRR0OUSC SFP Port 0U Pro 6.00pt Up Medium TmsRmn TRR0WUSC SFP Port 0U Pro 8.00pt Up Medium TmsRmn TRR14TXC SFP Port 0Q Pro 10.00pt Up Medium TmsRmn TRR1CTXC SFP Port 0Q Pro 12.00pt Up Medium TmsRmn TRR1KTXC SFP Port 0Q Pro 14.00pt Up Medium TmsRmn TRR1KUSC SFP Port 0U Pro 14.00pt Up Medium TmsRmn TRR1KXXC SFP Port 0Q Pro 14.00pt Up Medium TmsRmn UNB1CTXC SFP Port 0Q Pro 12.00pt Up Bold Univers UNR0OUSC SFP Port 0U Pro 6.00pt Up Medium Univers UNR0WUSC SFP Port 0U Pro 8.00pt Up Medium Univers UNR14USC SFP Port 0U Pro 10.00pt Up Medium Univers UNR1CTXC SFP Port 0Q Pro 12.00pt Up Medium Univers UNR1KUSC SFP Port 0U Pro 14.00pt Up Medium Univers NB010AAA USP Port 0U Pro 9.96pt Up Medium Typeface# 210 VGA20 SFP Port 10U Fix 20.00cpi 1.68pt Up Medium Courier VGA20SH SFP Port 10U Fix 20.00cpi 1.68pt 14 Medium Courier 20 Font(s) 268420 bytes 34.2. Usage SFDIR fontmask [options] 34.3. Options 34.3.1. /esc If SfDir is run with the /esc option, it prints the LaserJet escape sequence required to select each font instead of a textual description of the font characteristics. In the escape sequence, a raised dot is used to represent the ESC character (ASCII 27d). 34.3.2. /noesc With the /noesc option, SfDir prints a textual description of the font characteristics for each font that matches the fontmask. This is generally the default. 34.3.3. /verbose All of the Sfware utilities print regular progress messages. The /verbose option causes many utilities to print more detailed progress messages. 34.3.4. /quiet The /quiet option suppresses some informative messages. For example, the /quiet option will suppress the %-complete messages in SfLoad. 34.3.5. /$ The /$ option displays registration information for the Sfware utilities. If you are using an unregistered program, this information will be displayed automatically. Please register your shareware! 35. Sfware Registration The software registration program, SPS-Reg, is not integrated into SfShell. This chapter describes the standalone SPS-Reg program. Registering shareware is an investment. Your registration will provide the support and encouragement required to continue the development of Sfware. The Sfware utilities represent an investment of more than two years of my time and effort. You get the results of this toil for a fraction of what a commercial package would cost. Plus, you get the benefits of a trybefore-you-buy license agreement. If you continue to use the Sfware utilities, you are required to register them. Return the enclosed order form with your check or money order today! 35.1. Usage The SPS-Reg registration program requires key information that will be mailed to you when you register the Sfware utilities. You cannot make any use of the program until you mail in your registration. 36. Contacting the Author 36.1. By Mail You can reach the author by mail at the following address: Norman Walsh #42I Southwood Apts Brittany Manor Dr Amherst, MA 01002 36.2. Electronically If you have access to electronic mail, the fastest way to reach the author is to send electronic mail to walsh@cs.umass.edu. In this case, electronic mail implies access to Internet domains (through BITNET or UUCP, for example). This is possible from CompuServe and from several of the large national BBS's as well. 37. Glossary ASCII ASCII stands for the American Standard Code for Information Interchange. Text files are usually referred to as being ``plain ASCII'' if they contain no additional formatting information. The CONFIG.SYS and AUTOEXEC.BAT files on your boot disk are examples of a plain ASCII files. The spreadsheets, database files, or word processing documents produced by large application programs are generally not plain ASCII. baseline The baseline is an imaginary line upon which each character rests. Characters that appear next to each other are (usually) lined up so that their baselines are on the same level. Some characters extend below the baseline (``g'' and ``j'', for example) but most rest on it. bitmap A bitmap is an array of dots. If you imagine a sheet of graph paper with some squares colored in, a bitmap is a compact way of representing to the computer which squares are colored and which are still white. In the context of softfonts, the dots are always black and white. In a bitmapped softfont, every character is represented as a pattern of dots in a bitmap. The dots are so small (300 dots-per-inch usually) that they are indistinguishable on the printed page. bounding box Every character in a bitmapped softfont is represented as a pattern of dots in a rectangular grid. The bounding box is an imaginary box just large enough to hold the character. The box is as wide as the widest row of dots and as tall as the tallest column of dots. character A character is an individual symbol in a font. The letter ``A'' is a character. So is a period. All of the printed symbols that can appear in a font are characters. decimal Decimal refers to the number base composed of ten symbols (0-9). Normal, ordinary math is performed in decimal (which can also be referred to as base 10). device A device is a special piece of hardware that exists (either physically or logically) and can be communicated with. Your printer is a device. So is your modem. Your computer also includes several logical devices (for example, the NULL device which is an infinite sink and a null source--that means you can always write to it (it never fills up) and you can never read from it). download Downloading is the process of transferring information from one device to another. This transferral is called downloading when the transfer flows from a device of (relatively) more power to one of (relatively) less power. Sending new fonts to your printer so that it ``learns'' how to print characters in that font is called downloading. EMS EMS memory (also called LIM EMS) is expanded memory in your computer. EMS exists outside of normal DOS main memory. You must have a device driver to provide support for EMS. Sfware uses EMS memory to store font and action lists as well as for swapping when SfShell runs the other utilities. file A file is a collection of information stored on your disk. All the data that you ever save to disk is saved in a file. You can write to files and read from files. filemask A filemask is a DOS filename which may include the ``wildcard'' characters * and ?. The wildcard characters in a filemask allow you to select a group of files. Please consult your DOS reference for more information about wildcard characters. font A font is a collection of symbols that have similar characteristics. The symbols in a font have a fixed typeface, size, weight, style and symbol set. For example, upright, bold Times Roman at 10pt is a font. Contrast with typeface. fontdir In the context of this manual, a fontdir is the filemask ( optionally including a path) that identifies LaserJet softfont files. For example, if you keel all of your softfonts in the directory d:\fonts then d:\fonts\A*.SFP is one example of a valid fontdir. The canonical font directory would be d:\fonts\*.*. hexadecimal Hexadecimal refers to the number base composed of sixteen symbols ( 09,A-F). Hexadecimal is frequently used in computing because 256 different values can be represented in only two digits. Hexadecimal is sometimes called base 16. kerning Kerning refers to slight changes in the spacing between characters. Some letter combinations (``AV'' and ``To'', for example) appear farther apart than others because of the shapes of the individual letters. Many sophisticated word processors move these letter combinations closer together automatically (compare ``AV'' with ``AV'', for example). laserjet Laserjet is a trademarked name for laser printers used by Hewlett Packard. In this document, it simply means an HP LaserJet printer or a compatible laser printer from some other manufacturer. mask See filemask. memory, expanded See EMS. memory, extended Extended memory is memory above the 1 megabyte boundry in your computer. Sfware cannot directly use extended memory. Many programs exist which map extended memory as expanded memory. For more information about expanded memory, see EMS. memory, main Main memory is the DOS memory below 640K in your computer. This is the area where normal DOS programs run. The DOS chkdsk program, for example, reports the amount of main memory that is free. octal Octal refers to the number base composed of eight symbols (0-7). Octal is sometimes called base 8. pathname A pathname is a filename (please consult your DOS reference for more information about what constitutes a valid DOS filename) with its associated drive and path. For example, if tr100.sfp is the name of a file in the directory \fonts on drive d:, then d:\fonts\tr100.sfp is the pathname of tr100.sfp. scalable font A scalable font, unlike a bitmapped font, is defined mathematically and can be rendered at any requested size (within reason). Sfware can download and show scalable fonts but other manipulations (including on-screen previewing) are not possible. selection sequence Your laser printer can print in many different fonts. Some of the fonts are built in, some may come from a cartridge and many can be downloaded. In order to tell the laser printer which font you want text to be printed in, you must send it a selection sequence. The selection sequence describes, in a well defined, precise manner, the typeface, symbol set, height, width, style, and degree of boldness of font that you want. softfont A softfont is a bitmapped or scalable description of a typeface or font. They can be downloaded to your printer and used just like any other printer font. symbol set The symbol set of a font describes the relative positions of individual characters within the font. Since there can only be 256 characters in any font, and there are well over 256 different characters used in professional document preparation, there needs to be some way to map characters into positions within the font. The symbol set serves this purpose. It identifies the ``map'' used to position characters within the font. typeface A typeface is generic term for a collection of symbols with a similar style. Times Roman and Helvetica are typefaces. Contrast with font. SfWare Order Form Name: ______________________________________ Phone: (____) ____-___________ Company: ___________________________________ Mailing Address: _____________________________________________________________ _____________________________________________________________ City: ____________________________ State: ____ Zip: _________ Please pay by check or money order, do not send cash through the mail. Make all checks payable to Norman Walsh. Individual utilities: Quantity Price Total Each _____ SfFx (softfont special effects) _____ @ $25 _____ _____ SfCmpr (softfont compression) _____ @ $10 _____ _____ SfLoad (download softfonts) _____ @ $10 _____ _____ SfRotate (landscape/portrait conversion) _____ @ $10 _____ _____ SfShow (print summary page) _____ @ $10 _____ _____ SfView (preview font on screen) _____ @ $10 _____ _____ SfDir (directory replacement for fonts) _____ @ $ 5 _____ _____ SfInfo (complete font information) _____ @ $ 5 _____ Software bundles: _____ SfShell (menu interface shell) and _____ @ $60 _____ ALL utilities _____ All of the utilities (excluding SfShell) _____ @ $40 _____ _____ Any three utilities (excluding SfFx) _____ @ $20 _____ Please select individual utilities above. Subtotal: _____ Massachusetts residents, please add appropriate sales tax: _____ Total: _____ Complete this form and return it with your payment to: Norman Walsh #42I Southwood Apts Amherst, MA 01002