Release ...
* [nt]roff: Fix the execution order of output line traps to be left-to-right,
  and execute them before page traps, as documented (bug report by
  Pierre-Jean Fichet).
* troff/dpost: Support for URI links in PDF documents has been added
  (contributed by Michael Piotrowski).
* [nt]roff: Hyphenation patterns for Dutch have been added (contributed
  by Erwin Koning).
* troff/dpost: "kern" tables in TrueType fonts were indexed wrongly, which
  mostly led to missing kerning pairs but might have led to completely wrong
  kerning pairs under rare circumstances (patch by Matthew Fischer).
* troff: The ".connectchar" request has been added to customize the set
  of characters that are drawn as overlapping with the "\l" function.
* troff: Allow "\~" to shrink, not just to stretch (bugreport by Roy Fisher).
* troff/dpost: Embed TrueType fonts without a PostScript field correctly
  (bug reported by FENG Yu Ning).
* troff/dpost: Include the last character in a TrueType "post" 2.0 table
  which was previously omitted; same for the last entry of the last subtable
  in the "cmap" table (patch by Matthew Fischer).
* troff/dpost: Accept "cmap" entries with Platform ID 3, Encoding ID 0
  (Symbol) as Unicode tables (patch by Matthew Fischer).
* troff/dpost: Handle TrueType fonts with format 12 cmap tables (UCS-4)
  (patch by Matthew Fischer).
* troff/dpost: Handle TrueType fonts in which glyphs appear multiple times
  in Unicode tables gracefully (bugreport by Matthew Fischer).
* troff/dpost: Handle TrueType files with a unitsPerEm value less than
  1000 ((bugreport by Matthew Fischer).
* troff: Do not apply font-specific character translation inside \D,
  which led to wrong output e.g. with \D'l' with an OpenType font with
  the small caps feature activated (bug reported by Russ Cox).
* dpost: Fixed the width of the "\(ul" character such that the lines of
  wide boxed tables do not stick out at the right end anymore (bugreport
  by Roy Fisher).
* troff: The "\X" and "\Y" escape sequences are no longer interpreted
  in copy mode, as there is no case when this would be useful, and the
  behavior now matches groff and Plan 9 troff (thanks to Russ Cox).
* dpost: Fixed a case in which invalid backslash sequences were generated
  when insane sizes appeared in intermediate troff input (bug reported by
  Russ Cox).
* refer: The "-p" option now works with files that are not in the
  current directory (bug reported by Michael Piotrowski).
* lookbib: This version does not support the "-n" option, which was
  described in the BSD-derived manual page (thanks to Michael Piotrowski).
* [nt]roff: Do not go into an infinite loop if a tab character appears in
  the arguments to ".warn" (bug reported by Russ Cox).
* [nt]roff: Fixed a possible crash on 64-bit machines due to the choice
  of an int for ptrdiff_t in paragraph-at-once justification (Steve Kargl),
  and another one in the hyphenation code (Sean Jensen).
Release 080407
* [nt]roff: A type definition problem that caused an endless loop on
  64-bit systems has been fixed.
* [nt]roff: The ".warn" request now accepts full numeric expressions
  instead of plain numbers only.
* -mg macros: When reading the output of "ls" to emulate ".mso", use
  nofill mode to avoid artifacts from paragraph adjustment that cause
  the request to fail.
* eqn: Before an equation or binary operator, print a "\|" instead of
  a "\^" if the preceding character is italic. The previous behavior
  resulted from a too far-reaching change in release 051107. (Bug
  reported by Joerg van den Hoff.)
* eqn: Do not displace "hat" and "tilde" horizontally (bug reported by
  Joerg van den Hoff).
* eqn: Fixed the types of yylex() and yypv.
Release 070908
* troff: The ".hw" request now works correctly for words that contain
  ligatures (bug reported by Dirk-Wilhelm Peters).
* troff: Hyphenate correctly when a hyphenation point occurs inside a
  ligature that follows a non-ASCII character. Previously, the word was
  actually hyphenated too early in this situation (bug reported by
  Dirk-Wilhelm Peters).
* troff: Clear the font width cache before mounting a Type 1, TrueType,
  or OpenType font. The previous failure to do so could lead to improper
  alignment of lines when a font was mounted on the same font position
  that was previously used (bug reported by Dirk-Wilhelm Peters).
* [nt]roff: When converting floating point values in exponential notation
  (1.234e5 etc.) to integers, apply the exponent before computing the final
  position of the decimal point for better rounding behavior (bug reported
  by Dirk-Wilhelm Peters).
Release 070524
* [nt]roff: Fixed an endless loop that occurred when ".ns" was active at
  the end of a document and ".bp" was called from the page trap macro.
* dpost: When including a picture, the PostScript "save" and "restore"
  operators are now executed in correct order. Previously, the state
  before page initialization was restored before including a picture.
  Thus, graphics attributes such as colors were reset to the state
  before page initialization, and drawing (as with pic) did not work
  afterwards but resulted in a PostScript error.
* [nt]roff: With paragraph-at-once adjustment, if a ".in" was encountered
  before any input, its argument was ignored. This lead to zero indent in
  combination with the 6h Edition manual page macros, and has been fixed.
* troff: Do not break a line at a zero-width character, as e.g. inside a
  "\X'...'" or "\z'...'".
* troff: The ".flig" request can now use the \[] names for ff, ffi, and
  ffl ligatures properly, i.e. ".flig R ff \[ff]" works (bug reported by
  Sebastian Leusch).
* troff: Pseudo-ligatures for ff, ffi, and ffl are no longer added to fonts
  that do not contain the respective base characters. This makes it possible
  to use a fallback sequence like ".fallback R XX FF", where XX does not
  contain ff ligatures, but FF does, and to get the ligatures from font FF
  as expected (bug reported by Sebastian Leusch).
* [nt]roff: Using ".hy" or ".nh" is now effective for the last word of a
  "\@{...\@}" inline environment.
* The file "grap.defines" is now installed again; it was omitted in the
  previous release.
* When generating a RPM package, install all manual pages into
  "/usr/share/man/5man" to avoid conflicts with manual pages of
  packages supplied by the distribution default packages.
Release 070318
* [nt]roff: The concept of an "inline environment" has been introduced.
  An inline environment contains the values of the current point size, the
  current font, the current escape character, and other similar parameters.
  It can be saved with "\@{" and then restored with "\@}". Unlike the "\s0"
  and "\fP" escape sequences, inline environments form a stack. Thus after
  executing "\fB...\@{\fR...\@{\fI...\@}...\@}", the current font is "B"
  again, while it would be "I" with "\fB...\fR...\fI...\fP...\fP". Inline
  environments can be used to represent constructs like "..." in
  HTML, which would be translated as "\@{\fI...\@}".
* [nt]roff: A modulo zero operation (N%0) is now ignored and causes a
  warning of the "range" type to be issued. It could previously lead to
  a core dump because of an arithmetic exception.
* [nt]roff: In paragraph-at-once adjustment mode, ".in" and ".ll", when
  invoked from traps, now have a permanent effect; such settings were
  previously discarded at the end of the paragraph. What still does not
  work is "'in" outside a trap with a value relative to the indent set
  inside a trap.
* [nt]roff: An internal problem with paragraph-at-once line breaking mode
  has been fixed; it caused a ".in" or ".ll" command to be ignored under
  rare circumstances.
* [nt]roff: At the end of input in paragraph-at-once line breaking mode,
  make sure that any partial paragraph is flushed before executing other
  termination procedures. The previous failure to do so lead to missing
  output at the end of the document if it did not fit on the current page.
* troff, dpost: OpenType and TrueType fonts with Unicode platformID cmap
  tables are now supported for reading Unicode character mapping tables.
  Previously, only Microsoft platformID cmap tables were supported, and
  others were ignored.
* troff, dpost: Fixed a null pointer dereference that occurred when an
  illegal glyph ID was encountered in the "liga" table of an OpenType
  font.
* troff, dpost: Apple TrueType fonts with a "true" header magic are now
  actually supported; they could previously only be read by otfdump.
* [nt]roff: ".ev \}" has now been actually fixed (Bugreport by Dirk-Wilhelm
  Peters.)
* -man macros: ".P" is now recognized; it is the same as ".PP".
* -man macros: ".I \fR other-args" is not ignored anymore; same for
  ".B", ".SM", and ".SB".
* Unix 6th Edition manual macro packages have been added.
* -mandoc macros: Recognize Unix 6th Edition pages.
* showfont.sh: Font file arguments with absolute path names are now
  supported.
Release 070202
* [nt]roff: The "\J" escape sequence has been introduced to specify a
  default line breaking penalty; useful to discourage line breaks within
  a person's name or a formula. Relative values in the "\j" sequence now
  refer to the default penalty value.
* dpost: A manual page has been added since it has now been released by
  Sun under the CDDL license.
* -man macros: The ".TP" macro has been fixed not to spread the initial
  string. This is particularly for use in combination with "-mpadj" since
  paragraph-at-once line breaking can lead to more spreading in the first
  line.
* [nt]roff: Special characters like "\}" do now terminate environment
  names in arguments to the ".ev" and ".evc" requests as with other names.
  Thus ".ev \}" is no longer misinterpreted as an attempt to change to an
  environment named "\}". (Bugreport by Dirk-Wilhelm Peters.)
* dpost: Cast size_t arguments to long for printf (Stefan Tramm).
* The reference manual now uses the free TeX Gyre Termes fonts available
  from . For this and the other
  documentation texts, README files have been added to explain which
  fonts are needed in order to build them. (Thanks to Werner Lemberg for
  notification.)
* Several manual pages have been moved from "BSD Compatibility" to the
  standard sections if they had not actually been part of the SVR4 BSD
  compatibility package.
Release 061212
* [nt]roff: Relative numbers can be used with the ".pshape" request now;
  they refer to the preceding indent and line length pair, or, for the
  initial pair, to the standard indent and line lenght settings.
* [nt]roff: A warning of the "range" category is now printed when the
  indent is set to a value exceeding the line length.
* troff: In ".ad p" mode, when a line break was inserted after an
  existing hyphen or em dash, another hyphen was added when the previous
  characters formed a kerning pair. This has been fixed.
* troff: In ".ad p" mode, when the character before the first interword
  space formed a kerning pair with the space character, the line length
  was incorrectly computed, and the line was prolongated by this amount.
  This has been fixed.
* troff: The "\{", "\}", and "\x" escape sequences inhibited kerning in
  the adjustment computation but not in the output routine, which could
  lead to prolongated output lines. They now inhibit kerning completely.
* eqn: Generated equations no longer start with "\x'0'". This allows
  kerning with the preceding character in an inline equation.
* nroff: The content of a "\X" function is now ignored (instead of being
  printed with zero width).
* nroff: Combining UTF-8 characters are now assumed to have width zero.
* nroff: The ".rd" request has been fixed; it had not been working since
  the last release.
* troff: The ".rd" request now accepts locale-dependent input characters.
* [nt]roff: Fixed an error in ".ad p" mode which could lead to core dumps
  with ".ev" requests that were not properly paired.
* nroff: Hyphenation of words containing non-ASCII characters now really
  works; such characters were erroneously dropped with the last release,
  leading to incorrect hyphenations in some cases.
* troff: Use of the "\s+[n]", "\s-[n]", "\s+'n'", or "\s-'n'" escape
  sequence forms now leaves the arithmetic unit handling in a clean
  state. The previous failure to do so lead to wrong numeric results
  under certain circumstances; in particular, it caused the "over" eqn
  keyword to produce incorrect output.
Release 061114
* [nt]roff: The units "t" (printer's point), "T" (printer's pica), "D"
  (Didot point) and "C" (cicero) have been introduced.
* [nt]roff: ".ad p" mode no longer employs a temporary diversion; the
  lines are now written directly to the current output level, possibly
  interrupted by trap processing. This makes it possible to use "'in"
  and ".ll" inside a paragraph, although the line breaking decisions
  may be suboptimal in this case.
* [nt]roff: The ".hypp" request now accepts a third argument specifying
  a penalty for hyphenating the last word of a paragraph.
* nroff: Characters are now internally stored as 64-bit integers as
  in troff. As a consequence, hyphenation of words in international
  languages now works if non-ASCII characters are involved.
* [nt]roff: A memory allocation error that could occur with extensive
  use of output-line traps has been fixed.
* [nt]roff: A control character written in a diversion is now correctly
  interpreted when the diversion is re-read (unless in groff compatibility
  mode). This fixes the ".AU" macro of "-mm".
* [nt]roff: The "\R" escape sequence works correctly again; in the last
  release, it had inserted the letter "R" into the text.
* [nt]roff: Long names including a string in their name are now handled
  correctly, e.g. ".nr x\*yz 1" no longer tries to set the register "x\*y"
  to the value "z".
* [nt]roff: Fixed some more memory access problems that had been introduced
  with support for local variables.
* [nt]roff: Fixed a non-local goto error that could lead to segmentation
  faults with ".ad p" at the end of the input.
* [nt]roff: Fixed a problem in ".bp" that could lead to the page number
  being reset to zero in ".ad p" mode.
* [nt]roff: A null pointer dereference in ".ad p" mode that occured when
  nofill mode was activated while a partial paragraph was present has been
  fixed.
* -ms: The ".IX" index macro now works in ".padj" mode.
* -me: The ".(x" and ".)x" index macros now work in ".padj" mode.
* A "-mpadj" macro set has been added. It simply executes ".do padj"
  and is useful to enable paragraph-at-once adjustment from the command
  line.
Release 061106
* [nt]roff: Support for paragraph-based justification has been added,
  enabled with ".ad p". The "Justification in Heirloom Troff" document
  has been expanded to cover the new features.
* [nt]roff: The ".hylen" request has been introduced to control the
  minimum number of characters a word must contain in order to be subject
  to hyphenation. The default is 5 independent of whether the ".hylang"
  request is active (in that case, it previously had been 4).
* [nt]roff: The ".pshape" request has been introduced to control the shape
  of a paragraph in ".ad p" mode.
* [nt]roff: The ".hypp" request has been introduced to control penalties
  of hyphenation points in ".ad p" mode.
* [nt]roff: The ".padj" request has been added; it enables ".ad p" mode
  globally in all environments. It is most useful to enable paragraph-at-
  once adjustment in existing documents.
* [nt]roff: The "\j" escape sequence has been introduced to specify custom
  penalties for line breaks in ".ad p" mode.
* troff: The ".char" request is now able to construct replacements for
  otherwise unknown locale-specific characters.
* troff: Fixed a typo in the hyphenation code that could result in the
  insertion of a large negative vertical motion in a word containing a
  character above Unicode point U+0800.
* troff: Fixed "\H" and "\S" to become effective if positioned directly
  after a font change (Bugreport by Dirk-Wilhelm Peters).
* [nt]roff: The ".pull" request (introduced in the previous release) has
  been removed again. It is recommended that the traditional approach to
  re-divert text is used instead.
* [nt]roff: Fixed an invalid memory access that had been introduced with
  local strings in the last release.
* troff: Fixed a segmentation violation if a ligature in a hyphenated
  word was not in the current font (Bugreport by Dirk-Wilhelm Peters).
* troff, dpost: Fixed a rounding error when reading TrueType metrics.
* dpost: Fixed a bug introduced with the previous release that caused
  PostScript errors on a page following colored text unless the "-e"
  option was explicitly specified.
* dpost: Now handles DSC font comments in included PostScript files and
  supplies glyph data for them if specified with a troff ".fp" request.
* dpost: Fixed to compile on NetBSD again (Bugreport by Dirk-Wilhelm Peters).
* eqn: Handles fractional point sizes with "size" and "gsize" now.
* tbl: Fixed a segmentation fault with empty tables that occurred due
  to the changed memory layout introduced in the last release.
* A "Quickstart Guide" document has been added. It is aimed at people
  who know other variants of troff to some extent and want to explore
  Heirloom troff.
Release 061010
* A simplistic XSLT stylesheet to convert OpenDocument text to troff input
  has been added. See the comments in the file "stuff/odt2tr.xsl" for usage
  instructions.
* [nt]roff: Local strings and number registers are now supported. They can
  be defined using ".lds", ".lnr", and ".lnrf". A local string or register
  is visible only in the instance of the macro in which is has been defined
  and can then be accessed like a standard global string or register.
* [nt]roff: The ".pull" request has been introduced to print text of a given
  height from a diversion and remove it afterwards.
* [nt]roff: The ".writem" request has been added to write the contents of
  a string, macro, or diversion to a file stream.
* [nt]roff: The ".dwh" and ".dch" requests have been introduced to allow
  multiple diversion traps in the same diversion.
* [nt]roff: The ".trin" (translate but retranslate with ".asciify") and
  ".trnt" (translate but not in transparent mode) requests have been added.
* [nt]roff: The "\n[.dilev]" register contains the current diversion level.
* [nt]roff: The "\B" escape sequence (check for valid numerical expression)
  is now available in regular mode too, not only in groff compatibility mode.
* troff: The second argument to the ".fkern" request now specifies a minimum
  absolute amount for kerning pairs read from font metrics files. Kerning
  pairs with smaller adjustments are ignored.
* tbl: Can now optionally use graphic drawing commands (troff "\D") instead
  of repeated-character line drawing (troff "\l" and "\L"). The "graphics"
  option enables it per table, and the "-g" command line option enables it
  globally.
* tbl: The static limits on the number of table lines, columns, and heading
  lines have been removed. In effect, all lines of a table are considered
  when the column widths are computed, and ".T&" can occur at any line.
* tbl: The "nokeep" option causes tbl not to write a ".ne" command for a
  boxed table.
* troff: The CW, CI, CB, and CX fonts no longer substitute the "fi" and "fl"
  ligatures with the "devps" device. This is consistent with "devpost".
* [nt]roff: If a word starts with a motion followed by a hyphenation
  indicator, such as "\h'1m'\%text" or "\|\%text", hyphenation for the
  word is now suppressed, and no hyphen is generated.
* [nt]roff: When text from a diversion is output or rediverted, it is no
  longer subject to character translations specified with ".tr" and ".ftr".
* [nt]roff: In groff compatibility mode, unless a string is interpolated
  with explicit arguments, the arguments to the surrounding macro instance
  remain visible and can be referenced by "\$" from within the string.
* [nt]roff: The ".length" and ".index" request now strip an initial """ in
  their last argument to allow initial white space.
* [nt]roff: The blank line macro is not called when a diversion is reread
  in nofill mode anymore.
* troff: The escape sequence "\s[0]" now resets the point size to the
  previous value as "\s0" does.
* [nt]roff: Arbitrary delimiters are now allowed with "\s''" escape
  sequences.
* [nt]roff: Fixed a bug that caused ".shift" without arguments to be ignored
  if the last previous numerical expression was invalid.
* troff: The indent of the current line is no longer part of a PDF link
  that continues from the previous line.
* [nt]roff: ".rm" and ".rr" no longer issue a warning if one of their
  arguments is not a defined macro or register, respectively.
* troff: Fixed an error that sometimes caused the "x X Track" command to miss
  in intermediate output.
* troff, dpost: The short font name is now part of the "x font" commands
  in intermediate output for Type 1, TrueType, and OpenType fonts.
* troff: Before generating an "x X" command because of a "\X" or "\Y" escape
  sequence, the current horizonal position is now emitted to intermediate
  output. This makes input like "\h'1i'\X'anything'" work as expected.
* troff: Changes between environments with different ".ss" settings are now
  handled correctly.
* dpost: The default encoding for the "ps" device is now "3".
* dpost: The PostScript "awidthshow" operator is now used with the "-e2" and
  "-e3" encoding options, resulting in reasonable output in combination with
  the ".track" request.
* dpost: With the "-e2" and "-e3" encoding options, use only word spaces as
  indicated by troff for the "widthshow" PostScript operator. This usually
  results in slightly larger PostScript output but is better encodable when
  distilled to PDF so that PDF files become smaller.
* troff: An internal character width caching error has been fixed; it could
  lead to misaligned characters when setting text in fonts containing more
  than 400 characters.
* troff, dpost: Can now handle fonts with up to 65534 characters.
* eqn: Avoid to recognize delimiters inside troff escape sequences with "("
  or "[" as well as directly behind a sequence of backslash characters.
* -mm macros: Fixed a bug which caused .ML output to disappear unless in
  troff -x0 mode.
Release 060905
* [nt]roff: The new ".brnl" request causes a break each time a newline is
  encountered at the end of a text input line. Unlike nofill mode, text is
  still wrapped to the line length.
* [nt]roff: The new ".brpnl" request causes a break and a spread each time
  a newline is encountered at the end of a text input line (as if it were
  attached a "\p"). The "\p" escape sequence changes its semantics in this
  mode and causes a break without a spread.
* [nt]roff: The new ".lpfx" request allows to print a string whenever
  a new output line is started. This is mainly useful to implement a
  historic form of block quotation.
* [nt]roff: The predefined number registers "\n[.in]", "\n[.hy]",
  "\n[.int]", "\n[.lt]", "\n[.pn]", "\n[.psr]", and "\n[.sr]" have been
  added.
* [nt]roff: The semantics of the number registers "\n(.x" (remaining space
  on current output line) and "\n(.y" (current actual indent) are now
  documented.
* [nt]roff: The "\n[.kc]" register has been introduced; it holds the width
  of a word interrupted with "\c" on output.
* [nt]roff: Control and escape characters written in a diversion are now
  regular characters in groff compatibility mode.
* [nt]roff: It is not a fatal error if the file specified with ".so" is not
  accessible in groff compatibility mode.
* [nt]roff: The value of the "\n(.k" register is computed differently in
  groff compability mode now.
* [nt]roff: The -mg macros now provide the fonts "C" and "CR".
* [nt]roff: The -mg macros now provide an emulation of the ".mso" request.
* [nt]roff: The command line options "-ds=x" and "-ra=N" are now accepted,
  thus the string or register name before "=" can consist of more than one
  character.
* [nt]roff: The ".rd" request now works again; it caused a segmentation
  fault since several releases.
* [nt]roff: Formatting of a ".char" object immediately before a trap is
  executed no longer causes pending input text to disappear (bug reported
  by Sebastian Leusch).
* troff: The escape sequence form "\s[+-]'n'" now works with fractional
  point sizes.
* troff: With xflag 0, fractional parts and units are now ignored with
  the ".ps" command.
* [nt]roff: With xflag 0, ".if !..." works correctly again.
* [nt]roff: When copying text to a macro, if a line appeared that was a
  prefix of the terminating macro, its last character was copied twice
  (e.g. "..." with the standard ".." was copied as "...."). This has been
  fixed.
* -me macros: The macros now work with xflag > 0.
* [nt]roff: The distance to the next trap, and, accordingly, the "\n(.t"
  register, can now be larger than the maximum allowed motion with "\h"
  and "\v". This allows very long pages without a "trap botch" error,
  although vertical motions on such pages may require multiple "\v"
  commands.
* [nt]roff: Fixed a reallocation problem that caused segmentation faults
  with some compilers.
* [nt]roff: Fixed the "-u" option not to cause a segmentation fault.
* [nt]roff: The "\n(.S" predefined number register has been removed again
  since it conflicts with use of this name by "dot -Tpic". (The "\n[.tabs]"
  register continues to be available with the same semantics.)
* troff: There is now a "lc_ctype" keyword in the DESC file for the sake
  of legacy post-processors that do not understand "x X LC_CTYPE".
* dpost: Use the device given by "x T" in intermediate language for reading
  font files only if its name starts with "ps" or if it has the "afmfonts"
  keyword in its DESC file; otherwise use "devpost".
* tbl: The forms "f (X)", "w (x)", and "fX." are now accepted in column
  specifications.
Release 060813
* [nt]roff: A new type of traps is available: output-line traps. They are
  set with the new "\P" escape sequence and are invoked when the line that
  contains the corresponding sequence has been output.
* [nt]roff: The ".index" request has been added to determine the position
  of a string within a string or macro.
* [nt]roff: Floating-point registers have been introduced; they can be
  created and modified with the ".nrf" request and are otherwise like
  standard integer number registers, with which they share a common name
  space.
* [nt]roff: The ".if f expr" condition has been introduced to evaluate
  an expression with floating-point computation.
* [nt]roff: Exponential notation, as in "1e+10", is now supported in
  numerical expressions.
* [nt]roff: Debugging requests for watching macros, strings, and number
  registers have been added.
* [nt]roff: The ".errprint" request has been added to write custom strings
  in the same format as internal error messages.
* [nt]roff: The ".cp" request has been added to control compatibility with
  groff.
* [nt]roff: The "-mg" macro package has been added for improved support of
  groff documents, preprocessors, and macro sets.
* [nt]roff: The ".while", ".break", and ".continue" requests have been
  added as another method to process input repeatedly.
* [nt]roff: Space characters inside parentheses in numerical expressions
  are now permissible, i.e. they are discarded and do not terminate the
  expression.
* [nt]roff: The ".char", ".fchar", and ".rchar" requests have been added
  to transform a single input character to multiple output characters.
* [nt]roff: The ".ecs" and ".ecr" requests have been added to save and
  restore the escape character.
* [nt]roff: The ".shc" request has been added to set the soft hyphen
  character.
* [nt]roff: The ".hcode" request has been added to specify character
  mappings for hyphenation purposes.
* [nt]roff: The sets of sentence-ending and transparent characters are
  now configurable with the ".sentchar" and ".transchar" requests.
* [nt]roff: The set of optional line break characters (normally hyphen
  and em dash) is now configurable with the ".breakchar" request.
* [nt]roff: The ".nhychar" request defines a set of hyphenation-
  inhibiting characters (as hyphen and em dash with traditional troff
  hyphenation).
* troff: The second argument to the ".ss" request now actually sets the
  size of the sentence-end space instead of just switching it on or off.
* [nt]roff: The ".unformat" and ".asciify" requests have been added to
  remove the effects of adjustment, and font and point size information,
  respectively, from a diversion.
* [nt]roff: The "\Z'string'" escape sequence (print string and restore
  the position afterwards) has been introduced.
* [nt]roff: The ".als" request has been added to create an alias name
  for a request, macro, or string.
* [nt]roff: The ".aln" request has been added to create an alias name
  for a number register.
* [nt]roff: The ".rnn" request has been added to rename a number register.
* [nt]roff: The ".box" request has been added; it is like ".di" but saves
  and restores a previous partially filled line.
* [nt]roff: The ".spacewidth" request has been introduced to default to
  the width of the space character as obtained from the font metrics file.
* [nt]roff: The ".rj" request (right-align next input lines) has been
  added. The ".rj" number register that holds the number of remaining
  lines to be right-adjusted has been added.
* [nt]roff: The ".ce" number register that holds the number of remaining
  lines to be centered with the ".ce" request has been added.
* troff: The "\Yx", "\Y(xx", or "\Y[xxx]" escape sequence has been added
  to output the contents of the string or macro x, xx, or xxx, respectively,
  as a device control function.
* [nt]roff: The "\$0" escape sequence has been added to refer to the name
  of the current macro or string.
* [nt]roff: The "(c;e)" numerical expression function has been added to
  evaluate "e" using "c" as default scale indicator.
* [nt]roff: The "M" (Em/100), "s" (= "u"), and "z" (= "p") scale indicators
  have been added.
* [nt]roff: The ".ta T Nt Mu" syntax to set tab stops repeatedly is now
  supported.
* [nt]roff: The "\n(.S" and "\n[.tabs]" registers have been added to save
  and restore tab stops.
* [nt]roff: The "\n[.ev]" number register has been added as a method to
  determine the name of the current environment.
* troff: The "\n[rst]" and "\n[rsb]" registers are set by the width function
  to the highest and lowest extent of the bounding box of any character.
  This currently only works for Type 1 and TrueType fonts.
* troff: The "\n[.cht]" and "\n[.cdp]" registers are set to the highest
  and lowest extent of the bounding box of the previous character. This
  currently only works for Type 1 and TrueType fonts.
* [nt]roff: In extension level 1, long string "\*[xxx]", register "\n[xxx]",
  and font "\f[xxx]" names are no longer recognized unless they are on a
  line beginning with the ".do" request.
* [nt]roff: The "\n[.ps]" number register, which holds the current font
  size in device units, has been added.
* [nt]roff: The "\E" escape sequence has been fixed; it does not resolve
  to a printable but to an effective escape character now.
* [nt]roff: The "\)" escape sequence (like "\&" but transparent for
  sentence ending) has been added.
* [nt]roff: Static limits on word and line size have been eliminated.
* [nt]roff: The "\{", "\}", "\&", "\%", "\c", and "\(space)" escape
  sequences terminate two-character request names now.
* [nt]roff: The ".tm" and ".write" commands now discard formatted motion
  sequences.
* troff: The ".psbb" request now reads a "%%HiResBoundingBox" DSC comment
  in preference to "%%BoundingBox"; the registers it assigns to are now
  floating-point registers.
* troff: The ".psbb" request now properly supports the "(atend)" syntax in
  PostScript DSC input files.
* nroff: The ".psbb" request has been made a no-op since nroff cannot
  otherwise handle EPS documents anyway.
* [nt]roff: The "right-brace" warning category has been added.
* [nt]roff: Calls of ".vs" that result in negative numbers are now
  ignored.
* [nt]roff: The width function "\w" now takes pairwise kerning into
  account.
* [nt]roff: The ".return" request has been fixed not to ignore the next
  line of input when followed by text on the same line.
* [nt]roff: The second argument of the ".ss" request now also applies
  to sequences of space characters that follow a sentence end character.
* [nt]roff: The "\k[name]" escape sequence has been fixed to work if
  "name" has not been previously been used.
* [nt]roff: The "\(dq" character has been introduced as an alternate name
  for the ASCII double quote character.
* dpost: Character height and slant changes now only apply to the current
  font as documented.
* tbl: When ending macros in generated code, ".00" is now used instead
  of "..". This allows the use of ".ig" and similar requests within "T{"
  etc. without interference.
* pic: Accept "{lower|upper} {left|right} of" as aliases for ".nw", ".sw",
  ".ne", and ".se".
* pic: Continued newlines in expressions like "center \of" are
  now accepted.
Release 060716
* troff: The ".letadj" request has been added to enable dynamic letter
  spacing and letter reshaping when justifying lines.
* troff: Font and size attributes of space (and newline) characters in
  input are now honored for computing widths and kerning pairs. Previously,
  font and size of space characters were always that of the next printable
  character; this is retained with the -x0 option. This means that e.g. in
  "\f(CWabc \fRdef", the size of the space is now computed from the
  constant width font instead of the roman font.
* [nt]roff, dpost, daps: The character name "\(rs" for backslash has been
  introduced.
* nroff: "\[xx]" and "\C'xx'" result in the same character as "\(xx" now.
* [nt]roff: The ".nx" request now works again, it previously caused
  a segmentation fault because of a null pointer dereference (bug
  reported by Michael Hobgood).
* [nt]roff: With the ".hylang" request, words that consist of four
  characters are now subject to hyphenation (with the traditional
  hyphenation, five characters are the minimum length).
* [nt]roff: The ".hy" request accepts the additional flags 16 and 32 that
  allow the last or first character of a word, respectively, to be split
  off.
* troff: Giving no arguments to ".minss" now deactivates this mechanism.
* troff: ".minss" now has no effect unless in ".ad b" mode as documented.
* [nt]roff: The ".ss", ".sss", ".minss", ".lspmin", ".letss", ".lspmax",
  ".lshmin", ".lshmax", ".lc_ctype", ".hylang", and ".fzoom" number
  registers have been added to retrieve the current values set with the
  respective requests.
* [nt]roff: The forms "\s+-'dd'", "\s+-[dd]", and "\s[+-dd]" of the size
  change escape sequence are now understood.
* [nt]roff: The ".nop text" request (use text as input) has been added.
* [nt]roff: The escape sequence "\R'R +-N'" to set the value of a number
  register has been added.
* [nt]roff: String references now accept arguments with the \*[xx arg ...]
  escape sequence.
* [nt]roff: The ".blm xx" request has been added, it causes ".xx" to be
  called whenever a blank line is encountered.
* [nt]roff: The ".itc" request (input trap not counting "\c") has been
  added.
* [nt]roff: The ".hlm" request and the ".hln" and ".hlc" number registers
  have been added to control the maximum number of consecutive hyphenated
  lines.
* [nt]roff: The "\#" escape sequence (comment including newline) has been
  added.
* [nt]roff: With xflag 3 and warning "mac" deactivated, if ".xx" was a
  defined request and ".xxx" was not, ".xx" was executed for ".xxx".
* [nt]roff: Several segmentation violations that occurred with arbitrary
  binary data as input have been fixed.
* troff, dpost, otfdump: The operator 12 in CFF Top DICT entries was not
  handled correctly, resulting in misleading error messages with some
  OpenType fonts. This has been fixed (bug reported by D. Jeff Dionne).
Release 060619
* troff: The ".minss" request has been added. It allows troff to decrease
  the size of the word space below the value set by ".ss" when adjusting
  lines at both margins.
* troff: The ".kernpair", ".kernafter", ".kernbefore", ".lhang", and
  ".rhang" requests now also accept groups of characters to which the
  same kerning/hanging value is applied.
* [nt]roff: It is now possible to use strings inside macros names (e.g.
  ".xx\*(yy" as documented.
* [nt]roff: The ".if d", ".if n", and ".rr" requests erroneously applied
  to a shorter two-character name if an undefined longer name was given
  as an argument; this has been fixed.
* troff: The ".fkern" request now properly refers to a single mounted
  instance of a font; it previously affected all mounted instances of
  one font metrics file.
* troff: Character replacements with ".tr" where the target character
  does not originate from the current font but is found in the fallback
  sequence are now performed correctly. Previously, an invalid heap
  access could occur, resulting in the choice of random characters.
* troff: Margin characters set with ".mc" are now correctly placed in
  combination with hanging characters set with ".rhang".
* [nt]roff: It is legal to call ".it" or ".dt" without arguments, thus
  a warning is no longer issued in this case.
* troff: Selecting one of the base fonts with ".ft" without a previous
  ".fp" works again; it was broken in the last release.
Release 060430
* troff/dpost: Links and anchors in PDF documents can now be defined;
  "\A" and "\T" escape sequences have been introduced for this.
* [nt]roff: Tail-recursion elimination for macro calls has been added.
  This allows recursive macro calls of arbitrary depths when the call
  to itself occurs in the last line of the macro.
* troff: The ".fkern" request has been introduced to disable the use of
  the kerning tables of specific fonts.
* [nt]roff: The "\V" escape sequence has been introduced; it prints the
  value of an environment variable.
* troff: An explicit "N" font register argument to the ".fp" request may
  now be an arbitrary number between 1 and 255.
* troff: The "\n[.fp]" number register has been introduced to make it
  possible to determine the next unused font register.
* [nt]roff: The "-daS" command line option has been added to define the
  string "a" to "S".
* [nt]roff: The ".output" request has been added to write a command to
  intermediate output regardless of whether there is a current diversion
  or not (unlike "\!").
* [nt]roff: A warning is now issued when a non-ASCII byte is found in
  a name (of a request, number register, etc.) with the "input" warning
  category.
* [nt]roff: Long request names as second arguments to macro definitions
  (as in ".de xx longname") are now handled correctly.
* [nt]roff: The ".close" request has been fixed; repeated calls to it
  could previously result in lost file stream descriptors.
* troff, otfdump, dpost: The end of floating point values in CFF data is
  now properly recognized; the previous failure to do so could result in
  errors like "invalid operand b0 range 255" with valid OpenType fonts.
* troff: In TrueType fonts with version 3.0 "post" tables, characters that
  lack a Unicode mapping can now be accessed as "\[index0xN]".
* [nt]roff: The need for the sbrk() system call has been eliminated; the
  regular system malloc() is now used.
Release 060409
* dpost: An error that could lead to invalid PostScript output when the
  last character of a long output string sequence was a backslash has
  been fixed.
* troff: The ".flig" request has been enhanced to enable the definition
  of arbitrary font-specific ligatures, e.g. ".flig R Th \[T_h]" could
  be used for a "Th" ligature. The previous syntax is still accepted.
* troff: If a hyphentation point occurs within an automatically created
  ligature, the ligature is now split into its parts.
* troff: The "\;" escape sequence has been introduced as a ligature
  suppressor without other side-effects.
* troff: The ".fdeferlig" request has been introduced. It defers building
  of a ligature by one character, e.g. if both "ff" and "fi" are defined
  as ligatures and "ffi" appears in input, a single "f" followed by the
  "fi" ligature can be constructed instead of a "ff" ligature followed by
  a single "i".
* [nt]roff: The hyphenation language as set by the ".hylang" request is
  now specific to the current environment.
* [nt]roff: The ".substring" and ".length" requests have been added to
  replace a string by a substring of it and to determine the length of
  a string, respectively.
* troff: No longer prints a warning when a font selected with ".ft" is
  not currently mounted but can be mounted in position 0.
* nroff: No longer prints a warning when a font is selected with ".ft".
* nroff: Multibyte characters are now emboldened correctly. Previously,
  the number of backspace characters output corresponded to the length
  of the multibyte sequence instead of the column width of the character
  (bug reported by Alexander E. Patrakov).
* dpost: The line width for drawing has been fixed; previously, lines
  were 100 times too slim with the "ps" device.
* troff: The "\C'xxx'" escape sequence is now available; it selects a
  named character with the same effect as "\[xxx]".
Release 060321
* An revised version of the "Nroff/Troff User's Manual" is now available
  in the directory "doc/troff". It replaces the "NEWS" and "PDFS" text
  files; these have been removed.
* A typeset version of "Font Handling in Troff With PostScript Devices"
  is now available in the directory "doc/fonts". It replaces the "FONTS"
  text file that has been removed.
* [nt]roff: Hyphenation is now enabled by default. This is compatible
  with most other versions of troff, but differs from Solaris troff.
* troff/dpost: The characters \(or \- \` \' " # < > @ \ ^ ~ are now
  taken from the current font instead of the special font by default 
  if possible with the "ps" and "psmed" devices. The new DESC keyword
  "allpunct" controls this.
* troff: Kerning pairs from font metrics files that include "\[name]"
  characters now work correctly; they could previously apply to wrong
  characters with font files containing more than 260 characters, and
  were ineffective with smaller ones.
* troff: OpenType and TrueType kerning pairs with a position difference
  of zero are now completely ignored. They could previously overwrite a
  previous positioning difference for the same pair. Also if a kerning
  pair occurs more than once in the metrics file, the first definition
  read is now used instead of the last one.
* troff: In an OpenType font, if a kerning pair occurs in both a "Pair
  Positioning Adjustment" format 1 (kerning by specific glyphs) and a
  format 2 (kerning by glyph classes) table, the format 1 definition
  is now always used.
* tbl: Storage space expansions because of long lines inside a table are
  now done properly.
* troff: The "\n[.ascender]" and "\n[.descender]" registers contain the
  typical extents of the current font above and below the base line,
  scaled to the current point size.
* troff: Zero-width space characters are no longer considered word space
  when a line is justified. This fixes "\X" device control functions in
  diversions.
* dpost: The metrics of the underscore character in the PostScript Symbol
  font (which is mapped to "\(ul" and is used to draw horizontal lines)
  are now dynamically adjusted in the generated PostScript code. This
  works around varying metrics of this character in different versions
  of the Symbol font. Note that this does not work in PDF unless the
  font is embedded at the time the document is distilled.
* dpost: The "\(sq" glyph is now filled in any font with a "Weight" entry
  of "Bold", "Ultra", or "Heavy".
* dpost: The "post" device works again; dpost previously crashed with a
  null pointer dereference when it was used.
* troff/dpost: EPS files that contain carriage-return characters as
  newline indicators are now correctly handled with the ".psbb" request
  and the picture inclusion mechanism.
* [nt]roff: The "\(.z" number register handles diversion names longer
  than two characters properly now.
* [nt]roff: Requests like ".bd" or ".kernpair" now warn when an invalid
  font name is given.
* [nt]roff: No "illegal number" warning is printed anymore when a "\}" is
  found as part of a possibly numeric argument, as in e.g. ".bp \}".
* [nt]roff: The ".mc" request does not require an argument so no warning
  is printed if it is given none.
* dpost: When a PDFMark Bookmark command is issued at the beginning of
  a page of intermediate output before any text has been printed, the
  value "4" is now substracted automatically to make the PDF viewer
  show the whole page top including margin.
* -mm macros: An error that was introduced when the macros were converted
  to use spaces between a request name and its arguments has been fixed.
  It sometimes caused the page offset to be wrong.
Release 060221
* [nt]roff: With the ".hylang" request, the individual parts of words
  composed by "-" or "\(em" characters are now subject to hyphenation.
* troff: The ".fspacewidth" request has been introduced to set the width
  of the space character of a font.
* troff: For monospaced fonts, the space width is now set to the size of
  the "space" character in the AFM/TrueType/OpenType font metrics. This
  matches the traditional behavior of the "post" device with the "Courier"
  font, but was previously not done for "ps", which led to incorrect
  formatting.
* troff: Non-ASCII small characters were erroneously mapped to uppercase
  input characters. They are now mapped to lowercase input characters as
  it is done for ASCII characters.
* troff: When a regular font was chosen as fallback for an expert font,
  non-ASCII characters were selected from the regular font even if a
  matching character in the expert font existed.
* [nt]roff: Additional conditions are available with ".if": "c" to test
  for a glyph in the current font, "d" to test for the existence of a
  macro, and "r" to test for the existence of a number register.
* [nt]roff: Three additional operators for numeric expressions are
  available: "<>" (not equal), "" (minimum), and ">?" (maximum).
* [nt]roff: The input line number is now adjusted at a different place,
  fixing many glitches which previously caused it to be wrong.
* tbl: The ".lf" troff request is now used internally to adjust troff's
  idea of the current input file and line number, making troff warnings
  more helpful.
* tbl: The ".warn" troff request is now used internally to save, disable,
  and restore warning messages around those portions of tbl output which
  use potentially undefined requests or registers.
* pic: The comments before ".PS" containing bounding box information are
  now prefixed by '.\"' instead of '...' for compatibility with ".warn".
* [nt]roff: The "\n[.warn]" number register is now properly changed after
  a call to ".warn" with no arguments.
* pic/dpost: The PostScript implementation of the "Dl" (draw line)
  operation now rounds the current point to the troff device resolution
  when testing for equality. This is another fix for "box fill 0" in pic.
* troff/dpost: A "x X LC_CTYPE localename" device command has been added.
  This ensures that troff and dpost use the same locale for generating
  PDF bookmark entries.
* dpost: CFF font data is now ASCII hex encoded in PostScript output.
Release 060208
* troff: Eastern European characters for Unicode/PostScript conversion
  have been added (patch by Vladimir B. Machulsky).
* troff, dpost: Font file names can now contain spaces or bytes outside
  the ASCII range. A "%xx" escape sequence, where "xx" are hexadecimal
  digits, has been introduced in order to achieve this. The description
  of ".fp" in the "NEWS" file contains details on this.
* [nt]roff: The ".vpt" request has been added to make it possible to
  disable vertical position traps.
* dpost: With the ".track" command, the tracking amount was not properly
  initialized at every page of PostScript output. This could result in
  incorrect arrangements of characters.
* [nt]roff: Diagnostic messages now include the number of the current
  output page.
* [nt]roff: Page breaks inside a diversion are now properly ignored.
* dpost: When a font was mounted replacing another font on the same
  physical position, non-ASCII characters were not printed correctly
  afterwards (bug reported by Vladimir B. Machulsky).
* dpost: The BookMark device command now causes "/XYZ" destination keys
  to be written to PDF documents. This has the effect that the current
  zoom factor is retained when a bookmark is selected.
* pic, grap: Fixed 8-bit input in label texts (bug reported by Vladimir
  B. Machulsky).
* troff: The ".trimat", ".bleedat", and ".cropat" requests caused some
  following requests (e.g. ".fp") to fail because of an improper reset
  of number scaling (bug reported by Sebastian Leusch).
* troff: If the "\~" character appeared as part of the first word of
  a line not immediately following a break, the current line and the
  line before it were not justified correctly (bug reported by
  Christian Schaper).
* [nt]roff: The ".spreadwarn" request was wrongly called ".spreadlimit"
  in the NEWS file.
Release 060114
* troff: The internal codes for PostScript characters are now unique across
  all fonts. In effect, requests like ".tr" or ".lc" now handle arbitrary
  characters correctly, including locale-dependent ones.
* [nt]roff: The ".mk" request now accepts long register names.
* [nt]roff: Using ".wh" with an undefined long macro name now works as with
  undefined short names; the macro is executed once it has been created.
* troff/dpost: PostScript characters are now passed as "CPSname" in the
  intermediate output (instead of "Nnnn").
* troff/dpost/otfdump: Apple TrueType fonts with a "true" header magic can
  now be read (thanks to Stefan Tramm).
* troff/dpost/otfdump: TrueType handling has been made more robust against
  an error in Microsoft/Unicode "cmap" subtables.
* dpost: Error messages now include the number of the current output page.
* dpost: Color bars can now be generated with "-M colorbars", star targets
  with "-M startargets", and all marks are enabled with "-M all".
* dpost: The ".mediasize" request now also causes a "%%DocumentMedia:" DSC
  comment to be written. This enables some PostScript previewer programs
  to determine the document size.
* troff: On a font mounted with ".fps punct", the "\(en" character is now
  available as expected.
* pic/dpost: The PostScript implementation of the "Dl" (draw line)
  operation has been fixed to move to the beginning of the line properly
  even when "inpath" is set. This fixes "box fill 0" for pic.
* dpost: The geometry setup for drawing commands is now executed in the
  setup section for each page. This makes pic work with filters that
  re-arrange pages in PostScript.
Release 051227
* [nt]roff: A new extension level "3" is available. In this level, undefined
  long requests whose first two characters form an existing short request
  are ignored instead of being interpreted as short requests. Also string
  and number register references are interpreted at any position of a
  long request name in this level.
* troff: Unicode mapping tables from OpenType and TrueType fonts are now
  used for converting input characters.
* troff: Locale-dependent input characters for which no matching glyph can
  be found are now replaced by spaces.
* troff: The ".fps" request has been introduced to map troff special
  characters like "\(*a" or "\(+-" to a custom font.
* [nt]roff: The warning category "missing" is now available; it includes
  warnings about missing required arguments to requests.
* [nt]roff: The warning category "delim" is now available; it includes
  warnings about missing delimiters to escape sequences.
* troff: The ".trimat", ".bleedat, and ".cropat" " requests have been added
  to include advice about the "TrimBox", "BleedBox", and "CropBox" page
  parameters to a PDF distiller command, particularly for PDF/X generation.
* dpost: The "-M" option has been added. It can be used to print cut marks
  ("-M cut"), registration marks ("-M registration"), or both cut marks and
  registration marks ("-M cut:registration") in combination with the
  ".trimat" troff request.
* [nt]roff: The ".af" request now handles long register names correctly.
* troff: Kerning now works correctly in combination with leaders and
  fields.
* troff: The ".tm" and ".write" requests now correctly handle locale-
  dependent input characters as well as one-character escape sequences
  that are interpreted in copy mode such as "\&".
* [nt]roff: The "-msafe" macro now correctly removes the ".do pso",
  ".do open", and ".do opena" requests in -x1 (default) mode. They
  were previously removed in -x2 mode only.
Release 051212
* [nt]roff: The ".pso" request has been added; it reads the output of
  a command as input to troff.
* [nt]roff: The ".tmc" request has been added; it works like ".tm" but
  does not terminate the message with a newline.
* [nt]roff: The ".open", ".opena", ".write", ".writec", and ".close"
  requests have been added. They work like ".tm" but write to a named
  file.
* [nt]roff: The ".warn" request has been added; it enables additional
  warning messages. The "\n[.warn]" register prints bits representing
  the warning categories that are currently enabled.
* [nt]roff: The ".spreadlimit" request has been added; it can be used
  to print a warning when the adjustment computed for an output line
  exceeds a certain value.
* [nt]roff: The ".mediasize" request has been added; it causes dpost to
  specify the page size using the PostScript "setpagedevice" operator.
  This is mainly useful for creating PDF documents.
* [nt]roff: The "\n[hours]", "\n[minutes]", "\n[seconds]", and "\n[year]"
  registers have been added to print more parts of the current time.
* [nr]roff: Availability of extensions is now controlled using an "-xN"
  option, where "N" is the extension level. The previous "-x" and "-X"
  options are still accepted.
* [nt]roff: A "-msafe" macro package has been added; it disables those
  requests that allow to execute commands or to write to files. It is
  mainly useful for viewing manual pages.
* pic: An "-S" option has been added to disable the "sh" element.
* grap: An "-S" option has been added to disable the "sh" command.
* nroff: Recognize the "\s'n'" escape sequence and discard it for
  compatibility with troff.
* dpost: When writing Type 42 fonts, write the sfnts array in a different
  order to avoid an error with Acrobat Distiller.
Release 051202
* [nt]roff: When text is written to a diversion in nofill mode, spacing
  characters are preserved. This allows the text in the diversion to be
  adjusted later when it is actually printed. The "-X" option disables
  the new behavior.
* [nt]roff: The static limit on the number of if-else constructs has
  been removed.
* [nt]roff: The static limit on the number of nested diversions has been
  removed.
* [nt]roff: A maximum of 2000 characters (bytes) is now allowed as the
  total of all arguments to a macro.
* dpost: The inclusion of PostScript pictures has been fixed; it could
  generate invalid PostScript programs since release 051025 under certain
  circumstances.
* dpost: A "x X PSSetup" device request to support a "\X'PSSetup: ...'"
  escape sequence has been added. It can be used to include arbitrary
  PostScript code in the setup section of the output file.
* dpost/troff -mcolor: CMYK colors and arbitrary PostScript color spaces
  can now be used. The "setcolor" procedure in "color.ps" has been renamed
  to "_setcolor" in order to make this possible.
* [nt]roff: A ".psbb" command is now available to retrieve the bounding box
  of a PostScript document (particularly of an EPS image).
* dpost: DSC comments of included EPS images are now preserved.
* dpost: PostScript pictures that contain binary data can be included now.
* pic: Troff commands that begin with a "'" are now passed through.
* grap: Negative zeros in coordinate tick labels are now avoided.
* -man macros: Fixed the output of a very long line following ".TP".
* -mdoc macros: Changed the names of Courier fonts to \f(CW \f(CI to
  match those of troff.
* RPM package builds now require the new "Heirloom Development Tools"
  package from  to be
  installed.
Release 051107
* The "checknr" utility has been added from OpenSolaris source code.
* The "ptx" utility has been added from Unix 7th Edition source code.
* When a locale-dependent or font-specific character was used directly
  after a macro that ended with a font switch, it was chosen from the
  old font. This has been fixed.
* The ".hidechar" request now works correctly if the selected font is
  not the current font.
* eqn: More narrow spaces are inserted at some roman/italic font changes
  now to better match the appearance of the current fonts.
* grap: The file "grap.defines" has been moved to $(LIBDIR).
Release 051031
* The "-mpm" macros and the "pm" program have been added from Plan 9 source
  code. They form a "-ms"-like package for vertical justification; the file
  "mpm/README" explains some details.
* eqn: The generated troff program is now resolution-independent; the "-r"
  option is no longer needed and is ignored.
* dpost: The elements of overbars, brackets, and braces align better now, in
  particular in respect to documents distilled by Ghostscript.
* In the "man" macro package, ".B" and similar font change macros now accept
  more than six arguments.
* tbl: The maximum length for "w(...)" width specifications has been raised
  from 10 to 100.
* The "make install" procedures of refer and vgrind have been fixed to work
  with RPM and similar package builds.
Release 051025
* The "pic" and "grap" utilities have been added from Plan 9 sources.
* The "vgrind" utility has been added from OpenSolaris sources.
* "refer" and related utilites have been added from OpenSolaris sources.
* [nt]roff: The new ".recursionlimit" request allows to change the maximum
  permitted recursion depth for macro invocations from the default 512.
Release 051015
* troff, dpost, otfdump: Handle TrueType files with version 3.0 "post" table
  and no Microsoft/Unicode "cmap" subtable.
* otfdump: Kerning information was omitted for all but the first font when
  multiple font file arguments were given. This has been fixed.
* troff: Fonts that contain possible ligatures (fi, fl, etc.) in their file
  names are now mounted correctly.
* dpost: Allow only the glyph at position 0 to be named ".notdef" when
  generating Type 42 font data.
* dpost: No longer leaves a stale temporary file in /var/tmp.
* tbl: Inspects the first 4000 rows of a table now (instead of the first 200)
  in order to determine column widths and "T{" blocks.
* tbl: Can handle more than 62 "T{" blocks per table now.
Release 051011
* troff/dpost: Support for OpenType fonts has been added. This includes
  support for CFF-based (PostScript) OpenType fonts as well as support for
  most TrueType fonts.
* otfdump: New utility that prints the contents of an OpenType font file in
  an ASCII format just as troff interprets it.
* troff: A ".ftr" request has been introduced as a font-specific variant of
  the ".tr" request.
* troff: A ".feature" request has been introduced to access special features
  of OpenType fonts.
* troff: Kerning is now applied to pairs of characters that originate from
  the same font mounted at two different positions.
* dpost: Can now access all characters in a large PostScript font, not only
  the first 255.
* dpost: If the data in a PFB file to be included does not end with a
  newline character, add one to the generated PostScript to achieve a
  consistent DSC structure (Bugreport by Sebastian Leusch).
* dpost: The limit of characters with "x X" commands has been raised from
  50 to 4096. This in particular allows to supply fonts with long path
  names.
* The "-mcolor" macros have been added from Plan 9 sources.
Release 050920
* troff: The handling of locale-dependent characters in copy mode has been
  fixed. Previously when such a character was given e.g. in an argument to
  a macro, it was chosen from the font in effect at the time when the macro
  call was read, instead of the one in effect at the time when the macro
  was executed.
* troff: The lookup of kerning pairs from the predefined tables has been
  fixed. It previously located inappropriate pairs in some cases.
* troff: Is now more resistent against invalid AFM files whose character
  count following the "StartCharMetrics" keyword is too large. Previously,
  no characters outside the default troff character set were accessible
  with such files.
* dpost: When an AFM-based font was mounted more than once in troff,
  localized input characters are now printed properly in all positions.
  Previously, localized characters were only printed properly on the
  position that was used first in the document.
* troff: Several requests for handling fonts did not recognize font names
  with more than two characters correctly with the "-x" option; they have
  been fixed.
* troff: The characters "\(aa", "\(ga", """, "\-", "<", ">", "@", "\", "^",
  and "~" are now always chosen from the Times Roman special font with
  AFM-based devices too, as it has been the case with other devices. To get
  the character from another PostScript font, use the PostScript character
  name, e.g. "\[less]". In contrast, "\(12", "\(14", and "\(34" are now
  chosen from the current font, as it has been the case with historic C/A/T
  output, but not with -Tpost.
* [nt]roff: The "-mm" macros no longer print "Sun Microsystems" in calls to
  ".AU" macros and the like.
* troff: The "\S" escape sequence has been fixed; its use could lead to core
  dumps with the previous release.
* troff: The procedure to determine whether to set the "2" value of the
  "\n(ct" register with AFM fonts should now work properly. This fixes the
  position of accents above lower-case characters with eqn.
* dpost: The maximum number of fonts that can appear in a single PostScript
  output file has been raised to 1536.
* eqn: All Greek upper-case letters, i.e. "ALPHA", "BETA", etc. are now
  recognized.
* [nt]roff: The escape sequence \U'n' sets the character at Unicode position
  "U+n", where "n" is a hexadecimal number.
Release 050915
* troff: Can now directly handle .afm/.pfb/.pfa files (i.e. PostScript
  Type 1 fonts) to select fonts. The ".fp" request has been extended
  for this, and the "TROFFONTS" environment variable specifies path
  names to search for font files. See the file "FONTS" for details.
* troff: Can now handle Type 42 fonts (i.e. TrueType fonts that have been
  converted for use by PostScript interpreters).
* troff: Handles input characters according to LC_CTYPE now in combination
  with the new font setup. In a UTF-8 locale, most characters that are
  present in standard, Expert, and Symbol PostScript fonts are supported;
  otherwise, a locale-specific subset of them is available.
* troff: A PostScript device with a resolution of 72000 dpi, named "ps",
  is available, and is used by default.
* troff: Support for pairwise kerning has been added. The default tables
  are read from the AFM files. In addition, a ".kernpair" request has been
  introduced to add or replace kerning pairs; it can construct kerning
  pairs for characters from different fonts. The ".kernafter" and
  ".kernbefore" requests add a constant amount of space to specific
  characters.
* dpost: The PostScript output is now expected to conform to Adobe's
  Document Structuring Conventions, version 3.0.
* dpost: PDF Bookmarks, titles and authorship information can be included
  into the generated PostScript for further processing by the distiller
  utility. See the file "PDFS" for details.
* [nt]roff: Hyphenation for languages other than English has been added
  using the "libhnj" variant from the OpenOffice project. The ".hylang"
  request has been introduced to select between languages. Hyphenation
  files have been derived from TeX sources.
* troff: The paper size can be selected with the ".papersize" request.
  This is important for correct placement of pages on PostScript printers.
* troff: Any point size can now be used with PostScript devices, including
  fractional sizes.
* troff: The ".fzoom" request allows to zoom the characters of a font.
* troff: Hanging characters are supported.
* [nt]roff: The ".lc_ctype" request can be used to set the LC_CTYPE
  localization setting from within a document.
* troff: It is now possible to use "\[name]", where name is a character
  defined in the .afm file for the current font.
* troff: The ".track" request for tracking letter space has been added.
* troff: The ".fallback" request for selecting the order in which fonts
  are searched for missing characters in the current font has been added.
* troff: The ".hidechar" request hides characters from a font which are
  then searched using the fallback sequence.
* troff: Ligatures from expert fonts can be used transparently with the
  ".flig" request.
* [nt]roff: Environments selected with the ".ev" command can be given
  names, and their number is no longer statically limited.
* [nt]roff: The ".evc" request copies another environment to the current
  one.
* [nt]roff: The ".chop" request deletes the last character from a macro,
  string, or diversion.
* [nt]roff: The ".return" request returns immediately from a macro.
* [nt]roff: The "\:" escape inserts an optional line break but generates
  no hyphen if the line is split.
* [nt]roff: The "\~" escape is similar to "\ " but inserts a space that
  stretches like a regular " " when the line is adjusted.
* [nt]roff: The "\E" escape is similar to "\e" but is not interpreted in
  copy mode.
* [nt]roff: The ".shift" request shifts the arguments to a macro.
* [nt]roff: The "\$(.." and "\$[...]" escapes can be used to refer to
  macro arguments.
* troff/dpost: The "\X'Sync'" escape forces dpost to write position and
  font information to the generated PostScript. This is sometimes useful
  to ensure that following "\X'PS: ...'" escapes work as expected.
* troff: The "-a" option now generates locale-dependent output, with best
  results in UTF-8 locales.
* The "-mpictures" macros have been added from Plan 9 sources.
* The "picpack" preprocessor has been added.
* eqn: The default resolution has been changed to 72000 dpi to match that
  of troff. The "-r" option was introduced to change it.
* eqn: Handles "\[]" and "\*[]" now.
* troff, dpost: Device and font descriptions are now read directly from
  text files; the "makedev" utility is no longer needed.
* [nt]roff: The ".xflag" request controls the availability of extensions
  like the "-x" and "-X" command line options.
* The file "NEWS" describes new troff language features.
* tbl: The specification "decimalpoint(x)" can now be used to make the
  character "x" the decimal point for numeric columns.
* tbl: There can now be up to 100 columns in a table.
* [nt]roff: There is no static limit on the number of "-m" options anymore.
* [nt]roff: There is no static limit on the ".hw" table anymore.
* [nt]roff: There is no static limit on the pushback buffer anymore; this
  makes it possible to use longer arguments to macros.
* [nt]roff: The output of long names with ".pm" and stack dumps has been
  fixed.
* [nt]roff: Nested long-name string references \*[\*...] now work.
* [nt]roff: Tabulators as in ".XY\t" are now correctly handled with -x.
* The "-man" macro no longer produces cut marks when used with troff.
* tbl: Two bugs that had been introduced with support for lines of unlimited
  length have been fixed. They resulted in printing a stray character when
  more than one input file was used, and in improper handling of input lines
  continued with a backslash.
* A new malloc() replacement has been added for performance reasons.
* A bug in the previously supplied realloc() replacement could result in
  heap corruption.
Release 050816
* nroff: A special terminal name, -Tlocale, has been introduced. With this
  option, UTF-8 output is generated if permitted by the current LC_CTYPE
  locale, and regular -Tlp output otherwise.
* [nt]roff: A new option, "-x", enables the recognition of extended
  features that may affect compatibility with previous versions. The "-X"
  option disables these features; this is currently the default. Note
  that the features enabled with -x are under development and subject
  to change.
* [nt]roff: With the -x option, it is now possible to use ".de", ".ds",
  ".nr", and similar requests with more than two-character name arguments,
  as in ".de longname", and to access such macros later with ".longname",
  strings with "\*[longname]", and number registers with "\n[longname]".
* [nt]roff: The "\$@" and "\$*" escape sequences to print all arguments
  to a macro are now understood with the -x option.
* troff: The ".ss" command now accepts a second numeric argument with the
  -x option. If it is zero, no second space character is printed between
  sentences. Otherwise, a second space character with the same width as
  the first one is printed.
* [nt]roff: The static block list limit NBLIST has been removed, memory
  is now dynamically allocated as needed.
* [nt]roff: There is no static limit on the number of macros/strings and
  the number of number registers anymore.
* -man: A defect in the supplied -man macro package caused headers and
  footers to be garbled when they were printed between parts of a tbl table
  that was split across pages.
Release 050813
* Initial release.