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