home *** CD-ROM | disk | FTP | other *** search
- ZDEPROP.DOC
- Proportional Spacing with ZDE
- June 2, 1990
- Carson Wilson
-
- 1. INTRODUCTION.
- 2. USING ZDE'S PROPORTIONAL FORMATTING FEATURE
- 3. INSTALLATION AND CUSTOMIZATION.
-
-
- 1. INTRODUCTION.
-
- ZDE version 1.6 incorporates an elemental proportional formatting
- feature. This option is useful only to those whose printers have
- proportional spacing capabilities. Proportional formatting allows
- you to format ragged right text properly for proportional output.
- Centering and right justification of proportional text are not
- available.
-
-
- 2. USING ZDE'S PROPORTIONAL FORMATTING FEATURE
-
- Proportionally spaced printing gives a more professional look,
- allowing more characters to be printed on a line without
- crowding. This is because less space is allocated to narrow
- characters like "i" and more to wide characters like "M." Most
- computer printers do NOT allow proportional spacing; only laser
- printers, some daisy-wheel equipment, and newer dot-matrix
- printers have this ability. Typically, there is a special set of
- instructions which when sent to the printer, cause it to use
- proportional spacing rather than monospacing. On some models
- (the Silver Reed SR550 for example), DIP switches also control
- this feature.
-
- ZDE does not itself perform proportional spaced printing; it
- simply allows you to format your text for use with a printer that
- has this capability. You must instruct your printer to space
- proportionally before sending text to it. If you have tried using
- the proportional capability of your printer, you probably have
- noticed that LINES WITH LOTS OF WIDE CHARACTERS IN THEM
- print out much wider than lines comprised of narrow characters.
- ZDE 1.6 allows you to compensate for this by counting the width
- of each character when it formats a paragraph (^B command), and
- wrapping each line when its width count reaches the equivalent
- of the current right margin setting.
-
- The ^OJ command toggles this feature on and off [the default may
- also be installed with ZDENSTAL]. When proportional spacing is
- active, the legend "PS" appears in ZDE's status line (this is
- overwritten by "MR" when the margins are released).
- Proportional spacing occurs only during the ^B reformat command,
- not during wordwrap, so to format a document proportionally, you
- must use ^B at the beginning of each paragraph after you key it
- in. Still, the results are well worth the extra trouble, especially
- for material that will be reproduced.
-
-
- 3. INSTALLATION AND CUSTOMIZATION.
-
- ZDE comes preconfigured to format text for proportional spacing
- with Epson's new LQ510 dot matrix printer. Since most printers
- allocate roughly the same ratios of space to the various
- characters, there is a good chance you won't need to install ZDE
- for your printer. This file has been formatted for proportional
- output by ZDE; try printing it proportionally to see the results.
-
- If you should decide to change ZDE's proportional spacing to
- match your printer, you can patch ZDE's offset values for
- individual characters. The offsets are stored in a sequential
- ASCII table whose location is given by ZDENSTAL's "F" option.
- The table consists of positive and negative (2's compliment) byte
- values, one for each character beginning with " " and going
- through "~". As distributed, all of the values are either -12, -6,
- 0, +6, or +12. The negative numbers are expressed as (256+n),
- where n is the negative number. So for example, -6 is expressed
- as (256+(-6)) or 250 (FA hex).
-
- ZDE uses its ASCII table as follows. When reformatting a line,
- ZDE counts each character as (30+table value)/30 of a column
- wide. So if the offset is zero, the character is one column wide
- (30/30 = 1) and ZDE increments the current column by one. If
- the character's offset is -6, it counts as only (30+(-6)/30) or
- 24/30 columns wide, and ZDE increments the current column by
- only 24/30. If the character's offset is +12, it counts as 42/30
- columns wide, and so on. When a full column is "lost" due to
- characters with negative offsets, ZDE adds the next character to
- the line without incrementing the column count. Similarly, when
- enough "extra" columns are counted to equal a full character, ZDE
- increments its column count without actually adding another
- character to the line.
-
- To see the effects of this, try reformatting a paragraph or two,
- first with PS on, then with it off. Lines of wide characters are
- shortened on screen, while lines of narrow characters are allowed
- to extend beyond the right margin. When the text is printed
- proportionally, your printer reverses the process. Lines of wide
- characters are lengthened and lines of narrow characters are
- shortened, the net result being proportionally spaced text with an
- even right margin.
-
- If your printer's proportional output is not properly compensated
- for by ZDE, it is possible to install another offset table within
- ZDE to suit your needs. The current table's address is given by
- ZDENSTAL's "F" option. To find the location of a character's
- offset, add its ASCII value to ZDE's table address and subtract
- 32. For example, the ASCII value for "A" is 65, so the location of
- "A"'s offset is (table address+65-32) or (table address+33).
-
- You may adjust a character's offset to any value between -34 and
- +35 decimal, but keep in mind that offsets if less than -29 may
- result in lines that _never_ reformat since characters with
- offsets of -30 or less take up no virtual space or less! To
- calculate the proportional ratios used by your printer, it is best
- to print out a line of thirty of each character in proportional
- mode and compare the length of each line to the others. Most
- characters should result in lines of roughly the same length; this
- is your "base" length, and you should set the offsets of these
- characters in ZDE to 00. Other lines will probably fall into four
- or so other lengths; hopefully these lengths will correspond to an
- even xx/30ths of the "base" length. To get the proper offset
- value, just subtract the number of characters equal in length to
- a line of "base" characters from 30. For example, if only 18
- capital "M"'s take up the same length as 30 base characters, the
- offset for "M" is 30-18 or +12. If it takes 42 "i"'s to equal the
- length of 30 base characters, the offset for "i" is 30-42 or -12.
-
- Once you have determined the offsets in 30ths of each
- character's width from the base length, just plug these values
- into ZDE's proportional table. You can use a patcher to alter a
- few characters. For extensive modification, I have provided the
- assembly language file ZDEPROP.Z80 which can be assembled to a
- .HEX file overlay file for ZDE. Before assembling ZDEPROP.HEX,
- you must edit the file and set the equate TABLE to the current
- address of ZDE's proportional spacing table as given by
- ZDENSTAL. Then overlay ZDE with ZDEPROP.HEX using MLOAD,
- SID, or DDT.
-
- - End of ZDEPROP.DOC -