* Wed Oct 30 2013 o Expanded and improved float/tbl handling. * Sat Sep 14 2013 o .TS/.TE extended to support multi-page tables with headers. * Sat Aug 24 2013 o Restored reserved.html to toc.html in docs. * Tue Aug 20 2013 o Integrate mom.7 into the man-page groff_mom.7 * Tue Aug 20 2013 o New man page mom.7 * Sun Aug 11 2013 o Updated documentation concerning refer usage o Replaced REF_STYLE and REF macros with warnings. * Wed Jun 19 2013 o groff_mom.man: Fix inappropriate use of .UR/.UE. * Fri Jan 4 2012 o Makefile.sub (install_data): Create directory for PDF documentation. This is necesssary in case GhostScript is not available, and no other PDF files have been created yet. * Sun Dec 30 2012 o Makefile.sub (install_data): Fix symlink. Patch from Elias Pipping . * Thu Sep 20 2012 o Simplify enviroment handling. * Fri Aug 31 2012 o Version 2.0 release. Changes documented in version-2.html in the html documentation. o Added new documentation, Producing PDFs with groff and mom. * Sat Feb 18 2012 o Added choice to have DOCTYPE NAMED underscored or not when PRINTSTYLE TYPEWRITE o Doc fix to DOCTYPE NAMED underlining entry * Thu Sep 8 2011 o Added register #SUBHEAD, analagous to #HEAD, to fix excessive spacing between SUBHEADs and SUBSUBHEADs. * Sun Feb 20 2011 o Added support for sub-subheads from patch supplied by Petr Man. * Fri Feb 11 2011 o Moved register #UNADJUSTED_DOC_LEAD to top of TRAPS macro. * Fri Nov 19 2010 o Added utility macro, SINGE_SPACE, for PRINTSTYLE TYPEWRITE * Sat Jan 22 2011 o groff_mom.man (FILES): Fix directory locations. * Sun Oct 3 2010 o Complete overhaul of refer macros and documentation o Inclusion of Tadziu Hoffman's postscript code for underlining * Wed Aug 18 2010 o Complete overhaul of documentation * Thu Aug 5 2010 o Changes to COVER and DOCCOVER for greater flexibility in placement of elements o Improved handling of MISC info on cover pages for greater style flexibility o Added _FAMILY, _FONT, _SIZE and _COLOR control macros for CODE * Mon July 6 2009 o Added CLOSING_INDENT and SIGNATURE_SPACE to DOCTYPE LETTER macros. * Sun Jun 14 2009 o DROPCAP handling changed; uses local vertical motions now instead of .mk/.rt. o Added macro SUPERSCRIPT_RAISE_AMOUNT o Added registers and strings to keep track of .RW and .EW and the amounts passed to them. * Sat May 2 2009 o Fixed error in docs: COVERS_COUNT_PAGES changed to COVER_COUNTS_PAGES. Ditto DOC_COVERS_COUNT_PAGES. * Fri May 1 2009 o Fixed PARAHEAD size so it properly adds the value of \*[$PH_SIZE_CHANGE] to \n[#DOC_LEAD]. * Sat Jan 17 2009 o Changed FAMILY, FT and PT_SIZE requests in DO_COVER to groff primitives (fam, ft and ps respectively). Fixes (DOC_)COVER bug where (DOC_)COVER was resetting families and fonts of various document elements (QUOTE, BLOCKQUOTE, etc) to document default. o Removed (excessive) cleanup of (doc)cover and docheader strings and registers from macro CLEANUP. Changes to mom's default style for these document elements now survive COLLATE. * Fri Jan 2 2009 o Added possibility of quadding docheader left or right, as well as center, which remains the default. * Wed Dec 31 2008 o Default definition of $QUOTE0 and $QUOTE1 in om.tmac changed from \[dq] to \[lq] and \[rq], respectively. * Sun Jan 4 2009 o Makefile.sub (CLEANADD): Add om.tmac-s. * Tue Dec 30 2008 o Doc fixes in toc.html o Control of null pagenumbering of covers passed to \n%; formerly handled by \n[#PAGE_NUM_ADJ] * Tue Dec 23 2008 o Added a CAPS option to HDRFTR_RECTO and HDRFTR_VERSO to allow capitalization of reserved strings when designing recto and/or verso headers. Fixed docs accordingly. * Sun Nov 30 2008 o Added .nr #DIVER_DEPTH 0 to end of PRINT_PAGE_NUMBER to ensure that #DIVER_DEPTH=0 o Moved string definition of $FONT in macro FT to top of macro. o Moved string definition of $FAMILY in macro FAMILY to top of macro. o Changed condition generating #NO_BREAK at top of macro COLLATE from .if ( \\n[.t] < \\n[.v] ) \{ .nr #NO_BREAK 1 \} to .if ( (\\n[.t]-1) <= \\n[.v] ) \{ .nr #NO_BREAK 1 \} (Bottom-of-page trap is tripped 1 unit below last valid baseline, not on it.) * Tue Nov 25 2008 o Commented out what appears to be a superfluous and destructive resetting of #VARIABLE_FOOTER_POSITION at line 13347 in FOOTNOTE macro. For now, fixes the "vanishing first footnote with some overflow" bug. * Mon Oct 6 2008 o Added a bit to .PP to accommodate .PP_FONT I when PRINTSTYLE is TYPEWRITE and ITALIC_MEANS_ITALIC * Mon Jun 30 2008 o Removed spurious 'sp |\\n[MN-curr-pos]u from MNbottom-right, prior to re-invoking traps. Hopefully, fixes vanishing RH margin notes bug. * Sun Mar 16 2008 o Added missing spaced paras bit in blockquotes. * Tue Jan 22 2008 o Fixed indent handling of refer items in endnotes. o Amendations to refer.html. o Removed dead email address from groff_mom.man. * Fri Jan 04 2008 o groff_mom.man: Replace .URL with .UR/.UE. Replace .MTO with .MT/.ME. Insert `\:' in URLs where appropriate. Don't include www.tmac. * Wed Sep 12 2007 o Fixed an oversight in DROPCAP that meant when DROPCAP needed to be ignored, the dropcap letter itself was dropped from running text altogether, instead of printing as a normal part of text. o Added an .if n clause to DROPCAP to prevent mom from going into an infinite loop when groff invoked with the -Tascii switch. * Wed Jul 25 2007 o Did a couple of doc fixes. o Added vpt checks at the top of all the graphical object macros. Basically, only turn vpt's off and on again if they're already enabled. * Wed Feb 14 2007 o Moved .ne requests in HEAD and SUBHEAD to top of respective macros, fixing bug that was gathering the wrong page number for head and subhead toc entries. * Fri Nov 24 2006 o Added a default linebreak color (black) * Thu Sep 28 2006 o Fixed missing #'s in linknames in macrolist.html. * Mon Jul 31 2006 o Changed all .LLs in LIST to .ll requests. o Added new macro, FINIS_STRING_CAPS, to control capitalization of the finis string. o Amended doc section on page set up to include directions for telling groff about the physical dimensions of printer sheets. o Added new arg to BLANKPAGE: NULL. If given, BLANKPAGE does not increment the page number when outputting a blank page. o Added new control macros, COVERS_COUNT_PAGES and DOC_COVERS_COUNT_PAGES in case user wants covers counted in the pagination scheme. o Added new final arg to COVER and DOC_COVER: BLANKPAGE. Instructs COVER or DOC_COVER to print a blank page after the cover. o Added new optional args to CODE: BR, BREAK, SPREAD. CODE can now be called inline; if called as a macro and the user wants a break or spread, s/he has to supply one of the args. o Added new macro, CODE_FAMILY, to set fixed-width family used by .CODE o Made EDITOR an alias of AUTHOR o Added optional arguments, COVER or DOC_COVER, to reference macros that may be used on covers and doc covers, allowing users greater flexibility in determining exactly what goes on covers and doc covers without screwing up the doc header or the default page headers/footers o Added macros to control the weight and placement of all underscore/underline rules used in typesetting and document processing o Added macros for drawing of rules, boxes and circles (ellipses) o Added macro, RULE_WEIGHT, to control weight of rules drawn with \*[RULE] o General doc updates, additions, amendations and corrections o Reformatted entirety of documentation to be xhtml clean o Added inlines \*[UC] and \*[LC] to handle inline caps; corrected doc entry stating that you can use \*[CAPS] and \*[CAPS OFF]; chief reason is to allow inline capitalization in strings passed to header/footer definitions. * Fri Jul 7 2006 o Changed inline, \*[RULE], so that it always draws the rule one linespace beneath the last output line. Formerly, \*[RULE] drew the rule on the baseline of the current output line. * Sun Jul 2 2006 o Changed UNDERSCORE and UNDERSCORE2 to use groff's \D'l ' line drawing function. o Changed RULE to use groff's \D'l ' line drawing function. o Added RULE_WEIGHT macro, to allow controlling weight of \*[RULE], expressed in points (including fractional points). o Added two new inlines, \*[UC] (all caps) and \*[LC] (caps/lowercase). These can be used in user-defined header/footer strings (if \E is used instead of just the backslash by itself) as well as in normal copy. * Sat Jul 1 2006 o Added .FAMILY \\*[$DOC_FAMILY] and .FT R to the end of .DEFAULT_DOCHEADER, .CHAPTER_DOCHEADER and .NAMED_DOCHEADER. Fixes bug that was causing type which was set after .START when no docelement tag given to be set in the last family and font used in the docheader, instead of the expected $DOC_FAMILY and roman font (R). * Fri Jun 30 2006 o Updated copyright file o Massive documentation cleanup to make docs well-formed xhtml * Thu Jun 22 2006 o Rewrote portions of TITLE, COVERTITLE, DOCCOVERTITLE, CHAPTER_TITLE, SUBTITLE and MISC so that when they're called from .COLLATE, they properly clean out all associated strings and registers. Fixes the "vanishing $TITLE" bug. o Added missing .rm $AUTHORS to .AUTHOR. .as $AUTHORS now always starts with a clean slate. * Wed Jun 14 2006 o Added a missing tag to docelement.html. * Sat Jun 10 2006 o In header and footer routines, changed all .FAMILY calls when .PRINTSTYLE TYPESET to .fam o Fixed DOC_FAMILY so that PARAHEAD_FAMILY and LINENUMBER_FAMILY are properly set to the new value. * Fri Jun 9 2006 o Re-worked .QUOTE_INDENT so that users can pass it an absolute value (by adding a scaling indicator to the arg) instead of just a value relative to the paragraph indent. Fixes bug (oversight?) that meant QUOTES and BLOCKQUOTES got no indent at all if the PP_INDENT was 0. Fixed EPIGRAPH_INDENT similarly. o Added missing default ENDNOTE_LINENUMBER_FAMILY and _FONT to DEFAULTS. * Thu Jun 8 2006 o Changed distance of the underscores used in docheaders when PRINTSTYLE is TYPEWRITE from the default 2p to 4p. This is to leave room for the descenders if the strings are caps/lowercase. * Wed Jun 7 2006 o Added strings $AUTHOR and $AUTHORS. $AUTHOR = $AUTHOR_1 (i.e. the first arg passed to .AUTHOR); $AUTHORS = a comma-separated concatenated string of all the args passed to .AUTHOR. * Tue Jun 6 2006 o Updated docs. o Converted all .ig blocks in om.tmac to comment lines beginning with \#. This so that the comments will be stripped from om.tmac during make. The groff sources still contain the commented version of om.tmac, as do the tarballs posted on mom's homepage. o Added new macro, HEADERS_AND_FOOTERS, to allow having both headers and footers on a page. o Fixed whitespace around epigraphs after .DOCTYPE CHAPTER docheaders. o Added test in .PP_FONT for existence of $SAVED_PP_FT; if it's there, remove it (fixes bug that was causing .PP to ignore .PP_FONT after .COLLATE). Also fixed .PP so that it properly passes $PP_FT to .FT if $PP_FT has been re-defined to $SAVED_PP_FT. * Sun Jun 4 2006 o Added a note about colorizing underscored text in the docs. * Wed May 24 2006 o Adjusted the .ne value for heads and subheads (again) * Sun May 21 2006 o In the documentation, removed the section stating that setting the family, font, pointsize and colour of line numbers wasn't possible. o Updated documentation entry for TOCs to include instructions for using psselect. * Sat May 20 2006 o Added string $PRE_CODE_FAM to CODE; fixes bug that kept CODE OFF from restoring the previous family_font combo o Added a test for existence of register #DEPTH to .ITEM; if it doesn't exist, ignore ITEM *Fri May 19 2006 o Updated docs o Added macro, CODE o DOCTITLE, TITLE, CHAPTER_TITLE, SUBTITLE, COVERTITLE and DOC_COVERTITLE now accept multiple arguments; each is printed on a separate line in docheaders and on cover pages. Where the macros also supply reference information to page headers, endnotes and tables of contents, the args are concatenated. *Thu May 18 2006 o Changed default DOCHEADER_LEAD to +0 when there's both the chapter number and a chapter title in DOCTYPE CHAPTER. Compensated by adding 1/4 of the leading in effect for docheaders between them. Applies equally similar situations on covers and doc covers. *Mon May 15 2006 o Added missing default ENDNOTES_ALLOWS_HEADERS to DEFAULTS. o Added missing temporary change of the pad marker from # to ^ to the toc title collection routine of .ENDNOTES. o Added string $SAVED_PP_FT to start of .COLLATE; string is tested for in .PP o Improved testing for $FONT and $PP_FT in DEFAULTS o Trivial changes to docheader spacing for doctypes DEFAULT and NAMED when PRINTSTYLE is TYPEWRITE. *Sun May 14 2006 o Call to .ne in HEAD moved higher in macro, and .ne's reduced each by 1. o Handling of "how much space is needed for subheads + 1 line of text" in SUBHEAD changed to a simple .ne. Fixes bug that was causing overprinting of columns when s/h was deferred to next page/column. o In macro, PRINT_HDRFTR, removed .EOL from clause .if \\n[#HDRFTR_COLOR]=1 *Sat May 13 2006 o Fixed broken link to DOCTITLE in docs. *Wed Apr 26 2006 o Corrected doc entry that stated TOC control macros can be entered anywhere in a file prior to invoking TOC (TOC control macros must come before START). o Removed spurious .nop from .ie \\n[#PRE_COLLATE]=1 clause in FAMILY (fixes bug that was causing page numbers on pages before COLLATE or TOC to be printed too low). o Added a test at top of COLLATE to set register #NO_BREAK to 1 if the distance to the next trap is less than one linespace; used in NEWPAGE to determine whether to do a 'br or .br. (fixes BUG that was causing COLLATE, NEWPAGE, and TOC to spit out a blank page when the last line of text before them happened to fall on the last valid baseline of the page). o Changed pad marker used to format TOC entries to permit use of the pound/number sign (#) in head elements. o New macro, PREFIX_CHAPTER_NUMBER, to allow users to prepend chapter numbers to the numbering scheme used in head element numbering. o Added missing periods at the ends of head, subhead, parahead numbers. o CHAPTER, with a numeric argument, can now be used to identify any document as a "chapter" for the purposes of prefixing the argument to CHAPTER to the numbering scheme of head elements. o Fixed alignment of TOC entries. o Removed .rr #DOC_HEADER and replaced with .if \\n[#DOC_HEADER]=1 \{ .nr #DOC_HEADER 2 \} near the end of START. I.e., #DOC_HEADER becomes "2" if docheaders were on in the previous document. COLLATE tests for 2 in order to reset #DOC_HEADER to 1 for use in the user-invoked START that comes after a COLLATE. o Added register, #CHAPTER_CALLED, to CHAPTER; tested for in PREFIX_CHAPTER_NUMBER to determine whether the argument to CHAPTER can be used to establish a chapter number for chapter number prefixes in head element numbering. *Mon Apr 17 2006 o Fixed bug that was causing shifted lists, when returned to, to revert to the left margin instead of observing the correct indent+shift for the list. o Added a check in LIST so that if user invokes LIST with RETURN, mom doesn't get confused by the initial `R' (which she was using to check if the arg to LIST was ROMAN or roman). o Replaced an incorrectly copied code block in SUBHEAD that was preventing SUBHEAD from processing subheads properly when PARA_SPACE was on. *Wed Mar 15 2006 o Added a .SHIM after .sp \\n[#DC_LINES]v in .DROPCAP. Fixes problem of dropcaps in initial paragraphs after COLLATE being set slightly too high. o Added .rr #DOC_LEAD_ADJUST_OFF to .ie clause of DOC_LEAD_ADJUST and removed .rr #DOC_LEAD_ADJUST_OFF from DEFAULTS (after TRAPS) so that document leading adjustment (or lack thereof) is maintained from doc to doc when COLLATE is being used. o Added new register, #PRE_COLLATE. The .FAMILY macro is called several times during initial COLLATE processing, and contained a stanza that allowed FAMILY, after a collate, to invoke DOC_FAMILY if #COLLATE=1. This allowed users to use FAMILY after a COLLATE but before START in a way consistent with the behaviour described in the docs (namely, FAMILY before START sets the DOC_FAMILY). Since that functionality is still needed, #PRE_COLLATE instructs FAMILY not to reset DOC_FAMILY until COLLATE is complete (i.e. after the break to a new page). #PRE_COLLATE, if set to 1, is removed at the end of HEADER. *Thu, Mar 2 2006 o Added control macros for linenumbering family, font, point size and color o Added a NO_SHIM macro *Sun Feb 26 2006 o Changed .PRINT "\h'\\n[#LIST_INDENT\\n[#DEPTH]]u' in the "ROMAN I, padded" and "roman i, padded" clauses of ITEM to .PRINT "\h'\\n[#HL_INDENT\\n[#DEPTH]]u' to fix bug associated with using both PAD_LIST_DIGITS LEFT and SHIFT_LIST. *Fri Feb 24 2006 o Removed superfluous "if" from FONT, line 492 o Removed #ADD_BREAK register from FOOTNOTE and ENDNOTE, along with the routines it invoked o Added an optional argument, BREAK, to FOOTNOTE OFF and ENDNOTE OFF, for correct and flexible handling of punctuation and continued lines when FOOTNOTE or ENDNOTE are called while nofill mode is active. o Created an alias for .so, INCLUDE. *Thu Feb 2 2006 o Small fix to handling of underlining of italic text spanning pages in PRINTSTYLE TYPEWRITE. *Thu Jan 12 2006 o Reworked changing and setting of traps associated with outputting left and right margin notes. See BUGS. *Sat Jan 7 2006 o Bracketed outputting of margin notes diversions with .nf/.fi. *Fri Jan 6 2006 o Corrected docs MN_INIT so that the optional first arg is properly given as RAGGED | SYMMETRIC o Fixed MN_INIT macro routine that reads MN_INIT args into strings so that the strings are first "initialized" with the @ character if the corresponding arg is blank. Since MN-init tests for \A and \B (correctly, I hope) for each of its args, the @ character should be safe. *Tue May 16 2005 o momdoc/appendices.html: Add space in shebang, conforming to portability recommendation in autoconf docs. *Thu May 12 2005 o Added margin notes capability o Added mom-specific refer support; refer calls can be embedded in running text, sent to footnotes or endnotes, or collected for output on a bibliography page; also added mom-specific refer control macros o Added bibliography page capability, with full suite of control macros o Added referencing of footnotes and endnotes by line number o Added capability to have footnotes run on when footnotes are being referenced by line number o Added a post footnote space option, in case users want a little space between their footnotes o Added ENDNOTE_MARKER_STYLE, so user can choose between endnotes identified by a numerical marker in the text, or by line number o Added control macros to accommodate differing needs for endnotes identified by line number o Added ENDNOTE_TITLE_SPACE, so user can control starting position of the endnotes page title o Extended LIST so that it accepts lowercase alpha, uppercase roman numeral and lowercase roman numeral enumerators; also added a "prefix" argument (which comes *after* the separator argument) o Changed RESET_LIST so that it can reset a list to any number, letter, or roman numeral, instead of just 1, a, A, I and i o Change to handling of footnote/endnote markers in text; input lines before FOOTNOTE still require \c, but input line after FOOTNOTE OFF must be entered as a literal continuation of the line before FOOTNOTE, including any required word space or punctuation (this so users can get the footnote marker in text either before or after the punctuation without hassle) o Added QUOTE_AUTOLEAD and BLOCKQUOTE_AUTOLEAD, so user can have quotes and blockquotes leaded differently from running text o Reworked QUOTE and BLOCKQUOTE to accommodate _AUTOLEAD control; spacing above and below quotes is equalized *on a per quote basis* (not completely happy with this, but at least it gives users some flexibility in designing (block)quotes) *Fri Mar 18 2005 o Added mom.vim to /examples *Thu Jan 20 2005 o Added \*[TB+] and \*[B] to give inline functionality of .TN and .EL, respectively. o Added SECTION and SECTION_CHAR as aliases of LINEBREAK and LINEBREAK_CHAR o Added a NOBREAK option to PAD, so when PAD is called, it's possible to instruct mom not to advance on the page. *Wed Jan 19 2005 o New macro, ADD_SPACE, so that extra space can be added at the top of a new page in document processing; the .ns call in HEADER was making additional space impossible o Reworked handling of ALD/SPACE/SP and LS when they're used at the tops of pages during pure (i.e. non-docprocessing) typesetting. First lines were still wandering. Should also be more intuitive: ALD after LS advances the specified distance from the top baseline; LS after ALD doesn't change the position of the first baseline (i.e. merely sets the lead for the text that follows). *Tue Dec 14 2004 o Fixed a small problem with spacing under quotes when paragraph spacing is turned on. *Fri Dec 10 2004 o Put all calls in VFP_CHECK inside their own environment. Without the .ev call, the trap invoked VFP_CHECK was chopping off the first word of the last line before footnotes. *Dec 6 2004 o Small fixes to elvis_syntax.new (dealing with strings, \{\ and \} o Changed . ie \\n[#START] \{\ . if \\n[#DOC_HEADER]=0 \{ . \} . \} in HEAD to . ie \\n[#START] \{\ . if \\n[#DOC_HEADER]=0 \{ .RLD 1v \} . \} so that HEADs at the start of docs with no docheaders falls on the correct baseline. *Dec 3 2004 o Removed spurious parens from if ( \\n[#TRAP_DISTANCE] < \\n[#DOC_LEAD]*2 ) in SUBHEAD. *Oct 14 2004 o Reworked the LL macro so that the argument can take a prepended + or - sign (i.e. the argument is relative to the current line length). *Oct 13 2004 o Added an .if \\n(.n=0 if to the ie clause in LS that controls how mom responds to initial LS invocation at page top if T_MARGIN has been set. Now, if there's text on the "top" baseline, LS behaves as expected when invoked afterwards. *Oct 11 2004 o Added an ie !r#DOCS clause to the processing of "top baseline" ALDs. ALD is used extensively (internally) in the document processing macros, and does not need to check--indeed, should not check--for top baseline placement prior to execution. *Sep 29 2004 o Additions to elvis_syntax.new *Sep 12 2004 o Small fixes to the documentation. *Aug 21 2004 o Removed superfluous second arguments from strings UP, DOWN, FWD and BCK *Aug 8 2004 o Version changed from the 1.1.x series to 1.2. All of the features I originally wanted mom to have originally have been implemented, and appear to be stable. o Major overhaul to the setting of page traps and the handling of footnotes, both "normal" footnotes and footnotes that occur inside QUOTE, BLOCKQUOTE and EPIGRAPH. o Addtion of font "styles" to om.tmac, plus changes to the FAMILY and FT macros to manage them. New section in the doc appendices on adding fonts and managing the new font styles. o Mom now uses a "fallback font" whenever there's an invalid call to FAMILY. o RW and EW now affect only the font in effect. A change of family or font disables them. o BR_AT_LINE_KERN now properly does a .brp (spread and break) when used in justified text. o NEWPAGE, which used to be an alias for .bp, has been moved into its own macro, in order to make it more responsive to some unusal situations. o Some changes to elvis_syn.new, including that the file extensions recognized by elvis now include both .mom and .tmac. This makes om.tmac much easier to read. *Jul 6 2004 o FT and FAM(ILY) reworked to take advantage of if S, if F and \n[.sty] additions to groff (1.19.2). Warnings are emitted if a style hasn't been registered, or if a font style doesn't exist in the current family. Invalid .FAM(ILY) calls now use a "fallback" font" (although no warning is issued); fallback is user-settable o New macro, FALLBACK_FONT. Not only controls the fallback font for invalid family calls, but also controls whether mom aborts on invalid .FT calls after issuing a warning. o RW/EW now affect only the current font (or font style) o BR_AT_LINE_KERN now (properly) does a break-and-spread when text is justified. o Fairly extensive list of .sty's added to om.tmac. Hopefully, this will make life easier for users wishing to add new fonts and/or entire new families to their groff site-font/devps directory. *Jun 6 2004 o Altered kerning slightly for footnote markers in text. Daggers and double-daggers were getting a bit jammed *Jun 3 2004 o Rewrote the routines dealing with _FAMILY, _FONT, _SIZE, _COLOR and _QUAD. A single macro for each checks for the calling alias (e.g. TITLE_FAMILY in _FAMILY), and performs the appropriate action. o All "COLOUR" aliases of "COLOR", no matter where, have been removed. o Added cover and doc cover page generation. o Added reference macros COVERTITLE, DOC_COVERTITLE, MISC and COPYRIGHT (for use with covers only) o Fixed EL and TN so they don't spring page traps; in nofill modes the preceding input line must be terminated by \c. o Added #T_MARGIN_LEAD_ADJ to DO_B_MARGIN, DO_T_MARGIN and NEWPAGE to ensure accurate placement of first lines on new pages when docprocessing is not taking place. o Made NEWPAGE it's own macro; formerly just an alias of .bp. o Made BREAKQUOTE obsolete; rewrote sections of footnote handling, including adding support macros to deal with processing of footnotes that were started inside quotes, blockquotes and epigraphs. o Added a TERMINATE .em to docprocessing (except letters) to ensure that deferred footnotes print on the last page of a doc. *Mar 15 2004 o Added color support o Adjusted vertical placement of hyphens around page numbering so that they are better centered on the height of the page number. o Re-wrote portions of the document processing macros so that tabs behave in a consistent and intuitive manner. Tab structures are now properly preserved from page to page and column to column. *Mar 05 2004 o Makefile.sub (GROFF_BIN_PATH): Use SH_SEP. *Feb 20 2004 o Rewrote the macros associated with DOCTYPE LETTER so that the user can enter DATE, TO and FROM in any order s/he likes. For backward compatibility, if the older, fixed order (DATE-TO-FROM) is used, the date goes flush right with two linespaces after it, while the other fields go flush left with a single linespace separating them. o Fixed handling of DOCHEADER OFF when fell short of the top margin of running text (the change is actually in the SHIM macro, which is called by DOCHEADER). o Added a selection of iso 639 two-letter language codes as optional arguments to SMARTQUOTES, so that the use can enter her/his language code to get language specific quoting styles o Changed the way the strings for \*[ST], \*[STX], \*[FU] and \*[BU] are read. Formerly, they were entered literally. Now they're entered as an array. *Jan 24 2004 o Added lists and associated macros. Mom now does (nested) lists. o Added German-style lowered double quotes and two styles of guillemets to SMARTQUOTES. o Added macro SIZE, intended to be called inline as \*[SIZE ]. This is to bring mom's inline size change syntax into line with her other inlines. o Added ESC_CHAR as an alias of .ec o Added doc entries for lists. o Updated SMARTQUOTES entry in docs. o Updated reserved words in docs. o Fixed a few more typos in docs. *Mon Dec 29 2003 o Makefile.sub (GROFF_BIN_PATH): Use $(SEP). *Tue Oct 21 2003 o Changed \n[#DRAFT] and \n[#REVISION] to strings \*[$DRAFT] and \*[$REVISION], allowing for the possibility of blank entries that don't mess up headers/footers with zeros if user doesn't want any numbers. o Extended handling of draft and revision numbers and strings in headers/footers for increased flexibility. It's possible now to have just about any combo of DRAFT_STRING, DRAFT, REVISION_STRING and REVISION, and have them come out in headers/footers as one intuitively expects/wants. Mon Oct 13 2003 o Finally fix change 2003-08-26, based on ideas from Chuck Silvers . Makefile.sub: Use a stamp file in the `examples' directory. Sun Aug 31 2003 o Makefile.sub: Fix last change to make it really work. Tue Aug 26 2003-08-26 o Makefile.sub (prepare_make_examples): Make it work with parallel runs of `make'. Patch from Chuck Silvers . *Fri Jul 25 2003 o Added a .bp after .if \\n[#START]=1 in FOOTER. Without it, in document processing mode, documents that use *none* of the docprocessing tags (yes, there are times when users want to do this) ignored the footer trap. *Fri Jun 6 2003 o Changed register #DOCHEADER_LEAD_ADJ to string $DOCHEADER_LEAD_ADJ. This means that .DOCHEADER_LEAD no longer requires a unit of measure; points is assumed. *Tue Jun 3 2003 o Added SHIM macro, which, when invoked, calculates and moves to the next "valid" baseline in document processing. o Corrected handling of DOCHEADER OFF so that the first line of running text falls on a "valid" baseline when is given. *Wed May 21 2003 o DOC_TITLE changed to be used exclusively with DOCTYPE DEFAULT o Fixed problem with restoration of previous doc pagenum style when endnotes use a different pagenum style (set with ENDNOTES_PAGENUM_STYLE) o Fixed handling of headers/footers with respect to endnotes. Now, when either headers or footers are on, mom picks up the correct page header/footer on the last page prior to ENDNOTES, gets the pageheaders correct for endnotes pages *including the last one*, and picks up correct page headers/footers for the subsequent docs after COLLATE *Sat May 17 2003 o Added TOC (finally) and a nearly complete set of associated control macros o Added new control macros to endnotes: ENDNOTES_STRING_CAPS - capitalize the endnotes string ENDNOTES_NO_COLUMNS - allows docs in columns and endnotes not ENDNOTES_PAGENUM_STYLE - set page numbering style for endnotes ENDNOTES_FIRST_PAGENUMBER - set first pagenumber for endnotes ENDNOTES_ALLOWS_HEADERS - page headers on endnotes pages off or on ENDNOTES_NO_FIRST_PAGENUM - allows non-printing first page number when page footers are being used instead of headers ENDNOTES_SINGLE_SPACE - for TYPEWRITE, if doc double-spaced SUSPEND/RESTORE_PAGINATION - turns page numbering off for endnotes o Added an ADJUST option to ENDNOTE_LEAD o Added DOC_TITLE (like TITLE, but sets document-wide title for collated docs) o Added HDRFTR_CENTER_PAD, to allow adjustments to placement of HDRFTR_CENTER_STRING o Added BLANKPAGE macro, to output blank pages (silently numbered) o Extensive changes to DEFAULTS, START, COLLATE, HEAD, SUBHEAD and PARAHEAD because of new TOC and extended flexibility of ENDNOTES page design o Fixed DOCHEADER OFF (distance), FINIS Sat Apr 05 2003 o Makefile.sub (GROFFBIN): New variable for groff binary path. (groff_bin_path): Rename to GROFF_BIN_PATH. (GROFF): Use GROFFBIN and GROFF_BIN_PATH. Patch from Maciej W. Rozycki . ----------------------------------------------------------------------- *Sat Feb 22 2003 o (Re)-fixed handling of post epigraph spacing after #START for TYPEWRITE double-spaced. ------------------------------------------------------------------------ *Sun Feb 16 2003 o Added James Ramsey's proposed CHAPTER_TITLE macro, along with his rewritten START macro and his utility macros to make START easier to read. o Expanded handling of CHAPTER_TITLE to encompass TYPEWRITE, as well as plugging it into the docheaders. Made CHAPTER_TITLE backwardly compatible so that pre-1.1.5 docs using CHAPTER_STRING to create a chapter title remain unaffected when groffed with 1.1.5. o Created control macros for CHAPTER_TITLE FAMILY, FONT and SIZE. Added defaults for handling of CHAPTER title to DEFAULTS. Documented CHAPTER_TITLE and everything that goes along with it. o Fixed broken draft and revision in headers/footers. o Fixed \*[RULE] so that it behaves properly with indents and justified copy. o Fixed/tweaked handling of epigraph spacing in TYPEWRITE. o Fixed broken spacing of docheaders in TYPEWRITE. *Mon Feb 3 2003 o Fixed an oversight in CLOSING for DOCTYPE LETTER (closing wasn't being set flush left) *Sun Sep 29 2002 o Changed .ne in .HEAD when PRINTSTYLE TYPESET from 5 to 4. With 5, heads required at least 2 lines of text underneath or they'd be defered to the next page, which created too much whitespace at the end of the page. Heads will now be processed on the same page if the head plus at least one line of text underneath fits. I figure it's easier for the user to break to a new page manually if this behaviour is unsatisfactory than to massage the page to fix the excess whitespace. *Sun Aug 25 2002 o Changed .IX to .IQ. The older form still works, but emits a message advising the user to update to the newer. (The macro in om.tmac still remains IX; IQ is an alias.) Docs updated to reflect the change. *Tue Aug 20 2002 o Added new (better) way to handle inline kerning. \*[BU #] and \*[FU #] allow passing an argument to the inline string. The older forms \*[BU#] and \*[FU#] still work, though. o Changed handling of inline horizontal and vertical movements. Horizontal movements are now done with \*[BCK #] and \*[FWD #]; verticals with \*[UP #] and \*[DOWN #]. The older forms \*[FP#] and \*[BP#] still work (horizontals), as do \*[ALD#] and \*[RLD#] (verticals). ------------------------------------------------------------------------ *Mon Aug 19 2002 o Fixed ENDNOTES so footnotes output properly when ENDNOTES is called o Added ENDNOTES_HDRFTR_CENTER so that default no-print of header center string on endnotes page(s) when DOCTYPE is CHAPTER can be disabled (i.e. header center will be printed). *Sat Aug 10 2002 o Added .nf to top of PAD, with a test beforehand for current fill mode. If fill mode was on, it's restored after PAD completes processing. Updated reserved.html to include number register #FILL_MODE. *Fri Jul 12 2002 o More fixes to underlining. *Fri Jul 5 2002 o Added capability of endnotes and pertinent control macros to om.tmac. o Added document entries pertaining to endnote macros. o Incorporated endnote macros into elvis_syntax. o Small doc fixes. o Tidied up indenting of om.tmac. o Fixed handling of underlining of italics in PRINTSTYLE TYPEWRITE (there was a problem with footnotes getting underlined when they shouldn't have been). o Removed ENDNOTES from TODO o Fixed the character translations for UNDERLINE so they work properly with digraphs. *Mon Jul 1 2002 o Expanded docprocessing.html entry "Special Note on Chapters". Tidied up html a bit. *Sat Jun 15 2002 o Small fix to PAD to make the use of inlines within the pad string more intuitive. o Added \*[RULE] ( = \l'\n(.lu' ) so that full measure rules (either to full line length or within tabs) are easier to set. *Sat Jun 8 2002 o Macro .PS renamed to .PT_SIZE. Alias .TS removed. o .tr bits in .CAPS rewritten in the form .tr é\[`E]. o General cleanup of docs to reflect changes o Small changes/additions to elvis_syn *Thu Jun 6 2002 o In DOCTYPE, in .if '\\$1'LETTER', added .FOOTER_RIGHT_SIZE +0. Without it, the suite page was printing at the default FOOTER_RIGHT_SIZE of -.5, which didn't look good. *Wed Jun 5 2002 o Makefile.sub (TFLAG): Add `$(top_builddir)/tmac'. *Tue Jun 4 2002 o Makefile.sub (groff_bin_dirs): Fix typo (forgotten `src' element). *Mon Jun 3 2002 o Makefile.sub (uninstall_sub): Don't use `momdocdir' but `htmldocdir'. Add missing backslash. *Sat Jun 1 2002 o Makefile.in (prepare_make_examples): Test for `penguin.ps', not `examples/penguin.ps'. *Wed May 29 2002 o Rewrote portions of PAGENUM_STYLE and COPYSTYLE so that PAGENUM_STYLE behaves as advertised. *Fri May 24 2002 o /Makefile.sub (momdocdir): Removed. (HTMLDOCFILES): Prepend `momdoc/'. (EXTRAEXAMPLEFILES): Removed. Added entries to... (EXAMPLEFILES): This. (.SUFFIXES, .mom.ps): New. (prepare_make_examples): Updated. (examples/*.ps): Removed; .mom.ps will handle this. (install_data): Updated. *Thu May 23 2002 o Applied two small bug fixes to om.tmac (patches 1.1.1a and 1.1.1b). o mom is now part of groff. o Some renaming to avoid problems with 8+3 filesystems: examples/docprocessing_typeset.mom -> examples/typeset.mom examples/docprocessing_typewrite.mom -> examples/typewrite.mom examples/typesetting_macros.mom -> examples/macros.mom examples/penguin_small2_bw.ps -> examples/penguin.ps o Removed `INSTALL' and `README' since groff takes care of installation now. o Added Makefile.sub. o Added mom.tmac (which simply calls om.tmac). o Added groff_mom.man for orthogonality; it simply points to the HTML documentation. *Thu May 16 2002 o Added macro DRAFT_WITH_PAGENUMBER so user can have draft/revision info attached to the pagenumber in COPYSTYLE DRAFT, instead of having it HEADER center. Always having it HEADER center was creating problems with long doc titles, esp. with PRINTSTYLE TYPEWRITE (which is when COPYSTYLE DRAFT is most likely to be used). Now user has the choice, in these circumstances, either to reduce HEADER_SIZE, or to displace the draft/revision info. Also rewrote portions of COPYSTYLE so that if no revision number is given in the reference macros, "Rev. #" doesn't appear when COPYSTYLE DRAFT. *Fri May 10 2002 o Added capability of user-defined, single string recto/verso headers/footers. o Added new entries to docs about the above. Made some additional small changes to toc.html, rectoverso.html, and headfootpage.html to supplement the new entries. o Small fix to handling of footer separator rule -- was 1 point too low owing to fuzziness of #CAP_HEIGHT as returned by SIZESPECS. o Added some more useful stuff to elvis_syntax. *Sun May 05 2002 o Fix to DEFAULTS so that L_MARGIN and R_MARGIN are reprocessed if DOCTYPE LETTER. R_MARGIN, as set by DOCTYPE LETTER had no preceding PAGEWIDTH or PAPER from which to get #PAGE_WIDTH for figuring out line length. o Additional fix to DEFAULTS in handling DOCTYPE LETTER so that if user sets line length prior to START, no reprocessing of R_MARGIN occurs. This necessitated adding a new number register: #USER_SET_L_LENGTH *Sat May 04 23:48:05 EDT 2002 o Added .cflags 4 /\(en -- was driving me nuts that lines wouldn't break after these characters; I'm assuming others feel the same way * Fri May 03 2002 o Made some small fixes to space handling around quotes, mostly to do with quotes immediately after START and quotes after (sub)heads. * Wed May 01 2002 o Fixed a small bug that was causing the first .PP after START to begin at the top margin of the page regardless of any type that preceded .PP when docheaders were off. o Fixed HEADER so that when HEADERS are off the first line of type on pages after the first falls properly at the top margin *Sat Apr 27 2002 o Renamed docprocessing_macros.mom in /examples to docprocessing_typeset.mom. Added docprocessing_typewrite.mom, as well as a README file. o Fixed UNDERLINE_QUOTES (for PRINTSTYLE TYPEWRITE) so they really are on by default as the docs say. o Changes to doc entry on COLLATE: - removed bit about using COLLATE after a cover page (I wrote the entry *before* I wrote the macro!). Cover pages should be followed by NEWPAGE, not COLLATE. - added caution about mixing PRINTSTYLEs - added caution about using DOC_FAMILY to change family of all document elements after COLLATE o Made HEADER_SIZE (and, by extension, FOOTER_SIZE) available to PRINTSTYLE TYPEWRITE. Changed appropriate doc entries to reflect this. *Wed Apr 24 2002 o Small change to DO_QUOTE to correct a problem with quotes and blockquotes that fall in the middle of paragraphs (i.e. text after the quote is not a new para). Basically, added a bit that stores the current para indent, sets para indent to 0, invokes a PP, then restores the original para indent. o Added new macro, BREAK_QUOTE, to deal with the problem of footnotes in quotes and blockquotes that cross pages or columns. Quotes and blockquotes are read into diversions, which means they get their footnote information from the page/column on which they were started. If a footnoted quote crosses a page/column, what sometimes happens is that the footnote itself is output at the bottom of page/column where the quote started, whereas the text marker for the footnote appears on the next page/column where the quote ends. Furthermore, the text marker is the one appropriate to the previous page. BREAK_QUOTE is a workaround. o Added directory /examples to archive. o Added typesetting_macros.mom, docprocessing_macros.mom, elvis_syntax and penguin_small2_bw.ps to /examples. o Added BREAK_QUOTE to docs, made some additions to reserved words list, and corrected a few little doc errors. *Mon Apr 22 2002 o Added default .L_MARGIN 1i and .R_MARGIN 1i to PAPER, PAGE, and PAGEWIDTH. L_MARGIN is essential otherwise left indents and tabs don't have a register #L_MARGIN to work with. The default right margin is a convenience only. Updated the doc entries for L_MARGIN and R_MARGIN to reflect the change. *Sun Apr 21 2002 o Changes to COLLATE: - added some "resets" (LL, LS, QUAD) - added a check for whether pagination is at page top (either because FOOTERS are on or because PAGENUM_POS was user set). If pagination is on, and PAGENUM_POS is TOP, it's turned off for next page (start of next collated document) and restored for subsequent pages unless PAGENUM_ON_FIRST_PAGE is on, in which case the page number appears at page top. o The macro TRAPS is always invoked at the end of DEFAULTS (which is called by START). Formerly, TRAPS was only invoked at the start of a doc, not after COLLATE. Now runs after COLLATE as well. o Distance from $DOC_TYPE in DOCTYPE NAMED "" to start of running text was one linespace too deep. Fixed (in START). o When 1st arg to PAGENUM_POS was user set to TOP, running text was printing 1 linespace too high, even when PAGINATION was OFF. Same problem when HEADERS were OFF (i.e. nothing in the header margin at all). Fixed by removing -\\n[#DOC_LEAD]u from all .sp |\\n[#T_MARGIN]u calls of .el portion after .ie \\n[#HEADERS_ON]. o Added new macro: PAGENUM_ON_FIRST_PAGE. Normally, when FOOTERS are being used instead of HEADERS, mom doesn't print the page number at the top of the first page of a doc, or the first page of collated docs. New macro allows user to get mom to put the page number on "first" pages if that's desired. Updated docs to include the macro. o More little fixes to docs. *Thu Apr 18 2002 o Fixed TI (temporary indent) so that it continues to work as expected, even when called while another type of indent is in effect. *Tue Apr 16 2002 o String tabs weren't working as advertised when set from within a tab. Fixed. Two new registers added: #ST_OFFSET and #IN_TAB. String tabs now behave poperly and intuitively when set within tabs. o Added a note to docs about surrounding \w'...' escape with double- quotes when it's used as an argument to macros o Added a note to docs that SILENT does not deposit a .br *Mon Apr 15 2002 o Added new macro BR_AT_LINE_KERN if user wants mom to deposit .br's before .RW and/or .EW. o Added 1/4 points to inline escapes \*[ALD] and \*[RLD]. o Added 1/4 points to inline escapes \*[FP] and \*[BP] o Updated docs to reflect the above changes. *Fri Apr 12 2002 o Fixed .RW and .EW which weren't working because of a missing \ in \\n(.f register. Also made it so that .RW and .EW affect all fonts in positions 1, 2, 3, and 4 at once, hence line kerning now affects all fonts that appear after it, not just the font that was current at the time of the macros' invocation. o .SS and .WS now working properly. .WS no longer has any effect on .SS, which remains constant regardless of .WS. Furthermore, .SS no longer gets its value by adding \*[$SS_VAR] + \n[.ss]. Instead, it remains constant. Don't know what I was thinking when I wrote the routine in the first place. o Updated and rewrote doc entry pertaining to SS *Wed Apr 10 2002 o Renamed tmac.om to om.tmac to bring macro file's name into line with current groff policy o Added more standard paper sizes to PAPER. o Fixed T_MARGIN, LS, and AUTOLEAD so that if T_MARGIN is set before LS or AUTOLEAD at the top of a file, the first line of type falls properly on the baseline set by T_MARGIN. Previously, LS and AUTOLEAD automatically advanced by the value passed to them before setting the first line of type, meaning that the first line of type fell at T_MARGINu+1v instead of T_MARGIN. o Updated docs to reflect changes. o Removed #TEST_FOR_NUMERIC from list of reserved words. o Added "t" and #T_MARGIN_SET to list of reserved words. *Sat Apr 6 2002 o Added FACTOR arg to AUTOLEAD, so if user wants autolead to be a factor of point size, instead of being the sum of pointsize + autolead, s/he has the choice. Incorporated appropriate changes to PS and LS. o Added new register #AUTOLEAD_FACTOR to reserved words. Modified comments for AUTOLEAD, PS, and LS to reflect changes. Also corrected an error where #AUTOLEAD_VALUE had mistakenly been written $AUTOLEAD_VALUE in comments in the macro file, and removed erroneous | . Updated AUTOLEAD entry in momdoc/typesetting.html to reflect the changes. *Wed Apr 3 2002 o Cleaned up html errors in the docs. o Added "Next," "Prev" and "Top" links to top and bottom of doc files. o Fixed some typos in the docs. Copyright 2004-2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. Local Variables: version-control: never coding: latin-1 End: