home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol174 / abstract.174 < prev    next >
Encoding:
Text File  |  1984-07-15  |  6.8 KB  |  212 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                     ROFF4, version 1.60
  7.  
  8.  
  9.                              by
  10.  
  11.                      Ernest E. Bergmann
  12.  
  13.                      Physics, Bldg #16
  14.  
  15.                      Lehigh University
  16.  
  17.                     Bethlehem, Pa. 18015
  18.  
  19.                       (215-) 861-3932
  20.  
  21.  
  22.  
  23.         ROFF4,  v1.60  is  being provided essentially in the
  24.  
  25. public domain, not because it isn't good, but to  provide  a
  26.  
  27. means   to  create  and  transport  technical  documentation
  28.  
  29. between users  with  different  hardware.    This   is   not
  30.  
  31. possible  with  commercial formatters because they are often
  32.  
  33. not powerful enough to handle  special  symbols,  equations,
  34.  
  35. and the  like.    Equally  importantly,  there  is  not much
  36.  
  37. standardization and commercial formatters cannot  be  "given
  38.  
  39. away";   the  sender  and  receiver are not as likely to own
  40.  
  41. the same commercial formatters.
  42.  
  43.  
  44.         I am a practicing scientist and  I  need  to  format
  45.  
  46. manuscripts  which  are  sometimes  long, contain equations,
  47.  
  48. special symbols, footnotes, and illustrations.  I  needed  a
  49.  
  50. formatter  that  was easy to use, flexible, and available to
  51.  
  52. others.  It takes me less time  to  type  a  manuscript  for
  53.  
  54. this  formatter and rework it, including special characters,
  55.  
  56. than to have it typed and retyped by a typist only  to  have
  57.  
  58. me proof read it ad nauseum.
  59.  
  60.  
  61.         ROFF4 is  table  driven;    it is relatively easy to
  62.  
  63. configure for different output devices.    I  have  used  it
  64.  
  65. with the  MX-80  and  Graftrax  printer  combination;  It is
  66.  
  67. able to create special symbols where needed.    I  Also  can
  68.  
  69. get  special symbols on my CRT screen because of my computer
  70.  
  71. hardware   (the   Exidy   Sorcerer   has   user    definable
  72.  
  73. characters).   However, the characteristics of my CRT device
  74.  
  75. and of my printer are very different.  My design  philosophy
  76.  
  77. was  to be able to drive either from the same input files so
  78.  
  79. that I could "preview" my output before going  to  hardcopy.
  80.  
  81. You may  have  a  variety  of  output  devices;    use  your
  82.  
  83. imagination.
  84.  
  85.  
  86.         Your comments, criticisms, and possible bug  reports
  87.  
  88. will be most useful.
  89.  
  90.  
  91.         I  hope  to  extend ROFF4 so that it will be able to
  92.  
  93. better utilize  specialty  printers  (it  presently  assumes
  94.  
  95. that  the  printer  does  NOT  know  how  to  backspace, nor
  96.  
  97. reverse scroll).  I  will  have  to  learn  how  to  support
  98.  
  99. printers that do proportional spacing and variable pitch.
  100.  
  101.  
  102.         I  would  also  like  to  write  a  translater  that
  103.  
  104. automatically   converts   WORDSTAR(tm   MicroPro)    files,
  105.  
  106. including  control-P  and  dot commands into input files for
  107.  
  108. ROFF4.  ROFF4 ignores the parity bit on  input  files.    It
  109.  
  110. may  get confused by inputting control-codes (it should only
  111.  
  112. get the <CR><LF> and <TAB> of standard CP/M text files).
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119. MAR 10, 1984 LIST OF ALL KNOWN BUGS OF ROFF4 V1.5:
  120.  
  121. 1) .ne sometimes premature (first line of page?)
  122. 2) .ic doesn't work
  123. 3) boldface can effect headers and footers (need 
  124.     separate environment for headers and footers)
  125. 4).ou not all there
  126. 5) .so command not in documentation table
  127. 6) .ju out of alphabetic order in doc table
  128. 7) default width of 80 characters too wide; should default to
  129.     60 characters which will work with 64 character
  130.     displays and is 6" wide for PICA printers (1" margins).
  131. 8) roff47.c sends diagnostic to output device instead of to
  132.    STDERR.
  133. 9) some of debug lines refer to LINENO instead of VLINENO.
  134. 10)defining strings "on the run" inside of .ou or .tr
  135.    definitions caused problems because the two definitions
  136.    would be in contention of the TRTBL.
  137. 11)Margins aren't always settable.
  138. 12) \#\ sometime has previous page number when near start of
  139.     page.
  140. 13) .rg # 5 would create a register, '#', which would not be
  141.     accessible because of the special overriding use of \#\
  142.     to insert the current page number.
  143.  
  144. FIXES in ROFF4 v1.60:
  145.  
  146. 1) need() was fixed
  147. 2) added "case IC:" to fix
  148. 3) implemented separated environement for phead, pfoot using
  149.    exchange() and reinitializing UF,XF,MCNT
  150. 4) added OU decoding in ROFF41.C
  151. 5) fixed, created files: ONE, TWO, THREE
  152. 6) fixed
  153. 7) changed default for .rm and .ow to 60
  154. 8) fixed
  155. 9) fixed
  156. 10) ROFF4 v1.60 now tests for contention between definitions
  157.     so that a diagnostic is issued and the program aborts.
  158.     The subroutines, start() and complete() are added for this
  159.     purpose.  The documentation, ROFF4.DOC, has been modified
  160.     to describe what not to do and how to achieve the same
  161.     goals legally.
  162. 11) fixed ROFF4.C to permit setting M1, M4 to zero, also to
  163.     update BOTTOM when M3,M4 are changed.  It was necessary
  164.     to modify phead(), pfoot() by reinitializing variables
  165.     such as OLDLN and OUTBOT.  VLINENO is redefined to be
  166.     negative initially (zero might be ambiguous if the top
  167.     margins,M1+M2, are zero).  The file, MARGINS is good to
  168.     test for problems.
  169. 12) Never possible to do perfectly, but the MARGINS test is
  170.     now doing well.  fgets2() modified for more careful
  171.     assignment of \#\.
  172. 13) dovar() was modified to handle .rg # .. as an enhancement
  173.     (see below)
  174.  
  175. ENHANCEMENTS:
  176.  
  177. 1) In addition to the above fixes. I have added a selective
  178.    Print option.  By typing:
  179.  
  180. A> roff4 -o[page or range] ...
  181.  
  182. One can have only one page output or only a range of pages
  183. output.  This was added at the urging of Chris Terry and of
  184. Henry Harpending.  The clincher was Henry Harpending suggesting
  185. how easy it would be to do.
  186.     Three global variables have been added: FIRSTPAGE,
  187. LASTPAGE, and SUPPRESS.  With the use of the -o option, the
  188. first two variables are modified from their initial values of
  189. 1 and 30000 to a suitably narrower, selected range.  At the
  190. start of each page, SUPPRESS is set to TRUE if the page is
  191. outide the selected range (and FALSE otherwise).  The
  192. putchar() function supplied here is checking SUPPRESS to see
  193. if it should return without doing any output.  It was fun
  194. adding this!
  195.  
  196.     Also due to Henry Harpending's suggestions, it is now
  197. possible to make skips in the normal pagination without having
  198. a fixed break in the text so that full-page illustrations, etc.
  199. may be placed later in the manuscript.  This is accomplished
  200. by adding a "feature" to the .rg command:
  201.  
  202. .rg # +2
  203.  
  204. would, for example, cause the page numbering of pages FOLLOWING
  205. the current page be incremented by 2 (leaving two page numbers
  206. unused following the current page).  The sample file, MARGINS,
  207. demonstrates (tests) this feature.
  208.  
  209.  
  210. WISH LIST:
  211.  
  212. 1) traps to implement running footnotes, multi-line headers
  213.     and footers, etc.
  214. 2) conditional macro capability
  215. 3) parameterized macros
  216. 4) the ability to use the .SO command from the keyboard
  217. 5) a special "filter" program that would automatically convert
  218.    WordStar document files into ROFF4 compatible source files.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.                                         March 10, 1984
  225.  
  226.  
  227.                                         Ernest E. Bergmann
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.