Here are my diffs to put partial -me support into unroff-1.0, and comments to attach to the patch kit. The problems fixed are listed below, and the unimplemented features are noted. For the benefit of those wondering why -me implementation stopped where it did, I use troff with -me to produce camera-ready copy articles for academic journals. The -me section support isn't very useful in this regard, so isn't used by me. [...] George Helffrich george@geology.bristol.ac.uk me.scm New code. Features not implemented are: 1. No table of contents - .(x .)x .xp 2. No footnotes or delayed text - .(d .)d .pd .(f .)f \** 3. No section handling - .sh .sx .uh .$p .$0-.$6 4. Vestigial bits of -ms macros left in to be hacked in the future to -me use (footnotes and delayed text continue to be of value in an html document, in particular). unroff-html-me.man 1. Man page documentation. manual.ms 1. Explicit page length (for 8.5x11 removed). Font position 5 doesn't exist for standard troff. common.scm 1. Local configuration changes for local software names 2. troff-to-text didn't contain "| col -b |" to get rid of backspaces & other escape info. 3. Added new type "pic" for procedure pic-to-gif below, which is a local feature to handle a locally-define type of plot file. (Not the pic of normal Unix, something with an unfortunately suggestive name.) 4. .bp should cause a line break 5. Implemented in Scheme procedures the code to save up state information for .EQ/.EN so that this can be re-emitted in troff-to-gif to process equations. This fixes a bug that causes unroff to forget about .EQ/.EN "state" information such as define/ndefine/tdefine strings, gfont, gsize, etc. first-token returns the first token of equation text filter-eqn-state extends knowledge of .EQ/.EN text to include other statements that don't generate equations. 6. Handle equations in tables by emitting .EQ/.EN before any table text so that environment is prepared for in-line table equations. 7. troff-to-pic is a misnomer, but handles the pic-to-gif conversion. It is very similar to troff-to-gif with differences in "processor" handling. 8. Don't generate a line break after in-line gif pictures, there may be text following, as in e.g. This is an equation $x ~=~ y sup 2$, with following punctuation. 9. .ti generates a message on negative indent, but still does a break. hyper.scm 1. Robustify .Ha macro so that no error generated if lacking final argument. Missing 2nd arg isn't really an error. *** /dev/null Tue Jan 23 11:17:38 1996 --- ./scm/html/me.scm Fri Jan 19 21:24:37 1996 *************** *** 0 **** --- 1,692 ---- + ;;;; -*-Scheme-*- + ;;;; + ;;;; $Revision: 1.14 $ + ;;;; + ;;;; `me' specific definitions for HTML output format + ;;;; Hacked from ms version by G. Helffrich/U. Bristol + + + ;;; -------------------------------------------------------------------------- + ;;; Options. + + (define-option 'signature 'string "") + (define-option 'split 'integer 0) + (define-option 'toc 'boolean #t) + (define-option 'toc-header 'string "Table of Contents") + (define-option 'pp-indent 'integer 3) + (define-option 'footnotes-header 'string "Footnotes") + (define-option 'footnote-reference 'string "[note %1%]") + (define-option 'footnote-anchor 'string "[%1%]") + + + + ;;; -------------------------------------------------------------------------- + ;;; Predefined strings and number registers. + + (defstring 'lq "``") + (defstring 'rq "''") + (defstring '- "--") ; em-dash + (defstring 'mo (substitute "%monthname+%")) + (defstring 'dw (substitute "%weekday+%")) + (defstring 'dy (substitute "%day%")) + (defstring 'td (substitute "%monthname+% %day%, %year%")) + + (defnumreg '$c #\1) + (defnumreg '$d #\1) + (defnumreg '$f #\1) + (defnumreg '$m #\2) + (defnumreg '$n #\2) + + + + ;;; -------------------------------------------------------------------------- + ;;; General bookkeeping. + + + (define split-sections? #f) ; #t if `split' option is positive + + + (define-pair abstract abstract? "" "
\n" "\n") + + (define (reset-everything) + (emit + (reset-font) + (center 0) + (quoted #f) + (secthdr #f) + (preform #f) + (tag-para #f) + (list-para #f) + (reset-title-features)) + (header-processor #f)) + + (define-nested-pair indent indent-level "