Issue #1 THE STAUNCH 8/89'er Oct-Nov-Dec 1986 Page 6

the command in the middle of a paragraph, it cannot necessarily remind there and still conform to its justification algorithm (or other line-formatting algorithm). So it anticipates the command (i.e., executes it as though you had placed it earlier in the text). The result is that the next line to be printed, a top line after a remind, does include your desired rewind point, but usually also includes other words which appeared in the text before your remind point. If those preceding words are too few (or exactly enough) to complete a full bottom line in the previous column, they are robbed from that column, and carried with the remind. This shortens the previous column, thus it will not do for what we want. We need to know ahead of time exactly where the columns mill break.

The lone example in the WAND documentation does the rewind at the end of a paragraph, but the real world isn't that simple — you'd have to be pretty lucky to see each of your columns end right on a paragraph. "Well then", you ask, "why not force a paragraph (by inserting a carriage return in the middle of a sentence) just before you embed the 'LINE-n' command.?" Because, while that would perform the rewind right where me wanted it, and while that Mould prevent a shortened column, it mould inhibit justification of the last line in that column, making that line short. A bit shoddy.

My solution, embodied in the following procedure, uses "hard-space" recognition characters to form an invisible phantom "word". As you mill see, me insert this dummy word only after the end of a known output line at the bottom of a column. It "prints" on the next line, but is invisible since it contains only blanks (hard spaces). What this does is cause the last visible line to justify. Not only that, me can now follow this hard-space word with a carriage return and a "remind" command (or an NP), thereby controlling the exact point of the remind to the top of the next column (or the eject to the next page).

Notice, when you get to where we output to the printer, me will first set the bottom margin to zero (BM0). If you're saying, "But what if I want a bottom margin?", don't worry, it'll be on the printout. For now, me must alter the bottom margin anyway, and it's just as easy to set it to zero as to subtract 1 (as the book mould have you do).

The Procedure;

I won't cover all contingencies, like inserting tables that are too wide for the columns, etc., but this mill get you started. we mill use a sample set of parameters to illustrate the procedure for justified text. If you desire different parameters it's a simple matter to make the substitution. These parameters completely define a two-column layout on an 8-1/2 x 11-inch page:

Vertical pitch = 6 lines/inch (Page-length default is 66 lines.) Horizontal pitch = 15 char/inch Top margin = 5 lines Bottom margin = 4 lines

Column width, each col = 51 chars Space between cols = 5 chars Extreme left margin = 8 chars

The related WAND commands are LPI 6, CPI 15, TM 5, BM 4, RM 51, and two LM values: LM 8 and LM 64, for left and right columns respectively. For the hard space recognition character, I use what the Heath Op. Manual calls the "grave accent" (HEX 60); it is lower case on the key next to the backspace. (I mill represent it in this write-up as ' , as it isn't on this printwheel.) The defining command, then, is; HS*. Now for the steps:

1) You need a "SETUP/TEXT" section in your text file, at least a dummy one, to cause PRINT to issue an initial command prompt. You also need the related commands me just mentioned, except LPI 64. It comes later. Using EDIT, embed all those defined parameters in your text file. Be sure to include BM 4, LPI 8, HS', and JUST.

2) Run PRINT, typing "SCREEN ON" at the first prompt. At the next prompt hit RETURN . Output will now go to the screen only. You can control the speed of the display by typing a number (not the function keys) while the display is moving. The higher the digit, the slower. Zero is the fastest. You can stop the display with ESCape and start it with RETURN.

3) Grab a pencil and a sheet of paper. Watch the display for a page break to occur and jot down the last few words in the last line. Include any final punctuation mark or other symbol.

4) Repeat Step 3 for all the remaining page

breaks. You now have a complete "table" of all the bottom lines of all columns, on all pages.

5) Go back into EDIT with your text file, and do the edits as listed in the next steps:

6) Change BM 4 to BM 0. Never change it back unless you repeat steps prior to 5, in which case you must.

7) Referring to the first line of your penciled notes, find that line in your text file. We want that line to be the bottom of the left-hand column of page 1 of the output.

8) Follow this step very carefully. Look at the last word in that bottom line (you mill find it in your notes). We have arrived at a fork in the road: If that word is immediately followed by a carriage return (that is, if it ends a paragraph) me must do 4 things:

a) Delete any carriage returns in excess of one — leave one there.

b) Now place the cursor on the first letter of the first word in the next paragraph.

c) Hit the Insert Line (IL) key, and

d) Jump ahead to Step 13 (skip 9 thru 12).

On the other hand, if that last word is some-

Back to the Heathkit Index

Page Five Page Seven