home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / dosutils / sfw100d2.arj / SFUTILS.TXT < prev    next >
Text File  |  1992-02-01  |  107KB  |  2,741 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                                   Sfware
  20.  
  21.                    A Manual for the Standalone Utilities
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.            Copyright 1990-92 by Norman Walsh All Rights Reserved
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                                 Version 1.0
  39.  
  40.  
  41.  
  42. Notice:
  43.  
  44. This document is written and maintained by Small Planet Software. All
  45. rights reserved. No part of this publication may be reproduced,
  46. photocopied, stored in a retrieval system, or transmitted, in any form or
  47. by any means except those provided for by the shareware license agreement
  48. of the accompanying software.
  49.  
  50. Copyright 1991 by Small Planet Software
  51.  
  52. All Rights Reserved
  53.  
  54. Although every reasonable precaution has been taken in the preparation of
  55. this document, no warranty of any kind is made with regard to the use of
  56. this material, including, but not limited to, the implied warranties of
  57. merchantability or fitness for a particular purpose. No patent or copyright
  58. liability is assumed with respect to the use of the information contained
  59. herein or the use of the accompanying software.
  60.  
  61.  
  62. Acknowledgments:
  63.  
  64. I would like to thank Tom Bruhns and Philippe Weil for their invaluable
  65. assistance. They were my primary gunea pigs as the product went through
  66. alpha and early beta testing. Without their patience and helpful comments,
  67. neither this software nor this manual would be what they are today.
  68.  
  69. All trademarks used within this document are the trademarks of their
  70. respective owners.
  71.  
  72.  
  73.  
  74.  
  75.  
  76.                                  NO WARRANTY
  77.  
  78.  
  79.             THESE PROGRAMS ARE DISTRIBUTED FREELY. THESE PROGRAMS
  80.             IS PROVIDED ``AS IS'' WITHOUT WARRANTY OF ANY KIND,
  81.             EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
  82.             LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  83.             AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK
  84.             AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAMS IS
  85.             WITH YOU. SHOULD THE PROGRAMS PROVE DEFECTIVE, YOU
  86.             ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
  87.             CORRECTION.
  88.  
  89.             IN NO EVENT WILL ANY COPYRIGHT HOLDER BE LIABLE TO
  90.             YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
  91.             INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
  92.             THE USE OR INABILITY TO USE THE PROGRAMS (INCLUDING
  93.             BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
  94.             RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
  95.             THIRD PARTIES OR A FAILURE OF THE PROGRAMS TO OPERATE
  96.             WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
  97.             OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
  98.             SUCH DAMAGES.
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105. Every reasonable effort has been made to assure the quality and completeness
  106. of these programs. If you have any questions, comments or suggestions, or if
  107. you believe that you have found a bug, please contact the author at the
  108. address given at the end of this document.
  109.  
  110.  
  111.                              Table of Contents
  112.  
  113.         1. Introduction
  114.         2. Conventions Used in This Manual
  115.         3. Configuring Sfware and Using Command Files
  116.         4. SFLOAD: Downloading Fonts
  117.         5. SFFX: Special Effects
  118.         6. SFCMPR: Compressing Fonts
  119.         7. SFROTATE: Rotating Fonts
  120.         8. SFSHOW: Showing Fonts
  121.         9. SFVIEW: Viewing Fonts
  122.        10. SFINFO: Displaying Softfont Information
  123.        11. SFDIR: Softfont Directory Listings
  124.        12. The Bold Effect
  125.        13. The Fixed Spacing Effect
  126.        14. The Fill Effect
  127.        15. The Halftone Effect
  128.        16. The Horizontal Fade/Mist Effect
  129.        17. The Hollow Effect
  130.        18. The Invert Effect
  131.        19. The Mirror Effect
  132.        20. The Mist Effect
  133.        21. The Outline Effect
  134.        22. The Proportional Spacing Effect
  135.        23. The Resize Effect
  136.        24. The Reverse Effect
  137.        25. The Shadow Effect
  138.        26. The Shade Effect
  139.        27. The Slant Effect
  140.        28. The Stripe Effect
  141.        29. The Three-D Drop Shadow Effect
  142.        30. The Hollow Three-D Drop Shadow Effect 
  143.        31. The Filled Three-D Drop Shadow Effect
  144.        32. The Vertical Fade/Mist Effect
  145.        33. Patterns
  146.        34. Sfware Registration
  147.        35. Contacting the Author
  148.        36. Glossary
  149.  
  150. 1. Introduction
  151.  
  152. The Sfware softfont utilities from Small Planet Software are MS-DOS
  153. programs distributed under a shareware license agreement. These utilities
  154. provide extensive font manipulation capabilities for HP LaserJet softfonts.
  155.  
  156. The Sfware utilities allow you to download, rotate, compress, expand, view,
  157. and perform special effects on softfonts. The effects provided include
  158. bold, fill, convert to fixed spacing, halftone, hollow, invert, mirror,
  159. outline, convert to proportional spacing, resize, reverse, shade, shadow,
  160. slant, stripe, three-d, hollow-three-d, and filled-three-d. The effects can
  161. be tailored and customized for any font with various parameters and shading
  162. patterns. All of these features are provided by a set of standalone
  163. utilities. The utilities have a standardized interface to make learning how
  164. to use them as painless as possible.  Additionally, the features are
  165. available through an integrated menu interface. The menu interface is
  166. provided by the SfShell program. SfShell is described in another
  167. manual--this manual documents the standalone utilities.
  168.  
  169. 1.1. Getting Started
  170.  
  171. Sfware is ``shareware,'' and the author encourages archive maintainers to
  172. post Sfware for downloading; you may have received your copy from almost
  173. anywhere and almost anyone. Please make sure that you have a complete
  174. distribution before you try to install Sfware.
  175.  
  176. 1.1.1. Hardware Requirements
  177.  
  178. In order to use Sfware, you will need a PC, PS/2, or close compatible with
  179. 150KB or so of free memory. A hard disk is recommended, but not required. A
  180. LaserJet+ or compatible printer is not actually required, but Sfware is
  181. probably a little pointless without one! Note:  the original LaserJet
  182. printer does not have the ability to use softfonts; the Sfware utilities
  183. cannot help you use fonts with the original LaserJet printer.
  184.  
  185. If you want to use the SfShell program, you will need 300-400KB of free
  186. memory and either a hard disk, a ram disk, or sufficient expanded memory
  187. for swapping. You cannot use a removable (floppy) drive for swapping. The
  188. shell is not required for any of the features available in Sfware, but it
  189. does provide a user-interface for the Sfware utilities that is less
  190. intimidating than the command line.
  191.  
  192. If you are running a version of DOS prior to 3.30, read the configuration
  193. section carefully since you may have to do a little more work to get Sfware
  194. installed.
  195.  
  196.  
  197. 1.1.2. Software Requirements
  198.  
  199. In addition to Sfware, you must have at least one HP LaserJet softfont
  200. file.
  201.  
  202. 1.1.3. Packing List
  203.  
  204. Sfware is distributed in four archive files. The archives are named
  205. SFWverP1, SFWverP2, SFWverD1, and SFWverD2. In each file, the ver is
  206. replaced by the Sfware version number. Every archive contains a file called
  207. PACKING.xx that lists the files that should be present in the archive.
  208. Please make sure that you have complete archives before you proceed to
  209. install Sfware.
  210.  
  211. The ``P'' archives contain the Sfware programs and both are required in
  212. order to install Sfware. The ``D'' archives contain documentation. The
  213. ``D1'' archive documents the SfShell interface, the ``D2'' archive
  214. documents the individual utilities. Please refer to the file PRINTDOC in
  215. SFWverP1 for instructions describing how to print the documentation.
  216.  
  217. 1.2. Installation
  218.  
  219. 1.2.1. Making Backups
  220.  
  221. Like any software package, it is always advisable to make backup copies of
  222. the distribution diskettes or distribution archives. This is especially
  223. important if you use an ``on the fly'' compression program to compress
  224. executable files (e.g. PkLite). Sfware cannot be registered after it has
  225. been compressed--you will need the original programs in order to register
  226. Sfware. There is no compelling reason not to compress the programs after
  227. you have registered them.
  228.  
  229. 1.2.2. Hard Drive Installation
  230.  
  231. Create a subdirectory on your hard drive for the Sfware utilities; it does
  232. not matter what drive you install onto or what you name the directory.  For
  233. the purpose of this manual, the directory D:\SF is assumed.
  234.  
  235. Copy all of the files from the distribution diskette (or from the
  236. distribution archive) into the Sfware directory.
  237.  
  238. 1.2.3. Floppy Disk Installation
  239.  
  240. Copy all of the files from the distribution diskette (or from the
  241. distribution archive) onto a floppy disk. This manual assumes that Sfware
  242. has been installed in the directory D:\SF but it is not necessary to
  243. install Sfware onto a hard disk.
  244.  
  245. Due to space limitations on floppy disks, it may not be possible to place
  246. all of the files on a single diskette. If is the case, it is recommended
  247. that you put SFSHELL.EXE and SFSHELL.HLP, on one floppy and all of the
  248. other utilities on a second floppy. If you do not plan to use the shell,
  249. you will not need the SfShell files on a diskette.
  250.  
  251. If you use a floppy-only system, you will only be able to use the SfShell
  252. program if you have sufficient expanded memory (EMS) for SfShell to use a
  253. swapping space when it runs the other utility programs.  SfShell requires
  254. either sufficient EMS or a non-removable disk for swapping.
  255.  
  256. Splitting the Sfware utilities across two floppies does not present any
  257. real technical difficulties (aside from the location of swapping space) but
  258. you should read the Configuration chapter carefully to make sure that you
  259. have set things up properly. In particular, you will need to tell SfShell
  260. where the utility programs are located.
  261.  
  262. 1.3. Initial Configuration
  263.  
  264. Before you can use Sfware, you must run SfConfig to establish an initial
  265. configuration.  Please follow the 'quick start' instructions in the READ.ME
  266. file or read the Configuration chapter before trying to run Sfware.
  267.  
  268. 2. Conventions Used in This Manual
  269.  
  270. The standalone utilities have a steeper learning curve than the SfShell
  271. interface.  However, if you are comfortable with command line utilities in
  272. general, the Sfware utilities should not be too difficult to master.  The
  273. advantages of mastering the learning curve are that the Sfware utilities
  274. have a few more options when used from the command line than they do from
  275. within the shell and the command line utilities allow you to work with
  276. groups of files efficiently.
  277.  
  278. In terms of getting something done, all of the command line utilities are
  279. run in the same general way. Basically, you type:
  280.  
  281.       UTILITY some-parameters some-options
  282.  
  283. wherever you type DOS commands (This is generally the DOS prompt, but many
  284. user-friendly interfaces to DOS exist and if you are using one of them, you
  285. can type these commands wherever you would type any general DOS command
  286. (like DIR or WP).) .
  287.  
  288. The sections that follow will describe the conventions used in this manual
  289. for describing what some-parameters and some-options are and how to enter
  290. them.
  291.  
  292. 2.1. Typographic convensions
  293.  
  294.    [NOTE: Typographic conventions are not used in this unformatted file]
  295.  
  296. 2.1.1. typewriter
  297.  
  298. Typewriter type is used within this manual to denote explicit words or
  299. commands or filenames that you type exactly the way_ they__ appear__ in
  300. this manual. In this manual, FRUIT means you type UF_WUR_WUU_WUI_WUT_W,
  301. whereas a fruit (italics are described below) might mean apple, or pear, or
  302. any specific fruit.
  303.  
  304. 2.1.2. italics
  305.  
  306. Italics are used to name a general ``class'' of things. If a command in
  307. this manual contains a word in italics, you should replace that word with a
  308. concrete example of ``one of those things'' when you type the command. For
  309. example, a fontname in this manual means any valid, existing softfont; you
  310. should type the name of an existing font file.
  311.  
  312. Occasionally, italics are used for emphasis (as they are in general
  313. typography) but it will be clear from the context when that is the case.
  314.  
  315. 2.1.3. [[ brackets ]]
  316.  
  317. The stylized square brackets denote optional parameters. You should only
  318. type what appears within the brackets when you want to use the associated
  319. optional feature.
  320.  
  321. 2.2. Semantic convensions
  322.  
  323. 2.2.1. Parameter
  324.  
  325. Parameters are additional input, given on the command line, that you are
  326. required to enter. You cannot omit any parameters.
  327.  
  328. 2.2.2. Option
  329.  
  330. Options are additional input, given on the command line, that you are not
  331. required to enter. You can omit any or all options.
  332.  
  333. 2.2.3. filemask
  334.  
  335. A filemask is any valid DOS filename that may contain wildcard characters.
  336. The wildcard characters are interpreted exactly the way that DOS interprets
  337. them.  Consult your DOS reference if you are unsure about what constitutes
  338. a valid filename or how you can use wildcard characters to select groups of
  339. files.
  340.  
  341. 2.2.4. filename
  342.  
  343. A filename is any valid DOS filename. A filename must name a single
  344. specific file, it cannot contain wildcard characters.
  345.  
  346. 2.2.5. fontmask
  347.  
  348. A fontmask is exactly like a filemask except that it must name one or more
  349. softfont files. The files whose names match a fontmask should contain
  350. LaserJet softfonts.
  351.  
  352. 2.2.6. fontname
  353.  
  354. A fontname is exactly like a filename except that it must name a LaserJet
  355. softfont.
  356.  
  357. 2.2.7. outname or outmask
  358.  
  359. An outname or outmask is any valid DOS filename or filemask. The file(s)
  360. specified for an outname or outmask will be created if they do not exist.
  361. In most cases, existing files with the same name will be replaced if they
  362. exist (the replace option determines whether or not confirmation is
  363. required before replacing an existing file).
  364.  
  365. When an outmask is used to decide what the name of each output file should
  366. be, the Sfware utilities perform the same filename resolution stratagy that
  367. DOS uses. First, any uses of `*' within the outmask are resolved to a
  368. string of `?'s. Then each character from the input filename is compared
  369. against the character at the same position in the outmask. If the outmask
  370. contains a `?' at that position, the character from the input filename is
  371. used for that position in the output filename. Otherwise the character from
  372. the outmask is used in the output filename.
  373.  
  374. 2.3. How parameters and options are used
  375.  
  376. Parameters and options come in two flavors: those with associated values
  377. and those without. Parameters (or options) without associated values are
  378. either present or absent; that provides all that is required to interpret
  379. the option. The /w option on the DOS DIR command is an example of a
  380. parameter without an associated value. If the /w option is present, it
  381. means print a wide directory listing; if it's absent, don't print a wide
  382. directory listing. Many Sfware utilities have parameters (or options)
  383. without associated values.
  384.  
  385. Parameters (or options) that do have associated values have the general
  386. form:
  387.  
  388.       /parameter-name:value
  389.  
  390. In this case, parameters (or options) are introduced by a forward slash and
  391. separated from the value by a colon. Spaces are not allowed anywhere in the
  392. parameter-name or the value.
  393.  
  394. In the descriptions of parameters and options that have values associated
  395. with them, the sample value given in the description tries to indicate what
  396. kind of value is expected. These fall into four general
  397. categories:filenames or fontnames, numbers, patterns, and ranges.
  398. Filenames and fontnames are described above, patterns are described in the
  399. pattern chapter, and ranges are described in the range chapter. Numbers are
  400. indicated by # or % in the command description. Numbers indicated by %
  401. should be in the range 0-100.
  402.  
  403. Parameters and options can be abbreviated to their shortest unambiguous
  404. name.  For example, the /device:filename option can be abbreviated to
  405. /d:filename if no other option begins with ``d''. (It could also be
  406. abbreviated to /de, /dev, etc.)
  407.  
  408. 2.4. Common Options
  409.  
  410. There are a handful of options that almost all of the Sfware utilities
  411. share.  These options and their meanings are described below. Every utility
  412. indicates whether or not it accepts these options without repeating the
  413. description each time. This convention, in conjunction with the conventions
  414. mentioned above, makes the process of describing each utility much easier
  415. and directs the reader more precisely to the information that is specific
  416. to each utility.
  417.  
  418. 2.4.1. /@:
  419.  
  420. The /@ option specifies an input filename. The input file contains Sfware
  421. commands.  The format of the input file is discussed in the configuration
  422. chapter.
  423.  
  424. 2.4.2. /!:
  425.  
  426. The /! option specifies a message filename. If a message filename is given,
  427. the Sfware utilities will write warning and error messages to this file.
  428. It is used primarily by the SfShell program to capture error and completion
  429. messages.
  430.  
  431. 2.4.3. /$
  432.  
  433. The /$ option displays registration information for the Sfware utilities.
  434. If you are using an unregistered program, this information will be
  435. displayed automatically.  Please register your shareware!
  436.  
  437. 2.4.4. /replace
  438.  
  439. If the /replace option is used, existing files will be replaced without
  440. warning.  Not surprisingly, this option is only available on utilities that
  441. create files. If the /replace option is not used, then the utility may or
  442. may not replace files without warning depending on the setting of the
  443. ``replace'' option in the configuration file. Please consult the chapter on
  444. configuration files for more information about the replace configuration
  445. variable.
  446.  
  447. 2.4.5. /verbose
  448.  
  449. All of the Sfware utilities print regular progress messages. The /verbose
  450. option causes many utilities to print more detailed progress messages.
  451.  
  452. 2.4.6. /quiet
  453.  
  454. The /quiet option suppresses some informative messages. For example, the
  455. /quiet option will suppress the %-complete messages in SfLoad.
  456.  
  457. 2.4.7. Technically Speaking
  458.  
  459. Many chapters end with a ``technically speaking'' section. This section
  460. describes, more technically, what Sfware does. You don't have to read it
  461. unless you want to. If you find the material in the technically speaking
  462. sections intimidating, just ignore it. On the other hand, if you find that
  463. something is not performing exactly the way that you thought it was
  464. supposed to, this section may help you figure out why Sfware is doing
  465. something other than what you expected.
  466.  
  467. The ``real'' technically speaking section of this chapter concerns the
  468. ``switch character'' used to introduce command-line options and parameters.
  469.  
  470. Because it was easy to implement, Sfware can be told to accept either the
  471. forward slash (``/'') or the hyphen (``-'') as the switch character.  This
  472. is controlled by the ``SwitchChar'' configuration parameter.
  473.  
  474. If you use the hyphen as the switch character, you cannot enter any
  475. filename that contains a hyphen because the hyphen will be interpreted as
  476. the start of another option. However, you can switch between switch
  477. characters on the command-line. If you enter /- when the foward slash is
  478. the switch character, the hyphen becomes the switch character and,
  479. conversely, if you enter -/ when the hyphen is the switch character, the
  480. forward slash becomes the switch character.
  481. 3. Configuring Sfware and Using Command Files
  482.  
  483. In order to make Sfware easier to use, all of the programs read a
  484. configuration file each time they are executed. This configuration file
  485. gives you the flexibility to assign default values to many of the options
  486. and parameters of each program.
  487.  
  488. 3.1. Name of the configuration file
  489.  
  490. All of the utilities can share the same configuration file. However, rather
  491. than hardcoding the name of the configuration file, Sfware relies on the
  492. existance of a DOS environment variable to determine the name of the
  493. configuration file. Each Sfware utility expects the DOS environment
  494. variable SFCFG to name the complete drive, path, and filename of a suitable
  495. configuration file. For example, if you make a configuration file called
  496. SF.CFG and you put it in the D:\SF directory, the DOS command
  497.  
  498.       SET SFCFG=D:\SF\SF.CFG
  499.  
  500. would be appropriate.
  501.  
  502. If the DOS environment variable SFCFG is undefined, each of the utilities
  503. looks for a configuration file with the same name as its executable file
  504. and the extension .CFG. For example, SFFX.EXE looks for SFFX.CFG.
  505.  
  506. 3.1.1. Special note for DOS 2.xx users
  507.  
  508. In versions of DOS prior to version 3.xx, it was not possible for a program
  509. to find out the name or directory of its executable file.  If SFCFG is
  510. undefined, the utilities will look in the current directory for
  511. configuration files. It is especially important to define SFCFG if you are
  512. not using DOS 3.xx or later.
  513.  
  514. 3.2. Using SfConfig
  515.  
  516. Frequently, the most difficult part of installing new software is the task
  517. of configuring it to work correctly in your system. This may be true of
  518. Sfware as well. In an effort to make the initial configuration as painless
  519. as possible, Sfware comes with the SfConfig program.  SfConfig should be
  520. run after the SFCFG environment variable, discussed above, has been set.
  521.  
  522. SfConfig will create a configuration file initialized with appropriate
  523. defaults and allow you to select, interactively, the laser printer that you
  524. use, the print device that you use, and name of your softfont directory.
  525. These are the most site-specific configuration options.
  526.  
  527. SfConfig can be run again to change any one of these values; it will not
  528. change anything else in the configuration file that you have changed
  529. manually since the first time that you used SfConfig.
  530.  
  531. The following three settings can be made from within SfConfig:
  532.  
  533. 3.2.1. Laser Printer
  534.  
  535. The Laser printer selection helps Sfware decide if font compression should
  536. be enabled. Later versions of Sfware may make more use of this option.
  537.  
  538. 3.2.2. Printer Output
  539.  
  540. The most common selection for printer output is LPT1. However, you can
  541. select LPT1-4, PRN, or any valid file or device for printer output.
  542.  
  543. 3.2.3. Font Directory
  544.  
  545. Most users keep all of their softfonts in one directory. If this is the
  546. case, you can tell Sfware always to look for fonts in that directory
  547. regardless of what directory you are currently in. This becomes the default
  548. font directory. However, even if you do select a default font directory,
  549. you can still override it and use any directory you want be selecting a
  550. new directory with F4 in SfShell or by specifying a fontdir on the command
  551. line.
  552.  
  553. 3.3. Format of the configuration file
  554.  
  555. The configuration file is a plain ASCII text file, and it should be edited
  556. with a program that will not insert extra formatting characters when the
  557. file is saved (I recommend Multi-Edit by American Cybernetics).
  558.  
  559. Each line of the configuration file is divided into three parts as follows:
  560.  
  561.       programid parameter=value
  562.  
  563. The programid is seperated from the parameter by one or more spaces and the
  564. parameter is separated from the value by an equal sign (=).
  565.  
  566. The programid is optional but the parameter and the value are required
  567. (actually, the value can technically be empty or blank but that is exactly
  568. the same as not defining it at all).
  569.  
  570. Individual Sfware programs use the combination of programid and parameter
  571. as a key to lookup the default value of each parameter. Any configuration
  572. line that does not contain a programid automatically matches all
  573. programid's for that parameter. Case is insignificant in the programid and
  574. parameter.
  575.  
  576. A simple example should make everything clearer. Given the following
  577. configuration file:
  578.  
  579.       PROG APPLE=1
  580.       PROG ORANGE=2
  581.       APPLE=3
  582.       OTHER ORANGE=4
  583.  
  584. The value of PROG APPLE is 1, PROG ORANGE is 2, ANYTHING-ELSE APPLE is 3,
  585. OTHER ORANGE is 4, and ANYTHING-ELSE ORANGE is undefined (blank, or
  586. non-existant).
  587.  
  588. Each possible configuration parameter is described in the sections that
  589. follow.  The section header lists only the parameter if the programid is
  590. the name of the utility program that uses it. For configuration parameters
  591. that make special use of the programid, both parts are listed.  The
  592. parameters are listed in alphabetical order by parameter.
  593.  
  594. 3.4. Compress
  595.  
  596. Usage:    program COMPRESS=YES or NO
  597. Used by:  SfFx, SfRotate
  598.  
  599. The Sfware utilities that write new softfont files use this flag to
  600. determine if the softfonts should be written in PCL4/5 compressed format or
  601. in the older, non-compressed format. Compression can produce very dramatic
  602. decreases in the amount of disk space required for a softfont.  However,
  603. the compressed fonts are only recognized by LaserJet printers that are PCL4
  604. compatible. The LaserJet Series II is not PCL4 compatible.  Note, however,
  605. that the Sfware utilities provide for decompression ``on the fly'' in most
  606. cases. Please consult the section about downloading fonts for more
  607. information.
  608.  
  609. 3.5. Device
  610.  
  611. Usage:    program DEVICE=filename
  612. Used by:  SfLoad, SfShow
  613.  
  614. Names the output device for Sfware utilities that interact directly with
  615. the printer. The most common value is LPT1, but any DOS file or device name
  616. may be used.
  617.  
  618. 3.6. Esc
  619.  
  620. Usage:    program ESC=YES or NO
  621. Used by:  SfDir
  622.  
  623. Controls how SfDir displays font information. If ESC is YES, escape
  624. sequences are displayed by default. Otherwise a readable, text description
  625. is displayed by default.
  626.  
  627. 3.7. FontDir
  628.  
  629. Usage:    program FONTDIR=directory
  630. Used by:  SfShell, SfCmpr, SfFx, SfLoad, SfRotate, SfShow
  631.  
  632. Names the DOS subdirectory where HP LaserJet softfonts are located. This is
  633. the default input and output directory for Sfware utilities that read or
  634. write softfont files.
  635.  
  636. 3.8. FontExtn
  637.  
  638. Usage:    program FONTEXTN=ext
  639. Used by:  SfShell, SfCmpr, SfFx, SfLoad, SfRotate, SfShow
  640.  
  641. Names the default filename extension for softfont files. If you specify
  642. either an input softfont name or an output softfont name that does not
  643. include an extension, the Sfware utilities will append this extension to
  644. the filename. Note: it is possible to specify that a file should not have
  645. any extension by ending the filename with a period.
  646.  
  647. 3.9. GraphBack
  648.  
  649. Usage:    program GRAPHBACK=number
  650. Used by:  SfShell, SfView
  651.  
  652. Controls the background color in graphics mode. The following colors can be
  653. used (they must be selected by number): 0=black, 1=blue, 2=green, 3=cyan,
  654. 4=red, 5=magenta, 6=brown, 7=light gray, 8=dark gray, 9=light blue,
  655. 10=light green, 11=light cyan, 12=light red, 13=light magenta, 14=yellow,
  656. and 15=white.
  657.  
  658. 3.10. GraphCard
  659.  
  660. Usage:    program GRAPHCARD=cardname
  661. Used by:  SfShell, SfView
  662.  
  663. Tells SfShell what kind of graphics card you are using. By default, SfShell
  664. tries to determine what kind of graphics card you have and adjust
  665. accordingly.  However, if it makes the wrong choice, you can force SfShell
  666. to select one of the following: CGA, MCGA, VGA, EGA, EGA64, EGAMONO,
  667. IBM8514, ATT, HERC, and PC3270.
  668.  
  669. A complete list of available graphics resolutions for each card/mode is
  670. available under the section on ``GraphMode''.
  671.  
  672. 3.11. GraphForg
  673.  
  674. Usage:    program GRAPHFORG=number
  675. Used by:  SfShell, SfView
  676.  
  677. Controls the foreground color in graphics mode.
  678.  
  679. 3.12. GraphGrid
  680.  
  681. Usage:    program GRAPHGRID=number
  682. Used by:  SfShell, SfView
  683.  
  684. Controls the color of the gridlines in the graphics display.
  685.  
  686. 3.13. GraphMode
  687.  
  688. Usage:    program GRAPHMODE=number
  689. Used by:  SfShell, SfView
  690.  
  691. Controls the graphics mode number for the selected graphics card. It is
  692. impossible for SfShell to know if you have selected a reasonable graphics
  693. mode. The results of using an incorrect or invalid graphics mode are
  694. undefined (and unpredictable!).
  695.  
  696. The following table lists all of the graphics cards and the modes
  697. associated with them. In general, it is not necessary to specify a graphics
  698. mode since the highest resolution mode is selected by default:
  699.  
  700.     Card    |  Mode   | Resolution          | Palette
  701.   --------------------------------------------------------------------
  702.     CGA     |  0      | 320x200             | 0
  703.     CGA     |  1      | 320x200             | 1
  704.     CGA     |  2      | 320x200             | 2
  705.     CGA     |  3      | 640x200             | 3
  706.     CGA     |  4      | 640x200 (default)   | 2 colr
  707.     MCGA    |  0      | 320x200             | 0
  708.     MCGA    |  1      | 320x200             | 1
  709.     MCGA    |  2      | 320x200             | 2
  710.     MCGA    |  3      | 320x200             | 3
  711.     MCGA    |  4      | 320x200             | 2 colr
  712.     MCGA    |  5      | 640x480 (default)   | 2 colr
  713.     EGA     |  0      | 640x200             | 16 colr
  714.     EGA     |  1      | 640x350 (default)   | 16 colr
  715.     EGA64   |  0      | 640x200             | 16 colr
  716.     EGA64   |  1      | 640x350 (default)   | 4 colr
  717.     EGAMONO |  3      | 640x350 (default)   | 2 colr
  718.     HERC    |  0      | 720x348 (default)   | 2 colr
  719.     ATT     |  0      | 320x200             | 0
  720.     ATT     |  1      | 320x200             | 1
  721.     ATT     |  2      | 320x200             | 2
  722.     ATT     |  3      | 320x200             | 3
  723.     ATT     |  4      | 640x200             | 2 colr
  724.     ATT     |  5      | 640x400 (default)   | 2 colr
  725.     VGA     |  0      | 640x200             | 16 colr
  726.     VGA     |  1      | 640x350             | 16 colr
  727.     VGA     |  2      | 640x480 (default)   | 16 colr
  728.     PC3270  |  0      | 720x350 (default)   | 2 colr
  729.     IBM8514 |  0      | 640x480             | 256 colr
  730.     IBM8514 |  1      | 1024x768 (default)  | 256 colr
  731.   --------------------------------------------------------------------
  732.  
  733. 3.14. Numbers
  734.  
  735. Usage:    program NUMBERS=base
  736. Used by:  SfShow
  737.  
  738. The numbers parameter is used by SfShow to select the numeric base of the
  739. numbers printed around the reference grid. Valid options are hex, oct, dec,
  740. and none for hexadecimal (base 16), octal (base 8), decimal (base 10) and
  741. no reference numbers respectively. The default value is hex.
  742.  
  743. 3.15. Pattern name
  744.  
  745. Usage:    PATTERN name=pattern-string
  746. Used by:  SfShell, SfFx
  747.  
  748. The pattern programid introduces named patterns. Any pattern that you plan
  749. to use more than once or that is very complex should probably be saved in
  750. the configuration file. There is a whole chapter devoted to patterns and
  751. pattern strings. Please consult that chapter for more information about
  752. patterns.
  753.  
  754. The pattern created in the pattern chapter could be saved in the
  755. configuration file with the name zig-zag by placing the following line in
  756. the configuration file:
  757.  
  758.     PATTERN ZIG-ZAG=0;34;85;136
  759.  
  760. 3.16. Quiet
  761.  
  762. Usage:    program QUIET=YES or NO
  763. Used by:  SfDir
  764.  
  765. Controls the degree of verboseness of messages from SfDir. In the future,
  766. other utilities may use this flag for the same purpose.
  767.  
  768. 3.17. RefSet
  769.  
  770. Usage:    program REFSET=symbol-set
  771. Used by:  SfShow
  772.  
  773. If the reference set is defined, the reference character for each position
  774. in the font will be printed in the upper right hand corner of each cell on
  775. SfShow's grid. For example, setting sfshow refset=8u would make SfShow
  776. print the reference characters with the 8U symbol set.  You must select a
  777. symbol set that is available in your laser printer's line-printer font. If
  778. you don't want reference characters to be printed, use sfshow refset=none.
  779.  
  780. 3.18. Replace
  781.  
  782. Usage:    program REPLACE=YES or NO
  783. Used by:  SfCmpr, SfFx, SfLoad, SfRotate, SfShow
  784.  
  785. Each of the Sfware programs that can create new files use this flag to
  786. determine if existing files should be destroyed without warning. If you set
  787. this flag to YES, you can shoot yourself in the foot; if you leave it NO,
  788. the Sfware utilities will always make sure the safety is on!
  789.  
  790. 3.19. Sentence
  791.  
  792. Usage:    program SENTENCE=string
  793. Used by:  SfShell, SfView, SfShow
  794.  
  795. Identifies the sentence to be displayed on graphical font preview screens
  796. and printed on the reference page. The default sentence is: The quick red
  797. fox jumped over the lazy brown dog. I said (very loudly), ``THE QUICK RED
  798. FOX JUMPED OVER THE LAZY BROWN DOG!'' How many times?0, 1, 2, or 3456789
  799. times.
  800.  
  801. 3.20. SwitchChar
  802.  
  803. Usage:    program SWITCHCHAR=char
  804. Used by:  SfShell, SfCmpr, SfFx, SfLoad, SfRotate, SfShow, SfView, SfInfo
  805.  
  806. Identifies the switch character. It must be set to either ``/'' or ``-''.
  807. Under MS-DOS, ``/'' is recommended. For more information about the uses of
  808. the switch character, consult the ``technically speaking'' note at the end
  809. of the Conventions chapter.
  810.  
  811. 3.21. Style name
  812.  
  813. Usage:    STYLE name=number
  814. Used by:  SfShell, SfShow, SfFx
  815.  
  816. The ``style'' of a softfont is one of the font parameters that is used to
  817. distinguish between two otherwise identical softfonts. The values defined
  818. by HP are ``upright,'' ``italic'' and ``oblique.'' Using SfFx to create
  819. variations on a font can potentially create two fonts that are
  820. indistinguishable from each other. For example, ``hollowing'' a softfont
  821. does not change any of its font characteristics. The STYLE parameter tells
  822. the SfFx what style value to use in the font header for each effect. In
  823. this way, it will always be possible to tell the old and new fonts apart.
  824. The name of the style must be one of the following: Bold, Fix, Fill,
  825. Fill3d, HalfTone, Hollow, Hollow3d, Invert, Mirror, OutLine, Prop, Resize,
  826. Reverse, Shade, Shadow, Stripe, and Threed.  The style value can be any
  827. number between 0 and 255. If the effect changes some other characteristic
  828. of the font, it is not necessary to change the style; this is indicated
  829. with a style value of 0.
  830.  
  831. 3.22. Typefaces
  832.  
  833. Usage:    program TYPEFACES=filename
  834. Used by:  SfShell, SfInfo, SfShow
  835.  
  836. The typefaces parameter names the file that lists typeface names. Every
  837. softfont has a typeface number. A name is associated with each typeface
  838. number; this is the name displayed by SfShell in the typeface column, and
  839. by SfInfo and SfShow. Because the number of typefaces is growing and is
  840. subject to change, you can supply an additional typeface list that
  841. identifies any and all typeface numbers. Sfware is distributed with the
  842. file TYPEFACES.LST that contains all of the Hewlett Packard typeface names
  843. defined as of PCL5. If you have an old or non-standard softfont, this name
  844. may not accurately reflect the style of the characters contained in the
  845. font.
  846.  
  847. The typefaces file is a plain text file. Each line should begin with a
  848. typeface number (typeface numbers 0 through 511 are valid as of PCL5;
  849. earlier printers only recognize typefaces numbered 0 through 255).  The
  850. rest of the line is the typeface name. Lines that begin with a semicolon
  851. are ignored. The typeface numbers must be entered, one per line, in
  852. ascending order.
  853.  
  854. 3.23. Sample File
  855.  
  856. This is a sample configuration file. This sample does not contain all of
  857. the possible configuration variables because many require defaults that are
  858. system-specific (graphics cards, program filenames, etc.) and many
  859. repetitious lines have been deleted.
  860.  
  861. -------------------------------------------------------------------------
  862. Device      = LPT1
  863. FontDir     = .
  864. FontExtn    = SFP
  865. Replace     = No
  866. Compress    = No
  867. ;
  868. SfShow Sentence=The quick red fox jumped over the lazy brown dog.
  869. ;
  870. SfShell CommandFile=SFSHELL.CMD
  871. SfShell SwapFile=SFSHELL.\$\$\$
  872. SfShell MsgFile=SFSHELL.MSG
  873. SfShell ExecOutput=Window
  874. ;
  875. SfShell FontListSize = 35
  876. SfShell ActionListSize = 35
  877. ;
  878. ; The Pattern and Style lines are for SfFx
  879. ;
  880. Pattern DarkSaw         = 255/127/62/28/8/128/193/227/247
  881. Pattern LightSaw        = 128/65/34/20/8/0/0/0
  882. Pattern NarrowBackslash = 136/68/34/17
  883. Pattern TightSaw        = \$6B/\$DD/\$B6/\$6B/\$DD/\$B6
  884. Pattern DecoSlash       = \$D2/\$69/\$B4/\$5A/\$2D/\$96/\$4B/\$A5
  885. Pattern Cross           = \$11/\$BB/\$EE/\$BB
  886. ;
  887. ; Styles defined by HP:
  888. ;
  889. ; 0 = Upright
  890. ; 1 = Italic
  891. ; 2 = Oblique
  892. ;
  893. Style Fill      =  5
  894. Style Halftone  = 15
  895. Style Hollow    =  3
  896. Style Invert    = 14
  897. Style Mirror    = 13
  898. -------------------------------------------------------------------------
  899.  
  900. 3.24. Command Files
  901.  
  902. The standalone utilities, whether they are run from the command line
  903. directly or invoked automatically by SfShell, accept all of their input on
  904. the command line. Since this imposes a severe limit on the amount of input
  905. that can be provided, the utilities also accept input from a command file.
  906.  
  907. SfShell creates a command file automatically to communicate with the
  908. standalone utilities and you can use them outside of SfShell, but
  909. understanding what they are and how they work is not important to using
  910. Sfware.  Feel free to skip this section.
  911.  
  912. The standalone utilities accept the name of the command file on the
  913. /@:filename option.
  914.  
  915. If a command file is used, the utility will read commands from the file as
  916. if they were typed as parameters. The format of the command file is simple:
  917. each line should begin with an asterisk followed by the name of the utility
  918. followed by a space. The rest of each line is interpreted exactly as if it
  919. were typed on the command line.  Because each line identifies which utility
  920. it is for, the same command file can be passed to several utilites. Each
  921. utility will only use the lines that are intended for it.
  922.  
  923. For example, the command file below downloads several fonts:
  924.  
  925.       *sfload tr* /expand
  926.       *sfload tr* /expand /landscape
  927.       *sfload logo.sfp /expand
  928.  
  929. If this command file is saved as AUTOLOAD.CMD, I would tell SfLoad to
  930. execute it by entering:
  931.  
  932.       SFLOAD /@:AUTOLOAD.CMD
  933.  
  934. In general, this ability is of little use beyond downloading fonts (every
  935. morning, for example). However, the SfShell program makes extensive use of
  936. this feature to pass parameters to child processes when it executes the
  937. individual utilities to perform actions for the user.
  938.  
  939. 4. SFLOAD: Downloading Fonts
  940.  
  941. The SfLoad program downloads fonts to the LaserJet printer. Downloading
  942. fonts ``teaches'' the LaserJet printer how to print a particular font.
  943.  
  944. 4.1. Usage
  945.  
  946. SFLOAD fontmask [[options]]
  947.  
  948. 4.2. Options
  949.  
  950. 4.2.1. /image
  951.  
  952. Downloading a softfont as an image has two advantages: first, it is the
  953. fastest method and second, it should work for softfont formats that the
  954. Sfware utilities are not otherwise equipped to handle. For example, if a
  955. new laserjet printer, the Series IV perhaps, is developed with a new kind
  956. of softfont, downloading will continue to work with that new printer as
  957. long as you select the image option. The image option is the default.
  958.  
  959. If the image option is so great, why would I use anything else?  Good
  960. question.  There are two possible reasons. First, softfonts, especially
  961. large softfonts, take up a lot of disk space. The LaserJet IIP, III, and
  962. IIIP printers all support softfont compression (which provides substantial
  963. disk space savings for large softfonts). However, the LaserJet Series II
  964. printer does not support compression. If you have a LaserJet Series II
  965. printer and you always use Sfware to download your softfonts, you can still
  966. take advantage of the substantial space savings of softfont compression:
  967. compress all of your softfonts on disk and expand them when they are
  968. downloaded. You can't use the image option if you want to expand them when
  969. they are downloaded.
  970.  
  971. In a similar manner, softfonts can be rotated as they are downloaded if
  972. your laser printer does not support auto-rotation of fonts.
  973.  
  974. 4.2.2. /expand
  975.  
  976. When the expand option is used, softfonts that are in PCL4 compressed
  977. format are expanded as they are being downloaded to the printer. This
  978. allows you to keep compressed softfonts on disk even if your printer does
  979. not support softfont compression.
  980.  
  981. 4.2.3. /compress
  982.  
  983. When the compress option is used, softfonts are compressed using the PCL4
  984. compression format as they are being downloaded to the printer.  I can't
  985. think of a single good reason to use this option. It is provided only to
  986. satisfy the author's compulsive desire to provide the greatest possible
  987. flexibility.
  988.  
  989. 4.2.4. /portrait
  990.  
  991. The portrait option rotates the softfont to portrait orientation before
  992. downloading it.  This option has no effect if the font is already portrait.
  993.  
  994. 4.2.5. /landscape
  995.  
  996. The landscape option rotates the softfont to landscape orientation before
  997. downloading it. This option has no effect if the font is already landscape.
  998.  
  999. Note: downloading both orientations does not imply that you will be able to
  1000. use both orientations on the same page. The LaserJet Series II printer, for
  1001. example, cannot print both portrait and landscape fonts on the same page.
  1002.  
  1003. 4.2.6. /temp
  1004.  
  1005. The temp option specifies that downloaded fonts should be made temporary.
  1006. SfLoad usually makes fonts permanent. Note: temporary fonts are
  1007. automatically deleted every time a printer reset command is used so this
  1008. option is of limited usefullness.
  1009.  
  1010. 4.2.7. /id:#
  1011.  
  1012. The id option sets the starting font-id number. The default font-id is
  1013. zero.  Every font must have a unique id number; if more than one font
  1014. matches the fontmask, the first font will have the specified id and every
  1015. subsequent font will have an id number one greater than it's predecessor.
  1016.  
  1017. 4.2.8. /device:filename
  1018.  
  1019. The /device option specifies the output device. The output device is most
  1020. frequently LPT1. SfLoad uses the specified filename (which may name a
  1021. device) as the destination for downloaded fonts.
  1022.  
  1023. 4.2.9. Other Options
  1024.  
  1025. The SfShow program accepts the /@, /!, /replace, /quiet, /verbose, and /$
  1026. options.
  1027.  
  1028. 5. SFFX: Special Effects
  1029.  
  1030. Because they are many and varied, each special effect is described in its
  1031. own chapter (later in this document). All of the effects are produced by
  1032. the SfFx program. All of the effects are created in the same general way;
  1033. basically you enter:
  1034.  
  1035.       SFFX fontmask outmask effect-name effect-parameters effect-options
  1036.  
  1037. The font masks select which font(s) will be used as the source and
  1038. destination fonts.  The effect-name indicates which effect to perform.
  1039.  
  1040. The SfFx program accepts the /@, /!, /replace, /quiet, /verbose, and /$
  1041. options.
  1042.  
  1043. Every effect with the exception of the proportional and fixed spacing
  1044. effects also accepts the /range parameter.
  1045.  
  1046. An online summary of the parameters and options of each effect is available
  1047. by typing SFFX HELP effect. You can also type SFFX HELP /RANGE and SFFX
  1048. HELP /PATTERN.
  1049.  
  1050. In the following chapters, where each effect is discussed, there are no
  1051. examples of the effects because it was necessary to limit the number of
  1052. fonts used in this document. This reflects a limitation in some LaserJet
  1053. printers that prohibits printing more than sixteen different fonts on a
  1054. given page.
  1055.  
  1056. A second document called EXAMPLES.PCL is included in the Sfware
  1057. distribution.  This file contains examples of some of the effects that are
  1058. possible.  The corresponding document EXAMPL16.PCL is provided for those
  1059. printers that cannot print more than sixteen fonts per page.
  1060.  
  1061. Technically, every character within a softfont is defined within a
  1062. rectangle.  The rectangle is subdivided into squares like a sheet of graph
  1063. paper.  Inside the rectangle, some of the squares are black and some are
  1064. white. Because the squares are very small, the effect of printing them on a
  1065. sheet of paper is that they form the lines and curves that make up each
  1066. charcter. In the descriptions of effects that follow, it is sometimes
  1067. necessary to describe the way that ``squares'' within the rectangle are
  1068. manipulated. The region of the grid that defines the character (the black
  1069. dots on the ``graph paper'') is referred to as either the black area or the
  1070. foreground, and the other ``squares'' are referred to as the white area or
  1071. the background.
  1072.  
  1073. 5.1. Ranges
  1074.  
  1075. Because the range option is available on almost every effect, it is
  1076. described once here rather than repeating it for every effect.
  1077.  
  1078. The range option is available on all of the effects except proportional and
  1079. fixed spacing. Specifying a range limits an effect to certain, specific
  1080. characters. For example, you could limit the range of an effect to all of
  1081. the uppercase letters.
  1082.  
  1083. The range command comes in three flavors:
  1084.  
  1085. 5.2. /range:c-c
  1086.  
  1087. This is the "letter-to-letter" syntax, i.e. /range:a-z limits the scope to
  1088. the lowercase alphabet, /range:A-E limits it to the uppercase letters A, B,
  1089. C, D, and E.
  1090.  
  1091. 5.3. /range:nn-nn
  1092.  
  1093. This is the "ascii value-to-ascii value" syntax, i.e. /range:33-47 limits
  1094. the scope to the punctuation symbols between "!" and "/", inclusive. In
  1095. this syntax, the ascii value must be padded with zeros to make it at least
  1096. two digits long. For example, the range "/range:0-9" is in letter-to-letter
  1097. form and limits the scope to the decimal digits, ascii values 48 to 57,
  1098. inclusive. The range "/range:00-09" limits the scope to the control
  1099. characters NUL to HT (tab).
  1100.  
  1101. 5.4. Mixed forms
  1102.  
  1103. The forms can be mixed, /range:00-@ limits the scope of the effect to the
  1104. first sixty-five ascii values, the null character (ascii 0) to @ or 00 to
  1105. 64.
  1106.  
  1107. The range effect is limited to a specific, contiguous subset of the ASCII
  1108. character set. That is, you can specify any single range but you cannot
  1109. specify an ``exception range'' (e.g. do all the characters except the
  1110. lowercase letters) or two or more discontiguous ranges (e.g.  do all the
  1111. upper case letters and all the lower case letters).
  1112.  
  1113. 5.5. Technically Speaking
  1114.  
  1115. Most fonts do not contain a real blank space character. The LaserJet
  1116. printer moves over by the default HMI everytime it encounters a character
  1117. that does not exist in the current font; most fonts rely on the fact that
  1118. the default HMI is exactly one space wide. This can create an unpleasant,
  1119. choppy appearance if a special effect (e.g.  halftoning) is applied that
  1120. modifies the white background of each character.
  1121.  
  1122. The SfFx program accepts the special option `` /_ '' to correct this
  1123. problem.  The `` /_ '' option forces SfFx to create a physical blank space
  1124. character if the font does not already contain one.
  1125.  
  1126. 6. SFCMPR: Compressing Fonts
  1127.  
  1128. Compression, available in the LaserJet IIP and subsequent printers, allows
  1129. you to keep softfonts in a compressed format on disk. For fonts with large
  1130. point sizes, this can achieve a very significant space savings.
  1131.  
  1132. 6.1. Usage
  1133.  
  1134. SFCMPR fontmask [[options]]
  1135.  
  1136. 6.2. Options
  1137.  
  1138. 6.2.1. outmask
  1139.  
  1140. If an outmask is not specified, the input fontname will be used (i.e.by
  1141. default, SfCmpr replaces the input font with a compressed or expanded
  1142. version of the same font).
  1143.  
  1144. 6.2.2. /expand
  1145.  
  1146. The /expand option expands compressed fonts. If the input font is not
  1147. compressed, this option has no effect. If neither /expand nor /compress are
  1148. specified, /compress is assumed.
  1149.  
  1150. 6.2.3. /compress
  1151.  
  1152. The /compress option compresses fonts. If the input font is already
  1153. compressed, this option has no effect. If neither /expand nor /compress are
  1154. specified, /compress is assumed. Only PCL4 compatible LaserJet printers can
  1155. use fonts in compressed format.
  1156.  
  1157. 6.2.4. Other Options
  1158.  
  1159. The SfCmpr program accepts the /@, /!, /replace, /quiet, /verbose, and /$
  1160. options.
  1161.  
  1162. 7. SFROTATE: Rotating Fonts
  1163.  
  1164. Softfonts come in two orientations: portrait and landscape. Newer LaserJet
  1165. printers are capable of ``automagic'' internal font rotation but older
  1166. LaserJets and some compatibles do not have this ability. Sfware provides
  1167. the ability to convert from one orientation to the other. The SfRotate
  1168. program can convert from one orientation to the other.
  1169.  
  1170. 7.1. Usage
  1171.  
  1172. SFROTATE fontmask [[outmask]] [[options]]
  1173.  
  1174. 7.2. Options
  1175.  
  1176. 7.2.1. outmask
  1177.  
  1178. If an outmask is not specified, the input fontname will be used (i.e.by
  1179. default, SfRotate replaces the input font with a rotated version of the
  1180. same font).
  1181.  
  1182. 7.2.2. Other Options
  1183.  
  1184. The SfRotate program accepts the /@, /!, /replace, /quiet, /verbose, and /$
  1185. options.
  1186.  
  1187. 8. SFSHOW: Showing Fonts
  1188.  
  1189. Showing a font with SfShow creates a reference page that displays every
  1190. character in the font. The reference page includes all of the font
  1191. characteristics, the font selection sequence and a chart of all of the
  1192. characters in the font.
  1193.  
  1194. 8.0.1. What's to Show?
  1195.  
  1196. Every softfont can contain up to 256 different characters numbered from 0
  1197. to 255. Most fonts don't define all 256 different characters. The character
  1198. chart is a grid that has ``spaces'' for each of the possible characters.
  1199. If there are some character positions in the font that are not used, the
  1200. spaces for those characters will be blank in the chart.
  1201.  
  1202. For small fonts, the character chart is a 16x16 grid on a single page.  If
  1203. the font is larger than about 36pt (or has some very tall or very wide
  1204. characters), the characters may be too large to fit into the spaces in a
  1205. 16x16 grid. In this case, multiple reference pages may be printed for the
  1206. font. When multiple reference pages are required, SfShow attempts to use
  1207. the minimum number of pages.
  1208.  
  1209. 8.1. Usage
  1210.  
  1211. SFSHOW fontmask [[options]]
  1212.  
  1213. 8.2. Options
  1214.  
  1215. 8.2.1. Downloading Options
  1216.  
  1217. In order to create a reference page, SfShow must first download the
  1218. softfont.  The following options control how each font is downloaded---they
  1219. have precisely the same meaning as the SfLoad options with the same
  1220. names:/image, /compress, /expand, /portrait, and /landscape.
  1221.  
  1222. 8.2.2. /id:#
  1223.  
  1224. The /id option allows you to specify the starting font-id number that
  1225. should be used for the temporary font downloaded in order to print the
  1226. reference page. Since temporary fonts are deleted automatically whenever a
  1227. printer reset is performed, it is not generally necessary to use this
  1228. option.
  1229.  
  1230. 8.2.3. /gridoff
  1231.  
  1232. The /gridoff option supresses grid lines on the reference page.
  1233.  
  1234. 8.2.4. /device:filename
  1235.  
  1236. The /device option specifies the output device. The output device is most
  1237. frequently LPT1. SfShow prints to the specified filename.
  1238.  
  1239. 8.2.5. /refset:set
  1240.  
  1241. For decorative or special purpose fonts, it may be helpful to have an
  1242. additional reference character printed (in plain ASCII) next to each symbol
  1243. in the chart. The /refset option allows you to specify the character set to
  1244. use for reference marks on the printout. If reference marks are used, the
  1245. reference character for each position in the font will be printed in the
  1246. upper right hand corner of each cell on the grid. For example, using the
  1247. /refset:8u option would make SfShow print the reference characters with the
  1248. 8U symbol set. You must select a symbol set that is available in your laser
  1249. printer's lineprinter font.  If you do not want reference characters to be
  1250. printed, use /refset:none.
  1251.  
  1252. 8.2.6. /numbers:base
  1253.  
  1254. The /numbers option allows you to specify the numeric base of the reference
  1255. numbers printed around the grid. Valid options are hex, oct, dec, and none
  1256. for hexadecimal (base 16), octal (base 8), decimal (base 10) and no
  1257. reference numbers respectively. The numbers configuration variable
  1258. (discussed in the configuration chapter) is provided to specify a default
  1259. number base.
  1260.  
  1261. 8.2.7. Other Options
  1262.  
  1263. The SfShow program accepts the /@, /!, /replace, /quiet, /verbose, and /$
  1264. options.
  1265.  
  1266. 8.3. Technically Speaking
  1267.  
  1268. When multiple reference pages are required, SfShow attempts to use the
  1269. minimum number of pages, however, there are a few ``hidden'' constraints on
  1270. how it selects the first character for each page. In particular, it will
  1271. not skip characters on any single page (i.e. if the font defines ABCEFG but
  1272. not D, SfShow will not print ABCEFG on a reference page without an
  1273. intervening blank space where the D would be if it was defined. It wouldn't
  1274. be difficult to provide this option but it would make numbering the grid
  1275. much more difficult.
  1276.  
  1277. 9. SFVIEW: Viewing Fonts
  1278.  
  1279. Viewing a font is the on-line equivalent of printing a reference page.
  1280. SfView displays every character in the font on a grid similar to the
  1281. printed output of SfShow. It can also display a sentence in the font.  A
  1282. graphics adapter is required to view fonts. The following adapters are
  1283. supported at this time: CGA, MCGA, VGA, EGA, EGA (Mono), PC3270, IBM 8514,
  1284. AT&T, and Hercules.
  1285.  
  1286. 9.1. Usage
  1287.  
  1288. SFVIEW fontfile [[options]]
  1289.  
  1290. Unlike the other Sfware utilities, SfView is interactive. When you run
  1291. SfView, a something like the following will be displayed:
  1292.  
  1293.       [NOTE: Graphics screens are not included in this unformated file]
  1294.                        Figure 9.1.  The view display
  1295.  
  1296. 9.2. Options
  1297.  
  1298. The SfView program accepts the /$ option.
  1299.  
  1300. 9.3. Running SfView
  1301.  
  1302. The keys described below allow you to change the range of characters
  1303. displayed, the quality of the display, and the format of the display.
  1304.  
  1305. 9.3.1. Esc
  1306.  
  1307. You can leave at any time by pressing Esc.
  1308.  
  1309. 9.3.2. PgUp/PgDn
  1310.  
  1311. Pressing PgDn moves the range of characters displayed forward by one
  1312. ``screenfull.''  If ASCII 255 is currently in the display, pressing PgDn
  1313. has no effect. Pressing PgUp moves the range of characters displayed
  1314. backward by one screenfull. If ASCII 0 is currently in the display,
  1315. pressing PgUp has no effect.
  1316.  
  1317. 9.3.3. Alt+A
  1318.  
  1319. If you are displaying the font in a graphics mode that has the same number
  1320. of pixels-per-inch_ both horizontally and vertically across the display,
  1321. the Alt+A key combination is not available.
  1322.  
  1323. If the number of pixels-per-inch horizontally and vertically is not the
  1324. same, (i.e. the display has a non-square aspect ratio) it is impossible to
  1325. display the characters without some distortion because the softfont is
  1326. defined with the same number of pixels-per-inch both horizontally and
  1327. vertically.
  1328.  
  1329. There are two kinds of distortion: stretch-distortion and ``reduced
  1330. resolution'' distortion.  If every pixel of each character is displayed,
  1331. the letters will be stretch-distorted by the fact that the pixels are
  1332. ``closer together'' on the screen in one direction than the other.
  1333. Alternatively, some rows or columns of pixels can be removed to avoid
  1334. stretch distortion; characters drawn this way suffer from distortion
  1335. because they are printed at a reduced resolution.
  1336.  
  1337. The Alt+A key-combination alternates between these two types of distortion.
  1338.  
  1339. 9.3.4. Alt+S
  1340.  
  1341. Sometimes it is more useful to look at a font in the context of a sentence
  1342. than it is to look at each individual character. This allows you to see how
  1343. the characters interact with each other on the ``printed page.''  The Alt+S
  1344. key-combination alternates between the grid display and the sentence
  1345. display. The sentence display looks like this:
  1346.  
  1347.       [NOTE: Graphics screens are not included in this unformated file]
  1348.                    Figure 9.2.  SfView sentence display
  1349.  
  1350. 9.3.5. Other
  1351.  
  1352. Pressing any other key changes the range of characters displayed to begin
  1353. with the key you pressed.
  1354.  
  1355. 10. SFINFO: Displaying Softfont Information
  1356.  
  1357. If you have difficulty printing a particular font, SfInfo can help pinpoint
  1358. the source of the problem. SfInfo displays the contents of the softfont
  1359. header and the header of each character in the font. In addition, SfInfo
  1360. examines the font looking for possible printer incompatibilities.  New
  1361. printers have a much more relaxed opinion about what constitutes a valid
  1362. font. A font that works on a LaserJet III may not work on a Series II;
  1363. SfInfo will be able to tell you why.
  1364.  
  1365. 10.1. Usage
  1366.  
  1367. SFINFO fontmask [[options]]
  1368.  
  1369. 10.1.1. Other Options
  1370.  
  1371. The SfInfo program accepts the /$ option.
  1372.  
  1373. 10.2. Running SfInfo
  1374.  
  1375. Running SfInfo displays a panel something like the following:
  1376.  
  1377. --------------------------------------------------------------------------------
  1378. ┌───────────────────────────« Softfont Information »───────────────────────────┐
  1379. │                                                                              │
  1380. │ Font name: CG Times              Font filename: D:\FONTS\TRR14TXC.SFP        │
  1381. │                                                                              │
  1382. │ Orientation  : Portrait        [  0]        All distances are in PCL dots    │
  1383. │ Symbol Set   :  0Q, Name unknown            ┌─────┐ ┬ ┬                      │
  1384. │ Spacing      : Proportional    [  1]        │     │ │ │ Baseline=30          │
  1385. │ Pitch        :  25.00cpi       [ 48,  0]    │     │ │ │ _                    │
  1386. │ Height       :  10.00pt        [166,171]    │  x  │ │ │ │ Xheight=19.00      │
  1387. │ Style        : Upright         [  0]        ├─────┤ │ ┴ ┴ ┐                  │
  1388. │ Stroke weight: Medium          [  0]        │-----│ │     ┘ Uline=8          │
  1389. │ Typeface     : Times Roman     [  5]        └─────┘ ┴ Cell height=40         │
  1390. │ PCL5 Typeface: Times Roman     [4101]       ├──┬──┤                          │
  1391. │                                                └ Cell width=43               │
  1392. │                                                                              │
  1393. │ Font selection : <ESC>(0Q<ESC>(s1p25h1v0s0b5T                                │
  1394. │ PCL5 selection : <ESC>(0Q<ESC>(s1p25h1v0s0b4101T                             │
  1395. │                                                                              │
  1396. │                                                                              │
  1397. │                                                                              │
  1398. │           F4=Char Info  F5=Addnl Desc  F6=Warnings  Esc=Exit                 │
  1399. └──────────────────────────────────────────────────────────────────────────────┘
  1400. --------------------------------------------------------------------------------
  1401.                       Figure 10.1.  SfInfo Main Panel
  1402.  
  1403. 10.2.1. Esc
  1404.  
  1405. You can leave at any time by pressing Esc.
  1406.  
  1407. 10.2.2. F4
  1408.  
  1409. Pressing F4 displays character information for the font.  The dimensions
  1410. of the largest character in the font are summarized and a scrolling list of
  1411. the characters in the font is displayed.
  1412.  
  1413. The additional info panel looks like this:
  1414.  
  1415. --------------------------------------------------------------------------------
  1416. ┌──────────────────────────« Character Information »───────────────────────────┐
  1417. │                                                                             │
  1418. │  Widest bounding box on any character:   39 ("W")                            │
  1419. │ Tallest bounding box on any character:   38 ("j")                            │
  1420. │     Tallest ascender on any character:   30 (Ctrl-D)                         │
  1421. │    Deepest descender on any character:   10 ("<")                            │
  1422. │                 Largest combined cell: 39x40 (max width X max height)        │
  1423. │                                                                              │
  1424. │     ┌───────────┬────┬────┬──────┬──────┬──────┬──────┬──────┬───────┐       │
  1425. │     │ Character │ Cl │ Or │ Left │ Top  │ Wd   │ Ht   │ dX   │ Data  │       │
  1426. │     │───────────┼────┼────┼──────┼──────┼──────┼──────┼──────┼───────│       │
  1427. │     │ Ctrl-@    │  2 │  P │    2 │   28 │   21 │   29 │  100 │    40        │
  1428. │     │ Ctrl-A    │  1 │  P │    1 │   28 │   26 │   29 │  112 │   116 ▓       │
  1429. │     │ Ctrl-B    │  1 │  P │    2 │   29 │   26 │   31 │  120 │   124 ░       │
  1430. │     │ Ctrl-C    │  1 │  P │    0 │   28 │   27 │   29 │  112 │   116 ░       │
  1431. │     │ Ctrl-D    │  2 │  P │    1 │   30 │   25 │   34 │  112 │   124        │
  1432. │     │ Ctrl-E    │  2 │  P │    1 │   28 │   28 │   29 │  120 │    26 │       │
  1433. │     │───────────┴────┴────┴──────┴──────┴──────┴──────┴──────┴───────│       │
  1434. │     ╘═════════════════════════════════════════════════»   for More «╛       │
  1435. │                                                                              │
  1436. │                          Arrows=Move  Esc=Exit                               │
  1437. └──────────────────────────────────────────────────────────────────────────────┘
  1438. --------------------------------------------------------------------------------
  1439.            Figure 10.2.  Additional Character Information Panel
  1440.  
  1441. The scrolling list of characters displays the class, orientation, 
  1442. leftoffset, top-offset, width, height, delta-X, and data sizes of every 
  1443. character in the font. These are technical measurements in the softfont and 
  1444. can be ignored by most users.
  1445.  
  1446. The left-offset, top-offset, width, and height fields are PCL coordinate 
  1447. system dots.  The delta-X field is in 1/4 dot units. The data size is in 
  1448. bytes.  For compressed fonts (class 2 characters), this is the data size of 
  1449. the compressed character, not the expanded character.
  1450.  
  1451. 10.2.3. F5
  1452.  
  1453. Pressing F5 displays any additional information present in the font header.  
  1454. The most common use of this area is font copyright information.  The 
  1455. special effects program in Sfware uses this area to describe what effects 
  1456. have been performed on the font.
  1457.  
  1458. Not all fonts have additional information in the header.
  1459.  
  1460. 10.2.4. F6
  1461.  
  1462. When the font is scanned, it is frequently possible to recognize that it is 
  1463. not ``valid'' for some printers. The LaserJet III printer (and, presumably, 
  1464. printers that follow it) have a very relaxed set of guidelines as to what 
  1465. constitutes a valid font. Older printers, the LaserJet Series II in 
  1466. particular, have very stringent requirements. SfInfo recognizes these 
  1467. incompatabilities and will display a warning message for each problem that 
  1468. it finds. If the problem can easily be corrected, the appropriate action is 
  1469. described.
  1470.  
  1471. 11. SFDIR: Softfont Directory Listings
  1472.  
  1473. The SfDir program provides a useful alternative to the standard DOS DIR 
  1474. command for softfonts. SfDir prints the font characteristics of each 
  1475. softfont that matches the fontmask.
  1476.  
  1477. 11.1. Example
  1478.  
  1479.  
  1480.     Directory of D:\FONTS\*.*
  1481.  
  1482.     AR010AAA ESP  Port 10J Fix 12.00cpi  9.96pt Up Medium  Courier
  1483.     TRB1CTXC SFL  Land  0Q Pro          12.00pt Up Bold    TmsRmn
  1484.     CMR10    SFP  Port  0U Pro           9.96pt Up Medium  TmsRmn
  1485.     TRB1CTXC SFP  Port  0Q Pro          12.00pt Up Bold    TmsRmn
  1486.     TRR0OUSC SFP  Port  0U Pro           6.00pt Up Medium  TmsRmn
  1487.     TRR0WUSC SFP  Port  0U Pro           8.00pt Up Medium  TmsRmn
  1488.     TRR14TXC SFP  Port  0Q Pro          10.00pt Up Medium  TmsRmn
  1489.     TRR1CTXC SFP  Port  0Q Pro          12.00pt Up Medium  TmsRmn
  1490.     TRR1KTXC SFP  Port  0Q Pro          14.00pt Up Medium  TmsRmn
  1491.     TRR1KUSC SFP  Port  0U Pro          14.00pt Up Medium  TmsRmn
  1492.     TRR1KXXC SFP  Port  0Q Pro          14.00pt Up Medium  TmsRmn
  1493.     UNB1CTXC SFP  Port  0Q Pro          12.00pt Up Bold    Univers
  1494.     UNR0OUSC SFP  Port  0U Pro           6.00pt Up Medium  Univers
  1495.     UNR0WUSC SFP  Port  0U Pro           8.00pt Up Medium  Univers
  1496.     UNR14USC SFP  Port  0U Pro          10.00pt Up Medium  Univers
  1497.     UNR1CTXC SFP  Port  0Q Pro          12.00pt Up Medium  Univers
  1498.     UNR1KUSC SFP  Port  0U Pro          14.00pt Up Medium  Univers
  1499.     NB010AAA USP  Port  0U Pro           9.96pt Up Medium  Typeface# 210
  1500.     VGA20    SFP  Port 10U Fix 20.00cpi  1.68pt Up Medium  Courier
  1501.     VGA20SH  SFP  Port 10U Fix 20.00cpi  1.68pt 14 Medium  Courier
  1502.           20 Font(s)     268420 bytes
  1503.  
  1504.  
  1505. 11.2. Usage
  1506.  
  1507. SFDIR fontmask [[options]]
  1508.  
  1509. 11.3. Options
  1510.  
  1511. 11.3.1. /esc
  1512.  
  1513. If SfDir is run with the /esc option, it prints the LaserJet escape 
  1514. sequence required to select each font instead of a textual description of 
  1515. the font characteristics. In the escape sequence, a raised dot is used to 
  1516. represent the ESC character (ASCII 27d).
  1517.  
  1518. 11.3.2. /noesc
  1519.  
  1520. With the /noesc option, SfDir prints a textual description of the font 
  1521. characteristics for each font that matches the fontmask. This is generally 
  1522. the default.
  1523.  
  1524. 11.3.3. Other Options
  1525.  
  1526. The SfDir program accepts the /quiet, /verbose, and /$ options.
  1527.  
  1528. 12. The Bold Effect
  1529.  
  1530. Emboldening a font makes it appear darker on the page. Adding a large 
  1531. amount of boldness to a font will cause it to blur and become difficult to 
  1532. read. In professional typography, the characters in a bold version of a 
  1533. font have different shapes and proportions. This is beyond the ability of 
  1534. Sfware. A normal font made bolder with Sfware will not look the same (and 
  1535. probably will not look as good) as a real bold version of the original 
  1536. font.
  1537.  
  1538. 12.1. Usage
  1539.  
  1540. SFFX fontmask outmask BOLD [[options]]
  1541.  
  1542. 12.2. Options
  1543.  
  1544. 12.2.1. /bold
  1545.  
  1546. The /bold parameter controls how much darker the characters are made to 
  1547. appear.  The larger the number, the darker the characters will be.  For 
  1548. best results, the amount of boldness should be small with respect to the 
  1549. size of the font. It's difficult to define ``small'' in this context; 
  1550. one-tenth of the point size of the font (or less) is probably a good 
  1551. estimate.  Experiment and see what looks most pleasing to the eye.
  1552.  
  1553. 12.2.2. /range
  1554.  
  1555. The range option limits the scope of the effect. Please refer to the SfFx 
  1556. chapter for more information.
  1557.  
  1558. 12.3. Technically Speaking
  1559.  
  1560. The bold effect locates ``edge'' pixels (that is, pixels that are on a 
  1561. border of the character) by scanning horizontally across each row of 
  1562. pixels. Every time a pixel position is found that is currently off and 
  1563. adjacent to, but not surrounded by, pixels that are on, the pixel is turned 
  1564. on. This has the effect of adding pixels to the border of the character. 
  1565. The appropriate font and character parameters are updated so that the 
  1566. original character shape (now surrounded by a border) prints in the same 
  1567. position as the original. In other words, the left offset is incremented by 
  1568. one, the baseline is incremented by one, and the character bounding box is 
  1569. expanded. If an amount of boldness greater than one is specified, the above 
  1570. algorithm is iterated to produce the correct amount of boldness.
  1571.  
  1572. 13. The Fixed Spacing Effect
  1573.  
  1574. Fixed spacing uses the same width for each character in the font.  This is 
  1575. the opposite of proportional spacing in which each character is given a 
  1576. width appropriate to its appearance. In a fixed spaced font, all characters 
  1577. have the same width. The fixed spacing effect creates a fixed spaced font 
  1578. from a proportionally spaced font. This can be useful if you need to line 
  1579. up columns of characters, for example, although it's generally better to 
  1580. use a font specifically designed for fixed spacing.
  1581.  
  1582. 13.1. Usage
  1583.  
  1584. SFFX fontmask outmask FIX [[options]]
  1585.  
  1586. 13.2. Options
  1587.  
  1588. There are no options for this effect.
  1589.  
  1590. 13.3. Technically Speaking
  1591.  
  1592. In the fixed spaced version of the font, all characters have the maximum 
  1593. cell width. Bitmaps that are narrower than the maximum cell width are 
  1594. adjusted to print as if they were centered in a box as wide as the maximum 
  1595. cell width.
  1596.  
  1597. 14. The Fill Effect
  1598.  
  1599. Filling a font creates outlined characters filled with a user-specified 
  1600. pattern.
  1601.  
  1602. 14.1. Usage
  1603.  
  1604. SFFX fontmask outmask FILL /pattern:pattern [[options]]
  1605.  
  1606. 14.2. Parameters
  1607.  
  1608. 14.2.1. /pattern
  1609.  
  1610. Patterns can be specified directly or by using names defined in the 
  1611. configuration file.  The Patterns chapter describes how to create patterns; 
  1612. the Configuration chapter describes how to save and name patterns.
  1613.  
  1614. 14.3. Options
  1615.  
  1616. 14.3.1. /range
  1617.  
  1618. The range option limits the scope of the effect. Please refer to the SfFx 
  1619. chapter for more information.
  1620.  
  1621. 14.4. Technically Speaking
  1622.  
  1623. Patterns are described in more technical detail in the Patterns chapter.
  1624.  
  1625. 15. The Halftone Effect
  1626.  
  1627. Halftoning a font can produce a wide variety of results. It is one of the 
  1628. most general effects in SfFx's repertoire. In brief, it allows you to 
  1629. specify the fill patterns for both the foreground and the background of two 
  1630. different regions of each character. This can create, for example, 
  1631. half-inverted characters.
  1632.  
  1633. 15.1. Usage
  1634.  
  1635. SFFX fontmask outmask HALFTONE /start:# /stop:# /blackbot:pattern 
  1636.                                /whitebot:pattern [[options]]
  1637.  
  1638. 15.2. Parameters
  1639.  
  1640. Every character is divided into two areas, a selected area and a 
  1641. non-selected area.  Within each area, two shading patterns are applied--one 
  1642. to the currently black portion of the character cell (the character itself) 
  1643. and one to the white portion of the character cell ( everything else).
  1644.  
  1645. Please refer to the Patterns chapter elsewhere in this manual for more 
  1646. information about patterns.
  1647.  
  1648. 15.2.1. /start
  1649.  
  1650. The /start parameter specifies where the selected area begins. This value 
  1651. should be expressed as a percentage from the top of the tallest character 
  1652. in the font. For example, specifing 25 begins the selected area 1/4 of the 
  1653. way down from the top of the character, similarly, 50 selects a position 
  1654. halfway down the character and 67 selects a position 67% of the way down 
  1655. from the top of the character.
  1656.  
  1657. 15.2.2. /stop
  1658.  
  1659. By analogy with /start, this option specifies where the select region ends.  
  1660. The /stop value should be larger than the starting value.  The area between 
  1661. the start position and the stop position is the ``selected region'' of the 
  1662. character.
  1663.  
  1664. 15.2.3. /blackbot
  1665.  
  1666. The /blackbot pattern replaces the foreground (black) area of the selected 
  1667. region.  The /blackbot parameter can be abbreviated to /bbot.
  1668.  
  1669. 15.2.4. /whitebot
  1670.  
  1671. The /whitebot pattern replaces the background (white) area of the selected 
  1672. region.  The /whitebot parameter can be abbreviated to /wbot.
  1673.  
  1674. 15.3. Options
  1675.  
  1676. 15.3.1. /blacktop
  1677.  
  1678. The /blacktop pattern replaces the black areas of the non-selected region.  
  1679. Please refer the the Patterns chapter elsewhere in this manual. The 
  1680. /blacktop option can be abbreviated to /btop.
  1681.  
  1682. 15.3.2. /whitetop
  1683.  
  1684. The /whitetop pattern replaces the white area (everything in the cell that 
  1685. isn't black) of the non-selected region. The /whitetop parameter can be 
  1686. abbreviated to /wtop.
  1687.  
  1688. 15.3.3. /range
  1689.  
  1690. The range option limits the scope of the effect. Please refer to the SfFx 
  1691. chapter for more information.
  1692.  
  1693. 15.4. Technically Speaking
  1694.  
  1695. This effect forms the heart of several effects in SfFx. For example, the 
  1696. ``shade'' effect is nothing more than the halftone effect applied to a 
  1697. selected region from 0% to 100% of the character! If you understand the 
  1698. concept of a pattern (discussed in the Patterns chapter), it shouldn't be 
  1699. too difficult to understand the halftone effect.
  1700.  
  1701. Note: in any effect that changes the background pattern, it may be 
  1702. necessary to turn off ``kerning'' within the word processor or other 
  1703. program that you use to print the font. Normally, causing two characters to 
  1704. overlap by a small amount (for example a capital ``T'' followed by a 
  1705. lowercase ``o'') is not noticable because they only overlap in the 
  1706. ``white'' background.  However, after you have changed the background to a 
  1707. pattern other than plain white, the effect of overlapping two characters by 
  1708. even a small amount may be undesirable.
  1709.  
  1710. 16. The Horizontal Fade/Mist Effect
  1711.  
  1712. Fading a font with this effect ``smudges'' out the leading or trailing edge 
  1713. of each character.
  1714.  
  1715. 16.1. Usage
  1716.  
  1717. SFFX fontmask outmask HFADE /to:% [[options]]
  1718.  
  1719. 16.2. Parameters
  1720.  
  1721. 16.2.1. /to
  1722.  
  1723. The /to parameter determines what percentage of the character is faded out.  
  1724. A fade factor of 100% applies the fade all the way across each character so 
  1725. that a 100% black saturation is achieved in the last column of pixels. Fade 
  1726. factors below 100% apply the fade more rapidly so that a 100% black 
  1727. saturation is achieved before the edge of the character.  Conversly, fade 
  1728. factors above 100% draw the fade out so that it never reaches saturation.
  1729.  
  1730. 16.3. Options
  1731.  
  1732. 16.3.1. /back
  1733.  
  1734. By default, a horizontal fade begins with 0% black on the left edge of the 
  1735. character and proceeds towards 100% on the right edge (at a rate determined 
  1736. by ``fade percent.'' See above). If backwards fading is selected, the fade 
  1737. proceeds from right to left instead of left to right.
  1738.  
  1739. 16.3.2. /range
  1740.  
  1741. The range option limits the scope of the effect. Please refer to the SfFx 
  1742. chapter for more information.
  1743.  
  1744. 16.4. Technically Speaking
  1745.  
  1746. The fade effect examines each pixel in the bitmap and decides randomly if 
  1747. the pixel should be turned off. In any given column, 
  1748. 100*ColumnNumber*(FadePercent/100)/CharacterWidth percent of the pixels are 
  1749. turned off.
  1750.  
  1751. 17. The Hollow Effect
  1752.  
  1753. Hollowing a font produces an unfilled outline of each character.
  1754.  
  1755. 17.1. Usage
  1756.  
  1757. SFFX fontmask outmask HOLLOW [[options]]
  1758.  
  1759. 17.2. Options
  1760.  
  1761. 17.2.1. /range
  1762.  
  1763. The range option limits the scope of the effect. Please refer to the SfFx 
  1764. chapter for more information.
  1765.  
  1766. 17.3. Technically Speaking
  1767.  
  1768. The hollow effect and the outline effect are very closely related. The only 
  1769. difference is the placement of the outline. In the hollow effect, the 
  1770. existing perimeter of each character is left in place and the interior is 
  1771. ``scooped out''. For the outline effect, the entire character is erased and 
  1772. a new perimeter is added just around the character.  In effect, an outlined 
  1773. character is a hollowed bold character (see the technically speaking 
  1774. section of the bold effect for more details).
  1775.  
  1776. It should also be noted that the hollow and fill effects are closely 
  1777. related.  A hollowed character is a filled character with a pattern of 0.
  1778.  
  1779. 18. The Invert Effect
  1780.  
  1781. Inverting a character creates a ``reverse video'' effect. However, the 
  1782. choice of patterns in this effect can dramatically change the result.
  1783.  
  1784. 18.1. Usage
  1785.  
  1786. SFFX fontmask outmask INVERT [[options]]
  1787.  
  1788. 18.2. Options
  1789.  
  1790. Both of the options for this effect are patterns. See the Patterns chapter 
  1791. elsewhere in this manual for more information.
  1792.  
  1793. 18.2.1. /black
  1794.  
  1795. This pattern replaces all of the black areas of the character.
  1796.  
  1797. 18.2.2. /white
  1798.  
  1799. This pattern replaces all of the white areas of the character.
  1800.  
  1801. 18.2.3. /range
  1802.  
  1803. The range option limits the scope of the effect. Please refer to the SfFx 
  1804. chapter for more information.
  1805.  
  1806. 18.3. Technically Speaking
  1807.  
  1808. See the technically speaking section of the halftone effect for more 
  1809. information.
  1810.  
  1811. 19. The Mirror Effect
  1812.  
  1813. Mirroring a font creates characters that are upside down.
  1814.  
  1815. 19.1. Usage
  1816.  
  1817. SFFX fontmask outmask MIRROR [[options]]
  1818.  
  1819. 19.2. Options
  1820.  
  1821. 19.2.1. /adj
  1822.  
  1823. The /adj parameter changes the relative position of the (virtual) mirror 
  1824. across which each character is rotated. A value of zero specifies that the 
  1825. mirror is on the baseline, values larger than zero move the mirror above 
  1826. the baseline, smaller values move it below.
  1827.  
  1828. 19.2.2. /range
  1829.  
  1830. The range option limits the scope of the effect. Please refer to the SfFx 
  1831. chapter for more information.
  1832.  
  1833. 19.3. Technically Speaking
  1834.  
  1835. If you plan to use a font and its mirror to create a special display effect 
  1836. (by placing one above the other), you may find that the descenders on the 
  1837. original font overlap the ``descenders'' (now ascenders!)on the mirrored 
  1838. font. This is where it is helpful to change the mirror baseline adjustment.  
  1839. By making the adjustment roughly equal to the number of pixels in the 
  1840. descenders of the original font, you can move the mirrored font ``down'' a 
  1841. little so that the mirrored descenders don't overlap the descenders on the 
  1842. original font.
  1843.  
  1844. 20. The Mist Effect
  1845.  
  1846. Misting a font ``smudges'' each character.
  1847.  
  1848. 20.1. Usage
  1849.  
  1850. SFFX fontmask outmask MIST /mist:% [[options]]
  1851.  
  1852. 20.2. Parameters
  1853.  
  1854. 20.2.1. /mist
  1855.  
  1856. The mist percent determines what percentage of the character is misted 
  1857. (faded) out.  Larger mist percentages remove more pixels than smaller ones.  
  1858. A 100% (or larger) mist percent removes all trace of the character.
  1859.  
  1860. 20.3. Options
  1861.  
  1862. 20.3.1. /range
  1863.  
  1864. The range option limits the scope of the effect. Please refer to the SfFx 
  1865. chapter for more information.
  1866.  
  1867. 20.4. Technically Speaking
  1868.  
  1869. This effect is identical to the horizontal and vertical fade effects with 
  1870. the exception that the fade percentage is calculated once and does not vary 
  1871. for each row or column in the bitmap.
  1872.  
  1873. 21. The Outline Effect
  1874.  
  1875. Outlining a font produces an unfilled outline of each character.
  1876.  
  1877. 21.1. Usage
  1878.  
  1879. SFFX fontmask outmask OUTLINE [[options]]
  1880.  
  1881. 21.2. Options
  1882.  
  1883. 21.2.1. /range
  1884.  
  1885. The range option limits the scope of the effect. Please refer to the SfFx 
  1886. chapter for more information.
  1887.  
  1888. 21.3. Technically Speaking
  1889.  
  1890. See the technical discussion of the hollow effect for more information.
  1891.  
  1892. 22. The Proportional Spacing Effect
  1893.  
  1894. Proportional spacing is the opposite of fixed spacing. In a proportionally 
  1895. spaced font, each character is only as wide as its printed image, plus a 
  1896. small border. The proportional spacing effect creates a proportionally 
  1897. spaced version of a fixed spaced font.
  1898.  
  1899. 22.1. Usage
  1900.  
  1901. SFFX fontmask outmask PROP
  1902.  
  1903. 22.2. Options
  1904.  
  1905. There are no options for this effect.
  1906.  
  1907. 22.3. Technically Speaking
  1908.  
  1909. In the proportionally spaced version of the font, all characters are four 
  1910. dots wider than the natural width of the bitmaps required to print each 
  1911. character (two dots on each side). Note: in many fonts, conversion from 
  1912. proportional spacing to fixed and back to proportional will yield a 
  1913. proportionally spaced font that is not as attractive as the original font 
  1914. since conversion to fixed spacing effectively destroys any special spacing 
  1915. information. For example, in many fonts the tail of a lower case letters 
  1916. like ``j'' and ``g'' are allowed to ``hang back'' below the character that 
  1917. precedes them. When a font is converted from fixed spacing to proportional 
  1918. spacing, there is no way to insert this kind of aesthetic hint 
  1919. automatically.
  1920.  
  1921. 23. The Resize Effect
  1922.  
  1923. Resizing a font creates characters that are larger or smaller than the same 
  1924. characters in the original font. The characters can be scaled uniformly 
  1925. (creating more or less accurate renditions of the original characters with 
  1926. the same proportions) or non-uniformly (creating elongated or widened 
  1927. characters).
  1928.  
  1929. 23.1. Usage
  1930.  
  1931. SFFX fontmask outmask RESIZE /width:% /height:% [[options]]
  1932.  
  1933. 23.2. Parameters
  1934.  
  1935. 23.2.1. /width
  1936.  
  1937. The /width parameter specifies the width of each resized character as a 
  1938. percentage of its original size. Values less than 100 make the characters 
  1939. narrower, while values larger than 100 make them wider.
  1940.  
  1941. 23.2.2. /height
  1942.  
  1943. Like the width, the new height specifies the height of each resized 
  1944. character as a percentage of its original height.
  1945.  
  1946. 23.3. Options
  1947.  
  1948. 23.3.1. /range
  1949.  
  1950. The range option limits the scope of the effect. Please refer to the SfFx 
  1951. chapter for more information.
  1952.  
  1953. 23.4. Technically Speaking
  1954.  
  1955. In practice, this effect has few uses. Unlike more modern font scaling 
  1956. technology (which relies on mathematical descriptions of each character) 
  1957. SfFx has only the bitmap description of each character to work with.  As a 
  1958. result, gross changes in the size of a character create ``jagged'' edges 
  1959. and very poor quality letters. Making fonts larger generally works better 
  1960. than making them smaller. As a rule of thumb, you probably won't like the 
  1961. results if you try to resize a font by more than a factor of two. If you 
  1962. hold one dimension constant (100%), it may be possible to stretch or 
  1963. compress the other dimension by a larger factor without significant loss of 
  1964. detail.
  1965.  
  1966. 24. The Reverse Effect
  1967.  
  1968. Reversing a font creates backwards characters.
  1969.  
  1970. 24.1. Usage
  1971.  
  1972. SFFX fontmask outmask REVERSE [[options]]
  1973.  
  1974. 24.2. Options
  1975.  
  1976. 24.2.1. /range
  1977.  
  1978. The range option limits the scope of the effect. Please refer to the SfFx 
  1979. chapter for more information.
  1980.  
  1981. 24.3. Technically Speaking
  1982.  
  1983. The reverse effect simply rotates each bitmap through its center. The left 
  1984. offset and delta-x values of each character are adjusted to keep the 
  1985. correct amount of space ``in front of'' and ``behind'' each character.
  1986.  
  1987. 25. The Shadow Effect
  1988.  
  1989. Shadowing attempts to produce the effect that you would get if all you 
  1990. could see on the page were the shadows from an embossed image of the 
  1991. original character. It's a bit difficult to describe, but it is one of my 
  1992. favorite effects.
  1993.  
  1994. 25.1. Usage
  1995.  
  1996. SFFX fontmask outmask SHADOW /x:# /x:# [[options]]
  1997.  
  1998. 25.2. Parameters
  1999.  
  2000. 25.2.1. /X
  2001.  
  2002. The /x parameter controls the width (in dots) of the shadow to the right or 
  2003. left of the original character. Positive values create a shadow on the 
  2004. right hand side of the character, while negative values create a shadow on 
  2005. the left. This value should be small relative to the total width of the 
  2006. character.
  2007.  
  2008. 25.2.2. /Y
  2009.  
  2010. By analogy with the /X parameter, the /y parameter controls the height of 
  2011. the shadow above or below the character. Positive values create shadows 
  2012. below the character, negative values above. This value should be small 
  2013. relative to the total height of the character.
  2014.  
  2015. 25.3. Options
  2016.  
  2017. 25.3.1. /range
  2018.  
  2019. The range option limits the scope of the effect. Please refer to the SfFx 
  2020. chapter for more information.
  2021.  
  2022. 25.4. Technically Speaking
  2023.  
  2024. The effect is produced by moving a copy of the character over and down by 
  2025. the specified amounts and then removing all dots that fall within the 
  2026. original character (including all of the original character).  For small 
  2027. widths, this works fine; however when the widths become larger than the 
  2028. widths of the strokes that make up the chacter, the effect falls apart.
  2029.  
  2030. 26. The Shade Effect
  2031.  
  2032. Shading a font replaces all off the ``black'' areas of a font with the 
  2033. specified shading pattern. This effect changes dramatically depending on 
  2034. the pattern that you select.
  2035.  
  2036. 26.1. Usage
  2037.  
  2038. SFFX fontmask outmask SHADE /pattern:pattern [[options]]
  2039.  
  2040. 26.2. Parameters
  2041.  
  2042. 26.2.1. /pattern
  2043.  
  2044. All of the black areas of each character are replaced by the specified 
  2045. pattern.  Please refer to the chapter on patterns elsewhere in this manual 
  2046. for more information about patterns.
  2047.  
  2048. 26.3. Options
  2049.  
  2050. 26.3.1. /range
  2051.  
  2052. The range option limits the scope of the effect. Please refer to the SfFx 
  2053. chapter for more information.
  2054.  
  2055. 26.4. Technically Speaking
  2056.  
  2057. Patterns are described in more technical detail in the pattern chapter.
  2058.  
  2059. 27. The Slant Effect
  2060.  
  2061. Slanting is a poor-man's version of italics. In practice, italic fonts are 
  2062. not just slanted versions of the upright characters. But slanting will 
  2063. suffice in a pinch and it does allow you to produce oblique characters 
  2064. (slanted backwards), which are occasionally useful.
  2065.  
  2066. 27.1. Usage
  2067.  
  2068. SFFX fontmask outmask SLANT /deg:# [[options]]
  2069.  
  2070. 27.2. Parameters
  2071.  
  2072. 27.2.1. /deg
  2073.  
  2074. The /deg parameter specifies the amount of slant in degrees. A positive 
  2075. value causes the characters to slant toward the right. A negative value 
  2076. causes the characters to slant toward the left.
  2077.  
  2078. 27.3. Options
  2079.  
  2080. 27.3.1. /range
  2081.  
  2082. The range option limits the scope of the effect. Please refer to the SfFx 
  2083. chapter for more information.
  2084.  
  2085. 27.4. Technically Speaking
  2086.  
  2087. This effect is produced by calculating how far over each row of pixels must 
  2088. be moved in order to produce a slant of the requested angle.  Using a 
  2089. little bit of trigonometry, it is easy to calculate how far over the top 
  2090. row must be moved. Each row below the top must be moved over some fraction 
  2091. of the total height of the character.  Rows below the baseline must be 
  2092. moved in the opposite direction.
  2093.  
  2094. Considering that this algorithm does nothing more than slide rows of dots 
  2095. back and forth, it should be easy to see that large slant values may 
  2096. produce jagged, non-contiguous characters.
  2097.  
  2098. 28. The Stripe Effect
  2099.  
  2100. Striping places alternating white and black horizontal lines across each 
  2101. character in the font.
  2102.  
  2103. 28.1. Usage
  2104.  
  2105. SFFX fontmask outmask STRIPE /black:# /white:# [[options]]
  2106.  
  2107. 28.2. Parameters
  2108.  
  2109. 28.2.1. /black
  2110.  
  2111. Selects the width (in dots) of the black stripes.
  2112.  
  2113. 28.2.2. /white
  2114.  
  2115. Selects the width (in dots) of the white stripes.
  2116.  
  2117. 28.3. Options
  2118.  
  2119. 28.3.1. /range
  2120.  
  2121. The range option limits the scope of the effect. Please refer to the SfFx 
  2122. chapter for more information.
  2123.  
  2124. 28.4. Technically Speaking
  2125.  
  2126. In each character, the stripes are adjusted so that a black stripe begins 
  2127. at the baseline. This assures that the stripes will line up when characters 
  2128. are placed next to each other. Note: a similar effect with vertical stripes 
  2129. can be created with the shade effect using an appropriate pattern.
  2130.  
  2131. 29. The Three-D Drop Shadow Effect
  2132.  
  2133. Three-D drop shadows create a patterned shadow-image of each character that 
  2134. appears to be below the original. It is possible to change the apparent 
  2135. ``distance'' of the shadow by changing the offsets used to create it.
  2136.  
  2137. 29.1. Usage
  2138.  
  2139. SFFX fontmask outmask THREED /X:# /Y:# /pattern:pattern [[options]]
  2140.  
  2141. 29.2. Parameters
  2142.  
  2143. 29.2.1. /X
  2144.  
  2145. The /x parameter controls the distance (in dots) of the shadow to the right 
  2146. or left of the original character. Positive values create a shadow on the 
  2147. right hand side of the character, negative values create a shadow on the 
  2148. left.
  2149.  
  2150. 29.2.2. /Y
  2151.  
  2152. By analogy with the /X parameter, the /y parameter controls the distance of 
  2153. the shadow above or below the character. Positive values create shadows 
  2154. below the character, negative values above.
  2155.  
  2156. 29.2.3. Pattern
  2157.  
  2158. The pattern specified is applied to the areas used in the shadow.
  2159.  
  2160. 29.3. Options
  2161.  
  2162. 29.3.1. /range
  2163.  
  2164. The range option limits the scope of the effect. Please refer to the SfFx 
  2165. chapter for more information.
  2166.  
  2167. 29.4. Technically Speaking
  2168.  
  2169. The original character is moved left or right and up or down by the 
  2170. distances specified. If necessary the character cell is enlarged to 
  2171. accommodate the new character. The character is then shaded with the 
  2172. specified pattern and the original character is painted back into the 
  2173. character cell at its original position.
  2174.  
  2175. 30. The Hollow Three-D Drop Shadow Effect
  2176.  
  2177. Hollow Three-D drop shadows are simply a combination of the three-d drop 
  2178. shadow effect and the hollow effect. It is a limitation of the algorithms 
  2179. used to create the three-d drop shadow effect that it is not possible to 
  2180. hollow a three-d character. This effect is provided to circumvent that 
  2181. limitation.
  2182.  
  2183. 30.1. Usage
  2184.  
  2185. SFFX fontmask outmask HOLLOW3D /X:# /Y:# [[options]]
  2186.  
  2187. 30.2. Parameters
  2188.  
  2189. 30.2.1. /X
  2190.  
  2191. The /x parameter controls the distance (in dots) of the shadow to the right 
  2192. or left of the original character. Positive values create a shadow on the 
  2193. right hand side of the character, negative values create a shadow on the 
  2194. left.
  2195.  
  2196. 30.2.2. Y-Offset
  2197.  
  2198. By analogy with the /X parameter, the y-offset parameter controls the 
  2199. distance of the shadow above or below the character. Positive values create 
  2200. shadows below the character, negative values above.
  2201.  
  2202. 30.3. Options
  2203.  
  2204. 30.3.1. /range
  2205.  
  2206. The range option limits the scope of the effect. Please refer to the SfFx 
  2207. chapter for more information.
  2208.  
  2209. 30.4. Technically Speaking
  2210.  
  2211. This option is exactly the same as the three-d drop shadow effect except 
  2212. that the shadow is always solid black and instead of painting the original 
  2213. character back into the cell, a hollowed version of the original character 
  2214. is painted back in.
  2215.  
  2216. 31. The Filled Three-D Drop Shadow Effect
  2217.  
  2218. Filled Three-D drop shadows are simply a combination of the three-d drop 
  2219. shadow effect and the fill effect. It is a limitation of the algorithms 
  2220. used to create the three-d drop shadow effect that it is not possible to 
  2221. create a filled three-d character. This effect is provided to circumvent 
  2222. that limitation.
  2223.  
  2224. 31.1. Usage
  2225.  
  2226. SFFX fontmask outmask FILL3D /X:# /Y:# /pattern:pattern [[options]]
  2227.  
  2228. 31.2. Parameters
  2229.  
  2230. 31.2.1. /X
  2231.  
  2232. The /x parameter controls the distance (in dots) of the shadow to the right 
  2233. or left of the original character. Positive values create a shadow on the 
  2234. right hand side of the character, negative values create a shadow on the 
  2235. left.
  2236.  
  2237. 31.2.2. /Y
  2238.  
  2239. By analogy with the /X parameter, the /y parameter controls the distance of 
  2240. the shadow above or below the character. Positive values create shadows 
  2241. below the character, negative values above.
  2242.  
  2243. 31.2.3. /pattern
  2244.  
  2245. The pattern specified is applied to the original character.
  2246.  
  2247. 31.3. Options
  2248.  
  2249. 31.3.1. /range
  2250.  
  2251. The range option limits the scope of the effect. Please refer to the SfFx 
  2252. chapter for more information.
  2253.  
  2254. 31.4. Technically Speaking
  2255.  
  2256. This option is exactly the same as the three-d drop shadow effect except 
  2257. that the shadow is always solid black and instead of painting the original 
  2258. character back into the cell, a pattern-filled version of the original 
  2259. character is painted back in.
  2260.  
  2261. 32. The Vertical Fade/Mist Effect
  2262.  
  2263. Fading a font with this effect ``smudges'' out the top or bottom edge of 
  2264. each character.
  2265.  
  2266. 32.1. Usage
  2267.  
  2268. SFFX fontmask outmask VFADE /to:% [[options]]
  2269.  
  2270. 32.2. Parameters
  2271.  
  2272. 32.2.1. /to
  2273.  
  2274. The /to parameter determines what percentage of the character is faded out.  
  2275. A fade factor of 100% applies the fade all the way down each character so 
  2276. that 100% black saturation is achieved in the last row of pixels.  Fade 
  2277. factors below 100% apply the fade more rapidly so that a 100% black 
  2278. saturation is achieved before the bottom of the character.  Conversely, 
  2279. fade factors above 100% draw the fade out so that it never reaches 
  2280. saturation.
  2281.  
  2282. 32.3. Options
  2283.  
  2284. 32.3.1. /back
  2285.  
  2286. By default, a vertical fade begins with 0% black on the top row of the 
  2287. character and proceeds towards 100% on the bottom row (at a rate determined 
  2288. by ``fade percent.'' See above). If backwards fading is selected, the fade 
  2289. begins with 0% black on the bottom row of the character and proceeds 
  2290. towards 100% on the top row.
  2291.  
  2292. 32.3.2. /range
  2293.  
  2294. The range option limits the scope of the effect. Please refer to the SfFx 
  2295. chapter for more information.
  2296.  
  2297. 32.4. Technically Speaking
  2298.  
  2299. See the technically speaking section for the Horizontal Fade/Mist effect.  
  2300. The vertical fade algorithm is a natural analog of the horizontal fade 
  2301. algorithm.
  2302.  
  2303. 33. Patterns
  2304.  
  2305. 33.1. What are patterns?
  2306.  
  2307. Patterns change the appearance of many effects. A pattern is a rectangular
  2308. region of on-and-off dots that is repeated across and down to cover the
  2309. region being filled. The pattern is specified as a series of numbers
  2310. separated by commas and semicolons. The binary representation of the numbers
  2311. separated by commas indicates the dots that are on and off in each row and
  2312. semicolons separate rows.
  2313.  
  2314. 33.2. How do I create one?
  2315.  
  2316. Creating a new pattern is not difficult. The best way to begin is with a
  2317. piece of graph paper and a pencil. Experiment until you have something that
  2318. you like and then follow the directions below.
  2319.  
  2320. For example, suppose that you wish to create a zig-zag pattern. Here is one
  2321. possibility:
  2322.  
  2323.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2324.       |   |   |   |   |   |   |   |   |   |   |   |   |   |
  2325.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2326.       |   |   |   | * |   |   |   | * |   |   |   | * |   |
  2327.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2328.       | * |   | * |   | * |   | * |   | * |   | * |   | * |
  2329.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2330.       |   | * |   |   |   | * |   |   |   | * |   |   |   |
  2331.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2332.       |   |   |   |   |   |   |   |   |   |   |   |   |   |
  2333.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2334.       |   |   |   | * |   |   |   | * |   |   |   | * |   |
  2335.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2336.       | * |   | * |   | * |   | * |   | * |   | * |   | * |
  2337.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2338.       |   | * |   |   |   | * |   |   |   | * |   |   |   |
  2339.       +---+---+---+---+---+---+---+---+---+---+---+---+---+
  2340.  
  2341. 33.2.1. Isolate a ``generating region''
  2342.  
  2343. Isolate the smallest region that can be used to generate the pattern.  This
  2344. region, when repeated to the right and down, should create the entire
  2345. pattern.  In this case, the smallest acceptable region is this:
  2346.  
  2347.  
  2348.       +---+---+---+---+
  2349.       |   |   |   |   |
  2350.       +---+---+---+---+
  2351.       |   |   | * |   |
  2352.       +---+---+---+---+
  2353.       |   | * |   | * |
  2354.       +---+---+---+---+
  2355.       | * |   |   |   |
  2356.       +---+---+---+---+
  2357.  
  2358. Note: there is frequently more than one smallest region that will produce the
  2359. pattern. I have intentionally chosen this region because it is not the
  2360. upper-left hand corner. Usually the upper-left hand corner contains a
  2361. generating region, but not always.
  2362.  
  2363. 33.2.2. Round to 8-dots
  2364.  
  2365. The region used to generate the pattern must be an even multiple of eight
  2366. dots wide. Repeat the smallest region to the right until it is a multiple of
  2367. eight dots wide. You must repeat the entire pattern (for example, if the
  2368. region is 6 dots wide, you will have to repeat it until it is 24 dots wide).
  2369. In this case the smallest region a multiple of eight dots wide is this:
  2370.  
  2371.  
  2372.       +---+---+---+---+---+---+---+---+
  2373.       |   |   |   |   |   |   |   |   |
  2374.       +---+---+---+---+---+---+---+---+
  2375.       |   |   | * |   |   |   | * |   |
  2376.       +---+---+---+---+---+---+---+---+
  2377.       |   | * |   | * |   | * |   | * |
  2378.       +---+---+---+---+---+---+---+---+
  2379.       | * |   |   |   | * |   |   |   |
  2380.       +---+---+---+---+---+---+---+---+
  2381.  
  2382. 33.2.3. Use zeros and ones
  2383.  
  2384. Redraw the pattern using zeros for ``off'' dots and ones for ``on'' dots.  If
  2385. the pattern is more than eight dots wide, write the zeros and ones of each
  2386. row in groups of eight as you copy the pattern.  In our example, the result
  2387. is this:
  2388.  
  2389.       +---+---+---+---+---+---+---+---+
  2390.       |   |   |   |   |   |   |   |   | = 00000000
  2391.       +---+---+---+---+---+---+---+---+
  2392.       |   |   | * |   |   |   | * |   | = 00100010
  2393.       +---+---+---+---+---+---+---+---+
  2394.       |   | * |   | * |   | * |   | * | = 01010101
  2395.       +---+---+---+---+---+---+---+---+
  2396.       | * |   |   |   | * |   |   |   | = 10001000
  2397.       +---+---+---+---+---+---+---+---+
  2398.  
  2399. 33.2.4. Convert to number
  2400.  
  2401. Treat each group of eight digits in each row like a binary number.  Using a
  2402. calculator or a conversion chart (there is a conversion chart in the online
  2403. help facility for SfShell), change each eight digit binary number into a
  2404. decimal number. If the rows have more than one group of eight digits,
  2405. separate the resulting decimal numbers with commas.  Our example becomes:
  2406.  
  2407.       00000000 = 0
  2408.       00100010 = 34
  2409.       01010101 = 85
  2410.       10001000 = 136
  2411.  
  2412. 33.2.5. Rewrite
  2413.  
  2414. Use the decimal numbers to create the pattern command. Optionally, you may
  2415. wish to add the pattern to the configuration file (as described below).  The
  2416. decimal numbers for each row are separated by commas and the rows are
  2417. separated by semicolons. The pattern we set out to create can be specified as
  2418. follows:
  2419.  
  2420.       0;34;85;136
  2421.  
  2422. Remember that you can use preview to look at the pattern before creating a
  2423. font with it. This is a good way to check that you did the conversion
  2424. correctly.
  2425.  
  2426. 33.3. Saving the pattern
  2427.  
  2428. Alternatively, the patterns may be saved in the configuration file and
  2429. selected by name. Read the Configuration chapter for more information.
  2430.  
  2431. 33.4. Previewing Patterns
  2432.  
  2433. It is possible to preview any pattern by pressing ``F5'' when you are on a
  2434. pattern field or when the list of patterns is displayed.  The list of
  2435. patterns will be displayed if you press ``F4'' when you are on a pattern
  2436. field.
  2437.  
  2438. 33.5. Technically Speaking
  2439.  
  2440. The fact that patterns are used for so many effects makes it apparent that
  2441. Sfware really needs a pattern editor and a better mechanism for storing
  2442. patterns. These are planned additions but Sfware is already beginning to
  2443. suffer from ``creeping featurism'' (in the author's opinion, at least) and it
  2444. has been decided that these changes will just have to wait until the next
  2445. release.
  2446.  
  2447. However, in view of the fact that creating patterns by the above method is
  2448. very tedious, a simple program (PATTERN.EXE) has been added to Sfware that
  2449. eliminates most of the ``hard parts.'' Please consult the file PATTERN.DOC
  2450. for more information.
  2451.  
  2452. 34. Sfware Registration
  2453.  
  2454. Registering shareware is an investment. Your registration will provide the 
  2455. support and encouragement required to continue the development of Sfware.  
  2456. The Sfware utilities represent an investment of more than two years of my 
  2457. time and effort. You get the results of this toil for a fraction of what a 
  2458. commercial package would cost. Plus, you get the benefits of a 
  2459. try-before-you-buy license agreement. If you continue to use the Sfware 
  2460. utilities, you are required to register them.
  2461.  
  2462. Return the enclosed order form with your check or money order today!
  2463.  
  2464. 34.1. Usage
  2465.  
  2466. The SPS-Reg registration program requires key information that will be 
  2467. mailed to you when you register the Sfware utilities. You cannot make any 
  2468. use of the program until you mail in your registration.
  2469.  
  2470. 35. Contacting the Author
  2471.  
  2472. 35.1. By Mail
  2473.  
  2474. You can reach the author by mail at the following address:
  2475.  
  2476.       Norman Walsh #42I 
  2477.       Southwood Apts 
  2478.       Brittany Manor Dr 
  2479.       Amherst, MA 01002
  2480.  
  2481. 35.2. Electronically
  2482.  
  2483. If you have access to electronic mail, the fastest way to reach the author 
  2484. is to send electronic mail to walsh@cs.umass.edu. In this case, electronic 
  2485. mail implies access to Internet domains (through BITNET or UUCP, for 
  2486. example). This is possible from CompuServe and from several of the large 
  2487. national BBS's as well.
  2488.  
  2489. 36. Glossary
  2490.  
  2491. ASCII
  2492.  
  2493. ASCII stands for the American Standard Code for Information Interchange.  
  2494. Text files are usually referred to as being ``plain ASCII'' if they contain 
  2495. no additional formatting information. The CONFIG.SYS and AUTOEXEC.BAT files 
  2496. on your boot disk are examples of a plain ASCII files. The spreadsheets, 
  2497. database files, or word processing documents produced by large application 
  2498. programs are generally not plain ASCII.
  2499.  
  2500. baseline
  2501.  
  2502. The baseline is an imaginary line upon which each character rests.  
  2503. Characters that appear next to each other are (usually) lined up so that 
  2504. their baselines are on the same level. Some characters extend below the 
  2505. baseline (``g'' and ``j'', for example) but most rest on it.
  2506.  
  2507. bitmap
  2508.  
  2509. A bitmap is an array of dots. If you imagine a sheet of graph paper with 
  2510. some squares colored in, a bitmap is a compact way of representing to the 
  2511. computer which squares are colored and which are still white.
  2512.  
  2513. In the context of softfonts, the dots are always black and white.  In a 
  2514. bitmapped softfont, every character is represented as a pattern of dots in 
  2515. a bitmap. The dots are so small (300 dots-per-inch usually) that they are 
  2516. indistinguishable on the printed page.
  2517.  
  2518. bounding box
  2519.  
  2520. Every character in a bitmapped softfont is represented as a pattern of dots 
  2521. in a rectangular grid. The bounding box is an imaginary box just large 
  2522. enough to hold the character. The box is as wide as the widest row of dots 
  2523. and as tall as the tallest column of dots.
  2524.  
  2525. character
  2526.  
  2527. A character is an individual symbol in a font. The letter ``A'' is a 
  2528. character.  So is a period. All of the printed symbols that can appear in a 
  2529. font are characters.
  2530.  
  2531. decimal
  2532.  
  2533. Decimal refers to the number base composed of ten symbols (0-9).  Normal, 
  2534. ordinary math is performed in decimal (which can also be referred to as 
  2535. base 10).
  2536.  
  2537. device
  2538.  
  2539. A device is a special piece of hardware that exists (either physically or 
  2540. logically) and can be communicated with. Your printer is a device.  So is 
  2541. your modem. Your computer also includes several logical devices (for 
  2542. example, the NULL device which is an infinite sink and a null source--that 
  2543. means you can always write to it (it never fills up) and you can never read 
  2544. from it).
  2545.  
  2546. download
  2547.  
  2548. Downloading is the process of transferring information from one device to 
  2549. another.  This transferral is called downloading when the transfer flows 
  2550. from a device of (relatively) more power to one of (relatively) less power.  
  2551. Sending new fonts to your printer so that it ``learns'' how to print 
  2552. characters in that font is called downloading.
  2553.  
  2554. EMS
  2555.  
  2556. EMS memory (also called LIM EMS) is expanded memory in your computer.  EMS 
  2557. exists outside of normal DOS main memory. You must have a device driver to 
  2558. provide support for EMS. Sfware uses EMS memory to store font and action 
  2559. lists as well as for swapping when SfShell runs the other utilities.
  2560.  
  2561. file
  2562.  
  2563. A file is a collection of information stored on your disk. All the data 
  2564. that you ever save to disk is saved in a file. You can write to files and 
  2565. read from files.
  2566.  
  2567. filemask
  2568.  
  2569. A filemask is a DOS filename which may include the ``wildcard'' characters 
  2570. * and ?. The wildcard characters in a filemask allow you to select a group 
  2571. of files. Please consult your DOS reference for more information about 
  2572. wildcard characters.
  2573.  
  2574. font
  2575.  
  2576. A font is a collection of symbols that have similar characteristics.  The 
  2577. symbols in a font have a fixed typeface, size, weight, style and symbol 
  2578. set. For example, upright, bold Times Roman at 10pt is a font.  Contrast 
  2579. with typeface.
  2580.  
  2581. fontdir
  2582.  
  2583. In the context of this manual, a fontdir is the filemask ( optionally 
  2584. including a path) that identifies LaserJet softfont files. For example, if 
  2585. you keel all of your softfonts in the directory d:\fonts then 
  2586. d:\fonts\A*.SFP is one example of a valid fontdir. The canonical font 
  2587. directory would be d:\fonts\*.*.
  2588.  
  2589. hexadecimal
  2590.  
  2591. Hexadecimal refers to the number base composed of sixteen symbols 
  2592. (0-9,A-F). Hexadecimal is frequently used in computing because 256 
  2593. different values can be represented in only two digits. Hexadecimal is 
  2594. sometimes called base 16.
  2595.  
  2596. kerning
  2597.  
  2598. Kerning refers to slight changes in the spacing between characters. Some 
  2599. letter combinations (``AV'' and ``To'', for example) appear farther apart 
  2600. than others because of the shapes of the individual letters. Many 
  2601. sophisticated word processors move these letter combinations closer 
  2602. together automatically (compare ``AV'' with ``AV'', for example).
  2603.  
  2604. laserjet
  2605.  
  2606. Laserjet is a trademarked name for laser printers used by Hewlett Packard.  
  2607. In this document, it simply means an HP LaserJet printer or a compatible 
  2608. laser printer from some other manufacturer.
  2609.  
  2610. mask
  2611.  
  2612. See filemask.
  2613.  
  2614. memory, expanded
  2615.  
  2616. See EMS.
  2617.  
  2618. memory, extended
  2619.  
  2620. Extended memory is memory above the 1 megabyte boundry in your computer.  
  2621. Sfware cannot directly use extended memory. Many programs exist which map 
  2622. extended memory as expanded memory. For more information about expanded 
  2623. memory, see EMS.
  2624.  
  2625. memory, main
  2626.  
  2627. Main memory is the DOS memory below 640K in your computer. This is the area 
  2628. where normal DOS programs run. The DOS chkdsk program, for example, reports 
  2629. the amount of main memory that is free.
  2630.  
  2631. octal
  2632.  
  2633. Octal refers to the number base composed of eight symbols (0-7). Octal is 
  2634. sometimes called base 8.
  2635.  
  2636. pathname
  2637.  
  2638. A pathname is a filename (please consult your DOS reference for more 
  2639. information about what constitutes a valid DOS filename) with its 
  2640. associated drive and path. For example, if tr100.sfp is the name of a file 
  2641. in the directory \fonts on drive d:, then d:\fonts\tr100.sfp is the 
  2642. pathname of tr100.sfp.
  2643.  
  2644. scalable font
  2645.  
  2646. A scalable font, unlike a bitmapped font, is defined mathematically and can 
  2647. be rendered at any requested size (within reason). Sfware can download and 
  2648. show scalable fonts but other manipulations (including on-screen 
  2649. previewing) are not possible.
  2650.  
  2651. selection sequence
  2652.  
  2653. Your laser printer can print in many different fonts. Some of the fonts are 
  2654. built in, some may come from a cartridge and many can be downloaded.  In 
  2655. order to tell the laser printer which font you want text to be printed in, 
  2656. you must send it a selection sequence. The selection sequence describes, in 
  2657. a well defined, precise manner, the typeface, symbol set, height, width, 
  2658. style, and degree of boldness of font that you want.
  2659.  
  2660. softfont
  2661.  
  2662. A softfont is a bitmapped or scalable description of a typeface or font.  
  2663. They can be downloaded to your printer and used just like any other printer 
  2664. font.
  2665.  
  2666. symbol set
  2667.  
  2668. The symbol set of a font describes the relative positions of individual 
  2669. characters within the font. Since there can only be 256 characters in any 
  2670. font, and there are well over 256 different characters used in professional 
  2671. document preparation, there needs to be some way to map characters into 
  2672. positions within the font. The symbol set serves this purpose.  It 
  2673. identifies the ``map'' used to position characters within the font.
  2674.  
  2675. typeface
  2676.  
  2677. A typeface is generic term for a collection of symbols with a similar 
  2678. style.  Times Roman and Helvetica are typefaces. Contrast with font.
  2679.  
  2680.  
  2681.                                SfWare Order Form
  2682.  
  2683.  
  2684. Name: ______________________________________    Phone: (____) ____-___________
  2685.  
  2686. Company: ___________________________________
  2687.  
  2688. Mailing Address: _____________________________________________________________
  2689.  
  2690.                  _____________________________________________________________
  2691.  
  2692.                  City: ____________________________ State: ____ Zip: _________
  2693.  
  2694.  
  2695. Please pay by check or money order, do not send cash through the mail.  Make
  2696. all checks payable to Norman Walsh.
  2697.  
  2698.  
  2699.   Individual utilities:                             Quantity   Price  Total
  2700.                                                                Each
  2701.  
  2702.   _____ SfFx (softfont special effects)              _____  @  $25    _____
  2703.  
  2704.   _____ SfCmpr (softfont compression)                _____  @  $10    _____
  2705.  
  2706.   _____ SfLoad (download softfonts)                  _____  @  $10    _____
  2707.  
  2708.   _____ SfRotate (landscape/portrait conversion)     _____  @  $10    _____
  2709.  
  2710.   _____ SfShow (print summary page)                  _____  @  $10    _____
  2711.  
  2712.   _____ SfView (preview font on screen)              _____  @  $10    _____
  2713.  
  2714.   _____ SfDir (directory replacement for fonts)      _____  @  $ 5    _____
  2715.  
  2716.   _____ SfInfo (complete font information)           _____  @  $ 5    _____
  2717.  
  2718.   Software bundles:
  2719.  
  2720.   _____ SfShell (menu interface shell) and           _____  @  $60    _____
  2721.         ALL utilities
  2722.  
  2723.   _____ All of the utilities (excluding SfShell)     _____  @  $40    _____
  2724.  
  2725.   _____ Any three utilities (excluding SfFx)         _____  @  $20    _____
  2726.         Please select individual utilities above.
  2727.  
  2728.  
  2729.                                                           Subtotal:   _____
  2730.  
  2731.          Massachusetts residents, please add appropriate sales tax:   _____
  2732.  
  2733.                                                              Total:   _____
  2734.  
  2735.  
  2736.             Complete this form and return it with your payment to:
  2737.  
  2738.                                  Norman Walsh
  2739.                               #42I Southwood Apts
  2740.                                Amherst, MA 01002
  2741.