2 Copyright (C) 2004-2018 Free Software Foundation, Inc.
4 Copying and distribution of this file, with or without modification,
5 are permitted in any medium without royalty provided the copyright
6 notice and this notice are preserved.
10 General bug fix release, with an overhaul of float, image, and
11 pre-processor handling to correct inconsistencies in spacing,
12 indents, labels, and captions. Corrects page numbering issue in
13 "Lists of..." when pre-processor material is floated and defered.
17 Addition of DOCTYPE SLIDES and associated macros
20 TRANSITION for slide presentations processed with gropdf.
21 Fixes and improvements to nested lists (ITEM now takes a spacing
22 arg), indents (IB), NEWPAGE (aliased as NEWSLIDE). Addition
23 of CENTER_BLOCK (center blocks of type over whole line length
24 regardless of indents). Tighten up graphical object macros.
25 Addition of macros to handle hanging punctuation. .COLOR preferred
26 to .gcolor in om.tmac. Changes to HEADER to handle printing of both
27 headers and footers when DOCTYPE SLIDES.
31 Addition of flex-spacing (flexible vertical whitespace). Fixes and
32 improvements to positioning of floats, images, and pre-processor
33 material. Addition of TARGET (PDF target) argument to floats,
34 images, and pre-processor material. Improvements to autolabelling.
38 Fix to handling of kern units. Updated copyright info.
42 Expanded labelling facilities to include floats and
43 quotes/blockquotes. Improvements to TOC handling.
47 Expanded support for doc-covers, covers, and docheaders:
48 - control macros for formatting every element separately (title,
49 subtitle, author, etc.); formatting options include family,
50 font, size, color, quad, caps, smallcaps and underscoring
51 - (DOC_)COVERTEXT for setting blocks of type on cover pages
52 - (DOC_)COVER_IMAGE for putting full page or small images on cover
55 New <ELEMENT>_STYLE macros that allow grouping of style parameters
56 for most document elements into a single macro using keyword/value
59 Smallcaps, with the ability to control size, weight, and width.
63 Mom now has full support for eqn, pic, and tbl, as well as
64 captioning and labelling of pdf images and preprocessor output.
65 Lists of Figures, Equations, and Tables can now be autogenerated.
66 PDF_IMAGE has a new FRAME option.
70 Improved and expanded float and tbl support.
74 FORCE argument added to FLOAT; immediately breaks to a new page
75 to output the float if it does not fit on current the page.
79 Full integration with gropdf. Mom's focus now is on the generation
80 of PDF output. PDF outlines and PDF links (internal and external)
83 New management of nested heading levels via HEADING <level>,
84 replacing HEAD, SUBHEAD, SUBSUBHEAD and PARAHEAD.
86 "NAMED <id>" argument to HEADING <level> creates PDF target at the
89 Use of "oldstyle" headings preserved, allowing the continued use of HEAD,
92 PARAHEAD removed; replaced by HEADING <level> PARAHEAD.
94 New management of head styling.
96 New management of TOC, mostly transparent to user.
98 New management of TOC title and entry styling.
100 Overhaul of TOC default style; greater flexibility in numbering
101 entries, improved indenting, improved spacing.
105 MN_INIT wrapper re-written such that each argument must be preceded
108 New perl script, pdfmom, to facilitate generation of PDF output.
110 Additional documentation in the form of a PDF manual, which covers
113 ====================================================================
117 Support for sub-subheads added.
121 Complete overhaul of refer handling. If you've been using mom and
122 refer, the changes may affect documents you've already created.
123 Please read refer.html.
125 Improved underlining thanks to Tadziu Hoffman.
127 Increased flexibility of PRINTSTYLE TYPEWRITE, which now allows
128 user to choose the monospace family and point size.
132 Complete overhaul of documentation
136 Control macros added to various miscellaneous docprocessing
141 Bugfix release (see BUGS, Version 1.5-b).
145 Bugfix release (see BUGS, Version 1.5-a).
149 Bugfix release (see BUGS, Version 1.5).
153 Macros have been added to facilitate the drawing of common
154 graphical objects: rules (horizontal and vertical), boxes (solid or
155 filled) and circles (ellipses; also solid or filled). The
156 behaviour of \*[RULE] has changed so that it always deposits a
157 break when it's called, bringing it (somewhat) into line with the
158 new macro for drawing rules precisely, DRH. Additionally, a new
159 macro, RULE_WEIGHT, can be used to control the weight of rules
162 Overall, the handling of underscoring and underlining--wherever it
163 occurs--has been overhauled so that users can control both the
164 weight and the placement of underscore/underline rules. New
165 macros have been created to control, for example,
166 the weight and placement of the rule under a HEAD, or the weight of
167 a FOOTNOTE separator rule, etc. Anything that can be underscored
168 or underlined (except the pseudo-underlining of italic passages in
169 PRINTSTYLE TYPEWRITE) has a "rule" control macro. See the document
170 sections pertinent to the macro in question.
172 The creation and management of covers and doc covers has been
173 overhauled for greater flexibility, including the ability to
174 generate differing titles, subtitles, attribution strings, authors,
175 doctypes, miscellaneous lines and copyright information for the
176 same document's doc cover and cover (title) pages, without
177 affecting the default docheader that appears on page one.
178 Additionally, you can now get mom to output a blank page after a
179 cover or doc cover, as well as tell her whether to include covers
180 and doc covers in the pagination scheme.
182 The convenience macro, CODE, has been made more convenient. A new
183 control macro allows setting users' prefered fixed-width fonts.
184 Additionally, CODE can now be called inline.
186 New inline escapes, \*[UC] and \*[LC], have been added to allow
187 inline capitalization. This is particularly useful when users
188 want to pass a header/footer left-center-right part one of mom's
189 "reserved" strings and want the string capitalized (or not) in the
192 For more details, see ChangeLog as well as the documentation.
196 It is now possible to pass an absolute value to QUOTE_INDENT,
197 BLOCKQUOTE_INDENT and EPIGRAPH_INDENT. If an absolute value
198 is desired, the user simply appends a unit of measure (scaling
199 indicator) to the argument. If no unit of measure is appended,
200 the old behaviour is still observed (i.e. the numeric argument
201 represents the amount by which to multiply the paragraph indent to
202 arrive at the desired indent value).
204 The main macro file, om.tmac, is now stripped of comments when
205 groff is built from sources. om.tmac in the sources themselves
206 still contains the comments, as do the tarballs posted on the mom
211 Added a new macro, HEADERS_AND_FOOTERS, to allow having both
212 headers and footers on a page.
216 DOCTITLE, TITLE, CHAPTER_TITLE, SUBTITLE, COVERTITLE and
217 DOC_COVERTITLE now accept multiple arguments; each is printed
220 New macro, CODE, to facilitate setting programming code snippets.
224 New macro, PREFIX_CHAPTER_NUMBER, to allow users to prepend chapter
225 numbers to the numbering scheme used in head element numbering.
227 Indented TOC entries now line up better.
229 Line numbering now has control macros for family, font, point size
232 A new macro, NO_SHIM, to disable the automatic shimming of
233 (possibly irregularly linespaced) quotes and blockquotes.
237 Bug fix release (FONT--removed superfluous "if" that was breaking
238 fallback font logic; FOOTNOTE--no longer adding a linebreak after
239 footnote marker in footnote text in nofill modes).
241 Fixed indent problem with LIST when both PAD_LIST_DIGITS LEFT and
242 SHIFT_LIST used concurrently.
246 Bug fix release (margin notes, TYPEWRITE--spacing, underlining and
251 Bug fix release. SMARTQUOTES has been smartened; miscellaneous
252 glitches in PRINTSTYLE TYPEWRITE fixed (see BUGS). Primarily
253 corrects inconsistencies and bugs with the margin notes routines.
257 Bug fixes: First baseline of type wasn't going where it was supposed
258 to when the docheader was turned off; fixes to errors in html
264 Added line numbering capabilities, with controls.
266 Footnotes and endnotes can now be referenced by line number.
268 Added ability to adjust vertical position of the title that appears
269 on the first endnotes page.
271 Footnotes can run on when being referenced by line number.
273 Footnotes now have a post-footnote spacing option, for adding
274 a little space between footnotes.
276 Extended LIST so it accepts alpha, ROMAN and roman enumerators.
278 Added margin notes capability.
282 Added bibliography page support.
284 Added QUOTE_AUTOLEAD and BLOCKQUOTE_AUTOLEAD, so user can have
285 quotes and blockquotes leaded differently from running text.
287 Change: the input line immediately after FOOTNOTE OFF must be
288 entered as a literal continuation of the line prior to FOOTNOTE,
289 including any initial spaces or punctuation marks. This allows
290 for hassle-free placing of footnote markers in running text either
291 before or after punctuation marks.
296 Added ADD_SPACE, to permit users to insert space at the top of
297 running text (after the first page) when using the docprocessing
300 Releases 1.2-a and 1.2-b
301 ------------------------
303 My personal email address has changed. 1.2-a and -b have been
304 updated to reflect that. Additionally, I made some small changes
305 to the documentation.
310 As of 1.2, the recommended version of groff to use with mom has
311 been bumped up from groff, 1.18 to groff, 1.19.2. Although mom will
312 continue to work with groff, 1.18, her handling of .FAM(ILY) and .FT
313 is now slightly different, therefore users of groff 1.18 may have to
314 update documents created with mom so that every .FAM(ILY) request is
315 followed by a .FT request before any text is input, otherwise mom
316 will set the text after .FAM(ILY) in Courier (until she encounters a
317 .FT request). People running groff, >= 1.19.2 don't have to worry
318 about this, but I recommend that, regardless of which version you're
319 running, you have a look at the document entries for FAMILY and FT
320 in order to see how mom will be handling .FAMILY and .FT from now
323 When used with groff >=1.19.2, mom now emits warnings if a style
324 hasn't been registered, or if a font style doesn't exist in the
325 current family. Invalid .FAM(ILY) calls now use a "fallback" font"
326 (although no warning is issued). The fallback is user-settable.
328 Mom's macro file, om.tmac, now sets up a fairly extensive list of
329 font "styles," thus expanding the range of arguments that can be
330 passed to .FT (formerly, just R, I, B and BI, unless users had
331 already rolled their own solution to the problem of extensive type
332 families containing fonts like condensed, demibold, black, light, etc).
333 Users are advised to read the documentation sections on FAM(ILY),
334 FT and FALLBACK_FONT, as well as the new appendix section, "Adding
335 PostScript fonts to groff", for information on using mom's style
336 extensions (and how to disable them, should they conflict with a
337 user's present groff site-font/devps setup).
339 A new macro, FALLBACK_FONT, has been added. It controls not only
340 the fallback font for invalid .FAMILY calls, but also whether mom
341 aborts on invalid .FT calls after issuing a warning, or continues
342 processing using the fallback.
347 Added the (optional) generation of cover pages and document cover
348 pages, plus a full suite of control macros for all cover page
351 Added new reference macros that apply to covers: COVERTITLE,
352 DOC_COVERTITLE, COPYRIGHT and MISC.
354 The need for TRAP OFF/TRAP to deal with ELs and TNs that fall at
355 the bottom page has been obsoleted. However, both EL and TN, when
356 invoked in any "nofill" mode (LEFT, RIGHT, CENTER, or the L | R | C
357 arguments to TAB_SET or ST when no QUAD argument is given), must now
358 have the input line preceding the EL or TN terminated by \c. Fill
359 modes do not have this requirement, i.e. no \c is required.
361 Footnotes that occur inside quotes, blockquotes and epigraphs now
362 work just like regular footnotes, with no user intervention
363 required. This obsoletes the macro BREAK_QUOTE.
365 Removed all aliases that used the word COLOUR. Users must use
366 COLOR wherever COLOR is needed. COLOUR, as a replacement/alias, is
369 NEWPAGE, which used to be an alias of .bp, is now its own macro.
374 Added text color support. Users can now define or initialize a color,
375 and afterwards change text color with an inline of the form
376 \*[<colorname>], or with the macro .COLOR. In document processing,
377 the docelement tag control macros have been expanded to include
378 _COLOR, e.g. .HEAD_COLOR <predefined colorname> will colorize
379 heads, PAGENUM_COLOR <predefined colorname) will colorize page
382 Adjusted vertical placement of hyphens around page numbering when
383 PAGENUM_STYLE is DIGIT, ROMAN or ALPHA so that the hyphens appear
384 properly centered on the page numbering character.
386 Changed tab handling in document processing so that tab structures
387 are preserved from page to page and column to column.
392 Increased the flexibility of SMARTQUOTES so that they handle quoting
393 styles by language, entered as a 2-digit language code argument to
394 SMARTQUOTES. See docs.
396 Re-wrote the DOCTYPE LETTER macros so that DATE, TO and FROM can be
397 entered in any order the user wishes, with output that matches
398 input. (Should have done this in the first place.)
403 Finally got around to writing "list" macros. See the docs.
405 Added German-style lowered double quotes and two styles of
406 guillemets to SMARTQUOTES.
408 Added macro SIZE, intended to be called inline as \*[SIZE <n>].
409 This brings mom's inline size change syntax into line with her other
410 inlines. \*S[<n>] can still be used for the same thing.
412 The file elvis_syntax (for elvis prior to 2.2h) is no longer being
413 maintained. It was getting messy and long in the tooth. The
414 official elvis syntax file is elvis_syntax.new, which works for
415 2.2h of elvis (and higher, one hopes). elvis users are encouraged
416 to update to 2.2h or higher.
421 Extended handling of draft and revision numbers and strings in
422 headers/footers for increased flexibility. It's possible now to
423 have just about any combo of DRAFT_STRING, DRAFT, REVISION_STRING
424 and REVISION, and have them come out in headers/footers as one
425 intuitively expects/wants.
427 Also added a new set of syntax highlighting rules for the vi clone,
428 elvis. Version 2-2h-beta of elvis finally made possible the
429 highlighting of \*[...] inline escapes, whether or not they're
430 separated from surrounding text by spaces. This is a terrific
431 improvement in elvis, and makes for greatly improved readability of
434 Release 1.1.6-b - 1.1.6d
435 ------------------------
437 Trivial changes to documentation and some cleanups of the main
438 om.tmac file, including:
440 Added a .bp after .if \\n[#START]=1 in FOOTER. Without it,
441 in document processing mode, documents that use *none* of the
442 docprocessing tags (yes, there are times when users want to do
443 this) ignored the footer trap.
445 Changed register #DOCHEADER_LEAD_ADJ to string
446 $DOCHEADER_LEAD_ADJ. This means that .DOCHEADER_LEAD no longer
447 requires a unit of measure; points is assumed.
452 Added a SHIM macro that calculates and moves to the next "valid"
453 baseline during document processing (useful if user starts playing
454 around with spacing/leading on a page and needs to get the leading
457 Fixed handling of DOCHEADER OFF <distance> so that the first line of
458 running text falls on a "valid" baseline when <distance> is given.
463 Problem with groff 1.19.1 fixed by Werner (.return handled arguments
466 Fixed handling of page numbering style restoration in endnotes, so
467 that (collated) docs have the correct page numbering style when the
468 style has been changed for endnotes (with ENDNOTES_PAGENUM_STYLE).
470 DOC_TITLE has been made for use exclusively with DOCTYPE DEFAULT.
472 Fixed handling of headers/footers with respect to endnotes. Now,
473 when either headers or footers are on, mom picks up the correct
474 page header/footer on the last page prior to ENDNOTES, gets the
475 pageheaders correct for endnotes pages *including the last one*, and
476 picks up correct page headers/footers for the subsequent docs after
483 BAD NEWS: mom appears to be crippled in some areas when run with
484 groff 1.19.1. Pending a solution, mom must be run with groff 1.18
488 Added TOC capabilities.
490 Extended range of endnotes control macros. See the documentation
491 on endnotes control macros.
493 Added a new DOC_TITLE macro, to deal with collated documents that
494 have an overall title, while each doc has its own separate doc
503 Added James Ramsey's CHAPTER_TITLE macro as well as control macros to
504 go with it. Thanks James. Also from James came a patch to handle
505 START differenty which has been incorporated into om.tmac. Thanks
508 Some bits and pieces of the docs have been tweaked, but nothing
509 changed. Hopefully, the changes will make parts of the docs easier to
516 o broken draft and revision in docheaders
518 o post-epigraph spacing in TYPEWRITE
520 o header spacing in TYPEWRITE
522 ------------------------------------------------------------------------
527 ***SIGNIFICANT CHANGE***
528 .IX is now deprecated, although it will continue to work as before.
529 The new form is .IQ (Indent Quit). Groff will emit a message advising
530 users to update their docs.
533 Four new inlines to deal with horizontal and vertical movements:
540 All four require a unit of measure after n. These inlines are similar
541 to the older \*[FPn], \*[BPn], \*[ALDn] and \*[RLDn], however they're
542 not restricted to points, and any value can be entered for n (the older
543 forms -- which still work -- were restricted to 1 - 36).
546 Inline kerning can now be accomplished with \*[BU n] and \*[FU n], where
547 n, after the space, is the desired number of kern units. The older
548 forms \*[BUn] and \*[FUn] still work, up to 36 units.
550 ------------------------------------------------------------------------
556 A new macro -- ENDNOTES_HDRFTR_CENTER -- added so that mom's default
557 behaviour of not printing the header center string when DOCTYPE is
558 CHAPTER can be disabled (i.e. she will print the center string). The
559 macro is user-called with ENDNOTES_HEADER_CENTER or
560 ENDNOTES_FOOTER_CENTER.
563 PAD now works as advertised when fill mode is on.
565 ENDNOTES no longer disables printing of footnotes on last page of
571 ***SIGNIFICANT CHANGE -- PLEASE TAKE NOTE***
572 As of 1.1.3, groff must be >= 1.18.
575 Added endnotes functionality to mom, along with a slew of macros to
576 control how mom prints endnotes pages. See the html documentation.
579 Added inline \*[RULE], which draws a rule to the full measure of the
580 current line length ( to be used in place of \h'\n(.lu' ). Weight of the
581 rule is dependent on the point size of type when \#[RULE] is called.
584 PAD -- works more intuitively now when the pad string contains inline
585 escapes for font, point size, etc.
587 UNDERLINE -- fixed character translations of digraphs so they get
588 underlined properly. Also fixed a bug that was causing some footnotes
589 to get underlined when UNDERLINE was on in the body of the document.
598 ***SIGNIFICANT CHANGE -- PLEASE TAKE NOTE***
599 In order to help mom toward full groffship, the macro .PS has been
600 renamed to .PT_SIZE, and the alias .TS (for .TAB_SET) has been removed.
601 .PS and .TS are keywords used by pic and tbl respectively, and the mom
602 macros of the same name were in conflict.
608 mom is now an official part of the groff. New releases will be
609 incorporated into the groff package. I'll still be posting each new
610 release on the mom homepage, so there's no need to download all of the
611 most recent version of groff just to get a newer mom. :)
614 Fixed default footer separator rule adjustment so that it's closer to
615 the advertised "4 points above the tallest ascender in the footer."
617 Added more stuff to the elvis_syn file. Still wouldn't mind someone
618 contributing some vim/emacs syntax highlighting.
620 Added .cflags 4 /\(em to om.tmac. By default, mom now obligingly
621 breaks after / and \(en.
624 Macro(s): HEADER_RECTO
626 With these macros, users can now define single-string recto/verso
627 headers/footers. HEADER_RECTO (or FOOTER_RECTO) can be used to create
628 a one-part header/footer (instead of mom's default three-parters) that
629 appears on every page if RECTO_VERSO is OFF or, if RECTO_VERSO is on, if
630 no HEADER_VERSO (or FOOTER_VERSO) has been defined. If a HEADER_VERSO
631 (or FOOTER_VERSO) is defined and RECTO_VERSO is on, _RECTO prints on
632 even pages and _VERSO on odd pages.
634 Added macro DRAFT_WITH_PAGENUMBER so user can have draft/revision
635 info attached to the pagenumber in COPYSTYLE DRAFT, instead of having
636 it HEADER center. Always having it HEADER center was creating problems
637 with long doc titles, esp. with PRINTSTYLE TYPEWRITE (which is when
638 COPYSTYLE DRAFT is most likely to be used).
641 No more "can't break line" warnings in DOCTYPE LETTER.
643 If no REVISION number is given, Rev. 0 no longer appears HEADER_CENTER
646 PAGENUM_STYLE now works as advertised.
652 Main macro file renamed to om.tmac, in keeping with current groff
655 Now okay to use groff mailing list for mom-related posts
658 Toggle macro -- BR_AT_LINE_KERN. When on, automatically deposits
659 a break whenever .RW or .EW are invoked. Very useful when kerning
660 whole lines of rag copy.
663 Toggle macro -- PAGENUM_ON_FIRST_PAGE. Normally, when FOOTERS are
664 being used instead of HEADERS, mom doesn't print the page number at
665 the top of the first page of a doc, or the first page of collated docs.
666 PAGENUM_ON_FIRST_PAGE allows user to get mom to put the page number on
667 "first" pages if that's desired.
670 Macro -- BREAK_QUOTE -- to deal with problem of footnoted quotes and
671 blockquotes that cross a page or column.
674 New argument to AUTOLEAD -- FACTOR. With FACTOR, you can, if you
675 wish, enter a factor by which AUTOLEAD multiplies the point size when
676 calculating lead automatically.
681 PAPER now has a much larger selection of common paper sizes.
683 \*[ALD], \*[RLD], \*[FP] and \*[BP] now accept increments of quarter
684 points (expressed as decimal fractions). \*[RLD1.75], for example,
685 reverses 1-3/4 points up on the line.
687 HEADER_SIZE now available to PRINTSTYLE TYPEWRITE. This was necessary
688 to deal with the problem of excessively long HEADER_LEFT, _CENTER or
694 T_MARGIN -- can be set before or after LS or AUTOLEAD
695 SS -- remains constant regardless of WS
696 WS -- no longer affects SS
697 TI -- now works as expected even when called while another indent
699 COLLATE -- small fixes
701 Broken .RW and .EW fixed.
703 String tabs now behave properly when set from within tabs.
705 UNDERLINE_QUOTES (for PRINTSTYLE TYPEWRITE) are now, in fact, on by
706 default as the docs state.