summaryrefslogtreecommitdiffstats
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--NEWS3594
1 files changed, 3594 insertions, 0 deletions
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..85b034b
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,3594 @@
+ Copyright (C) 1992-2023 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.
+
+This file describes recent user-visible changes in groff. Bug fixes are
+not described. There are more details in the man and info pages.
+
+VERSION 1.23.0
+==============
+
+troff
+-----
+
+o The `troffrc` file now loads an English localization file instead of
+ directly housing configuration parameters appropriate to the English
+ language. See "Macro Packages" below.
+
+o A new read-only register `.cp` is implemented. Within a `do` request,
+ "\n[.cp]" holds the saved value of compatibility mode. See
+ groff_diff(7) or the groff Texinfo manual for rationale, use case, and
+ example.
+
+o New read-only registers `.nm` and `.nn` are implemented. `.nm` is of
+ Boolean sense, reporting the enablement status of output line
+ numbering (caused by the `nm` request) irrespective of the temporary
+ suspension of numbering with the `nn` request. `.nn` holds the count
+ of numbered output lines still to have that numbering suppressed.
+ These registers were introduced because there was no way for the
+ formatter (and thus a document) to introspect their state, tbl(1)
+ needs to be able to do so, and the writable line number register `ln`
+ is not a reliable proxy for this information.
+
+o Type size escape sequences of the form "\sNN", where NN is in the
+ range 10-39, are now recognized only in compatibility mode ("groff
+ -C"); when encountered, an error diagnostic is emitted. Otherwise,
+ "\sN" is interpreted as setting the type size to the single-digit
+ value N (in scaled points), which ends the escape sequence. This
+ change eliminates a quirk in the language grammar that dates back to
+ the mid-1970s (AT&T troff by Ossanna) but was not documented in the
+ Troff User's Manual until 1992 when Kernighan updated CSTR #54 for
+ device-independent AT&T troff.
+
+ The form "\s(NN" is accepted for two-digit sizes in all known troffs.
+ The form "\s[NNN]" accepts a numeric expression of variable length; it
+ has been supported by groff since version 1.01 (March 1991) or
+ earlier, by Heirloom Doctools troff since its 2005-08-16 release, and
+ by neatroff, but not by Plan 9 troff. The form "\s'NNN'" is also
+ widely supported.
+
+ Summary: in your documents, rewrite escape sequences beginning with
+ "\s1", "\s2", or "\s3" in an unambiguous and portable form. For
+ instance, "\s36" can become any of:
+ \s(36
+ \s[36]
+ \s'36'
+ You can use
+ grep '\\s[123]'
+ to find instances in your documents.
+
+ Those who have changed the escape character with the `ec` request (an
+ advanced usage) are expected to be able to cope; ask the development
+ team for support if you need it.
+
+o New requests `soquiet` and `msoquiet` are available. They operate as
+ `so` and `mso`, respectively, except that they do not emit a warning
+ diagnostic if the file named in their argument does not exist.
+
+o New requests `stringdown` and `stringup` are available. These change
+ the string named in their argument by replacing each of its bytes with
+ its lowercase or uppercase version (if any), respectively. groff
+ special characters (see the groff_char(7) man page) in the string will
+ often transform in the expected way due to the regular naming
+ convention for accented letters. When they do not, use substrings
+ and/or catenation.
+
+o The `ab` request no longer writes "User Abort." to the standard error
+ stream if given no arguments.
+
+o The `fp` request no longer accepts file or font names with slashes in
+ them as arguments. All font description files are expected to be
+ accessible within the directory of the output device for which they
+ were prepared.
+
+nroff
+-----
+
+o The new option -P takes an argument to pass to the output driver
+ (always grotty(1)). "-P-i" directs the terminal device to display
+ real italic (oblique) characters instead of underlining: it is up to
+ your terminal (emulator) to support italics (xterm does since patch
+ #314 [2014-12-28]). "-P-h" can now be used instead of -h; the latter
+ may eventually be deprecated and repurposed.
+
+o The new option -V emits the constructed groff command that nroff would
+ run to standard output instead of executing it. Arguments to nroff
+ that contain shell metacharacters may not be sufficiently escaped for
+ the output of nroff -V to be copied and pasted to the shell prompt;
+ this is a historical deficiency of the Bourne shell family not yet
+ corrected by the POSIX standard.
+
+o nroff now recognizes the -b, -E, -k, -K, -R, and -z options and passes
+ them through to groff.
+
+o nroff now supports spaces and tabs between option flag letters and
+ arguments to options, like groff and troff themselves.
+
+groff
+-----
+
+o The -I option now implies -g (run the grn(1) preprocessor), and
+ supplies grn an -M option with the argument to -I.
+
+eqn
+---
+
+o The GNU extension
+
+ delim on
+
+ is now recognized even in AT&T compatibility mode (the -C option) in
+ order to reliably integrate with tbl. Few eqn documents are expected
+ to use 'o' and 'n' as left and right delimiters, respectively. If
+ yours does, consider swapping them, or select others.
+
+o The command-line option -D is no longer supported. It has been
+ undocumented, and issued a warning of its obsolescence upon use, for
+ 30 years, since groff 1.06 (September 1992).
+
+pic
+---
+
+o The token `.PY` is now recognized as a synonym of `.PF` to work around
+ a name space collision with the m (mm) macro package, which defines
+ `PF` as a page footer management macro. (This problem dates back at
+ least to Unix System V Release 2, 1983.) You should continue to use
+ `.PF` to end pictures with flyback unless a similar problem faces your
+ document.
+
+tbl
+---
+
+o GNU tbl now suspends output line numbering while formatting tables,
+ saving and restoring its status before and after each table region,
+ including the count of lines for which numbering is suppressed.
+ Historical tbl implementations did not, with bizarre consequences when
+ text blocks were used in tables.
+
+Macro packages
+--------------
+
+o mom version 2.5 is distributed with this release. New features
+ include shaded backgrounds, frames, and colored pages. Thanks to
+ Peter Schaffter.
+
+o English localization has been split into a dedicated macro file,
+ `en.tmac`, for better parallelism with other localization files and to
+ improve support for multilingual documents. Those who want a
+ different default input language should edit the troffrc file to
+ source the desired groff locale macro file (`cs.tmac`, `de.tmac`,
+ `den.tmac`, `fr.tmac`, `it.tmac`, `ja.tmac`, `sv.tmac`, or `zh.tmac`)
+ instead of `en.tmac`.
+
+ The default hyphenation mode (as given to the `hy` request) for users
+ of English has changed from "1", which was inappropriate for the
+ TeX-based hyphenation patterns groff has used since at least 1991, to
+ "4". However, invoking ".hy" without an argument remains synonymous
+ with ".hy 1".
+
+o The hyphenation patterns for English have been updated using the
+ `hyph-en-us.tex` patterns file from the TeX hyph-utf8 project. The
+ new patterns likely _will_ change the automatic hyphenation break
+ points of your English documents.
+
+o The `PDFPIC` macro (provided by the `pdfpic` package) no longer aborts
+ upon encountering trouble. Instead, it reports an error and abandons
+ processing of its argument(s). It is also more sensitive to other
+ kinds of problems and handles them the same way, by issuing a
+ diagnostic and returning. If you wish `PDFPIC` to abort document
+ processing immediately upon error, you can append an `ab` request to
+ the package's error-handling macro.
+
+ .am pdfpic@error
+ . ab
+ ..
+
+o The pspic package now also has an error hook macro, which you can use
+ to make failed image loads fatal (or attempt fallback or recovery).
+
+ .am pspic@error-hook
+ . ab
+ ..
+
+o The new rfc1345 macro package, contributed by Dorai Sitaram, defines
+ special character identifiers implementing RFC 1345 mnemonics (plus
+ some additions from Vim, which itself uses RFC 1345 for its digraphs).
+ It is documented in the groff_rfc1345(7) man page.
+
+o The new sboxes macro package, contributed by Deri James, offers a
+ simple interface to the new gropdf(1) "background" feature. Using it,
+ ms documents can draw colored rectangles beneath any groff output.
+ See "Using PDF boxes with groff and the ms macros", installed as
+ `msboxes.ms` and `msboxes.pdf` for instructions and a demonstration.
+
+o The an (man) and doc (mdoc) macro packages no longer remap the -, ',
+ and ` input characters to Basic Latin code points on UTF-8 devices,
+ but treat them as groff normally does (and AT&T troff before it did)
+ for typesetting devices, where they become the hyphen, apostrophe or
+ right single quotation mark, and left single quotation mark,
+ respectively. This change is expected to expose glyph usage errors in
+ man pages. See the "PROBLEMS" file for a recipe that will conceal
+ these errors. A better long-term approach is for man pages to adopt
+ correct input practices; the man pages groff_man_style(7),
+ groff_char(7), and man-pages(7) (subsection "Generating optimal
+ glyphs"; from the Linux man-pages project) contain such instructions.
+ Doing so also improves man page typography when formatting for PDF.
+
+ If you maintain a generator of man(7) or mdoc(7) documents (such as a
+ tool that converts other formats to them), and need assistance, please
+ contact the groff@gnu.org mailing list and describe your situation.
+
+o The an (man) macro package can now produce clickable hyperlinks within
+ terminal emulators, using the OSC 8 support added to grotty(1) (see
+ below). The groff man(7) extension macros `UR` and `MT`, present
+ since 2007, expose this feature. At present the feature is disabled
+ by default in `man.local` pending more widespread recognition of OSC 8
+ sequences in pager programs. The package now recognizes a `U`
+ register to enable hyperlinks in any output driver supporting them.
+
+ Use a command like
+ printf '\033]8;;man:grotty(1)\033\\grotty(1)\033]8;;\033\\\n' | more
+ to check your terminal and pager for OSC 8 support. If you see
+ "grotty(1)" and no additional garbage characters, then you may wish to
+ edit "man.local" to remove the lines that disable this feature.
+
+o The an (man) macro package supports a new macro, `MR`, intended for
+ use by man page cross references in preference to the font style
+ alternation macros historically used. Where before you would write
+ .BR ls (1).
+ or
+ .IR ls (1).
+ you should now write
+ .MR ls 1 .
+ (the third argument, typically used for trailing punctuation, is
+ optional). Because the macro semantically identifies a man page, it
+ can create a clickable hyperlink ("man:ls(1)" for the above example)
+ on supporting devices. Furthermore, a new string, `MF`, defines the
+ font to be used for setting the man page topic (the first argument to
+ `MR` and `TH`), permitting configuration by distributions, sites, and
+ users.
+
+ Inclusion of the `MR` macro was prompted by its introduction to
+ Plan 9 from User Space's troff in August 2020. Its purpose is to
+ ameliorate several long-standing problems with man page cross
+ references: (1) the package's lack of inherent hyperlink support for
+ them; (2) false-positive identification of strings resembling man page
+ cross references (as can happen with "exit(1)", "while(1)",
+ "sleep(5)", "time(0)" and others) by terminal emulators and other
+ programs; (3) the unwanted intrusion of hyphens into man page topics,
+ which frustrates copy-and-paste operations (this problem has always
+ been avoidable through use of the \% escape sequence, but cross
+ references are frequent in man pages and some page authors are
+ inexpert *roff users); and (4) deep divisions in man page maintenance
+ communities over which typeface should be used to set the man page
+ topic (italics, roman, or bold).
+
+o Part of the an (man) macro package has been renamed from "an-old.tmac"
+ to "an.tmac", replacing a file that sourced the "andoc.tmac" wrapper.
+ This means that the "-man" argument to groff (or nroff, or troff) will
+ no longer load the andoc wrapper, and not successfully format mdoc(7)
+ man pages. If you are not sure which macro package a given man page
+ uses, or you wish to batch-process a series of man pages written
+ variously in the man and mdoc formats, be sure to call the formatter
+ with the "-mandoc" option explicitly, as "-man" will no longer do
+ this. The man-db man(1) implementation has, since 2001, used
+ "-mandoc" preferentially if available when man-db is configured.
+
+o The an (man) and doc (mdoc) macro packages support a new `AD` string
+ to put the default adjustment mode under user control at rendering
+ time. The default is "b" (adjust lines to both margins) as has been
+ the Unix man(7) default since 1979.
+
+o The an (man) and doc (mdoc) macro packages support new `CS` and `CT`
+ registers to control rendering of man page section headings and topics
+ (seen in the page header), respectively, in full capitals. These
+ default off (with no visible effect on pages that already fully
+ capitalize such text in man page sources). The rationale is to
+ encourage man page authors to preserve case distinction information in
+ (or restore it to) their topics and section headings, while giving
+ users (including system administrators, distributors, integrators, and
+ maintainers of man(1) implementations) a way to view the rendered page
+ elements in full capitals if desired.
+
+o The an (man) macro package no longer honors an `ll` request to set the
+ line length on nroff devices prior to processing a man page. This was
+ deprecated in groff 1.18 (July 2002), and all known man program and
+ macro package implementations either have set an LL register since
+ 2002 (man-db man), 2005 (Brouwer/Lucifredi man), or don't let the user
+ vary the line length freely (DWB troff, Solaris troff, Plan 9 troff),
+ don't permit its configuation via the `ll` request (mandoc), or at all
+ (Heirloom Doctools troff).
+
+o The an (man) macro package now interprets the value of the `HY`
+ register as a Boolean; using it to set a specific hyphenation mode is
+ no longer supported. The groff command-line option `-rHY=0` continues
+ to disable automatic hyphenation of man page text as before.
+
+o The an (man) macro package's `TS` macro no longer inserts vertical
+ space. It was not documented to do so, but had since groff 1.18 (July
+ 2002). Man page authors may freely use paragraphing macros around
+ tables if vertical space is desired.
+
+o The an (man) macro package no longer attempts to detect misuse of the
+ `R` string as a macro. The `R` string itself is a legacy feature, not
+ required in modern man pages; see groff_man_style(7).
+
+o The groff_man(7) man page documenting the groff implementation of the
+ an (man) macro package has been split into two pages. The original
+ page remains as a terser reference for experienced users. A new page,
+ groff_man_style(7), is a tutorial and style guide containing the same
+ material supplemented with explanations, examples, and advice for the
+ reader who is not an expert in *roff systems or in writing man pages.
+
+o The doc (mdoc) macro package now honors the `C`, `FT`, `HY`, `IN`,
+ `P`, `SN`, and `X` registers and `HF` string as the an (man) package
+ does.
+
+o The doc (mdoc) macro package now renders man page (sub)section cross
+ references cited with the `Sx` macro by quoting them instead of
+ setting them in italics.
+
+o The e (me) macro package has changed its default line length on
+ typesetting devices from 6i to the output device's default (for
+ example, 6.5i on the 'ps' and 'pdf' devices). You can use
+ "papersize.tmac" to override this length, as in "groff -d paper=a4l"
+ to select A4 paper in landscape orientation, without needing to alter
+ the document.
+
+o The e (me) macro package has changed its support for output line
+ numbering with the `n1` and `n2` macros to resolve several bugs in the
+ previous implementation. The `n1` macro now accepts an optional `C`
+ argument to set the line number at the existing page offset instead of
+ reducing the page offset to make the line number appear in the left
+ margin. A second argument to the `n2` macro is no longer supported.
+ A new register `no` makes configurable the amount of horizontal space
+ to be used for the line number (the default is unchanged).
+
+o The e (me) macro package now uses strings `wa` and `wc` to store the
+ terms the package produces in chapter headings created by the `$c`
+ macro. The strings, which default to "Appendix" and "Chapter",
+ respectively, ease localization of the package and replacement of the
+ terms used without requiring the `$c` macro to be redefined.
+
+o The e (me) macro package has a new macro, `ld`, which "re-localizes
+ the date"; if you modify troff registers `dw`, `mo`, and `yr` (to
+ record a document's date of revision, for instance), call `ld`
+ afterward to update the package's `y2` and `y4` registers and the
+ localized strings `dw` and `mo` for the names of the weekday and
+ month. `ld` is also used internally to simplify the use of the
+ package with languages other than English; it thus updates the `wa`
+ and `wc` strings as well. If you want to customize these strings, do
+ so after any `ld` call you make.
+
+o The e (me) macro package now has a register `sx` that eases the
+ configuration of space added to the line height above/below when
+ super/subscripting is used. It defaults to 0.2m, the value used
+ literally in past definitions of the super/subscripting strings.
+ groff's own 'me' documents redefine it to zero.
+
+o The e (me) macro package's `$v` and `$V` registers have been renamed
+ to `tv` and `dv`--they control the vertical spacing used
+ for text and displays/annotations, respectively. The old names are
+ still supported as aliases. The new names reflect the fact that users
+ are expected to set them if desired, unlike other registers and
+ strings beginning with "$".
+
+o The e (me) and s (ms) macro packages now offer a `PF` macro,
+ supporting the pic(1) preprocessor's "flyback" feature. Thanks to
+ Dave Kemper.
+
+o The m (mm) and s (ms) macro packages no longer implement the `IX`
+ macro. This undocumented 4.2BSD ms extension was similarly
+ undocumented by groff mm and ms. No documents applying it are
+ attested. groff mm documents its own indexing feature, `INITI`. We
+ otherwise suggest makeindex(1), which supports troff and is available
+ with most TeX distributions, for your mm/ms document indexing needs.
+
+o The m (mm) macro package now adapts to the paper format selected when
+ the macro file "papersize.tmac" is used (by specifying the groff "-d
+ paper" command-line option). A consequence is that "groff -mm" and
+ "groff -d paper=letter -mm" are _not_ synonymous (when groff is
+ configured to use U.S. letter as the default paper format), because
+ groff mm(7) uses a page offset of 0.963 inches on typesetting devices
+ for compatibility with DWB mm. If the `W` or `O` registers are also
+ set on the command line, the line length and page offset,
+ respectively, are not overridden by "papersize.tmac".
+
+o The m (mm) macro package now recognizes a `V` register to set the
+ vertical spacing for the document. Like the existing `S`, it must be
+ set from the command line. Further, both registers are interpreted
+ correctly if suffixed with a scaling unit, instead of requiring an
+ unscaled value assumed to be points.
+
+o The m (mm) macro package now supports AT&T/DWB mm's `Sm` string.
+
+o The m (mm) macro package now requires a title to be declared when
+ memorandum type 5 is used (".MT 5"), just as type 4 has since groff
+ 1.10 (November 1995).
+
+o The m (mm) and s (ms) macro packages no longer manipulate the set of
+ enabled warning categories. If you want all warnings on, use the
+ `warn` request with no arguments in your document or pass "-w w" to
+ groff (see troff(1) or the groff Texinfo manual for more on warnings).
+
+o The m (mm) and s (ms) macro packages' `R` macros now work analogously
+ to their `B` and `I` macros instead of ignoring their arguments.
+
+o The m (mm) package now offers a `PY` macro, which serves the function
+ of `PF` (end pic(1) picture with flyback) from other macro packages.
+
+o The "ptx.tmac" macro file, a counterpart to the GNU coreutils ptx(1)
+ command for generating permuted indexes, is now installed. It has
+ long been part of the source distribution.
+
+o The s (ms) macro package now enables the formatter's "no-space mode"
+ after ending displays (`DE`), equations (`EN`), tables (`TS`), and
+ pictures without flyback (`PE`). This means that display distance
+ spacing (the `DD` register) overrides the spacing that may follow in a
+ subsequent paragraph, section heading, or display instead of
+ accumulating with that distance. This change is to make the behavior
+ of the package more predictable; you can fine-tune such spacing by
+ setting the `DD` register in desired places. It has also helped us to
+ improve groff ms's rendering of historical ms(7) documents such as
+ Kernighan & Cherry's "Typesetting Mathematics".
+
+o The s (ms) macro package supports a new string, `FR`, which defines
+ the ratio of the footnote line length to the current line length. The
+ default expression is "11/12", eleven twelfths of the normal line
+ length, adopted for better compatibility with ms documents prepared
+ with AT&T ms or its descendant implementations in Heirloom Doctools
+ and neatroff. This is a change from previous groff releases, which
+ used a ratio of five sixths.
+
+ You may wish to set the `FR` string to "1" to align with contemporary
+ typesetting practices. In Unix Version 7 ms, its descendants, and
+ groff prior to this release, an `FL` register was used for the line
+ length in footnotes; however, setting this register at document
+ initialization time had no effect on the footnote line length in
+ multi-column arrangements.
+
+ `FR` should be used in preference to the old `FL` register in
+ contemporary documents; see the groff Texinfo manual or the "Using
+ groff with the ms macros" document, also part of this release. Thanks
+ to T. Kurt Bond.
+
+o The s (ms) macro package has added strings, `<` and `>`, to perform
+ subscripting. They work analogously to the `{` and `}` superscripting
+ strings that have been present in groff ms since 1991 or earlier.
+
+o The s (ms) macro package has added a hook macro, `FS-MARK`, which is
+ called automatically by the `FS` macro (with the same arguments given
+ to `FS`) before any other footnote processing. It is empty by default
+ but can be defined by the user to, for example, place a hyperlink
+ anchor so that a link within a footnote can return to its referential
+ context. "Portable Document Format Publishing with GNU Troff",
+ distributed with groff as `pdfmark.ms`, uses this technique. Thanks
+ to Keith Marshall.
+
+o The s (ms) macro package's `RP` macro recognizes a new optional
+ argument, `no-renumber`, which suppresses the renumbering of the page
+ after the cover page as page 1. It furthermore recognizes the
+ optional argument `no-repeat-info`, which has the same effect as `no`;
+ the latter will continue to be supported for backward compatibility.
+ Optional arguments to `RP` can be given in any order.
+
+o The s (ms) macro package supports new macros `XN` and `XH` to ease the
+ input of numbered and unnumbered section headings, respectively. They
+ internally call the `XS` and `XE` macros to produce table of contents
+ entries, and lay a foundation for inclusion of PDF bookmarks, all
+ without requiring retyping of the heading text as the package
+ previously encouraged. Thanks to Keith Marshall.
+
+o The s (ms) macro package now uses a default line length of 6.5 inches
+ by default, resulting in 1-inch left and right margins. When the
+ "papersize.tmac" package is used by employing the "-d paper" groff(1)
+ option on typesetting devices, the default page offset and line length
+ are adjusted to maintain these margins.
+
+o The "a4.tmac" file has been dropped from the distribution. Its
+ successor, "papersize.tmac", has been present and documented for
+ nearly 20 years. See subsection "Paper format" of groff(1).
+
+o The "safer.tmac" file has been dropped from the distribution. It was
+ present only to support man(1) programs that unconditionally passed
+ the formatter the "-msafer" option, and had contained only comments
+ for over 20 years. If your man(1) program has this requirement, you
+ can create an empty file of this name in groff's macro file search
+ path (see troff(1)) or consider migrating to man-db man(1).
+
+Output drivers
+--------------
+
+o On output devices using the Latin-1 character encoding ("groff -T
+ latin1" and the X11 devices) the special character escape sequence
+ \[oq] (opening quote) is now rendered as code point 0x27 (apostrophe)
+ instead of 0x60 (grave accent). The ISO 8859/ECMA-94 Latin character
+ sets do not define any glyphs for directional ("typographer's")
+ quotation marks, but the apostrophe is depicted in the defining
+ standard as a neutral (vertical) glyph, whereas the grave accent 0x60
+ and acute accent 0xB4 are mirror-symmetric diacritical marks.
+
+ This change has no effect on _input_ conventions for roff source
+ documents. You can still get directional single quotes on UTF-8,
+ PostScript, PDF, and other output devices supporting them by typing
+ sequences like `this' in the input (character remapping with 'char'
+ requests and similar notwithstanding).
+
+gropdf
+------
+
+o A new device control command, "background", enables boxes to be drawn
+ underneath other page content. The boxes can be shaded with colors,
+ drawn with a colored border of configurable thickness, and interrupted
+ by page breaks with special support for breaking before footnotes and
+ similar material. For convenience, "pdf.tmac" exposes a new macro,
+ `pdfbackground`. Thanks to Deri James.
+
+grotty
+------
+
+o The "utf8" output device now maps the input characters '^' (caret,
+ circumflex accent, or "hat") and '~' (tilde) to U+02C6 (modifier
+ letter circumflex accent) and U+02DC (small tilde), respectively, for
+ consistency with groff's other output devices. This change is
+ expected to expose glyph usage errors in man pages. See the
+ "PROBLEMS" file for a recipe that will conceal these errors. A better
+ long-term approach is for man pages to adopt correct input practices;
+ the man pages groff_man_style(7), groff_char(7), and man-pages(7)
+ (subsection "Generating optimal glyphs"; from the Linux man-pages
+ project) contain such instructions. Doing so also improves man page
+ typography when formatting for PDF.
+
+ If you maintain a generator of man(7) or mdoc(7) documents (such as a
+ tool that converts other formats to them), and need assistance, please
+ contact the groff@gnu.org mailing list and describe your situation.
+
+o A new device control command, "link", generates OSC 8 hyperlinks.
+ This means that groff documents can produce clickable links in the
+ terminal window for emulators that support such escape sequences.
+
+o The "sgr" device control command, which dynamically configured support
+ for ISO 6429/ECMA-48 SGR escape sequences (and restored traditional
+ overstriking behavior if disabled), has been removed. It took effect
+ only at page boundaries. grotty's "-c" command-line option and the
+ GROFF_NO_SGR environment variable remain supported.
+
+Documentation
+-------------
+
+o groff's Texinfo manual is included in the distribution archive in
+ several formats, including GNU Info, HTML, TeX DVI, PDF, and plain
+ text. Many sections have been extensively revised and corrected, and
+ much material added to help the learner acquire the groff formatting
+ language (see, for instance, the section/node "Text").
+
+o A compilation of all of groff's man pages in PDF and UTF-8-encoded
+ text (with SGR escape sequences) is produced by the build. Many of
+ the documents in this 380+-page document have been heavily revised or
+ rewritten, including tbl(1), groff(1), groff_diff(7), groff_font(5),
+ groff(7), groff_char(7), and roff(7). The PDF version uses pdfmark
+ extensions to produce an internal bookmark for every man page
+ document, section heading, and subsection heading.
+
+o Larry Kollar's "Using groff with the ms Macro Package" has been
+ resurrected after 20+ years, revised, and updated.
+
+o Eric Allman's "me Reference Manual" has been revised in detail.
+
+Miscellaneous
+-------------
+
+o Because all generated forms of groff's Texinfo manual are now included
+ in the distribution archive, building from that archive no longer
+ depends on GNU Texinfo or a TeX installation (the latter was required
+ only for the "doc" target, which had to be explicitly named).
+
+o Building groff from its distribution archive no longer requires byacc
+ (or GNU Bison) to be installed.
+
+o m4 is now required to build. Any m4 that implements the features
+ documented in the Version 7 Unix m4(1) man page, and the `-D` option,
+ should suffice.
+
+o New 'configure' options '--{en,dis}able-groff-allocator' control
+ whether groff uses its own malloc/free-wrapping allocator to implement
+ all C++ new/delete operations. groff has used this allocator for over
+ 30 years; C++ implementations are more mature now. The default is now
+ to rely on C++ language runtime support for new/delete. When building
+ groff, use
+ configure --enable-groff-allocator
+ to re-enable groff's traditional allocator.
+
+o The 'configure' option '--with-appresdir' has been renamed to
+ '--with-appdefdir'.
+
+o Italian language input documents are now supported, including
+ hyphenation patterns from the hyph-utf8 project and localized strings
+ for the ms, me, mm, and mom packages. Thanks to Edmond Orignac.
+
+o Manual section titles for man pages (those that appear by default in
+ the page header, like "General Commands Manual") are now localized for
+ Czech, German, French, Italian, and Swedish.
+
+o The semantics of the environment variable SOURCE_DATE_EPOCH to groff,
+ support for which was added in 1.22.4, were not established at that
+ time with respect to time zone selection, prompting divergent
+ interpretations; Debian and distributions derived from it have for
+ several years patched groff to implicitly use UTC as the time zone
+ when interpreting the current time (or SOURCE_DATE_EPOCH) as a local
+ time. While a convenient and defensible choice for reproducible build
+ efforts, it runs against the grain of user expectations. Systems
+ programmers like time zone-invariant, monotonically increasing clocks;
+ the broader user base usually prefers a clock that follows an
+ applicable civil calendar. groff programs now reckon
+ SOURCE_DATE_EPOCH with respect to the local time zone. Users of
+ SOURCE_DATE_EPOCH may wish to also set the TZ environment variable.
+
+o xtotroff now supports a "-d" option to specify the directory in which
+ to generate font description files.
+
+o The 'configure' option '--with-doc' that was introduced in version
+ 1.22.3 has been deleted again. Its basic idea was misguided because
+ each of the documents is only available in a subset of the output
+ formats, so in contrast to the documentation, the option not only
+ affected which output formats were generated, but also restricted the
+ documentation content the user would get in erratic and surprising
+ ways. The option was also ill-designed insofar as the "examples"
+ keyword did not represent an output format. Some example files were
+ controlled by the "examples" keyword alone, some by the respective
+ format keywords alone, and some by a combination of both. The
+ implementation of the option was full of bugs, but few, if any, of
+ these bugs were ever reported by users, giving the impression that
+ few, if any, users ever attempted to use the option, and those who did
+ likely remained unaware that doing so deprived them of parts of the
+ content of the documentation. Experience has demonstrated that
+ properly maintaining and testing the option exceeds the amount of
+ effort the GNU troff team is able to invest. Finally, GNU standards
+ contain no recommendation to support this option, and indeed, few, if
+ any, GNU packages apart from groff support it.
+
+o The 'doc' Make target has been eliminated. 'all' (the default Make
+ target) assumes responsibility for generating the groff Texinfo manual
+ in all formats supported by the build host. This change is only
+ significant when building from a Git checkout or if our Texinfo
+ manual's sources are modified; the distribution archive now provides
+ copies of the manual in Info, plain text, HTML, DVI, and PDF.
+
+o afmtodit no longer writes file names with directory information in
+ them to the "name" directives of the font descriptions it generates.
+ (The `fp` request no longer accepts such names; see "troff" above.)
+
+o afmtodit now exits with status 2 (not 1) upon usage errors.
+
+o afmtodit now recognizes a '-w' option to specify the generated font
+ description's "spacewidth" parameter (see groff_font(5)). The
+ internal library "libgroff" now emits a diagnostic if a font
+ description file is missing such a directive. Adding this option
+ enables a well-formed font description to be produced by the tool
+ (without requiring editing by hand).
+
+o pfbtops now exits with status 2 upon usage errors and the standard C
+ library's `EXIT_FAILURE` status (usually 1) on operational failures
+ instead of vice versa.
+
+o groffer has been deleted from the distribution.
+
+o grog no longer supports the "--warnings" option; the one diagnostic
+ message that it enabled has been removed.
+
+o The ditroff(7) man page has been deleted. The "History" section of
+ roff(7) covers the same subject in greater depth.
+
+o The groff_filenames(5) man page has been deleted. It had inaccuracies
+ and spurious content. The "File name conventions" section of roff(7)
+ covers the same subject.
+
+o The lj4_font(5) man page has been deleted. Its content has moved into
+ the "Fonts" subsection of grolj4(1).
+
+
+VERSION 1.22.4
+==============
+
+Troff
+-----
+
+o The `hy' request has been extended. Value 16 enables hyphenation
+ before the last character, and value 32 enables hyphenation after the
+ first character.
+
+PDFPIC
+------
+
+o PDFPIC has been corrected so the behaviour is the same whether you use
+ the PostScript or PDF drivers. However, this means that any documents
+ which were written using the old behaviour will not be rendered
+ correctly if using the PDF driver with the new version.
+
+ The change would mean that documents which relied on the previous
+ behaviour are likely to have a gap underneath the image which was not
+ there before. If you see this effect there are three ways you can
+ restore the previous behaviour:
+
+ Add the line ".nr PDFPIC_NOSPACE 1" to the document before the first
+ call to .PDFPIC.
+
+ If it is just a single document which exhibits this behaviour you can
+ run groff adding "-rPDFPIC_NOSPACE=1" to the command line.
+
+ If you have many documents which rely on the previous behaviour you
+ can set an environment variable "export GROFF_PDFPIC_NOSPACE=1" which
+ will restore the previous behaviour for all runs.
+
+ This change has no effect if you were using .PDFPIC with the
+ PostScript driver--only if you used it with the PDF driver.
+
+Gropdf
+------
+
+o Type 1 font loading is fixed to handle newer Ghostscript versions.
+
+o Handling of glyphs above position 255 is improved to allow many more
+ glyphs to be used.
+
+o New macros .pdftransition and .pdfpause are introduced to allow
+ creation of presentation slides. Partially backward-compatible with
+ present.tmac, specifically the PAUSE, BLOCKS and BLOCKE commands.
+ Supports all the transition types introduced in PDF v1.5 (see the
+ gropdf man page).
+
+Miscellaneous
+-------------
+
+o A new 'configure' option --with-compatibility-wrappers controls how
+ groff compatibility wrappers for vendor-provided non-GNU macro sets
+ are installed (see ./configure --help).
+
+o eqn2graph, grap2graph, and pic2graph now attempt to adapt to very old
+ installed versions of the ImageMagick and GraphicsMagick programs
+ "convert". They search the output of convert's "-help" option, and
+ use "-trim" if that string is found; otherwise, the old "-crop 0x0"
+ method (which produces incompatible results on versions that _do_
+ support "-trim") is used. The programs emit a warning to standard
+ error if the search fails and the old method is used.
+
+o eqn2graph no longer supports the "-unsafe" option. It did nothing.
+
+o groffer now supports the output of XHTML. Use the "--xhtml" or
+ "--mode=xhtml" command-line options to generate it.
+
+o Much work has been done, and is ongoing, to make groff's man pages
+ better examples for man page writers to follow. groff_man(7) itself
+ has been expanded and largely rewritten to more precisely document the
+ macro package's behavior and to be more helpful and accessible to man
+ page writers who may never read any other groff documentation.
+
+
+VERSION 1.22.3
+==============
+
+Gxditview
+---------
+
+o X11 resources for `gxditview', which were previously installed in
+ /usr/X11/lib/X11/app-defaults no matter which `prefix' was set, are
+ now installed in appresdir=$prefix/lib/X11/app-defaults. If
+ `appresdir' is not a standard X11 resource directory, the environment
+ variable XFILESEARCHPATH should be set to this path. The standard
+ default directories depends on the system `libXt'. Common directories
+ include:
+
+ /usr/lib/X11/app-defaults
+ /usr/share/X11/app-defaults
+ /etc/X11/app-defaults
+
+ Note that if the option `--with-appresdir' is passed to `configure',
+ the `prefix' will not be added to `appresdir'.
+
+Glilypond
+---------
+
+o This new preprocessor (contributed by Bernd Warken) allows embedding
+ of code for GNU LilyPond (http://www.lilypond.org), a music
+ typesetter. The data gets automatically processed and embedded as EPS
+ images.
+
+Gperl
+-----
+
+o Bernd Warken contributed a new preprocessor to handle Perl code that
+ can be evaluated and then processed by groff.
+
+Gpinyin
+-------
+
+o Another preprocessor from Bernd Warken to pretty-print Pinyin
+ syllables like `guo2wang2' as `guówáng'.
+
+Pdfroff
+-------
+
+o The pdfroff utility script now activates its `--no-toc-relocation'
+ option by default, unless a request similar to:
+
+ .if !\n[PHASE] .tm pdfroff-option:set toc_relocation=enabled
+
+ is invoked during input file processing; (`.if !\n[PHASE] ...' ensures
+ that the effect of the `.tm' request is restricted to the document
+ setup phase of processing, as pdfroff sets it to 1 or 2 in the output
+ phase, but leaves it unset in the setup phase).
+
+ The bundled `spdf.tmac' macro package, which implicitly activates
+ `-mpdfmark' for `ms' macro users, ensures that TOC relocation is
+ appropriately enabled, when the `.TC' macro is invoked.
+
+Macro Packages
+--------------
+
+o New default values for hyphenation. The previous values were too
+ strict, suppressing some hyphenation points unnecessarily.
+
+o The -mom macro package now has full support for eqn, pic, and tbl, as
+ well as captioning and labelling of PDF images and preprocessor
+ output. Lists of Figures, Equations, and Tables can now be
+ autogenerated. PDF_IMAGE has a new FRAME option.
+
+o A French introduction to the -me macro package has been added (file
+ `meintro_fr.me').
+
+o In -mdoc, command %C is now available, providing a city or place
+ reference.
+
+
+VERSION 1.22.2
+==============
+
+Tbl
+---
+
+o The character `#' can now be used as an eqn delimiter within tables.
+
+Eqn
+---
+
+o A GNU extension
+
+ delim on
+
+ has been added to reactivate delimiters which have been disabled with
+ `delim off'.
+
+
+VERSION 1.22.1
+==============
+
+(There was no release 1.22.)
+
+Groff
+-----
+
+o A new option `-j' has been added to call the `chem' preprocessor.
+
+Tbl
+---
+
+o Improved line numbering support.
+
+Macro Packages
+--------------
+
+o Support for the `refer' preprocessor has been added to the -mm macro
+ package.
+
+o In -me, the `TH' macro was changed for compatibility with line number
+ support in tables.
+
+ `bl' now works inside of blocks.
+
+ The behaviour of centered blocks has been improved.
+
+ Line numbering support has been improved.
+
+o The -mom macro package has reached version 2.0, focusing on PDF output
+ with gropdf (using the new `pdfmom' wrapper script). See the file
+ `version-2.html' of the -mom documentation for a list of the many
+ changes.
+
+o Some generic Unicode fallback characters (mainly Roman numerals) have
+ been added.
+
+Gropdf
+------
+
+o A new driver for generating PDF output directly, contributed by Deri
+ James <deri@chuzzlewit.myzen.co.uk>. Note that this driver is written
+ in Perl, thus you need a working Perl installation to run this output
+ device.
+
+Pdfmom
+------
+
+o A new wrapper around groff that facilitates the production of PDF
+ documents from files formatted with the -mom macros.
+
+
+VERSION 1.21
+============
+
+Troff
+-----
+
+o The new `lsm' request specifies a macro to be invoked when leading
+ spaces in an input line are encountered (which are removed then).
+ Number registers `lsn' and `lss' hold the number of removed leading
+ spaces and the corresponding horizontal space, respectively.
+
+o There is a new warning category `file', enabled by default. The `mso'
+ request emits warnings in this category when the requested macro file
+ does not exist.
+
+o The new `class' request assigns a short name to a set of characters
+ which can be referred to in the `cflags' request. This is especially
+ useful to control line-breaking and hyphenation rules in CJK
+ languages.
+
+o Three new values for the `cflags' request have been added, which are
+ needed for proper CJK support.
+
+ 128 prohibit before but allow break after character
+ 256 prohibit after but allow break before character
+ 512 allow break before and after character
+
+Tbl
+---
+
+o A new global option `nowarn' suppresses warnings if tables are longer
+ than the current line width.
+
+Afmtodit
+--------
+
+o New option `-o' to specify the name of the output file.
+
+Macro Packages
+--------------
+
+o A new macro `%U' has been added to the mdoc package to indicate a URL
+ reference within an .Rs/.Re environment.
+
+o Rudimentary support for the Japanese script has been added, most
+ suitable for man page handling as output by grotty. The file
+ `ja.tmac' contains the necessary setup to allow line breaks before and
+ after CJK characters (with proper exceptions). Note, however, that no
+ inter-character spacing is implemented yet -- this usually causes many
+ warnings about bad line breaks.
+
+
+VERSION 1.20.1
+==============
+
+A packaging error made it necessary to publish this release. No
+user-visible changes.
+
+
+VERSION 1.20
+============
+
+Groff
+-----
+
+o XHTML support has been added to grohtml and can be specified by
+ -Txhtml. This option also utilizes the MathML capability of eqn and
+ combines the outputs of both in the final XHTML file. Users can also
+ specify the `-P-V' option together with `-Txhtml' in groff. This has
+ the effect of creating an XHTML validator button at the bottom of each
+ page.
+
+o Some options have been added to control a new preprocessor,
+ `preconv' (see below): `-k' activates it, `-K' sets the input
+ encoding, and `-D' sets the default encoding.
+
+o A new environment variable `GROFF_ENCODING' sets the encoding of input
+ files; it implies command option `-k'.
+
+Troff
+-----
+
+o Two new requests `device' and `devicem' have been added which are
+ equivalents to the \X and \Y escapes, respectively.
+
+o A new read-only number register `.br' is available which is set to 1
+ if a macro is called as .foo and to 0 if called as 'foo. This allows
+ to reliably modify requests.
+
+ .als bp@orig bp
+ .de bp
+ . tm before bp
+ . ie \\n[.br] .bp@orig
+ . el 'bp@orig
+ . tm after bp
+ ..
+
+o A new request `fzoom' has been added to adjust the optical size of a
+ font in relation to the others. The zoom factor is given in integer
+ multiples of 1/1000th. In the following example, the CR font is
+ magnified by 10% (the zoom factor is 1.1).
+
+ .fam P
+ .fzoom CR 1100
+ .ps 12
+ Palatino and \f[CR]Courier\f[]
+
+ The new number register `.zoom' holds the zoom value of the current
+ font, in multiples of 1/1000th.
+
+o The `cflags' request has been extended with a new flag value 64, to be
+ used in combination with values 2 (break before character) and 4
+ (break after character). If set, the hyphenation codes of the
+ surrounding characters are ignored.
+
+o A new debugging request, `pev', has been added to print all of the
+ current known environments to stderr. It first prints the state of
+ the current environment, then iterates through all of the known
+ environments, printing each except the one that is current.
+
+o A new escape `\$^' has been added. It represents the parameters of a
+ macro as if they were an argument to the `ds' request. This is used
+ by `trace.tmac'.
+
+o A new read-only number register `.O' is available which returns the
+ current suppression level as set by the `\O' escape.
+
+o The space width emitted by the `\|' and `\^' escape sequences can be
+ controlled on a per-font basis. If there is a glyph named `\|' or
+ `\^', respectively (note the leading backslash), defined in the
+ current font file, use this glyph's width instead of the default
+ value.
+
+ This behaviour is not new, but hasn't been documented before.
+
+Nroff
+-----
+
+o Two new command line options `-w' and `-W' are accepted and passed to
+ groff to enable and disable warning messages, respectively.
+
+Preconv
+-------
+
+o This is a new preprocessor to convert various input encodings to
+ something groff understands (this is, ASCII and \[uXXXX] entities,
+ with `XXXX' a hexadecimal number with 4 to 6 digits, representing a
+ Unicode input code). Normally, preconv should be invoked with options
+ `-k' and `-K' of groff. See the preconv man page for details.
+
+Pic
+---
+
+o int(x) now really behaves as documented: It truncates the non-integer
+ part of x, this is, it rounds towards zero and not towards the next
+ integer less than or equal to x.
+
+o Pic now supports up to 32 macro arguments (and up to 16 on EBCDIC
+ platforms).
+
+o Heinz-Jürgen Örtel contributed code for two new keywords, `xslanted'
+ and `yslanted', which can change the shape of boxes into arbitrary
+ parallelograms.
+
+Tbl
+---
+
+o Latest versions of DWB tbl introduced an `x' column specifier for a
+ single column expanded to the line width. GNU tbl has now been
+ extended to support even multiple `x' specifiers within a table.
+
+o To avoid collision with the new `x' specifier, a block formatting
+ macro must now be selected with specifier letter `m'.
+
+Eqn
+---
+
+o Eric S. Raymond has added a new device type to eqn, MathML. When
+ -TMathML is enabled, eqn now emits MathML formula markup rather than
+ groff commands. The new groff -Txhtml device uses this.
+
+Chem
+----
+
+o The preprocessor `chem' was added. `chem' is a roff language to
+ generate chemical structure diagrams. It generates `pic' output.
+
+Grops
+-----
+
+o The PS font definition files have been regenerated with newer AFM
+ versions from Adobe's 35 core fonts as present in most Level 2 PS
+ printers. The changes are minor (most notably, the addition of the
+ `Euro' glyph and an extended set of kerning values).
+
+ For backwards compatibility, the old set of font definition files is
+ still available; for details please read the man page of grops.
+
+Grotty
+------
+
+o \D'p...' is now supported if the polygon consists entirely of
+ horizontal and vertical lines.
+
+Grohtml
+-------
+
+o XHTML support has been added.
+
+o New command line option `-V' (to be used in XHTML mode) to produce an
+ XHTML validator button.
+
+o New command line option `-y' to produce a right-justified groff
+ signature at the end of the document (in combination with option
+ `-V').
+
+Gxditview
+---------
+
+o Support for keyboard navigation has been improved.
+
+o Similar to other X11 applications, there are now two resource files,
+ `GXditview' and `GXditview-color'.
+
+Groffer
+-------
+
+o `groffer' version 1.* exists now in a shell and a Perl version.
+
+Afmtodit
+--------
+
+o New option `-c' to output more font information as comments.
+
+o New option `-k' to suppress output of kerning data.
+
+o New option `-f NAME' to set the internal name of the groff font.
+
+Macro Packages
+--------------
+
+o Joachim Walsdorff contributed the `hdtbl' package for the generation
+ of tables, using a syntax very similar to the HTML table model. For
+ example, a table with two cells and two rows looks like this:
+
+ .TBL cols=2
+ . TR .TD 1*1 .TD 1*2
+ . TR .TD 2*1 .TD 2*2
+ .ETB
+
+ Here the same table using a more expanded syntax:
+
+ .TBL cols=2
+ . TR
+ . TD 1*1
+ . TD 1*2
+ . TR
+ . TD 2*1
+ . TD 2*2
+ .ETB
+
+ Tables can be nested; `hdtbl' works without a preprocessor so that the
+ full capability of groff's macro engine is available.
+
+ This package currently works with `-Tps' only.
+
+o -mandoc now supports multiple man pages (in either man or mdoc
+ format).
+
+o Fabrice Ménard contributed locales support. In particular, it is now
+ possible to get French localization of the main macro packages (-ms,
+ -mm, -me, and -mom, but not -man and -mdoc which are localized
+ differently) by appending `-mfr' to the list of macro packages.
+ Example:
+
+ groff -ms -mfr foo > foo.ps
+
+ Note that latin-9 input encoding is used for French (to support the
+ `oe' ligature).
+
+o Swedish macro localization (with `-msv') has been added.
+
+o German macro localization (with `-mde' and `-mden' for traditional and
+ new orthography, respectively) has been added.
+
+o Czech macro localization (with `-mcs') has been added.
+
+ Note that latin-2 input encoding is used for Czech.
+
+o A new macro `Dx' has been added to the mdoc package which identifies
+ the DragonFly OS.
+
+o If mdoc is used to print multiple man pages (together with the -rcR=0
+ command line option), each man page now starts a new page.
+
+o -mtrace has been considerably improved, now showing number and string
+ register assignments, among other things. See the groff_trace man
+ page for details.
+
+o The PSPIC macro now works with all devices (producing a hollow
+ rectangle on devices which don't support inclusion of PS images) and
+ is loaded in troffrc at start-up.
+
+o A new auxiliary macro package `62bit' has been added which provides
+ some macros for adding, multiplying, and dividing signed 62bit
+ integers (mainly to handle normal groff number operations without
+ risking overflow errors).
+
+o For -ms, Eric S. Raymond contributed support for ancient Bell Labs
+ localisms `.SC', `.UC', `.P1', and `.P2'. The latter three are
+ enabled only after .SC is called.
+
+o A new string, `SN-STYLE', has been added to the ms macros, controlling
+ the formatting of section numbers in headings defined by `.NH'.
+
+o The new macro package `ptx' provides a template definition for the
+ `.xx' macro as needed by GNU ptx (for creating permuted indices).
+
+
+VERSION 1.19.2
+==============
+
+Troff
+-----
+
+o Analogously to the .ft and \f pair, two new requests `gcolor' and
+ `fcolor' (which pair with \m and \M, respectively) have been added to
+ set the glyph and background colours.
+
+o A new read-only, string-valued register `.sty' returns the name of the
+ current style.
+
+o Two new conditional operators `F <name>' and `S <name>' have been
+ added. `F' is true if a font <name> exists. `S' is true if a style
+ <name> has been registered.
+
+o Cyrillic characters have been added to the `utf8' and `html' output
+ devices.
+
+Pic
+---
+
+o The `by' argument in a `for' loop can now be negative if it is
+ additive. For the multiplicative case, it must be greater than zero.
+
+Eqn
+---
+
+o The following keywords aren't new but haven't been documented
+ previously:
+
+ undef NAME (to undefine a macro)
+ copy "FILE" (a synonym for `include')
+ space n (to modify the vertical spacing before and after
+ an equation)
+
+o The following macros aren't new but haven't been documented
+ previously:
+
+ Alpha, ..., Omega (the same as `ALPHA', ..., `OMEGA')
+ ldots (three dots on the baseline)
+ dollar (a dollar glyph)
+
+o The following keywords have been extended. Again, this isn't new but
+ hasn't been documented previously:
+
+ col n { ... }
+ lcol n { ... }
+ rcol n { ... }
+ ccol n { ... }
+ pile n { ... }
+ lpile n { ... }
+ rpile n { ... }
+ cpile n { ... } (set vertical spacing between rows to N)
+
+Grohtml
+-------
+
+o This device driver has been raised to beta stage; its set of tags
+ should be stable now.
+
+o New command line option `-s' to set the base point size.
+
+o New command line option `-S' to set the split level while generating
+ multiple files.
+
+Grotty
+------
+
+o Experimental support for zero-width and double-width characters.
+
+Gxditview
+---------
+
+o On platforms which have the X Window System this program is now built
+ and installed automatically.
+
+Xtotroff
+--------
+
+o This program to create font definition files for xditview isn't new
+ but hasn't been installed previously.
+
+Groffer
+-------
+
+o A security problem (reported as CAN-2004-0969) has been fixed.
+
+Gdiffmk
+-------
+
+o A new script contributed by Mike Bianchi. It compares two groff,
+ nroff, or troff documents and creates an output with added margin
+ characters (using `.mc') to indicate the differences.
+
+Pdfroff
+-------
+
+o A new wrapper script contributed by Keith Marshall to easily create
+ PDF documents with groff.
+
+Macro packages
+--------------
+
+o ms.tmac
+
+ . Support for fractional point sizes: A value for the `PS', `VS',
+ `FPS', and `VPS' register larger than or equal to 1000 is always
+ divided by 1000. For example, `.nr PS 10250' sets the document's
+ font size to 10.25 points.
+
+ . The `Ds' and `De' macros provided in ms since groff version 1.19
+ have been removed; the equivalent `DS' and `DE' macros should be
+ used instead. X11 documents which actually use `Ds' and `De' always
+ load a specific macro file from the X11 distribution (`macros.t')
+ which provides proper definitions for the two macros.
+
+ . The following registers have been added for improving layout
+ control:
+
+ PORPHANS
+ Defines number of lines following `LP', `PP', `QP', `IP' or `XP'
+ which must be kept together, before any automatic page break.
+
+ HORPHANS
+ Sets number of lines of following paragraph which must be kept
+ with a heading, defined by `NH' or `SH', before any automatic page
+ break.
+
+ GROWPS
+ Sets the first level of heading (set with `NH') which keeps the
+ same point size as body text.
+
+ PSINCR
+ Sets the point size increment for each level of heading (set with
+ `NH'), below the threshold level set by `GROWPS'; e.g., if
+ \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p, then `.NH 1'
+ produces 14pt headings, `.NH 2' produces 12pt, and all other
+ levels remain at 10pt (because \n[PS] = 10).
+
+ . The `SH' macro now accepts a numeric argument, to make heading size
+ match that of `NH' with same argument value when the
+ `GROWPS'/`PSINCR' feature is enabled.
+
+ Please refer to the documentation of the ms package for other, minor
+ improvements.
+
+o me.tmac
+
+ The section type set with the `++' request is available in the `_M'
+ register. This isn't new but hasn't been documented before.
+
+o www.tmac
+
+ The `HR' macro no longer causes an empty line for non-HTML devices.
+
+ A new macro `HEAD' has been added to directly add data to the
+ <head>...</head> block.
+
+ New macros `OLS' and `OLE' to start and end an ordered list.
+
+ New macros `DLS' and `DLE' to start and end a definition list.
+
+Pdfmark
+-------
+
+o A new macro package contributed by Keith Marshall which implements PDF
+ marks. This is in alpha stage currently.
+
+Miscellaneous
+-------------
+
+o Two new keywords to the DESC file have been added which are needed for
+ grohtml: `image_generator' and `unscaled_charwidths'. The former
+ gives the name of the program which creates PNG images, and the latter
+ makes troff always use unscaled character widths.
+
+
+VERSION 1.19.1
+==============
+
+Groff
+-----
+
+o The argument of the command line option `-I' is now also passed to
+ troff and grops, specifying a directory to search for files on the
+ command line, files named in `so' and `psbb' requests, and files named
+ in \X'ps: file' and \X'ps: import' escapes.
+
+o If option `-V' is used more than once, the commands are both printed
+ on standard error and run.
+
+Troff
+-----
+
+o Two new read-only, string-valued registers `.m' and `.M' return the
+ name of the current drawing and background color, respectively.
+
+o New read-only register `.U' which is set to 1 if in unsafe mode, and 0
+ otherwise.
+
+o An input encoding file for latin-5 (a.k.a. ISO 8859-9) has been added.
+ Example use:
+
+ groff -Tdvi -mlatin5 my_file > my_file.dvi
+
+ Note that some output devices don't support all glyphs of this
+ encoding.
+
+o If the `return' request is called with an argument, it exits twice,
+ namely the current macro and the macro one level higher. This is used
+ to define a wrapper macro for `return' in trace.tmac.
+
+o For completeness, two new requests have been added: `dei1' and `ami1'.
+ They are equivalent to `dei' and `ami', respectively, but the macros
+ are executed with compatibility mode off (similar to `de1' and `am1').
+
+o New command line option `-I' to specify a directory for files (both
+ those on the command line and those named in `psbb' requests). This
+ is also handled by the groff wrapper program.
+
+o Since version 1.19 you can say `.vs 0'. Older versions emit a warning
+ and convert this to `.vs \n[.V]'.
+
+ This hasn't been documented properly. Note that `.vs 0' isn't saved
+ in a diversion since it doesn't result in vertical motion.
+
+Pic
+---
+
+o Dashed and dotted ellipses have been implemented.
+
+Tbl
+---
+
+o New specifier `x' to make tbl call a user-defined macro on a table
+ cell. Patch by Heinz-Jürgen Oertel <hj.oertel@surfeu.de>.
+
+Grap2graph
+----------
+
+o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It
+ converts a grap diagram into a cropped image. Since it uses gs and
+ the PNM library, virtually all graphics formats are available for
+ output. [Note that the grap program itself isn't part of the groff
+ package; see the file MORE.STUFF how to obtain grap.]
+
+Grohtml
+-------
+
+o New option `-j' to emit output split into multiple files.
+
+Grops
+-----
+
+o New command line option `-I' to specify a directory to search for
+ files on the command line and files named in \X'ps: import' and \X'ps:
+ file' escapes. This is also handled by the groff wrapper program.
+
+o The default value for the `broken' keyword in the DESC file is now 0.
+
+Grolj4
+------
+
+o A new man page `lj4_font(5)' documents how fonts are accessed with
+ grolj4.
+
+o The built-in fonts for LJ4 and newer PCL 5 devices have been
+ completely revised, mainly to access as much glyphs as possible. The
+ provided metric files should be compatible with recent PCL 5 printers
+ also. Additionally, font description files have been added for the
+ Arial and Times New Roman family, the MS symbol, and Wingdings fonts.
+
+Afmtodit
+--------
+
+o New option `-x' to prevent use of built-in Adobe Glyph List.
+
+Hpftodit
+--------
+
+o Completely revised to handle HP TrueType metric files also. See the
+ hpftodit manual page for more details.
+
+Groffer
+-------
+
+o This version is a rewrite of groffer in many parts, but it is kept in
+ the old single script style.
+
+ New options: --text, --mode text, --tty-viewer, --X, --mode X,
+ --X-viewer, --html, --mode html, --html-view, --apropos-data,
+ --apropos-devel, --apropos-progs.
+
+ New documentation file: README_SH.
+
+ Enhancement of the configuration files and the `apropos' handling.
+
+Macro Packages
+--------------
+
+o www.tmac: New macro `JOBNAME' to split output into multiple files.
+
+o In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
+ section.
+
+
+VERSION 1.19
+============
+
+Troff
+-----
+
+o Input encoding files for latin-9 (a.k.a. latin-0 and ISO 8859-15) and
+ latin-2 (ISO 8859-2) have been added. Example use:
+
+ groff -Tdvi -mlatin9 my_file > my_file.dvi
+
+ You still need proper fonts with the necessary glyphs. Out of the
+ box, the groff package supports latin-9 only for -Tps, -Tdvi, and
+ -Tutf8, and latin-2 only for -Tdvi and -Tutf8.
+
+o Composite glyphs are now supported. To do this, a subset of the Adobe
+ Glyph List (AGL) Algorithm as described in
+
+ http://partners.adobe.com/public/developer/opentype/index_glyph.html
+
+ is used to construct glyph names based on Unicode character codes.
+ The existing groff glyph names are frozen; no glyph names which can't
+ be constructed algorithmically will be added in the future.
+
+ The \[...] escape sequence has been extended to specify multiple glyph
+ components. Example:
+
+ \[A ho]
+
+ this accesses a glyph with the name `u0041_0328'.
+
+ Some groff glyphs which are useful as composites map to `wrong'
+ Unicode code points. For example, `ho' maps to U+02DB which is a
+ spacing ogonek, whereas a non-spacing ogonek U+0328 is needed for
+ composite glyphs. The new request
+
+ .composite from to
+
+ changes the mapping while a composite glyph name is constructed.
+ To make \[A ho] yield the expected result,
+
+ .composite ho u0328
+
+ is needed. [The new file `composite.tmac' loaded at start-up already
+ contains proper calls to `.composite'.]
+
+ Please refer to the info pages of groff and to the groff_char man page
+ for more details.
+
+o A new request `fschar' has been added to define font-specific fallback
+ characters. They are searched after the list of fonts declared with
+ the `fspecial' request but before the list of fonts declared with
+ `special'.
+
+o Fallback characters defined with `fschar' can be removed with the
+ new `rfschar' request.
+
+o A new request `schar' has been added to define global fallback
+ characters. They are searched after the list of fonts declared with
+ the `special' request but before the already mounted special fonts.
+
+o In groff versions 1.18 and 1.18.1, \D'f ...' didn't move the current
+ point horizontally. Despite of being silly, this change has been
+ reverted for backwards compatibility. Consequently, the intermediate
+ output command `Df' also moves the position horizontally again.
+
+ \D'f ...' is deprecated since it depends on the horizontal motion
+ quantum of the output device (given with the `hor' parameter in the
+ DESC file). Use the new \D'Fg ...' escape instead.
+
+o For orthogonality, new \D subcommands to change the fill color are
+ available:
+
+ \D'Fr ...' (rgb)
+ \D'Fc ...' (cmy)
+ \D'Fg ...' (gray)
+ \D'Fk ...' (cmyk)
+ \D'Fd' (default color)
+
+ The arguments are the same as with the `defcolor' request. The
+ current position is *not* changed.
+
+o The values set with \H and \S are now available in number registers
+ \n[.height] and \n[.slant], respectively.
+
+o The `.pe' number register isn't new but hasn't been documented before.
+ It is set to 1 during a page ejection caused by the `bp' request.
+
+o The new glyph symbol `tno' is a textual variant of `no'.
+
+o The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON
+ SYMBOL. (Well, it is not really new since it has been previously
+ supported by grolj4.) The mapping for both the dvi and lj4 symbol
+ font has been changed accordingly so that Greek small letter epsilon,
+ `*e', has the same glyph shape as with other devices.
+
+Grops
+-----
+
+o The font `freeeuro.pfa' has been added to provide various default
+ glyph shapes for `eu' and `Eu'.
+
+o It is now possible to access all glyphs in a Type 1 font, not only 256
+ (provided the font file created by afmtodit has proper entries).
+ grops constructs additional encoding vectors on the fly if necessary.
+
+o The paper size is now emitted via the %%DocumentMedia and PageSize
+ mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
+ about the paper size. The `broken' flag value 16 omits this feature
+ (the used PostScript command `setpagedevice' is a LanguageLevel 2
+ extension) -- if you intend to further process grops output to get an
+ encapsulated PS (EPS) file you must also use this option.
+
+ Patch by Egil Kvaleberg <egil@kvaleberg.no>.
+
+o Non-slanted PostScript metrics have been changed again; they no longer
+ contain negative left italic correction values. This assures correct
+ spacing with eqn.
+
+Grodvi
+------
+
+o The font cmtex10 has been added as the special font `SC' to the DVI
+ fonts. It is used as a font-specific special font for CW and CWI.
+
+o New options -l and -p to set landscape orientation and the paper size.
+ grodvi now emits a `papersize' special which is understood by DVI
+ drivers like dvips.
+
+ Consequently, the DESC file should contain a `papersize' keyword.
+
+o The glyph shapes for \[*f] and \[*e] have been exchanged with \[+f]
+ and \[+e], respectively, to be in sync with all other devices.
+
+o Glyphs \[HE] and \[DI] have been replaced with \[u2662] and \[u2661],
+ respectively, since the former two glyphs have a black (filled) shape
+ which grodvi doesn't provide by default (it never has actually).
+
+Grolj4
+------
+
+o The glyphs \[*e] and \[+e] have been exchanged to be in sync with all
+ other devices.
+
+o The glyph \[~=] is now called \[|=]. Similar to other devices, \[~=]
+ is now another name for glyph \[~~].
+
+Grotty
+------
+
+o New option `-r'. It is similar to the -i option except it tells
+ grotty to use the `reverse video' attribute to render italic fonts.
+
+Pic
+---
+
+o New command `figname' to set the name of a picture's output box in TeX
+ mode.
+
+Refer
+-----
+
+o The environment variable `REFER' to override the name of the default
+ database isn't new but hasn't been documented before.
+
+Soelim
+------
+
+o New option `-r' to avoid emission of `.lf' lines.
+
+o New option `-t' to emit TeX comment lines (giving current file and the
+ line number) instead of `.lf' lines.
+
+Afmtodit
+--------
+
+o Unencoded glyphs in an AFM file are output also (since grops can now
+ emit multiple encoding vectors for a single font).
+
+o New option `-m' to prevent negative left italic correction values.
+
+o The mapping and encoding file together with file `DESC' are now
+ searched in the default font directory also. Please refer to the man
+ page of afmtodit for more details.
+
+Macro Packages
+--------------
+
+o Larry Kollar <kollar@alltel.net> and others made the man macros more
+ customizable.
+
+ . New command line options -rFT, -rIN, and -rSN to set the vertical
+ location of the footer line, the body text indentation, and the
+ sub-subheading indentation.
+
+ . New command line option -rHY (similar to the ms macros) to control
+ hyphenation.
+
+ . New macros `.PT' and `.BT' to print the header and footer strings.
+ They can be replaced with a customized version in `man.local'.
+
+ . The string `HF' now holds the typeface to print headings and
+ subheadings.
+
+ . Similar to the ms macros, the LT register now defaults to LL if not
+ explicitly specified on the command line.
+
+o troff's start-up file `troffrc' now includes `papersize.tmac' to set
+ the paper size with the command line option `-dpaper=<size>'.
+
+ Possible values for `<size>' are the same as the predefined
+ `papersize' values in the DESC file (only lowercase; see the
+ groff_font man page) except a7-d7. An appended `l' (ell) character
+ denotes landscape orientation. Examples: `a4', `c3l', `letterl'.
+
+ Most output drivers need additional command line switches `-p' and
+ `-l' to override the default paper length and orientation as set in
+ the driver specific DESC file.
+
+ For example, use the following for PS output on A4 paper in landscape
+ orientation:
+
+ groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
+
+
+VERSION 1.18.1
+==============
+
+Troff
+-----
+
+o The non-slanted PostScript font definition files have been regenerated
+ to include left and right italic correction values. Applying those to
+ a glyph (this is, prepending the glyph with `\,' and appending `\/' to
+ the glyph) sets the glyph width to the real value given by the
+ horizontal bounding box values. Without those escapes, the advance
+ width for the particular glyph is used (which can differ
+ considerably).
+
+ Most users will neither need this feature nor notice a difference in
+ existing documents (provided \, and \/ is used as advertised, namely
+ for italic fonts only); its main goal is to improve image generation
+ with grohtml.
+
+ This is an experimental change, and feedback is welcome.
+
+Tbl
+---
+
+o Added global option `nospaces' to ignore leading and trailing spaces
+ in data items.
+
+Grolbp
+------
+
+o The option -w (--linewidth) has been added (similar to other device
+ drivers) to set the default line width.
+
+Grn
+---
+
+o Support for b-spline and Bezier curves has been added.
+
+Groffer
+-------
+
+o New option `--shell' to select the shell under which groffer shall
+ run.
+
+Macro Packages
+--------------
+
+o The string `Am' (producing an ampersand) has been added to mdoc for
+ compatibility with NetBSD.
+
+o `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
+ instead.
+
+o In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with
+ horizontal and vertical movements; please refer to contrib/mom/NEWS
+ for more details.
+
+o New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
+
+Miscellaneous
+-------------
+
+o The `papersize' keyword in the DESC file now accepts multiple
+ arguments. It is scanned from left to the right, and the first valid
+ argument is used. This makes it possible to provide a fallback paper
+ size.
+
+ Example:
+
+ papersize /etc/papersize a4
+
+o A local font directory has been prepended to the default font path; it
+ defaults to /usr/local/share/groff/site-font. Similar to the normal
+ font searching process, files must be placed into a devXXX
+ subdirectory, e.g.
+
+ /usr/local/share/groff/site-font/devps/FOO
+
+ for a PostScript font definition file FOO.
+
+
+VERSION 1.18
+============
+
+************************************************************************
+ PLEASE READ THE CHANGES BELOW REGARDING GROTTY, GROFF'S TTY FRONTEND.
+************************************************************************
+
+Troff
+-----
+
+o Color support has been added to troff and pic (and to the device
+ drivers grops, grodvi, grotty, and grohtml -- other preprocessors and
+ drivers will follow). A new function `defcolor' defines colors; the
+ escape sequence `\m' sets the drawing color, the escape sequence `\M'
+ specifies the background color for closed objects created with \D'...'
+ commands. `\m[]' and `\M[]' switch back to the previous color. `\m'
+ and `\M' correspond to the new troff output command sets starting with
+ `m' and `DF'. The device-specific default color is called `default'
+ and can't be redefined.
+
+ Use the `color' request to toggle the usage of colors (default is on);
+ the read-only register `.color' is 0 if colors are not active, and
+ non-zero otherwise.
+
+ The old `Df' output command is mapped onto `DFg'; all color output
+ commands don't change the current font position (consequently, `Df'
+ doesn't either).
+
+ Outputting color can be disabled in troff and groff with the option -c
+ (it is always disabled in compatibility mode). See the section on
+ grotty for the GROFF_NO_SGR environment variable also.
+
+ For defining color components as fractions between 0 and 1, a new
+ scaling indicator `f' has been introduced: 1f = 65536u. For testing
+ whether a color is defined (with .if and .ie), a new conditional
+ operator `m' is available.
+
+ More details can be found in the groff_diff.7 manual page and in
+ groff.texinfo.
+
+o Similar to \m and \M, \f[] switches back to the previous font. \fP
+ (and \f[P]) is still valid for backwards compatibility.
+
+o The new escape \F is the same as `.fam'; \F[] switches back to
+ previous family -- \F[P] selects family `P'.
+
+o Two new glyph symbols are available: `eu' is the official Euro symbol;
+ `Eu' is a font-specific glyph variant.
+
+o The new glyph symbols `t+-', `tdi', and `tmu' are textual variants of
+ `+-', `di', and `mu', respectively.
+
+o Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN)
+ has got the troff glyph name `mc'.
+
+o -Tutf8 is now available on EBCDIC hosts.
+
+o Strings can take arguments, using this syntax: \*[foo arg1 arg2 ...].
+ Example:
+
+ .ds xxx This is a \\$1 test.
+ \*[xxx nice]
+
+o It is now possible to have whitespace between the first and second dot
+ (or the name of the ending macro) to end a macro definition. Example:
+
+ .de !
+ ..
+ .
+ .de foo
+ . nop Hello, I'm `foo'.
+ . nop I will now define `bar'.
+ . de bar !
+ . nop Hello, I'm `bar'.
+ . !
+ ..
+
+o `.fn' is a new string-valued register that returns the resolved font
+ font name; a font family and abstract style are catenated.
+
+o Three new read/write registers `seconds', `minutes', and `hours'
+ contain the current time, set at start-up of troff. Use the `af'
+ request to control their output format.
+
+o The new request `fchar' can be used to provide fallback characters.
+ It has the same syntax as the `char' request; the only difference is
+ that a character defined with `.char' hides the glyph with the same
+ name in the current font, whereas a character defined with `.fchar' is
+ checked only if the particular glyph isn't found in the current font.
+ This test happens before checking special fonts.
+
+o In analogy to the `tmc' request, `.writec' is the same as `.write' but
+ doesn't emit a final newline.
+
+o The new request `itc' is a variant of `.it' for which a line
+ interrupted with \c counts as one input line.
+
+o Two new requests `ds1' and `as1' which are similar to `ds' and `as'
+ but with compatibility mode disabled during expansion of strings
+ defined by them.
+
+o The syntax of the `substring' request has been changed: The first
+ character in a string now has index 0, the last character has index
+ -1. Note that this is an incompatible change.
+
+o To emit strings directly to the intermediate output, a new `output'
+ request has been added; it is similar to `\!' used at the top level.
+
+o `.hpf' has been extended. It can now handle most TeX hyphenation
+ pattern files without modification. To do that, the commands
+ \patterns, \hyphenation, and \endinput are recognized. Please refer
+ to groff_diff.7 for more information.
+
+o `hpfcode' is a new request to provide an input encoding mapping for
+ the `hpf' request.
+
+o The new request `hpfa' appends hyphenation patterns (`hpf' replaces
+ already existing patterns).
+
+o A new request `ami' (append macro indirect) has been added. The first
+ and second parameter of `ami' are taken from string registers rather
+ than directly; this very special request is needed to make
+ `trace.tmac' independent from the escape character (which might even
+ be disabled).
+
+o The new request `sizes' is similar to the `sizes' command in DESC
+ files. It expects the same syntax; the data must be on a single line,
+ and the final `0' can be omitted.
+
+o `trin' (translate input) is a new request which is similar to `tr'
+ with the exception that the `asciify' request uses the character code
+ (if any) before the character translation. Example:
+
+ .trin ax
+ .di xxx
+ a
+ .br
+ .di
+ .xxx
+ .trin aa
+ .asciify xxx
+ .xxx
+
+ The result is `x a'. Using `tr', the result would be `x x'.
+
+o The request `pvs' isn't new, but hasn't been documented before. It
+ adds vertical space after a line has been output. This makes it an
+ alternative to the `ls' request to produce double-spaced documents.
+ The read-only register `.pvs' holds the current amount of the
+ post-vertical line space.
+
+o For compatibility with plan 9's troff, multiple `pi' requests are
+ supported:
+
+ .pi foo
+ .pi bar
+
+ is now equivalent to
+
+ .pi foo | bar
+
+o A new escape sequence `\O' is available to disable and enable glyph
+ output. Please see groff_diff.7 and groff.texinfo for more details.
+
+o The escapes `\%', `\&', `\)', and `\:' no longer cause an error in \X;
+ they are ignored now. Additionally `\ ' and `\~' are converted to
+ single space characters.
+
+o The default tab distance in nroff mode is now 0.8i to be compatible
+ with Unix troff.
+
+o Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
+ request was a bad idea. Instead, it is now translated to `\%', and
+ the default hyphenation character is again \[hy]. Note that the glyph
+ \[shc] is not useful for typographic purposes; it only exists to have
+ glyph names for all latin-1 characters.
+
+Macro Packages
+--------------
+
+o Peter Schaffter <df191@ncf.ca> has contributed a new major macro
+ package called `mom', mainly for non-scientific writers, which takes
+ care of many typographic issues. It comes with a complete reference
+ (in HTML format) and some examples. `mom' has been designed to format
+ documents for PostScript output only.
+
+o Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added
+ to the man macros for compatibility with older BSD releases.
+
+o Both the man and mdoc macro packages now use the LL and LT registers
+ for setting the line and title length, respectively (similar to those
+ registers in the ms macro package). If not set on the command line or
+ in a macro file loaded before the macro package itself, they default
+ to 78n in nroff mode and 6.5i in troff mode.
+
+o The `-xwidth' specifier in the mdoc macro package has been removed.
+ Its functionality is now integrated directly into `-width'.
+ Similarly, `-column' has been extended to provide this functionality
+ also.
+
+o A new macro `Ex' has been added to the mdoc macro package to document
+ an exit status.
+
+o The PSPIC macro has been extended to work with DVI output
+ (`pspic.tmac' is now automatically loaded for -Tdvi), using a dvips
+ special to load the EPS file.
+
+o The trace.tmac package now traces calls to `am' also. Additionally,
+ it works in compatibility mode.
+
+o `troff.1' has been split. Differences to Unix troff are now
+ documented in the new man page `groff_diff.7'.
+
+o `groff_mwww.7' has been renamed to `groff_www.7'. The file mwww.tmac
+ has been removed.
+
+o `groff_ms.7' has been completely rewritten. It now contains a
+ complete reference to the ms macros.
+
+o `groff_trace.7' documents the trace macro package.
+
+o Changes in www.tmac:
+
+ Note that HTML support is still in alpha change, so it is rather
+ likely that both macro names and macro syntax will change. Some of
+ the macros mentioned below aren't really new but haven't been
+ documented properly before.
+
+ The following macros have been renamed:
+
+ MAILTO -> MTO
+ IMAGE -> IMG
+ LINE -> HR
+
+ For consistency, the macros `URL', `FTL', and `MTO' now all have the
+ address as the first parameter followed by the description.
+
+ By default, grohtml generates links to all section headings at the
+ top of the document. Use the new `LK' macro to specify a different
+ place.
+
+ For specifying the background color and a background image, use the
+ new macros `BCL' and `BGIMG', respectively.
+
+ The macro `NHR' has been added; it suppresses the generation of top
+ and bottom rules which grohtml emits by default.
+
+ The new macro `HX' determines the cut-off point for automatic link
+ generation to headings.
+
+ The image position parameter names in `IMG' have been changed to
+ `-L', `-R', and `-C'.
+
+ New macro `PIMG' for inclusion of a PNG image (it automatically
+ converts it into an EPS file if not -Thtml is used).
+
+ New macro `MPIMG' for putting a PNG image into the left or right
+ margin (it automatically converts it into an EPS file if not -Thtml
+ is used).
+
+ New macros `HnS', `HnE' to start and end a header line block.
+
+ New macro `DC' to produce dropcap characters.
+
+ New macro `HTL' to generate an HTML title line only but no H1
+ heading.
+
+ New macros `ULS' and `ULE' to start and end an unordered list. The
+ new macro `LI' inserts a list item.
+
+Groff
+-----
+
+o The new command line option `-c' disables color output (which is
+ always disabled in compatibility mode).
+
+Nroff
+-----
+
+o Two new command line options `-c' and `-C'; the former passes `-c' to
+ grotty (switching to the old output scheme); the latter passes `-C' to
+ groff (enabling compatibility mode).
+
+Pic
+---
+
+o New keywords `color' (or `colour', `colored', `coloured'), `outline'
+ (or `outlined'), and `shaded' are available. `outline' sets the color
+ of the outline, `shaded' the fill color, and `color' sets both.
+
+ Example:
+
+ circle shaded "green" outline "black" ;
+
+ Filled arrows always use the outline color for filling.
+
+ Color support for TeX output is not implemented yet.
+
+Pic2graph
+---------
+
+o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It
+ converts a PIC diagram into a cropped image. Since it uses gs and the
+ PNM library, virtually all graphics formats are available for output.
+
+Eqn2graph
+---------
+
+o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It
+ converts an EQN diagram into a cropped image. Since it uses gs and
+ the PNM library, virtually all graphics formats are available for
+ output.
+
+Groffer
+-------
+
+o A new script contributed by Bernd Warken <bwarken@mayn.de>. It
+ displays groff files and man pages on X and tty, taking care of most
+ parameters automatically.
+
+Grog
+----
+
+o Documents using the mom macro package are recognized.
+
+Grops
+-----
+
+o Color support has been added.
+
+o A new option `-p' is available to select the output paper size. It
+ has the same syntax as the new `papersize' keyword in the DESC file.
+
+Grodvi
+------
+
+o By default, font sizes are now available in the range 5-10000pt,
+ similar to PS fonts. If you want the old behaviour (i.e., font sizes
+ at discrete values only), insert the following at the start of your
+ document:
+
+ .if '\*[.T]'dvi' \
+ . sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \
+ 1728 1800 2000 2074 2200 2400 2488 2800 3600
+
+o A new font file HBI (using cmssbxo10; this is slanted sans serif bold
+ extended) has been added.
+
+o Two font families are now available: `T' and `H'.
+
+o EC and TC fonts have been integrated. Use `-mec' (calling the file
+ ec.tmac) to switch to them. Those fonts give a much better coverage
+ of the symbols defined by groff than the CM fonts.
+
+ Note that ec.tmac must be called before any language-specific files;
+ it doesn't take care of hcode values.
+
+o Color support has been added. For drawing commands, colors are
+ translated to gray values currently.
+
+Grotty
+------
+
+o Color support has been added, using the SGR (ISO 6429, sometimes
+ called ANSI color) escape sequences.
+
+o SGR escape sequences are now used by default for underlining and bold
+ printing also, no longer using the backspace character trick. To
+ revert to the old behaviour, use the `-c' switch.
+
+ Note that you have to use the `-R' option of `less' to make SGR
+ escapes display correctly. On the other hand, terminal programs and
+ consoles like `xterm' which support SGR sequences natively can
+ directly display the output of grotty. Consequently, the options
+ `-b', `-B', `-u', and `-U' work only in combination with `-c' and are
+ ignored silently otherwise.
+
+ For the `man' program, it may be necessary to add the `-R' option of
+ `less' to the $PAGER environment variable (or $MANPAGER, depending on
+ the used `man' program); alternatively, you can use `man's `-P' option
+ (or adapt its configuration file accordingly). See man(1) for more
+ details.
+
+o If the environment variable GROFF_NO_SGR is set, SGR output is
+ disabled, reverting to the old behaviour.
+
+o A new special \X'tty: sgr n' has been added; if n is non-zero or
+ missing, enable SGR output (the default).
+
+o If the new option `-i' is used (only in SGR mode), grotty sends escape
+ sequences to set the italic font attribute instead of the underline
+ attribute for italic fonts. Note that many terminals don't have
+ support for this (including xterm).
+
+Grohtml
+-------
+
+o Color support for glyphs has been added.
+
+o New option `-h' to select the style of headings in HTML output.
+
+o New option `-b' to set the background colour to white.
+
+o New options `-a' and `-g' to control the number of bits for
+ anti-aliasing used for text and graphics, respectively. Default value
+ is 4; 0 means no anti-aliasing.
+
+o groff character/glyph entities now map onto HTML 4 character entities.
+
+Grolbp
+------
+
+o Valid paper sizes are now specified as with the new `papersize'
+ keyword in the DESC file. Specifically, the old custom paper type
+ format `custAAAxBBB' is no longer supported.
+
+Miscellaneous
+-------------
+
+o A new manual page `ditroff.7' is available.
+
+o The groff texinfo manual is installed now, together with a bunch of
+ examples.
+
+o A new keyword `papersize' has been added to the DESC file format. Its
+ argument is either
+
+ . a predefined paper format (e.g. `A4' or `letter')
+
+ . a file name pointing to a file which must contain a paper size
+ specification in its first line (e.g. `/etc/papersize')
+
+ . a custom paper size definition like `35c,4i'
+
+ See groff_font(5) for more details. This keyword only affects the
+ physical dimensions of the output medium; grops, grolj4, and grolbp
+ use it currently. troff completely ignores it.
+
+
+VERSION 1.17.2
+==============
+
+This is major bug-fixing release which should replace 1.17.1.
+
+Troff
+-----
+
+o The `IMAGE' macro in www.tmac has changed: Now the optional 2nd
+ parameter gives the horizontal image location (left, centered, or
+ right), and the optional 3rd and 4th parameter the image dimensions.
+
+
+VERSION 1.17.1
+==============
+
+This is mainly a bug-fixing release.
+
+Troff
+-----
+
+o Two new requests `de1' and `am1' which are similar to `de' and `am'
+ but with compatibility mode disabled during expansion of macros
+ defined by them.
+
+o Added request `brp'. This is the same as `\p'.
+
+o Similar to other versions of troff, the `ns' request now works in all
+ diversions, not only in the top-level one.
+
+o New read-only number register `.ns'. Returns 1 if in no-space mode, 0
+ otherwise.
+
+Nroff
+-----
+
+o Options -p (pic) and -t (tbl) added.
+
+o The environment variable GROFF_BIN_PATH is now checked before PATH for
+ finding groff.
+
+Grohtml
+-------
+
+o New option `-D dir' to specify a directory in which all images are
+ placed.
+
+o New option `-I stem' to specify an image name stame. If not given,
+ `grohtml-XXX' is used (`XXX' is the process ID).
+
+
+VERSION 1.17
+============
+
+Groff
+-----
+
+o `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'.
+ The old behaviour has been changed to overcome problems with platforms
+ which have an 8+3 file name limit, and platforms which have other
+ versions of troff installed also. Additionally, all macro files have
+ been renamed using the latter scheme to avoid 8+3 name clashes.
+
+o The new environment variable GROFF_BIN_PATH is checked for programs
+ groff is calling (preprocessors, troff, and output devices) before
+ PATH. If not set, it defaults to the directory where the groff binary
+ is located. Previously, it was PATH only. The nroff script only uses
+ GROFF_BIN_PATH to find the groff binary but passes both the
+ GROFF_BIN_PATH and PATH environment variables to groff.
+
+Troff
+-----
+
+o The mdoc package has been completely rewritten, using the full power
+ of GNU troff to remove limitations of Unix troff (which is no longer
+ supported). Most important changes are:
+
+ . No argument limit
+ . Almost all macros are parsed and callable (if it makes sense)
+ . `.Lb': prints library names
+ . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>'
+ has been withdrawn
+ . Updated `.St' command
+ . `.Fx': prints FreeBSD
+ . `.Ox': prints OpenBSD
+ . `.Bsx': prints BSD/OS
+ . `.Brq', `.Bro', `.Brc': brace enclosure macros
+ . `.Bd -centered': center lines
+ . `.Bl -xwidth <string>': interpret <string> and use the resulting
+ width
+ . Support for double-sided printing (-rD1 command line switch)
+ . Support for 11pt and 12pt document sizes (-rS11, -rS12 command line
+ switches)
+
+ `groff_mdoc.7' replaces `groff_mdoc.samples.7'; it now completely
+ documents the mdoc package.
+
+ Great care has been taken to assure backwards compatibility. If you
+ encounter any abnormal results, please report them to
+ bug-groff@gnu.org. [2018 UPDATE: This address no longer accepts bug
+ reports; please use the GNU Savannah bug tracker at
+ http://savannah.gnu.org/bugs/?group=groff.]
+
+o A new command line option for the `man' macros (similar to the `mdoc'
+ package) has been implemented: `-rcR=1' (now the default in nroff
+ mode) produces one single, very long page instead of multiple pages.
+ `-rcR=0' deactivates it.
+
+o The `return' request has been added to return immediately from a
+ macro.
+
+o A new request `nop' (no operation) has been added which is similar to
+ `if 1'. For example,
+
+ .if t \{\
+ Hallo!
+ .\}
+
+ can now be written as
+
+ .if t \{\
+ . nop Hallo!
+ .\}
+
+o `box' and `boxa' are two new requests which behave similarly to `di'
+ and `da' but don't include a partially filled line (which is restored
+ after ending the diversion).
+
+o The `asciify' request has been extended to `unformat' space characters
+ and some other escape sequences also.
+
+ `\ ' is no longer unformatted as a space but remains an unpaddable,
+ unbreakable space character.
+
+o The new `unformat' request is similar to `asciify' but only handles
+ space characters and tabs specially if the diversion is reread,
+ retaining font information. This makes it possible to reformat
+ diversions; for example the following
+
+ .ll 3i
+ .
+ a01 a02 a03 a04 a05 a06 a07 a08 a09 a10.
+ .
+ .box box1
+ .ev 1
+ .nf
+ \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P]
+ .br
+ .ev
+ .box
+ .
+ c01 c02 c03 c04 c05 c06 c07 c08 c09 c10.
+ .
+ .unformat box1
+ .box1
+
+ gives
+
+ a01 a02 a03 a04 a05 a06 a07
+ a08 a09 a10. c01 c02 c03 c04
+ c05 c06 c07 c08 c09 c10. b01
+ b02 b03 b04 b05 b06 b07 b08
+ b09 b10.
+
+ Without the `unformat' request, space characters are converted to word
+ space nodes which are no longer stretchable, and the result would be
+
+ a01 a02 a03 a04 a05 a06 a07
+ a08 a09 a10. c01 c02 c03 c04
+ c05 c06 c07 c08 c09 c10. b01
+ b02 b03 b04 b05 b06 b07 b08
+ b09 b10.
+
+o The new request `linetabs' controls the `line-tabs' mode. In
+ line-tabs mode, tab distances are computed relative to the (current)
+ output line. Otherwise they are taken relative to the input line.
+ For example, the following
+
+ .ds x a\t\c
+ .ds y b\t\c
+ .ds z c
+ .ta 1i 3i
+ \*x
+ \*y
+ \*z
+
+ yields
+
+ a b c
+
+ In line-tabs mode, the same code gives
+
+ a b c
+
+ The new read-only number register `.linetabs' returns 1 if in
+ line-tabs mode, and 0 otherwise.
+
+o Two new requests `tm1' and `tmc' have been added to improve writing
+ messages to the terminal. `tm1' is similar to `tm' but allows leading
+ whitespace. `tmc' is similar to `tm1' but doesn't emit a final
+ newline.
+
+o For compatibility with sqtroff, the request `output' has been added.
+ The behaviour is similar to `\!' at the top-level, that is, it
+ directly inserts its argument into the intermediate output format.
+ The syntax is similar to .tm1, allowing leading whitespace.
+
+o The new `spreadwarn' request makes troff warn if spaces in an output
+ line are widened by a given limit or more.
+
+o Use `warnscale' to change the scaling indicator troff uses for warning
+ messages.
+
+o A new request `dei' (define indirect) has been added. The first and
+ second parameter of `dei' are taken from string registers rather than
+ directly; this very special request is needed to make `trace.tmac'
+ independent from the escape character (which might even be disabled).
+
+o It is now possible to save and restore the escape character with two
+ new requests `ecs' and `ecr'.
+
+o The new escape sequence \B'...' is an analogon to `\A': If the string
+ within the delimiters is a valid numeric expression, return character
+ `1', and `0' otherwise.
+
+o The new escape sequence `\:' inserts a zero-width break point. This
+ is similar to `\%' but without a soft hyphen character.
+
+o The `tr' request can now map characters onto `\~'.
+
+o Calling the `fam' request without an argument switches back to the
+ previous font family.
+
+o The new read-only register `.int' is set to a positive value if the
+ last output line is interrupted (i.e., if the input line contains
+ `\c').
+
+o The `writem' request is not new, but hasn't been documented before.
+ This is similar to `write' but instead of a string the contents of a
+ given macro or string is written to a stream.
+
+o The read/write number register `hp' to get/set the current horizontal
+ position relative to the input line isn't new but hasn't been
+ documented properly before.
+
+o `\X' and `\Y' are now transparent for end-of-sentence recognition.
+
+o The `cu' request in nroff mode now works as documented (i.e., it
+ underlines spaces also).
+
+Grog
+----
+
+o The grog script now works in non-compatibility mode also (which is the
+ default). As usual, use the `-C' option to activate compatibility
+ mode.
+
+Grops
+-----
+
+o A new option `-P' resp. a new environment variable `GROPS_PROLOGUE'
+ has been added to select a different prologue file.
+
+o The effect of the former `-mpsnew' option to access more Type 1
+ characters is now the default and no longer available. To get the old
+ behaviour (i.e., emulation of some glyphs by composition) use
+ `-mpsold'.
+
+Miscellaneous
+-------------
+
+o For security reasons the following changes have been done:
+
+ . The tmac.safer file has been replaced with a built-in solution;
+ .open, .opena, .pso, .sy, and .pi are completely disabled in safer
+ mode (which is the default); to enable these requests the `-U'
+ command line flag must be used.
+
+ . Files specified with the .mso request or given with the `-m' command
+ line option, and hyphenation patterns loaded with `.hpf' are no
+ longer searched in the current directory by default (besides the
+ usual tmac path). Instead, the home directory is used. To add the
+ current directory, either use the `-U' or `-M' command line option
+ or set the GROFF_TMAC_PATH environment variable to an appropriate
+ value.
+
+ . troffrc, troffrc-end, and eqnrc are neither searched in the current
+ nor in the home directory (even if -U is given). Use -M or
+ GROFF_TMAC_PATH to change that.
+
+ . Similarly, the current directory is no longer part of the font path.
+ Use the `-F' command line option or the GROFF_FONT_PATH environment
+ variable if you really need the current directory.
+
+o groff now installs its data files into
+ /usr/local/share/groff/<version> by default, following the GNU
+ standard. Additionally, a local tmac directory (by default
+ /usr/local/share/groff/site-tmac) is scanned before the standard tmac
+ directory. Wrapper files for system-specific macro packages (if
+ necessary) are put into /usr/local/lib/groff/site-tmac; this directory
+ is searched before the local tmac directory.
+
+o All programs now have option `-v' to show the version number; they
+ exit immediately afterwards, following the GNU standards.
+ Additionally, `--version' and `--help' have been added, doing the
+ obvious actions.
+
+
+VERSION 1.16.1
+==============
+
+Bug fixes only; no user-visible changes.
+
+
+VERSION 1.16
+============
+
+Groff
+-----
+
+The anachronism of calling the man macro package with `-man' has been
+fixed; now you can say `-m man' also. The same is true for `ms', `me',
+`markup', `mandoc', and `mdoc'.
+
+A new switch `-g' for calling `grn' is available.
+
+A new switch `-G' for calling `grap' is available.
+
+EBCDIC support for tty devices has been added. On such hosts, IBM code
+page 1047 is available with -Tcp1047 instead of -Tascii and -Tlatin1
+(and, for the moment, -Tutf8). Note that non-tty devices are not yet
+supported (but installed).
+
+Troff
+-----
+
+A new command line option to the `man' macros is available: `-rSxx'
+(with `xx' either 10, 11, or 12) to set the base document font size to
+`xx' points. Additionally, `.SH' now produces larger headings than
+`.SS'.
+
+To solve a problem with the .PSPIC macro which needs the `-U' switch of
+troff to access an external program (psbb), a new request .psbb is now
+available to get the bounding box of a PostScript image file. The
+values (in PostScript units) are returned in the new read-only number
+registers `llx', `lly', `urx', and `ury'. Consequently, .PSPIC has been
+adapted to use the new request, and the psbb program has been removed.
+
+A new predefined writable number register, `year', has been added. It
+contains the current year.
+
+A new read-only register, `.Y', has been added. It contains the
+revision number of the groff package.
+
+`\fP' now behaves as expected in situations like the following where the
+font `foo' is undefined:
+
+ .B bold text
+ normal text \f[foo]bar\fP normal text
+
+Previously, the text after \fP appeared as bold.
+
+The `substring' request is not new, but hasn't been documented before.
+
+The predefined `.T' string register (which holds the name of the output
+device) is not new, but hasn't been documented before.
+
+A new request `length' computes the length of a string and returns it in
+a number register.
+
+The macro files `tmac.a4' (for specifying A4 paper format) and
+`tmac.trace' (a debugging aid) are now installed also.
+
+A new resource file, `troffrc-end', is now available. It is invoked
+after all user-specified macros. Currently used by the html device to
+include tmac.html; thus no need for users to specify -mhtml anymore.
+
+The soft hyphen character now has a glyph name: `shc'.
+
+The latin-1 character 173 (PS name `periodcentered') has got the troff
+glyph name `pc' and is no longer intermixed with the symbol character
+`md' (PS name `mathdot').
+
+ASCII character 34 (PS name `quotedbl') has got the troff glyph name
+`dq' (which is an alias to character `"').
+
+ASCII character 39 (PS name `quoteright') has got the troff glyph name
+`cq' (which is an alias to character "'").
+
+Some additions to the font description files have been implemented for
+better support of HTML output:
+
+ The new format of lines in the `charset' subsection of font
+ description files is
+
+ name metrics type code [entity_name] [-- comment]
+
+ Currently, only the font description files in devhtml use the optional
+ entity_name string to define glyph entities in HTML. Everything after
+ the entity_name field is ignored; in case this field isn't used, two
+ hyphen characters are now necessary to start a comment.
+
+ Two new requests are available in DESC files (currently used only with
+ grohtml):
+
+ use_charnames_in_special
+ This command indicates that troff should encode named characters
+ inside special commands.
+
+ pass_filenames
+ requests that troff tells the driver the source file name being
+ processed. This is achieved by another tcommand: `F filename'.
+
+Grotty
+------
+
+Bruno Haible <haible@clisp.cons.org> contributed support for UTF8
+output.
+
+Grohtml
+-------
+
+Added .LINE macro to tmac.arkup.
+
+The obsolete `.LINK' macro has been removed.
+
+.URL, .FTP, and .MAILTO macros now accept an optional third argument
+which is immediately appended to the second argument (to be used with
+punctuation, for example).
+
+Grodvi
+------
+
+The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
+
+A new font file CWI (using cmitt10; this is typewriter italic) has been
+added.
+
+Grolbp
+------
+
+A new driver for Canon CaPSL printers (LBP-4 and LBP-8 series laser
+printers). This code has been contributed by Francisco Andres Verdu
+<pandres@dragonet.es>.
+
+Grn
+---
+
+A new preprocessor to process gremlin pictures. It is based on the
+original Berkeley implementation of grn, written by David Slattengren
+and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
+<daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
+
+Pic
+---
+
+Added the `srand' command to set the seed for a new sequence of
+pseudo-random numbers to be returned by `rand'.
+
+Gxditview
+---------
+
+Simplified installation: The Imakefile is now configured (by groff's
+configure script).
+
+Documentation
+-------------
+
+Three new man pages are available: groff_tmac.5 (documenting how troff
+macros are accessed and where they are found), groff.7 (a short
+reference of the GNU roff language), and roff.7 (a general survey on GNU
+troff).
+
+Miscellaneous
+-------------
+
+A partial port to win32 (for use with Microsoft Visual C++ 6.0) is now
+part of the distribution. It has been contributed by Blake McBride
+<blake@florida-software.com>.
+
+More information about programs, macros, documentation, etc., which is
+related to groff has been collected in the file `MORE.STUFF'.
+
+
+VERSION 1.13, 1.14, 1.15
+========================
+
+Bug fixes only; no user-visible changes.
+
+
+VERSION 1.12
+============
+
+Finally, there are new maintainers for groff. Mailing lists and a
+development repository are available also. See the file README for
+details. Not all reported bugs could be fixed, so please send mails
+again if something is still not working.
+
+Most of the installation problems should have vanished now (most notably
+the $(tmac_wrap) bug).
+
+There is now a man page called groff_man.7 which documents the basics of
+the -man macros. It has been originally written by Susan G. Kleinmann
+<sgk@debian.org>.
+
+A (still incomplete) groff reference manual in texinfo format originally
+contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
+
+me.man and msafer.man have been renamed to groff_me.man resp.
+groff_msafer.man for consistency.
+
+Default strings for macros in doc-common resp. tmac.an no longer contain
+the word `UNIX'.
+
+groff should now be Y2k safe (fixes contributed by Paul Eggert
+<eggert@twinsun.com>).
+
+Following the GNU standards, groff now uses the prefix `/usr/local/' as
+the default instead of replacing an existent groff binary.
+
+groff, troff, nroff, and pic now support the -U flag to activate unsafe
+behaviour (without -msafer); the -S flag for using the -msafer macros is
+now the default.
+
+Grohtml
+-------
+
+This is a new output device for producing HTML output contributed by
+Gaius Mulley <gaius@glam.ac.uk>. It is still very alpha but has been
+included into the distribution so that a lot of people have a chance to
+test it. Bug reports are highly welcome.
+
+Grolj4
+------
+
+Duplex printing support has been contributed by Jeffrey Copeland
+<jeff@opennt.com>.
+
+Soelim
+------
+
+Added -I option for defining include paths (patch contributed by Peter
+Miller <peterm@jna.com.au>).
+
+Gxditview
+---------
+
+Fallback resources added (patch contributed by Larry Jones
+<larry.jones@sdrc.com>).
+
+Will now support 8 gray levels.
+
+mm
+--
+
+New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
+
+
+VERSION 1.11
+============
+
+Complete documentation for pic is now in the file doc/pic.ms. It was
+contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
+*not* volunteering to take over groff as he is way overworked with half
+a dozen other projects.
+
+
+VERSION 1.10
+============
+
+The directory where data files are installed has been changed from
+/usr/local/lib/groff to /usr/local/share/groff to comply with the latest
+GNU coding standards.
+
+By default groff programs with Unix equivalents are installed with a "g"
+prefix unless there is an existing (non-groff) troff installation.
+
+A new approach is used to make system macro packages available to groff.
+Instead of simply including /usr/lib/tmac in the list of directories
+searched by groff, the installation process creates for each system
+macro package a wrapper macro package in the groff macro directory that
+references the system macro package. The groff macro packages are now
+installed with a leading "g" prefix if there is a system version of the
+same macro package, and otherwise without the "g" prefix, with the
+exception that the groff version of -me which is always installed as
+-me.
+
+There is a new device, lj4, for the HP LaserJet 4 (and PCL5
+compatibles).
+
+Groff
+-----
+
+groff has a -S option that prevents the use of unsafe features in pic
+and troff. This uses a new -S option of pic and the -msafer macros for
+troff.
+
+Troff
+-----
+
+The `blm' request specifies a macro to be invoked when a blank line is
+encountered.
+
+Pic
+---
+
+A -S (safer) option disables the sh command.
+
+Grops
+-----
+
+The -m option enables manual feed.
+
+
+VERSION 1.09
+============
+
+\(rn now produces a character that has the traditional metrics, and form
+corners with \(ul and \(br. This means that it does not align properly
+with \(sr. Instead there's a new character \[radicalex] which aligns
+with \(sr; this is used by eqn for doing square roots.
+
+Troff
+-----
+
+The `pso' request allows you to read from the standard output of a
+command.
+
+Grops
+-----
+
+The PSPIC macro has options to allow the horizontal alignment of the
+graphic to be specified.
+
+
+VERSION 1.08
+============
+
+Troff
+-----
+
+The escape sequence \V[xxx] interpolates the value of the environment
+variable xxx.
+
+Tbl
+---
+
+The decimalpoint option can be used to specify the character to be
+recognized as the decimal point character in place of the default
+period.
+
+
+VERSION 1.07
+============
+
+Groff
+-----
+
+The environment variable GROFF_COMMAND_PREFIX can be used to control
+whether groff looks for `gtroff' or `troff' (similarly for the
+preprocessors.)
+
+Troff
+-----
+
+Multilingual hyphenation is supported by new `hpf' and `hla' requests,
+and by a `\n[.hla]' number register. The -H option has been removed.
+Files of hyphenation patterns can have comments.
+
+When a font cannot be found, troff gives a warning (of type `font',
+enabled by default) instead of an error.
+
+There's a new request `trnt' that's like `tr' except that it doesn't
+apply to text transparently throughput into a diversion with \!.
+
+Tbl
+---
+
+There is a `nokeep' option which tells tbl not to use diversions to try
+to keep the table on one page.
+
+Eqn
+---
+
+Setting the parameter `nroff' to a non-zero value causes `ndefine' to
+behave like `define' and `tdefine' to be ignored. This is done by eqnrc
+when the current device is ascii or latin1. There's a `neqn' script
+that just does `eqn -Tascii'.
+
+Grotty
+------
+
+grotty uses whatever page length was specified using the `pl' request
+rather than using the paperlength command in the DESC file. The
+paperwidth command in the DESC file is also ignored.
+
+
+VERSION 1.06
+============
+
+The programs in groff that have Unix counterparts can now be installed
+without a leading `g' prefix. See the `g' variable in the Makefile.
+
+The g?nroff script simulates the nroff command using groff.
+
+New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
+\(an. See groff_char(7).
+
+^L is now a valid input character.
+
+Groff
+-----
+
+The Xps pseudo-device has disappeared. Instead there is a new -X option
+that tells groff to use gxditview instead of the usual postprocessor.
+(So instead of -TXps, use -XTps or just -X if your default device is
+ps.)
+
+The postprocessor to be used for a particular device is now specified by
+a `postpro' command in the DESC file rather than being compiled into
+groff. Similarly the command to be used for printing (with the -l
+option) is now specified by a `print' command in the DESC file.
+
+The groff command no longer specifies eqnchar as an input file for eqn.
+Instead eqn automatically loads a file `eqnrc'. The groff command no
+longer passes the -D option to eqn. Instead eqnrc sets the draw_lines
+parameter.
+
+The groff command no longer tells troff to load a device-specific macro
+file. This is handled instead by the `troffrc' file, which is always
+loaded by troff.
+
+The shell script version of groff has been removed.
+
+Troff
+-----
+
+The `rchar' request removes a character definition established with
+`char'.
+
+Compatibility mode is disabled and the escape character is set to `\'
+while a character definition is being processed.
+
+The `\#' escape sequence is like `\"' except that the terminating
+newline is ignored.
+
+The `shc' request tells troff which character to insert (instead of the
+default \(hy) when a word is hyphenated at a line break.
+
+A font name of 0 (zero) in the DESC file causes no font to be mounted on
+the corresponding font position. This is useful for arranging that
+special fonts are mounted on positions on which users are not likely
+explicitly to mount fonts. All groff devices now avoid initially
+mounting fonts on positions 5-9.
+
+The `do' request allows a single request or macro to be interpreted with
+compatibility mode disabled.
+
+troff automatically loads a file `troffrc' before any other input file.
+This can be prevented with the -R option. This file is responsible for
+loading the device-specific macros.
+
+Pic
+---
+
+The -x option has been removed and a -n option has been added. By
+default, pic now assumes that the postprocessor supports groff
+extensions. The -n option tells pic to generate output that works with
+ditroff drivers. The -z option now applies only to TeX mode.
+
+The -p option has been removed. Instead if the -n option is not
+specified, pic generates output that uses \X'ps: ...' if the \n(0p
+register is non-zero and tmac.ps sets this register to 1.
+
+In places where you could 1st or 5th you can now say `i'th or `i+1'th
+(the quotes are required).
+
+Eqn
+---
+
+Eqn now automatically reads a file `eqnrc' from the macro directory.
+This performs the same role that the eqnchar files used to. This can be
+prevented by the -R option.
+
+Setting the draw_lines parameter to a non-zero value causes lines to be
+drawn using \D rather than \l. The -D option is now obsolete.
+
+`uparrow', `downarrow' and `updownarrow' can be used with `left' and
+`right'.
+
+The amount of extra space added before and after lines containing
+equations can be controlled using the `body_height' and `body_depth'
+parameters.
+
+Grops
+-----
+
+Font description files have been regenerated from newer AFM files. You
+can get access to the additional characters present in the text fonts in
+newer PostScript printers by using -mpsnew.
+
+The default value of the -b option is specified by a `broken' command in
+the DESC file.
+
+With the -g option, grops generates PostScript code that guesses the
+page height. This allows documents to be printed on both letter
+(8.5x11) and A4 paper without change.
+
+Grodvi
+------
+
+ISO Latin-1 characters are available with -Tdvi. Format groff_char(7)
+with groff -Tdvi for more information.
+
+Grotty
+------
+
+The -mtty-char macros contain additional character definitions for use
+with grotty.
+
+Macros
+------
+
+In previous releases the groff -me macros treated the $r and $R number
+registers in a way that was incompatible with the BSD -me macros. The
+reason for this was that the approach used by the BSD -me macros does
+not work with low resolution devices such as -TX75 and -TX100. However,
+this caused problems with existing -me documents. In this release, the
+vertical spacing is controlled by the $v and $V registers which have the
+same meaning as $r and $R in earlier groff releases. In addition, if
+the $r or $R register is set to a value that would be correct for the
+BSD -me macros and a low resolution device is not being used, then an
+appropriate value for the $v or $V register is derived from the $r or $R
+register.
+
+The groff -me macros work with -C and (I think) with Unix troff.
+
+For backward compatibility with BSD -me, the \*{ and \*} strings are
+also available as \*[ and \*]. Of course, \*[ is only usable with -C.
+
+The \*T string has been deleted. Use \*(Tm instead.
+
+Xditview
+--------
+
+The `n', Space and Return keys are bound to the Next Page action. The
+`p', BackSpace and Delete keys are bound to the Previous Page action.
+The `q' key is bound to the Quit action.
+
+The `r' key is bound to a rerasterize action that reruns groff, and
+redisplays the current page.
+
+
+VERSION 1.05
+============
+
+Pic
+---
+
+There is a alternative assignment operator `:=' which interacts
+differently with blocks.
+
+There is a new command `command', which allows the values of variables
+to be passed through to troff or TeX.
+
+The `print' command now accepts multiple arguments.
+
+String comparison expressions (using `==' or `!=') are allowed in more
+contexts.
+
+Grotty
+------
+
+Horizontal and vertical lines drawn with \D'l ...' are rendered using -,
+| and + characters. This is intended to give reasonable results with
+boxed tables. It won't work well with pic.
+
+Macros
+------
+
+The -mdoc macros have been upgraded to the version in the second
+Berkeley networking release. This version is not completely compatible
+with earlier versions; the old version is still available as -mdoc.old.
+The grog script has been enhanced so that it can usually determine
+whether a document requires the old or new versions.
+
+With -TX75, -TX100 and -TXps, the PSPIC macro produces a box around
+where the picture would appear with -Tps.
+
+
+VERSION 1.04
+============
+
+An implementation of the -mm macros is included.
+
+The directory in which temporary files are created can be controlled by
+setting the GROFF_TMPDIR or TMPDIR environment variables.
+
+Pic
+---
+
+Some MS-DOS support (see pic/make-dos-dist).
+
+Grops
+-----
+
+There are two new \X commands (\X'ps: invis' and \X'ps: endinvis') which
+make it possible to have substitute characters that are displayed when
+previewing with -TXps but ignored when printing with grops.
+
+Xditview
+--------
+
+Support for scalable fonts.
+
+
+VERSION 1.03
+============
+
+No changes other than bug fixes.
+
+
+VERSION 1.02
+============
+
+There is an implementation of refer and associated programs. groff -R
+preprocesses with grefer; no mechanism is provided for passing arguments
+to grefer because most grefer options have equivalent commands which can
+be included in the file. grog also supports refer.
+
+There is an alternative perl implementation of the grog script.
+
+The code field in lines in the charset section of font description files
+is now allowed to contain an arbitrary integer (previously it was
+required to lie between 0 and 255). Currently grops and grodvi use only
+the low order 8 bits of the value. Grodvi uses the complete value;
+however, this is unlikely to be useful with traditional TeX tools (.tfm
+files only allow 8 bit character codes.)
+
+Left and right double quotes can be obtained with \(lq and \(rq
+respectively.
+
+There is a new program called pfbtops which translates PostScript fonts
+in pfb format to ASCII.
+
+A slightly modified version of the Berkeley tmac.doc is included.
+
+Troff
+-----
+
+In long escape names the closing ] is now required to be at the same
+interpolation depth as the opening [.
+
+The \A'S' escape sequence returns 1 or 0 according as S is or is not
+suitable for use as a name.
+
+\~ produces an unbreakable space that can be stretched when the line is
+adjusted.
+
+The `mso' request is like the `so' request except that it searches for
+the file in the same directories in which tmac.X is searched for when
+the -mX option is given.
+
+The escape sequence `\R' is similar to the `nr' request.
+
+Eqn
+---
+
+A new `special' primitive allows you to add new types of unary
+constructs by writing a troff macro.
+
+Pic
+---
+
+The implementation no longer uses gperf.
+
+Grops
+-----
+
+The compile-time -DBROKEN_SPOOLER option has been replaced by a
+BROKEN_SPOOLER_FLAGS option. This allows more precise control over how
+grops should workaround broken spoolers and previewers. There is a new
+-b option that can change this at run-time.
+
+Grops now generates PostScript that complies with version 3.0 of the
+Document Structuring Convention.
+
+The resource management component of grops (the part that deals with
+imported documents and downloadable fonts) has been rewritten and now
+supports version 3.0 of the Document Structuring Conventions. The
+%%DocumentFonts comment is no longer supported; you must use the
+%%Document{Needed,Supplied}{Fonts,Resources} comments instead
+(or as well.)
+
+tmac.psatk contains some macros that support the mechanism used by the
+Andrew Toolkit for including PostScript graphics in troff documents.
+
+Xditview
+--------
+
+Parts of xditview have been rewritten so that it can be used with the
+output of gtroff -Tps. groff -TXps runs gtroff -Tps with gxditview.
+
+There is a new menu entry `Print' which brings up a dialog box for
+specifying a command with which the file being previewed should be
+printed.
+
+Xditview now uses imake.
+
+
+VERSION 1.01
+============
+
+The groff command now understands the gtroff `-a' and `-i' options.
+
+With the `m' and `n' scaling indicators, the scale factor is rounded
+horizontally before being applied. This makes (almost) no difference
+for devices with `hor' equal to 1, but it makes groff with -Tascii or
+-Tlatin1 behave more like nroff in its treatment of these scale
+indicators. Accordingly tmac.tty now calls the `nroff' request so that
+the `n' condition is true.
+
+The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X) have
+been made to work at least somewhat with -C. In particular the special
+characters defined by these macros now work with -C.
+
+groff -Tdvi -p now passes pic the -x flag; this enables filling of
+arrowheads and boxes, provided that your dvi driver supports the latest
+version of the tpic specials.
+
+Eqn
+---
+
+There is a new `-N' option that tells eqn not to allow newlines in
+delimiters. This allows eqn to recover better from missing closing
+delimiters. The groff command passes on a `-N' option to eqn.
+
+Grops
+-----
+
+You can now use psfig with grops. See the file ps/psfig.diff. I do not
+recommend using psfig for new documents.
+
+The command \X'ps: file F' is similar to \X'ps: exec ...' except that
+the PostScript code is read from the file F instead of being contained
+within the \X command. This was added to support psfig.
+
+Grodvi
+------
+
+There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
+
+Macros
+------
+
+The groff -me macros now work with the -C option. As a result, they may
+also work with Unix nroff/troff.
+
+In -me, the $r and $R number registers now contain the line spacing as a
+percentage of the pointsize expressed in units (normally about 120).
+The previous definition was useless with low resolution devices such as
+X75 and X100.
+
+
+VERSION 1.00
+============
+
+A -ms-like macro-package is now included.
+
+The name for the Icelandic lowercase eth character has been changed from
+\(-d to \(Sd.
+
+Troff
+-----
+
+There is a new request `nroff', which makes the `n' built-in condition
+true and the `t' built-in condition false; also a new request `troff'
+which undoes the effect of the `nroff' request. This is intended only
+for backward compatibility: it is usually better to test \n(.H or \n(.V
+or to use the `c' built-in condition.
+
+The \R escape sequence has been deleted. Use \E instead.
+
+There are `break' and `continue' requests for use with the `while'
+request.
+
+There is a request `hym' that can ensure that when the current
+adjustment mode is not `b' a line is not hyphenated if it is no more
+than a given amount short, and a request `hys' that can ensure that when
+the current adjustment mode is `b' a line is not hyphenated if it can be
+justified by adding no more than a given amount of extra space to each
+word space.
+
+There is a request `rj' similar to `ce' that right justifies lines.
+
+A warning of type `space' is given when a call is made to an undefined
+request or macro with a name longer than two characters, and the first
+two characters of the name make a name that is defined. This is
+intended to find places where a space has been omitted been a request or
+macro and its argument. This type of warning is enabled by default.
+
+Pic
+---
+
+A comma is permitted between the arguments to the `reset' command.
+
+For use with TeX, there is a new `-c' option that makes gpic treat lines
+beginning with `.' in a way that is more compatible with tpic (but
+ugly).
+
+Eqn
+---
+
+It is no longer necessary to add `space 0' at the beginning of
+complicated equations inside pictures.
+
+`prime' is now treated as an ordinary character, as in Unix eqn. The
+previous behaviour of `prime' as an operator can now be obtained using
+`opprime'.
+
+Xditview
+--------
+
+There are two new devices X75-12 and X100-12 which are the same as X75
+and X100 except that they are optimized for documents that use mostly 12
+point text.
+
+
+VERSION 0.6
+===========
+
+The installation process has been refined to make it easy for you to
+share groff with someone who has the same type of machine as you but
+does not have a C++ compiler. See the end of the INSTALL file for
+details.
+
+There is a man page for the tfmtodit program which explains how to use
+your own fonts with groff -Tdvi.
+
+There is a man page for afmtodit which explains how to use your own
+PostScript fonts with groff -Tps.
+
+The \N escape sequence is now fully supported. It can now be used to
+access any character in a font by its output code, even if it doesn't
+have a groff name. This is made possible by a convention in the font
+files that a character name of `---' refers to an unnamed character.
+The drivers now all support the `N' command required for this. The font
+description files have been updated to include unnamed characters.
+
+The `x' command in font description files has been removed: instead any
+unknown commands are automatically made available to the drivers. If
+you constructed your own font files with an earlier version of tfmtodit
+or afmtodit, you must construct them again using the current version.
+
+Characters between 0200 and 0237 octal are no longer valid input
+characters. Note that these are not used in ISO 8859.
+
+A command called `grog' has been added, similar to the `doctype' command
+described in Kernighan and Pike.
+
+Groff
+-----
+
+The groff command has some new options: -V prints the pipeline instead
+of executing it; -P passes an argument to the postprocessor, -L passes
+an argument to the spooler.
+
+There is a C++ implementation of the groff command. This handles some
+things slightly better than the shell script. In particular, it can
+correctly handle arguments containing characters that have a special
+meaning to the shell; it can give an error message when child processes
+other than the last in the pipeline terminate abnormally; its exit
+status can take account of the exit statuses of all its child processes;
+it is a little more efficient; when geqn is used, it searches for the
+eqnchar file in the same way that font metric files are searched for,
+rather than expecting to find it in one particular directory.
+
+Gtroff
+------
+
+There is font translation feature: For example, you can tell gtroff to
+use font `HR' whenever font `H' is requested with the line
+ .ftr H HR
+This would be useful for a document that uses `H' to refer to Helvetica.
+
+There are some new number registers: `.kern' contains the current kern
+mode, `.lg' the current ligature mode, `.x' the major version number,
+`.y' the minor version number, `.ce' the number of lines to be centered
+in the current environment, `.trunc' the amount of vertical space
+truncated by the most recently sprung vertical position trap, `.ne' the
+amount of vertical space needed in the last `ne' request that caused a
+vertical position trap to be sprung.
+
+The `cf' request now behaves sensibly in a diversion. If used in a
+diversion, it now arranges for the file to be copied to the output when
+the diversion is reread.
+
+There is a new request `trf' (transparent file) similar to `cf', but
+more like `\!'.
+
+There is a new escape sequence `\Y[xxx]', roughly equivalent to
+`\X'\*[xxx]'', except that the contents of string or macro xxx are not
+interpreted, and xxx may contain newlines. This requires an output
+format extension; the drivers have been modified to understand this.
+Grops has also been modified to cope with newlines in the arguments to
+\X commands; grops has a new \X command mdef, which is like def except
+that it has a first argument giving the number of definitions.
+
+There is a new warning category `escape' which warns about unknown
+escape sequences.
+
+The `fp' request now takes an optional third argument giving the
+external name of the font.
+
+The `\_' character is now automatically translated to `\(ul' as in
+troff.
+
+The environment variable `GROFF_HYPHEN' gives the name of the file
+containing the hyphenation patterns.
+
+There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
+
+Characters ", ', ), ], *, \(dg are now initially transparent for the
+purposes of end of sentence recognition.
+
+There is an anti-recursion feature in the `char' request, so you can say
+`.char \(bu \s+2\(bu\s-2'.
+
+The limit on the number of font positions has been removed. Accordingly
+`\n[.fp]' never returns 0.
+
+The restriction on the number of numbered environments has been removed.
+
+There is a new escape sequence `\E' that makes it possible to guarantee
+that an escape sequence won't get interpreted in copy-mode. The `\R'
+escape sequence is accordingly now deprecated.
+
+Gpic
+----
+
+Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
+`if' and `define' constructs) can now be of the form `{ anything }'.
+
+If the `linethick' variable is negative (as it now is initially), lines
+are drawn with a thickness proportional to the current point size.
+
+The `rand' function now takes no arguments and returns a number between
+0 and 1. The old syntax is still supported.
+
+`^' can be used in expressions to indicate exponentiation.
+
+In the `for' construct the argument to the by clause can be prefixed by
+`*' to indicate that the increment is multiplicative.
+
+A bare expression may be used as an attribute. If the current direction
+is `dir', then an attribute `expr' is equivalent to `dir expr'
+
+There is a `sprintf' construct that allows numbers to be formatted and
+used wherever a quoted string can be used.
+
+The height of a text object without an explicit height attribute is the
+number of text strings associated with the object times the value of the
+`textht' variable.
+
+The maximum height and width of a picture is controlled by the
+`maxpswid' and `maxpsht' variables.
+
+Gtbl
+----
+
+Gtbl can now handle gracefully the situation where the `ce' request has
+been applied to a table.
+
+Geqn
+----
+
+The `ifdef' primitive has been generalized.
+
+A tilde accent can be put underneath a box using `utilde'. This defined
+using a general `uaccent' primitive.
+
+Grops
+-----
+
+There is a new PostScript font downloading scheme which handles font
+downloading for imported illustrations. Previously, the name of the
+file containing the font was given in the `x download' line in the groff
+font metric file. Now, there is a `download' file which says for each
+PostScript font name which file contains that font. Grops can also now
+handle inter-font dependencies, where one downloadable font depends on
+some other (possibly downloadable) font.
+
+The `T' font has been removed. The characters it used to provide are
+now provided by `char' definitions in tmac.ps. TSymbol.ps has also been
+removed, and the tweaks it provided are now provided by `char'
+definitions.
+
+
+##### Editor settings
+Local Variables:
+coding: latin-1
+fill-column: 72
+mode: text
+version-control: never
+End:
+# vim: set autoindent textwidth=72: