TJ6 Recent Changes 1_ NNTJ6 2 -- 8 June, 1974 or, T_h_e_ _N_e_w_ _R_e_g_i_m_e_ There are important new changes to the text justifier. These changes are incorporated in NNTJ6. After a while, NNTJ6 will become the standard TJ6, so use NNTJ6 and help get the bugs out. Most of these changes are designed to straighten out the mess which is the insides of TJ6. Changes visible to the user are: NNTJ6 is half p_u_r_e_ _c_o_d_e_. Hopefully this will speed it up in certain circumstances. It has some n_e_w_ _c_o_m_m_a_n_d_s_: ._P_W_I_N_C_H_ _n_ -- sets paper width (.PAPERW) in tenths of an inch. E.G., .PWINCH 8.5 sets the physical paper width to 8.5 inches. ._T_W_I_N_C_H_ _n_ -- sets text width (.LINE) ._P_L_I_N_C_H_ _n_ -- paper length (.PSIZE) ._T_L_I_N_C_H_ _n_ -- text length (.PAPER) ._S_I_N_C_H_ _a_,_b_,_c_,_d_,_e_ -- sets paper width, text width, paper length, text length, and left margin in inches respectively to a,b,c,d, and e. E.G., .SINCH 8.5,6.,11,8.0,1.5 sets the physical paper size to 8 1/2x11, the text size to 6x8, and left margin to 1 1/2 inches. ._F_I_N_C_H_ _n_ -- sets figure size in inches. ._F_I_G_U_R_E_ _n_ nows treats its argument as an absolute number of lines (irregardless of whether you are single or double spacing). ._F_O_N_T_ _n_ _F_i_l_e_ _N_a_m_e_ -- associates font n with the appropriate font file. This is used to set font height and width, for use by various size commands, and to set the font name for the XGPLPT command page. .FONT 1 LGI makes font 1 FONTS;LGI KST. (This command actually causes the entire font to be read in and groveled over, so it takes a while to execute. The only legal device names are AI and DSK.) ._V_S_P_ -- sets interline space. Units are XGP raster dots, 1/192nds of an inch. (Default is 6.) ._H_V_W_ _a_,_b_,_c_ -- sets the height of font 0, VSP, and width of a space in font 0 respectively to a, b, and c. The defaults are 25, 6, and 16 for the XGP, and 24, 6, and 19 for non-XGP. These data are used by the commands which set size in inches. .HVW is a quicker way of reading in this information than .FONT. X_G_P_L_P_T_ _c_o_m_m_a_n_d_ _p_a_g_e_ -- If TJ6 thinks it's outputting to the XGP, (i.e., output device is DSK: and there was either a /X in the command line or a .XGP command,) it automatically outputs a page of XGPLPT commands: TJ6 Recent Changes 2_ NNTJ6 2 -- 8 June, 1974 ;RESET ;TOPMAR 0 ;BOTMAR 0 ;LFTMAR 0 ;NLINES n ;VSP n ;KSET any font names you have specified with .FONT ;SKIP 1 To prevent TJ6 from doing this, use: ._N_O_S_P_E_C_ -- turns off automatic output of XGPLPT commands. ._U_L_F_O_N_T_ _n_ -- causes printing in font n to be underlined if output is not to the XGP. Default is .ULFONT 1. (This is helpful if the ulfont is italicized.) (To turn off, make n <0 or >3.) _ _(_c_o_n_t_r_o_l_ _Y_)_ -- in text command character which begins underscore. _ _(_c_o_n_t_r_o_l_ _X_)_ -- in text command character which ends underscore. Note that underscoring is treated differently by TJ6 and the XGP than backspacing and overstriking with underbars. For underscoring, TJ6 outputs special XGP underscore commands. For overstriking, TJ6 backspaces and overstrikes. (Complicated, huh?) For most fonts, the _ character is defined to look like underscoring. For a couple it isn't. So if you mean underscore, do it, and if you mean overstruck _, do that. (Backspacing and overstriking of all characters once again win in .NOFILL mode.) All the in text command characters should now work on centered, spread, etc., lines, and in the header. Those in-text characters which make sense to non-XGP devices are:  (control Y), begin underscore;  (control X), end underscore; and  (control F), font switch, which makes sense because of .ULFONT). Other in-text commands are ignored if not to the XGP. H_i_d_d_e_n_ _h_y_p_h_e_n_s_ work! ^_C_ _(_c_o_n_t_r_o_l_ _C_)_ is now read by TJ6 like any other input character, but TECO makes these difficult to insert. Also they are not typed out in block mode .IOTs to teletypes, due to a system "feature". Characters which have been quoted (with the quoting character), will be printed on the XGP in "normal" mode. E.G., quoting character followed by a backspace will print as lambda, rather than backspace. To turn this off use: ._N_O_R_M_A_L_ _n_ -- if no argument or n=0, turns off "normalization" of quoted characters to the XGP, otherwise turns it on. This command does not break. F_L_U_S_H_E_D_ _C_O_M_M_A_N_D_S_ TJ6 Recent Changes 3_ NNTJ6 2 -- 8 June, 1974 The following commands have been noops for a while, and are now gone: .BSPDIR (Back spacing is always direct.) .QUICK .TABS .TABSET .C2471 .K2471 .S2471 .T2471 .CBALL .KBALL .SBALL .TBALL The following have simply been flushed: .PAUSE .STOP .STPCHR .TR .TRANS .TSTOUT The following "abbreviations" and command names have been flushed in favor of others: .BP -- use .BEGIN .CM -- use .C or .COMMENT .CO -- use .FI or .FILL .CP -- use .BLOCK .RA -- use .RI or .RIGHT .APPND -- use .AP or .APPEND .DUMCHR -- use .DUMMY .QTECHR -- use .QUOTE .PL (for .PAPER) -- use .TL (.PAPER will soon go away) .PS -- use .PL (.PSIZE will soon go away.) .L -- use .TW (.LINE will go away.) .PAPERW -- use .PW (.PAPERW will go away.) The prior four new names are mnemonic for T_ext L_ength, P_aper L_ength, T_ext W_idth, and P_aper W_idth. The following have been changed: ._P_H_P_1_ -- again takes no argument, and simply causes the header to be printed on page one. ._S_E_C_T_ -- now does a .BLOCK 2, so that a section title will not be the last line on an output page. ._X_G_P_ and /_X_ -- now are equivalent. If output is to DSK, they: do a .SINCH 8.5,6,11,8; a .HVW 25,6,16; and try to output an XGPLPT command page. Handling of s_p_a_c_e_s_, ?_ _._ _!_, and ;_ _:_ has been changed. In .NOFILL mode, they continue to get no special treatment. In fill mode, they have two spaces inserted afterwards only if followed by a carriage return or TJ6 Recent Changes 4_ NNTJ6 2 -- 8 June, 1974 line feed. There is a n_e_w_ _m_o_d_e_, .HALFAD, in which the text is filled, but not adjusted, and in which spaces and ?_._!_:_;_ are treated the same as in .ADJUST mode. The gist of this treatment is that two spaces will be inserted after ._!_?_:_;_ at the end of a clause or sentence, and that more than one space or tab in a row (except at the start of an input line,) is treated like one space. NNTJ6's algorithm for determining the end of sentence or clause is: A_B_._C_D_ The . is always treated like the end of a clause or sentence if C is a carriage return or line feed; otherwise, This is n_o_t_ the end of a sentence or clause if: 1 B is a number; 2 B is a letter and A is a space, tab, or one of ._!_?_;_:_; 3 C is not a space, tab, carriage return, line feed, or one or more of the following: )_"_'_]_; 4 C is one or more of )_"_'_]_, and D is not a space, tab, carriage return, or line feed. (In cases like A_B_._)_ _, the spaces are inserted after the )_.) If you don't like the special treatment of some of these characters, turn one off with: ._P_E_R_I_O_D_ _n_ _c_h_a_r_a_c_t_e_r_ -- which turns off special treatment of c_h_a_r_a_c_t_e_r_ if n=0, otherwise, turns it on. ._P_E_R_I_O_D_ with no argument, still turns off special treatment of all of ._!_?_;_:_. M_E_M_O_ is now the default output name instead of (MEMO). C_o_h_e_n_'_s_ _L_a_w_: P=1/C2, i.e., the probablity of my looking at any bug complaint, without an example of the source file which caused it, is inversely proportional to the speed of light squared. O_T_H_E_R_ _N_E_W_ _F_E_A_T_U_R_E_S_:_ In the immediate future, I shall concentrate on continuing to straighten out the inside of TJ6, and I am unwilling to put in new features. Please don't waste my time by asking for a .UPSIDEDOWN command, or whatever's your penchant. However, if you feel you absolutely must have a new feature, you may go about it as follows: 1) Obtain three "TJ6 Suggested Improvement Forms" from Suzin Jabari. (These will be available in a couple of weeks.) 2) Fill them out, and give one copy to Marvin, one copy to Berthold, and one copy to me. Your request will be carefully filed. --JDC