home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
- ROFF4, version 1.60
-
-
- by
-
- Ernest E. Bergmann
-
- Physics, Bldg #16
-
- Lehigh University
-
- Bethlehem, Pa. 18015
-
- (215-) 861-3932
-
-
-
- ROFF4, v1.60 is being provided essentially in the
-
- public domain, not because it isn't good, but to provide a
-
- means to create and transport technical documentation
-
- between users with different hardware. This is not
-
- possible with commercial formatters because they are often
-
- not powerful enough to handle special symbols, equations,
-
- and the like. Equally importantly, there is not much
-
- standardization and commercial formatters cannot be "given
-
- away"; the sender and receiver are not as likely to own
-
- the same commercial formatters.
-
-
- I am a practicing scientist and I need to format
-
- manuscripts which are sometimes long, contain equations,
-
- special symbols, footnotes, and illustrations. I needed a
-
- formatter that was easy to use, flexible, and available to
-
- others. It takes me less time to type a manuscript for
-
- this formatter and rework it, including special characters,
-
- than to have it typed and retyped by a typist only to have
-
- me proof read it ad nauseum.
-
-
- ROFF4 is table driven; it is relatively easy to
-
- configure for different output devices. I have used it
-
- with the MX-80 and Graftrax printer combination; It is
-
- able to create special symbols where needed. I Also can
-
- get special symbols on my CRT screen because of my computer
-
- hardware (the Exidy Sorcerer has user definable
-
- characters). However, the characteristics of my CRT device
-
- and of my printer are very different. My design philosophy
-
- was to be able to drive either from the same input files so
-
- that I could "preview" my output before going to hardcopy.
-
- You may have a variety of output devices; use your
-
- imagination.
-
-
- Your comments, criticisms, and possible bug reports
-
- will be most useful.
-
-
- I hope to extend ROFF4 so that it will be able to
-
- better utilize specialty printers (it presently assumes
-
- that the printer does NOT know how to backspace, nor
-
- reverse scroll). I will have to learn how to support
-
- printers that do proportional spacing and variable pitch.
-
-
- I would also like to write a translater that
-
- automatically converts WORDSTAR(tm MicroPro) files,
-
- including control-P and dot commands into input files for
-
- ROFF4. ROFF4 ignores the parity bit on input files. It
-
- may get confused by inputting control-codes (it should only
-
- get the <CR><LF> and <TAB> of standard CP/M text files).
-
-
-
-
-
-
- MAR 10, 1984 LIST OF ALL KNOWN BUGS OF ROFF4 V1.5:
-
- 1) .ne sometimes premature (first line of page?)
- 2) .ic doesn't work
- 3) boldface can effect headers and footers (need
- separate environment for headers and footers)
- 4).ou not all there
- 5) .so command not in documentation table
- 6) .ju out of alphabetic order in doc table
- 7) default width of 80 characters too wide; should default to
- 60 characters which will work with 64 character
- displays and is 6" wide for PICA printers (1" margins).
- 8) roff47.c sends diagnostic to output device instead of to
- STDERR.
- 9) some of debug lines refer to LINENO instead of VLINENO.
- 10)defining strings "on the run" inside of .ou or .tr
- definitions caused problems because the two definitions
- would be in contention of the TRTBL.
- 11)Margins aren't always settable.
- 12) \#\ sometime has previous page number when near start of
- page.
- 13) .rg # 5 would create a register, '#', which would not be
- accessible because of the special overriding use of \#\
- to insert the current page number.
-
- FIXES in ROFF4 v1.60:
-
- 1) need() was fixed
- 2) added "case IC:" to fix
- 3) implemented separated environement for phead, pfoot using
- exchange() and reinitializing UF,XF,MCNT
- 4) added OU decoding in ROFF41.C
- 5) fixed, created files: ONE, TWO, THREE
- 6) fixed
- 7) changed default for .rm and .ow to 60
- 8) fixed
- 9) fixed
- 10) ROFF4 v1.60 now tests for contention between definitions
- so that a diagnostic is issued and the program aborts.
- The subroutines, start() and complete() are added for this
- purpose. The documentation, ROFF4.DOC, has been modified
- to describe what not to do and how to achieve the same
- goals legally.
- 11) fixed ROFF4.C to permit setting M1, M4 to zero, also to
- update BOTTOM when M3,M4 are changed. It was necessary
- to modify phead(), pfoot() by reinitializing variables
- such as OLDLN and OUTBOT. VLINENO is redefined to be
- negative initially (zero might be ambiguous if the top
- margins,M1+M2, are zero). The file, MARGINS is good to
- test for problems.
- 12) Never possible to do perfectly, but the MARGINS test is
- now doing well. fgets2() modified for more careful
- assignment of \#\.
- 13) dovar() was modified to handle .rg # .. as an enhancement
- (see below)
-
- ENHANCEMENTS:
-
- 1) In addition to the above fixes. I have added a selective
- Print option. By typing:
-
- A> roff4 -o[page or range] ...
-
- One can have only one page output or only a range of pages
- output. This was added at the urging of Chris Terry and of
- Henry Harpending. The clincher was Henry Harpending suggesting
- how easy it would be to do.
- Three global variables have been added: FIRSTPAGE,
- LASTPAGE, and SUPPRESS. With the use of the -o option, the
- first two variables are modified from their initial values of
- 1 and 30000 to a suitably narrower, selected range. At the
- start of each page, SUPPRESS is set to TRUE if the page is
- outide the selected range (and FALSE otherwise). The
- putchar() function supplied here is checking SUPPRESS to see
- if it should return without doing any output. It was fun
- adding this!
-
- Also due to Henry Harpending's suggestions, it is now
- possible to make skips in the normal pagination without having
- a fixed break in the text so that full-page illustrations, etc.
- may be placed later in the manuscript. This is accomplished
- by adding a "feature" to the .rg command:
-
- .rg # +2
-
- would, for example, cause the page numbering of pages FOLLOWING
- the current page be incremented by 2 (leaving two page numbers
- unused following the current page). The sample file, MARGINS,
- demonstrates (tests) this feature.
-
-
- WISH LIST:
-
- 1) traps to implement running footnotes, multi-line headers
- and footers, etc.
- 2) conditional macro capability
- 3) parameterized macros
- 4) the ability to use the .SO command from the keyboard
- 5) a special "filter" program that would automatically convert
- WordStar document files into ROFF4 compatible source files.
-
-
-
-
-
- March 10, 1984
-
-
- Ernest E. Bergmann
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-