NEWS revision 104862
1This file describes recent user-visible changes in groff.  Bug fixes are not
2described.  There are more details in the man and info pages.
3
4VERSION 1.18.1
5==============
6
7Troff
8-----
9
10o The non-slanted PostScript font definition files have been regenerated to
11  include left and right italic correction values. Applying those to a glyph
12  (this is, prepending the glyph with `\,' and appending `\/' to the glyph)
13  sets the glyph width to the real value given by the horizontal bounding
14  box values. Without those escapes, the advance width for the particular
15  glyph is used (which can differ considerably).
16
17  Most users will neither need this feature nor notice a difference in
18  existing documents (provided \, and \/ is used as advertised, namely for
19  italic fonts only); its main goal is to improve image generation with
20  grohtml.
21
22  This is an experimental change, and feedback is welcome.
23
24Tbl
25---
26
27o Added global option `nospaces' to ignore leading and trailing spaces in
28  data items.
29
30Grolbp
31------
32
33o The option -w (--linewidth) has been added (similar to other device
34  drivers) to set the default line width.
35
36Grn
37---
38
39o Support for b-spline and Bezier curves has been added.
40
41Groffer
42-------
43
44o New option `--shell' to select the shell under which groffer shall run.
45
46Macro Packages
47--------------
48
49o The string `Am' (producing an ampersand) has been added to mdoc for
50  compatibility with NetBSD.
51
52o `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
53  instead.
54
55o In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
56  and vertical movements; please refer to contrib/mom/NEWS for more
57  details.
58
59o New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
60
61Miscellaneous
62-------------
63
64o The `papersize' keyword in the DESC file now accepts multiple arguments.
65  It is scanned from left to the right, and the first valid argument is
66  used. This makes it possible to provide a fallback paper size.
67
68  Example:
69
70    papersize /etc/papersize a4
71
72o A local font directory has been prepended to the default font path; it
73  defaults to /usr/local/share/groff/site-font.  Similar to the normal
74  font searching process, files must be placed into a devXXX subdirectory,
75  e.g.
76
77    /usr/local/share/groff/site-font/devps/FOO
78
79  for a PostScript font definition file FOO.
80
81
82VERSION 1.18
83============
84
85***************************************************************************
86*                                                                         *
87*  PLEASE READ THE CHANGES BELOW REGARDING GROTTY, GROFF'S TTY FRONTEND.  *
88*                                                                         *
89***************************************************************************
90
91Troff
92-----
93
94o Color support has been added to troff and pic (and to the device drivers
95  grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
96  follow).  A new function `defcolor' defines colors; the escape sequence
97  `\m' sets the drawing color, the escape sequence `\M' specifies the
98  background color for closed objects created with \D'...' commands. 
99  `\m[]' and `\M[]' switch back to the previous color.  `\m' and `\M'
100  correspond to the new troff output command sets starting with `m' and
101  `DF'.  The device-specific default color is called `default' and can't be
102  redefined.
103
104  Use the `color' request to toggle the usage of colors (default is on); the
105  read-only register `.color' is 0 if colors are not active, and non-zero
106  otherwise.
107
108  The old `Df' output command is mapped onto `DFg'; all color output
109  commands don't change the current font position (consequently, `Df'
110  doesn't either).
111
112  Outputting color can be disabled in troff and groff with the option -c
113  (it is always disabled in compatibility mode).  See the section on grotty
114  for the GROFF_NO_SGR environment variable also.
115
116  For defining color components as fractions between 0 and 1, a new scaling
117  indicator `f' has been introduced: 1f = 65536u.  For testing whether a
118  color is defined (with .if and .ie), a new conditional operator `m' is
119  available.
120
121  More details can be found in the groff_diff.7 manual page and in
122  groff.texinfo.
123
124o Similar to \m and \M, \f[] switches back to the previous font.  \fP
125  (and \f[P]) is still valid for backwards compatibility.
126
127o The new escape \F is the same as `.fam'; \F[] switches back to previous
128  family -- \F[P] selects family `P'.
129
130o Two new glyph symbols are available: `eu' is the official Euro symbol;
131  `Eu' is a font-specific glyph variant.
132
133o The new glyph symbols `t+-', `tdi', and `tmu' are textual variants of
134  `+-', `di', and `mu', respectively.
135
136o Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
137  got the troff glyph name `mc'.
138
139o -Tutf8 is now available on EBCDIC hosts.
140
141o Strings can take arguments, using this syntax: \*[foo arg1 arg2 ...].
142  Example:
143
144    .ds xxx This is a \\$1 test.
145    \*[xxx nice]
146
147o It is now possible to have whitespace between the first and second dot (or
148  the name of the ending macro) to end a macro definition.  Example:
149
150    .de !
151    ..
152    .
153    .de foo
154    .  nop Hello, I'm `foo'.
155    .  nop I will now define `bar'.
156    .  de bar !
157    .    nop Hello, I'm `bar'.
158    .  !
159    ..
160
161o `.fn' is a new string-valued register which returns the (internal) real
162  font name; styles and families are properly concatenated.
163
164o Three new read/write registers `seconds', `minutes', and `hours' contain
165  the current time, set at start-up of troff.  Use the `af' request to
166  control their output format.
167
168o The new request `fchar' can be used to provide fallback characters.  It
169  has the same syntax as the `char' request; the only difference is that a
170  character defined with `.char' hides the glyph with the same name in the
171  current font, whereas a character defined with `.fchar' is checked only if
172  the particular glyph isn't found in the current font.  This test happens
173  before checking special fonts.
174
175o In analogy to the `tmc' request, `.writec' is the same as `.write' but
176  doesn't emit a final newline.
177
178o The new request `itc' is a variant of `.it' for which a line interrupted
179  with \c counts as one input line.
180
181o Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
182  with compatibility mode disabled during expansion of strings defined by
183  them.
184
185o The syntax of the `substring' request has been changed: The first
186  character in a string now has index 0, the last character has index -1.
187  Note that this is an incompatible change.
188
189o To emit strings directly to the intermediate output, a new `output'
190  request has been added; it is similar to `\!' used at the top level.
191
192o `.hpf' has been extended.  It can now handle most TeX hyphenation
193  pattern files without modification.  To do that, the commands \patterns,
194  \hyphenation, and \endinput are recognized.  Please refer to groff_diff.7
195  for more information.
196
197o `hpfcode' is a new request to provide an input encoding mapping for the
198  `hpf' request.
199
200o The new request `hpfa' appends hyphenation patterns (`hpf' replaces
201  already existing patterns).
202
203o A new request `ami' (append macro indirect) has been added.  The first and
204  second parameter of `ami' are taken from string registers rather than
205  directly; this very special request is needed to make `trace.tmac'
206  independent from the escape character (which might even be disabled).
207
208o The new request `sizes' is similar to the `sizes' command in DESC files.
209  It expects the same syntax; the data must be on a single line, and the
210  final `0' can be omitted.
211
212o `trin' (translate input) is a new request which is similar to `tr' with
213  the exception that the `asciify' request will use the character code (if
214  any) before the character translation.  Example:
215
216    .trin ax
217    .di xxx
218    a
219    .br
220    .di
221    .xxx
222    .trin aa
223    .asciify xxx
224    .xxx
225
226  The result is `x a'.  Using `tr', the result would be `x x'.
227
228o The request `pvs' isn't new, but hasn't been documented before.  It
229  adds vertical space after a line has been output.  This makes it an
230  alternative to the `ls' request to produce double-spaced documents.
231  The read-only register `.pvs' holds the current amount of the
232  post-vertical line space.
233
234o For compatibility with plan 9's troff, multiple `pi' requests are
235  supported:
236
237    .pi foo
238    .pi bar
239
240  is now equivalent to
241
242    .pi foo | bar
243
244o A new escape sequence `\O' is available to disable and enable glyph
245  output.  Please see groff_diff.7 and groff.texinfo for more details.
246
247o The escapes `\%', `\&', `\)', and `\:' no longer cause an error in \X;
248  they are ignored now.  Additionally `\ ' and `\~' are converted to
249  single space characters.
250
251o The default tab distance in nroff mode is now 0.8i to be compatible
252  with UNIX troff.
253
254o Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
255  request was a bad idea.  Instead, it is now translated to `\%', and
256  the default hyphenation character is again \[hy].  Note that the glyph
257  \[shc] is not useful for typographic purposes; it only exists to have
258  glyph names for all latin-1 characters.
259
260Macro Packages
261--------------
262
263o Peter Schaffter <df191@ncf.ca> has contributed a new major macro package
264  called `mom', mainly for non-scientific writers, which takes care of
265  many typographic issues.  It comes with a complete reference (in HTML
266  format) and some examples.  `mom' has been designed to format documents
267  for PostScript output only.
268
269o Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
270  the man macros for compatibility with older BSD releases.
271
272o Both the man and mdoc macro packages now use the LL and LT registers for
273  setting the line and title length, respectively (similar to those
274  registers in the ms macro package).  If not set on the command line or
275  in a macro file loaded before the macro package itself, they default to
276  78n in nroff mode and 6.5i in troff mode.
277
278o The `-xwidth' specifier in the mdoc macro package has been removed.  Its
279  functionality is now integrated directly into `-width'.  Similarly,
280  `-column' has been extended to provide this functionality also.
281
282o A new macro `Ex' has been added to the mdoc macro package to document an
283  exit status.
284
285o The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
286  now automatically loaded for -Tdvi), using a dvips special to load the EPS
287  file.
288
289o The trace.tmac package now traces calls to `am' also.  Additionally, it
290  works in compatibility mode.
291
292o `troff.1' has been split.  Differences to UNIX troff are now documented
293  in the new man page `groff_diff.7'.
294
295o `groff_mwww.7' has been renamed to `groff_www.7'.  The file mwww.tmac
296  has been removed.
297
298o `groff_ms.7' has been completely rewritten.  It now contains a complete
299  reference to the ms macros.
300
301o `groff_trace.7' documents the trace macro package.
302
303o Changes in www.tmac:
304
305    Note that HTML support is still in alpha change, so it is rather likely
306    that both macro names and macro syntax will change.  Some of the macros
307    mentioned below aren't really new but haven't been documented properly
308    before.
309
310    The following macros have been renamed:
311
312        MAILTO     -> MTO
313        IMAGE      -> IMG
314        LINE       -> HR
315
316    For consistency, the macros `URL', `FTL', and `MTO' now all have the
317    address as the first parameter followed by the description.
318
319    By default, grohtml generates links to all section headings at the top
320    of the document.  Use the new `LK' macro to specify a different place.
321
322    For specifying the background color and a background image, use the
323    new macros `BCL' and `BGIMG', respectively.
324
325    The macro `NHR' has been added; it suppresses the generation of top and
326    bottom rules which grohtml emits by default.
327
328    The new macro `HX' determines the cut-off point for automatic link
329    generation to headings.
330
331    The image position parameter names in `IMG' have been changed to `-L',
332    `-R', and `-C'.
333
334    New macro `PIMG' for inclusion of a PNG image (it will automatically
335    convert it into an EPS file if not -Thtml is used).
336
337    New macro `MPIMG' for putting a PNG image into the left or right margin
338    (it will automatically convert it into an EPS file if not
339    -Thtml is used).
340
341    New macros `HnS', `HnE' to start and end a header line block.
342
343    New macro `DC' to produce dropcap characters.
344
345    New macro `HTL' to generate an HTML title line only but no H1 heading.
346
347    New macros `ULS' and `ULE' to start and end an unordered list.  The new
348    macro `LI' inserts a list item.
349
350Groff
351-----
352
353o The new command line option `-c' disables color output (which is always
354  disabled in compatibility mode).
355
356Nroff
357-----
358
359o Two new command line options `-c' and `-C'; the former passes `-c' to
360  grotty (switching to the old output scheme); the latter passes `-C' to
361  groff (enabling compatibility mode).
362
363Pic
364---
365
366o New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
367  `outlined'), and `shaded' are available.  `outline' sets the color of the
368  outline, `shaded' the fill color, and `color' sets both.  Example:
369
370    circle shaded "green" outline "black" ;
371
372  Filled arrows always use the outline color for filling.
373
374  Color support for TeX output is not implemented yet.
375
376Pic2graph
377---------
378
379o A new script contributed by Eric S. Raymond <esr@thyrsus.com>.  It
380  converts a PIC diagram into a cropped image.  Since it uses gs and the PNM
381  library, virtually all graphics formats are available for output.
382
383Eqn2graph
384---------
385
386o A new script contributed by Eric S. Raymond <esr@thyrsus.com>.  It
387  converts an EQN diagram into a cropped image.  Since it uses gs and the PNM
388  library, virtually all graphics formats are available for output.
389
390Groffer
391-------
392
393o A new script contributed by Bernd Warken <bwarken@mayn.de>.  It displays
394  groff files and man pages on X and tty, taking care of most parameters
395  automatically.
396
397Grog
398----
399
400o Documents using the mom macro package are recognized.
401
402Grops
403-----
404
405o Color support has been added.
406
407o A new option `-p' is available to select the output paper size.  It has
408  the same syntax as the new `papersize' keyword in the DESC file.
409
410Grodvi
411------
412
413o By default, font sizes are now available in the range 5-10000pt, similar
414  to PS fonts. If you want the old behaviour (i.e., font sizes at discrete
415  values only), insert the following at the start of your document:
416
417    .if '\*[.T]'dvi' \
418    .  sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \
419             1728 1800 2000 2074 2200 2400 2488 2800 3600
420
421o A new font file HBI (using cmssbxo10; this is slanted sans serif bold
422  extended) has been added.
423
424o Two font families are now available: `T' and `H'.
425
426o EC and TC fonts have been integrated.  Use `-mec' (calling the file
427  ec.tmac) to switch to them.  Those fonts give a much better coverage of
428  the symbols defined by groff than the CM fonts.
429
430  Note that ec.tmac must be called before any language-specific files; it
431  doesn't take care of hcode values.
432
433o Color support has been added.  For drawing commands, colors are translated
434  to gray values currently.
435
436Grotty
437------
438
439o Color support has been added, using the SGR (ISO 6429, sometimes called
440  ANSI color) escape sequences.
441
442o SGR escape sequences are now used by default for underlining and bold
443  printing also, no longer using the backspace character trick.  To revert
444  to the old behaviour, use the `-c' switch.
445
446  Note that you have to use the `-R' option of `less' to make SGR escapes
447  display correctly.  On the other hand, terminal programs and consoles like
448  `xterm' which support SGR sequences natively can directly display the
449  output of grotty.  Consequently, the options `-b', `-B', `-u', and `-U'
450  work only in combination with `-c' and are ignored silently otherwise.
451
452  For the `man' program, it may be necessary to add the `-R' option of
453  `less' to the $PAGER environment variable; alternatively, you can use
454  `man's `-P' option (or adapt its configuration file accordingly).  See
455  man(1) for more details.
456
457o If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
458  reverting to the old behaviour.
459
460o A new special \X'tty: sgr n' has been added; if n is non-zero or missing,
461  enable SGR output (the default).
462
463o If the new option `-i' is used (only in SGR mode), grotty sends escape
464  sequences to set the italic font attribute instead of the underline
465  attribute for italic fonts.  Note that many terminals don't have support
466  for this (including xterm).
467
468Grohtml
469-------
470
471o Color support for glyphs has been added.
472
473o New option `-h' to select the style of headings in HTML output.
474
475o New option `-b' to set the background colour to white.
476
477o New options `-a' and `-g' to control the number of bits for anti-aliasing
478  used for text and graphics, respectively.  Default value is 4; 0 means
479  no anti-aliasing.
480
481o groff character/glyph entities now map onto HTML 4 character entities.
482
483Grolbp
484------
485
486o Valid paper sizes are now specified as with the new `papersize' keyword
487  in the DESC file.  Specifically, the old custom paper type format
488  `custAAAxBBB' is no longer supported.
489
490Miscellaneous
491-------------
492
493o A new manual page `ditroff.7' is available.
494
495o The groff texinfo manual will now be installed, together with a bunch
496  of examples.
497
498o A new keyword `papersize' has been added to the DESC file format.  Its
499  argument is either
500
501  . a predefined paper format (e.g. `A4' or `letter')
502
503  . a file name pointing to a file which must contain a paper size
504    specification in its first line (e.g. `/etc/papersize')
505
506  . a custom paper size definition like `35c,4i'
507
508  See groff_font(5) for more details.  This keyword only affects the
509  physical dimensions of the output medium; grops, grolj4, and grolbp use it
510  currently.  troff completely ignores it.
511
512VERSION 1.17.2
513==============
514
515This is major bug-fixing release which should replace 1.17.1.
516
517Troff
518-----
519
520o The `IMAGE' macro in www.tmac has changed: Now the optional 2nd parameter
521  gives the horizontal image location (left, centered, or right), and the
522  optional 3rd and 4th parameter the image dimensions.
523
524VERSION 1.17.1
525==============
526
527This is mainly a bug-fixing release.
528
529Troff
530-----
531
532o Two new requests `de1' and `am1' which are similar to `de' and `am' but
533  with compatibility mode disabled during expansion of macros defined by
534  them.
535
536o Added request `brp'.  This is the same as `\p'.
537
538o Similar to other versions of troff, the `ns' request now works in all
539  diversions, not only in the top-level one.
540
541o New read-only number register `.ns'.  Returns 1 if in no-space mode,
542  0 otherwise.
543
544Nroff
545-----
546
547o Options -p (pic) and -t (tbl) added.
548
549o The environment variable GROFF_BIN_PATH is now checked before PATH for
550  finding groff.
551
552Grohtml
553-------
554
555o New option `-D dir' to specify a directory in which all images are placed.
556
557o New option `-I stem' to specify an image name stame.  If not given,
558  `grohtml-XXX' is used (`XXX' is the process ID).
559
560VERSION 1.17
561============
562
563Groff
564-----
565
566o `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'.  The
567  old behaviour has been changed to overcome problems with platforms which
568  have an 8+3 file name limit, and platforms which have other versions of
569  troff installed also.  Additionally, all macro files have been renamed
570  using the latter scheme to avoid 8+3 name clashes.
571
572o The new environment variable GROFF_BIN_PATH is checked for programs groff
573  is calling (preprocessors, troff, and output devices) before PATH.  If not
574  set, it defaults to the directory where the groff binary is located.
575  Previously, it was PATH only.  The nroff script only uses GROFF_BIN_PATH
576  to find the groff binary but passes both the GROFF_BIN_PATH and PATH
577  environment variables to groff.
578
579Troff
580-----
581
582o The mdoc package has been completely rewritten, using the full power of
583  GNU troff to remove limitations of Unix troff (which is no longer
584  supported).  Most important changes are:
585
586  . No argument limit
587  . Almost all macros are parsed and callable (if it makes sense)
588  . `.Lb': prints library names
589  . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>' has
590    been withdrawn
591  . Updated `.St' command
592  . `.Fx': prints FreeBSD
593  . `.Ox': prints OpenBSD
594  . `.Bsx': prints BSD/OS
595  . `.Brq', `.Bro', `.Brc': brace enclosure macros
596  . `.Bd -centered': center lines
597  . `.Bl -xwidth <string>': interpret <string> and use the resulting width
598  . Support for double-sided printing (-rD1 command line switch)
599  . Support for 11pt and 12pt document sizes (-rS11, -rS12 command line
600    switches)
601
602  `groff_mdoc.7' replaces `groff_mdoc.samples.7'; it now completely
603  documents the mdoc package.
604
605  Great care has been taken to assure backwards compatibility.  If you
606  encounter any abnormal results, please report them to bug-groff@gnu.org.
607
608o A new command line option for the `man' macros (similar to the `mdoc'
609  package) has been implemented: `-rcR=1' (now the default in nroff mode)
610  produces one single, very long page instead of multiple pages.  `-rcR=0'
611  deactivates it.
612
613o The `return' request has been added to return immediately from a macro.
614
615o A new request `nop' (no operation) has been added which is similar to
616  `if 1'.  For example,
617
618    .if t \{\
619    Hallo!
620    .\}
621
622  can now be written as
623
624    .if t \{\
625    .  nop Hallo!
626    .\}
627
628o `box' and `boxa' are two new requests which behave similarly to `di' and
629  `da' but don't include a partially filled line (which is restored after
630  ending the diversion).
631
632o The `asciify' request has been extended to `unformat' space characters
633  and some other escape sequences also.
634
635  `\ ' is no longer unformatted as a space but remains an unpaddable,
636  unbreakable space character.
637
638o The new `unformat' request is similar to `asciify' but only handles space
639  characters and tabs specially if the diversion is reread, retaining font
640  information.  This makes it possible to reformat diversions; for example
641  the following
642
643    .ll 3i
644    .
645    a01 a02 a03 a04 a05 a06 a07 a08 a09 a10.
646    .
647    .box box1
648    .ev 1
649    .nf
650    \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P]
651    .br
652    .ev
653    .box
654    .
655    c01 c02 c03 c04 c05 c06 c07 c08 c09 c10.
656    .
657    .unformat box1
658    .box1
659
660  gives
661
662    a01  a02  a03  a04 a05 a06 a07
663    a08 a09 a10.  c01 c02 c03  c04
664    c05  c06 c07 c08 c09 c10.  b01
665    b02 b03 b04 b05  b06  b07  b08
666    b09 b10.
667
668  Without the `unformat' request, space characters are converted to word
669  space nodes which are no longer stretchable, and the result would be
670
671    a01  a02  a03  a04 a05 a06 a07
672    a08 a09 a10.  c01 c02 c03  c04
673    c05  c06 c07 c08 c09 c10.  b01
674    b02 b03 b04 b05 b06 b07 b08
675    b09 b10.
676
677o The new request `linetabs' controls the `line-tabs' mode.  In line-tabs
678  mode, tab distances are computed relative to the (current) output line.
679  Otherwise they are taken relative to the input line.  For example, the
680  following
681
682    .ds x a\t\c
683    .ds y b\t\c
684    .ds z c
685    .ta 1i 3i
686    \*x
687    \*y
688    \*z
689
690  yields
691
692    a         b         c
693
694  In line-tabs mode, the same code gives
695
696    a         b                   c
697
698  The new read-only number register `.linetabs' returns 1 if in line-tabs
699  mode, and 0 otherwise.
700
701o Two new requests `tm1' and `tmc' have been added to improve writing
702  messages to the terminal.  `tm1' is similar to `tm' but allows leading
703  whitespace.  `tmc' is similar to `tm1' but doesn't emit a final newline.
704
705o For compatibility with sqtroff, the request `output' has been added.
706  The behaviour is similar to `\!' at the top-level, that is, it directly
707  inserts its argument into the intermediate output format.  The syntax
708  is similar to .tm1, allowing leading whitespace.
709
710o The new `spreadwarn' request will make troff warn if spaces in an output
711  line are widened by a given limit or more.
712
713o Use `warnscale' to change the scaling indicator troff will use for
714  warning messages.
715
716o A new request `dei' (define indirect) has been added.  The first and
717  second parameter of `dei' are taken from string registers rather than
718  directly; this very special request is needed to make `trace.tmac'
719  independent from the escape character (which might even be disabled).
720
721o It is now possible to save and restore the escape character with two new
722  requests `ecs' and `ecr'.
723
724o The new escape sequence \B'...' is an analogon to `\A': If the string
725  within the delimiters is a valid numeric expression, return character `1',
726  and `0' otherwise.
727
728o The new escape sequence `\:' inserts a zero-width break point.  This is
729  similar to `\%' but without a soft hyphen character.
730
731o The `tr' request can now map characters onto `\~'.
732
733o Calling the `fam' request without an argument switches back to the
734  previous font family.
735
736o The new read-only register `.int' is set to a positive value if the last
737  output line is interrupted (i.e., if the input line contains `\c').
738
739o The `writem' request is not new, but hasn't been documented before.  This
740  is similar to `write' but instead of a string the contents of a given
741  macro or string is written to a stream.
742
743o The read/write number register `hp' to get/set the current horizontal
744  position relative to the input line isn't new but hasn't been documented
745  properly before.
746
747o `\X' and `\Y' are now transparent for end-of-sentence recognition.
748
749o The `cu' request in nroff mode now works as documented (i.e., it
750  underlines spaces also).
751
752Grog
753----
754
755o The grog script now works in non-compatibility mode also (which is the
756  default).  As usual, use the `-C' option to activate compatibility mode.
757
758Grops
759-----
760
761o A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has
762  been added to select a different prologue file.
763
764o The effect of the former `-mpsnew' option to access more Type 1 characters
765  is now the default and no longer available.  To get the old behaviour
766  (i.e., emulation of some glyphs by composition) use `-mpsold'.
767
768Miscellaneous
769-------------
770
771o For security reasons the following changes have been done:
772
773  . The tmac.safer file has been replaced with a built-in solution; .open,
774    .opena, .pso, .sy, and .pi are completely disabled in safer mode (which
775    is the default); to enable these requests the `-U' command line flag
776    must be used.
777
778  . Files specified with the .mso request or given with the `-m' command
779    line option, and hyphenation patterns loaded with `.hpf' are no longer
780    searched in the current directory by default (besides the usual tmac
781    path).  Instead, the home directory is used.  To add the current
782    directory, either use the `-U' or `-M' command line option or set the
783    GROFF_TMAC_PATH environment variable to an appropriate value.
784
785  . troffrc, troffrc-end, and eqnrc are neither searched in the current nor
786    in the home directory (even if -U is given).  Use -M or GROFF_TMAC_PATH
787    to change that.
788
789  . Similarly, the current directory is no longer part of the font path.
790    Use the `-F' command line option or the GROFF_FONT_PATH environment
791    variable if you really need the current directory.
792
793o groff now installs its data files into /usr/local/share/groff/<version> by
794  default, following the GNU standard.  Additionally, a local tmac directory
795  (by default /usr/local/share/groff/site-tmac) is scanned before the
796  standard tmac directory.  Wrapper files for system-specific macro packages
797  (if necessary) are put into /usr/local/lib/groff/site-tmac; this directory
798  is searched before the local tmac directory.
799
800o All programs now have option `-v' to show the version number; they exit
801  immediately afterwards, following the GNU standards.  Additionally,
802  `--version' and `--help' have been added, doing the obvious actions.
803
804VERSION 1.16.1
805==============
806
807Bug fixes only; no user-visible changes.
808
809VERSION 1.16
810============
811
812Groff
813-----
814
815The anachronism of calling the man macro package with `-man' has been fixed;
816now you can say `-m man' also. The same is true for `ms', `me', `markup',
817`mandoc', and `mdoc'.
818
819A new switch `-g' for calling `grn' is available.
820
821A new switch `-G' for calling `grap' is available.
822
823EBCDIC support for tty devices has been added.  On such hosts, IBM code page
8241047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for
825the moment, -Tutf8).  Note that non-tty devices are not yet supported (but
826installed).
827
828Troff
829-----
830
831A new command line option to the `man' macros is available: `-rSxx' (with
832`xx' either 10, 11, or 12) to set the base document font size to `xx'
833points.  Additionally, `.SH' now produces larger headings than `.SS'.
834
835To solve a problem with the .PSPIC macro which needs the `-U' switch of
836troff to access an external program (psbb), a new request .psbb is now
837available to get the bounding box of a PostScript image file.  The values
838(in PostScript units) are returned in the new read-only number registers
839`llx', `lly', `urx', and `ury'.  Consequently, .PSPIC has been adapted to
840use the new request, and the psbb program has been removed.
841
842A new predefined writable number register, `year', has been added.  It
843contains the current year.
844
845A new read-only register, `.Y', has been added.  It contains the revision
846number of the groff package.
847
848`\fP' now behaves as expected in situations like the following where the
849font `foo' is undefined:
850
851  .B bold text
852  normal text \f[foo]bar\fP normal text
853
854Previously, the text after \fP appeared as bold.
855
856The `substring' request is not new, but hasn't been documented before.
857
858The predefined `.T' string register (which holds the current output device)
859is not new, but hasn't been documented before.
860
861A new request `length' computes the length of a string and returns it in
862a number register.
863
864The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
865(a debugging aid) are now installed also.
866
867A new resource file, `troffrc-end', is now available.  It is invoked after
868all user-specified macros.  Currently used by the html device to include
869tmac.html; thus no need for users to specify -mhtml anymore.
870
871The soft hyphen character now has a glyph name: `shc'.
872
873The latin-1 character 173 (PS name `periodcentered') has got the troff glyph
874name `pc' and is no longer intermixed with the symbol character `md' (PS
875name `mathdot').
876
877ASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq'
878(which is an alias to character `"').
879
880ASCII character 39 (PS name `quoteright') has got the troff glyph name `cq'
881(which is an alias to character "'").
882
883Some additions to the font description files have been implemented for
884better support of HTML output:
885
886  The new format of lines in the `charset' subsection of font description
887  files is
888
889     name metrics type code [entity_name] [-- comment]
890
891  Currently, only the font description files in devhtml use the optional
892  entity_name string to define glyph entities in HTML.  Everything after the
893  entity_name field is ignored; in case this field isn't used, two hyphen
894  characters are now necessary to start a comment.
895
896  Two new requests are available in DESC files (currently used only with
897  grohtml):
898
899    use_charnames_in_special
900      This command indicates that troff should encode named characters
901      inside special commands.
902
903    pass_filenames
904      requests that troff tells the driver the source file name being
905      processed.  This is achieved by another tcommand: `F filename'.
906
907Grotty
908------
909
910Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
911
912Grohtml
913-------
914
915Added .LINE macro to tmac.arkup.
916
917The obsolete `.LINK' macro has been removed.
918
919.URL, .FTP, and .MAILTO macros now accept an optional third argument which
920will be immediately appended to the second argument (to be used with
921punctuation, for example).
922
923Grodvi
924------
925
926The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
927
928A new font file CWI (using cmitt10; this is typewriter italic) has been
929added.
930
931Grolbp
932------
933
934A new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser
935printers).  This code has been contributed by Francisco Andres Verdu
936<pandres@dragonet.es>.
937
938Grn
939---
940
941A new preprocessor to process gremlin pictures.  It is based on the
942original Berkeley implementation of grn, written by David Slattengren
943and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
944<daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
945
946Pic
947---
948
949Added the `srand' command to set the seed for a new sequence of
950pseudo-random numbers to be returned by `rand'.
951
952Gxditview
953---------
954
955Simplified installation: The Imakefile will now be configured (by groff's
956configure script).
957
958Documentation
959-------------
960
961Three new man pages are available: groff_tmac.5 (documenting how troff macros
962are accessed and where they are found), groff.7 (a short reference of the GNU
963roff language), and roff.7 (a general survey on GNU troff).
964
965Miscellaneous
966-------------
967
968A partial port to win32 (for use with Microsoft Visual C++ 6.0) is now part
969of the distribution.  It has been contributed by Blake McBride
970<blake@florida-software.com>.
971
972More information about programs, macros, documentation, etc., which is
973related to groff has been collected in the file `MORE.STUFF'.
974
975VERSION 1.13, 1.14, 1.15
976========================
977
978Bug fixes only; no user-visible changes.
979
980VERSION 1.12
981============
982
983Finally, there are new maintainers for groff.  Mailing lists and a CVS
984repository are available also. See the file README for details.  Not all
985reported bugs could be fixed, so please send mails again if something is
986still not working.
987
988Most of the installation problems should have vanished now (most
989notably the $(tmac_wrap) bug).
990
991There is now a man page called groff_man.7 which documents the basics of the
992-man macros.  It has been originally written by Susan G. Kleinmann
993<sgk@debian.org>.
994
995A (still incomplete) groff reference manual in texinfo format originally
996contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
997
998me.man and msafer.man have been renamed to groff_me.man
999resp. groff_msafer.man for consistency.
1000
1001Default strings for macros in doc-common resp. tmac.an no longer contain the
1002word `UNIX'.
1003
1004groff should now be Y2k safe (fixes contributed by Paul Eggert
1005<eggert@twinsun.com>).
1006
1007Following the GNU standards, groff will now use the prefix `/usr/local/' as
1008the default instead of replacing an existent groff binary.
1009
1010groff, troff, nroff, and pic now support the -U flag to activate unsafe
1011behaviour (without -msafer); the -S flag for using the -msafer macros is now
1012the default.
1013
1014Grohtml
1015-------
1016
1017This is a new output device for producing HTML output contributed by Gaius
1018Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been included
1019into the distribution so that a lot of people have a chance to test it.  Bug
1020reports are highly welcome.
1021
1022Grolj4
1023------
1024
1025Duplex printing support has been contributed by Jeffrey Copeland
1026<jeff@opennt.com>.
1027
1028Soelim
1029------
1030
1031Added -I option for defining include paths (patch contributed by Peter
1032Miller <peterm@jna.com.au>).
1033
1034Gxditview
1035---------
1036
1037Fallback resources added (patch contributed by Larry Jones
1038<larry.jones@sdrc.com>).
1039
1040Will now support 8 gray levels.
1041
1042mm
1043--
1044
1045New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
1046
1047VERSION 1.11
1048============
1049
1050Complete documentation for pic is now in the file doc/pic.ms.  It was
1051contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
1052*not* volunteering to take over groff as he is way overworked with
1053half a dozen other projects.
1054
1055VERSION 1.10
1056============
1057
1058The directory where data files are installed has been changed from
1059/usr/local/lib/groff to /usr/local/share/groff to comply with the
1060latest GNU coding standards.
1061
1062By default groff programs with Unix equivalents are installed with a
1063"g" prefix unless there is an existing (non-groff) troff installation.
1064
1065A new approach is used to make system macro packages available to
1066groff.  Instead of simply including /usr/lib/tmac in the list of
1067directories searched by groff, the installation process creates for
1068each system macro package a wrapper macro package in the groff macro
1069directory that references the system macro package.  The groff macro
1070packages are now installed with a leading "g" prefix if there is a
1071system version of the same macro package, and otherwise without the
1072"g" prefix, with the exception that the groff version of -me which is
1073always installed as -me.
1074
1075There is a new device, lj4, for the HP LaserJet 4 (and PCL5
1076compatibles).
1077
1078Groff
1079-----
1080
1081groff has a -S option that prevents the use of unsafe features in pic
1082and troff.  This uses a new -S option of pic and the -msafer macros
1083for troff.
1084
1085Troff
1086-----
1087
1088The `blm' request specifies a macro to be invoked when a blank line is
1089encountered.
1090
1091Pic
1092---
1093
1094A -S (safer) option disables the sh command.
1095
1096Grops
1097-----
1098
1099The -m option enables manual feed.
1100
1101VERSION 1.09
1102============
1103
1104\(rn will now produce a character that has the traditional metrics,
1105and will form corners with \(ul and \(br.  This means that it will not
1106align properly with \(sr.  Instead there's a new character
1107\[radicalex] which aligns with \(sr; this is used by eqn for doing
1108square roots.
1109
1110Troff
1111-----
1112
1113The `pso' request allows you to read from the standard output of a
1114command.
1115
1116Grops
1117-----
1118
1119The PSPIC macro has options to allow the horizontal alignment of the
1120graphic to be specified.
1121
1122VERSION 1.08
1123============
1124
1125Troff
1126-----
1127
1128The escape sequence \V[xxx] will interpolate the value of the
1129environment variable xxx.
1130
1131Tbl
1132---
1133
1134The decimalpoint option can be used to specify the character to be
1135recognized as the decimal point character in place of the default
1136period.
1137
1138VERSION 1.07
1139============
1140
1141Groff
1142-----
1143
1144The environment variable GROFF_COMMAND_PREFIX can be used to control
1145whether groff looks for `gtroff' or `troff' (similarily for the
1146preprocessors.)
1147
1148Troff
1149-----
1150
1151Multilingual hyphenation is supported by new `hpf' and `hla' requests,
1152and by a `\n[.hla]' number register.  The -H option has been removed.
1153Files of hyphenation patterns can have comments.
1154
1155When a font cannot be found, troff gives a warning (of type `font',
1156enabled by default) instead of an error.
1157
1158There's a new request `trnt' that's like `tr' except that it doesn't
1159apply to text transparently throughput into a diversion with \!.
1160
1161Tbl
1162---
1163
1164There is a `nokeep' option which tells tbl not to use diversions to
1165try to keep the table on one page.
1166
1167Eqn
1168---
1169
1170Setting the parameter `nroff' to a non-zero value causes `ndefine' to
1171behave like `define' and `tdefine' to be ignored.  This is done by
1172eqnrc when the current device is ascii or latin1.  There's a `neqn'
1173script that just does `eqn -Tascii'.
1174
1175Grotty
1176------
1177
1178grotty uses whatever page length was specified using the `pl' request
1179rather than using the paperlength command in the DESC file.  The
1180paperwidth command in the DESC file is also ignored.
1181
1182VERSION 1.06
1183============
1184
1185The programs in groff that have Unix counterparts can now be installed
1186without a leading `g' prefix.  See the `g' variable in the Makefile.
1187
1188The g?nroff script simulates the nroff command using groff.
1189
1190New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
1191\(an.  See groff_char(7).
1192
1193^L is now a legal input character.
1194
1195Groff
1196-----
1197
1198The Xps pseudo-device has disappeared.  Instead there is a new -X
1199option that tells groff to use gxditview instead of the usual
1200postprocessor. (So instead of -TXps, use -XTps or just -X if your
1201default device is ps.)
1202
1203The postprocessor to be used for a particular device is now specified
1204by a `postpro' command in the DESC file rather than being compiled
1205into groff.  Similarly the command to be used for printing (with the
1206-l option) is now specified by a `print' command in the DESC file.
1207
1208The groff command no longer specifies eqnchar as an input file for
1209eqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
1210command no longer passes the -D option to eqn.  Instead eqnrc sets the
1211draw_lines parameter.
1212
1213The groff command no longer tells troff to load a device-specific
1214macro file.  This is handled instead by the `troffrc' file, which is
1215always loaded by troff.
1216
1217The shell script version of groff has been removed.
1218
1219Troff
1220-----
1221
1222The `rchar' request removes a character definition established with `char'.
1223
1224Compatibility mode is disabled and the escape character is set to `\'
1225while a character definition is being processed.
1226
1227The `\#' escape sequence is like `\"' except that the terminating
1228newline is ignored.
1229
1230The `shc' request tells troff which character to insert (instead of
1231the default \(hy) when a word is hyphenated at a line break.
1232
1233A font name of 0 (zero) in the DESC file will cause no font to be
1234mounted on the corresponding font position.  This is useful for
1235arranging that special fonts are mounted on positions on which users
1236are not likely explicitly to mount fonts.  All groff devices now avoid
1237initially mounting fonts on positions 5-9.
1238
1239The `do' request allows a single request or macro to be interpreted
1240with compatibility mode disabled.
1241
1242troff automatically loads a file `troffrc' before any other input file.
1243This can be prevented with the -R option.  This file is responsible
1244for loading the device-specific macros.
1245
1246Pic
1247---
1248
1249The -x option has been removed and a -n option has been added.  By
1250default, pic now assumes that the postprocessor supports groff
1251extensions.  The -n option tells pic to generate output that works
1252with ditroff drivers.  The -z option now applies only to TeX mode.
1253
1254The -p option has been removed. Instead if the -n option is not
1255specified, pic generates output that uses \X'ps: ...' if the \n(0p
1256register is non-zero and tmac.ps sets this register to 1.
1257
1258In places where you could 1st or 5th you can now say `i'th or `i+1'th
1259(the quotes are required).
1260
1261Eqn
1262---
1263
1264Eqn now automatically reads a file `eqnrc' from the macro directory.
1265This performs the same role that the eqnchar files used to.  This can
1266be prevented by the -R option.
1267
1268Setting the draw_lines parameter to a non-zero value causes lines to
1269be drawn using \D rather than \l.  The -D option is now obsolete.
1270
1271`uparrow', `downarrow' and `updownarrow' can be used with `left' and
1272`right'.
1273
1274The amount of extra space added before and after lines containing
1275equations can be controlled using the `body_height' and `body_depth'
1276parameters.
1277
1278Grops
1279-----
1280
1281Font description files have been regenerated from newer AFM files.
1282You can get access to the additional characters present in the text
1283fonts in newer PostScript printers by using -mpsnew.
1284
1285The default value of the -b option is specified by a `broken' command
1286in the DESC file.
1287
1288With the -g option, grops will generate PostScript code that guesses
1289the page height.  This allows documents to be printed on both letter
1290(8.5x11) and A4 paper without change.
1291
1292Grodvi
1293------
1294
1295ISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
1296with groff -Tdvi for more information.
1297
1298Grotty
1299------
1300
1301The -mtty-char macros contain additional character definitions for
1302use with grotty.
1303
1304Macros
1305------
1306
1307In previous releases the groff -me macros treated the $r and $R number
1308registers in a way that was incompatible with the BSD -me macros.  The
1309reason for this was that the approach used by the BSD -me macros does
1310not work with low resolution devices such as -TX75 and -TX100.
1311However, this caused problems with existing -me documents.  In this
1312release, the vertical spacing is controlled by the $v and $V registers
1313which have the same meaning as $r and $R in earlier groff releases.
1314In addition, if the $r or $R register is set to a value that would be
1315correct for for the BSD -me macros and a low resolution device is not
1316being used, then an appropriate value for the $v or $V register will
1317be derived from the $r or $R register.
1318
1319The groff -me macros work with -C and (I think) with Unix troff.
1320
1321For backward compatibility with BSD -me, the \*{ and \*} strings are
1322also available as \*[ and \*].  Of course, \*[ will only be usable
1323with -C.
1324
1325The \*T string has been deleted.  Use \*(Tm instead.
1326
1327Xditview
1328--------
1329
1330The `n', Space and Return keys are bound to the Next Page action.  The
1331`p', BackSpace and Delete keys are bound to the Previous Page action.
1332The `q' key is bound to the Quit action.
1333
1334The `r' key is bound to a rerasterize action that reruns groff, and
1335redisplays the current page.
1336
1337VERSION 1.05
1338============
1339
1340Pic
1341---
1342
1343There is a alternative assignment operator `:=' which interacts
1344differently with blocks.
1345
1346There is a new command `command', which allows the values of variables
1347to be passed through to troff or TeX.
1348
1349The `print' command now accepts multiple arguments.
1350
1351String comparison expressions (using `==' or `!=') are allowed in more
1352contexts.
1353
1354Grotty
1355------
1356
1357Horizontal and vertical lines drawn with \D'l ...' will be rendered
1358using -, | and + characters.  This is intended to give reasonable
1359results with boxed tables.  It won't work well with pic.
1360
1361Macros
1362------
1363
1364The -mdoc macros have been upgraded to the version in the second
1365Berkeley networking release.  This version is not completely
1366compatible with earlier versions; the old version is still available
1367as -mdoc.old.  The grog script has been enhanced so that it can
1368usually determine whether a document requires the old or new versions.
1369
1370With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
1371around where the picture would appear with -Tps.
1372
1373VERSION 1.04
1374============
1375
1376An implementation of the -mm macros is included.
1377
1378The directory in which temporary files are created can be controlled
1379by setting the GROFF_TMPDIR or TMPDIR environment variables.
1380
1381Pic
1382---
1383
1384Some MS-DOS support (see pic/make-dos-dist).
1385
1386Grops
1387-----
1388
1389There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
1390which make it possible to have substitute characters that are
1391displayed when previewing with -TXps but ignored when printing with
1392grops.
1393
1394Xditview
1395--------
1396
1397Support for scalable fonts.
1398
1399VERSION 1.03
1400============
1401
1402No changes other than bug fixes.
1403
1404VERSION 1.02
1405============
1406
1407There is an implementation of refer and associated programs.  groff -R
1408preprocesses with grefer; no mechanism is provided for passing
1409arguments to grefer because most grefer options have equivalent
1410commands which can be included in the file.  grog also supports refer.
1411
1412There is an alternative perl implementation of the grog script.
1413
1414The code field in lines in the charset section of font description
1415files is now allowed to contain an arbitrary integer (previously it
1416was required to lie between 0 and 255).  Currently grops and grodvi
1417use only the low order 8 bits of the value.  Grodvi will use the
1418complete value; however, this is unlikely to be useful with
1419traditional TeX tools (.tfm files only allow 8 bit character codes.)
1420
1421Left and right double quotes can be obtained with \(lq and \(rq
1422respectively.
1423
1424There is a new program called pfbtops which translates PostScript
1425fonts in pfb format to ASCII.
1426
1427A slightly modified version of the Berkeley tmac.doc is included.
1428
1429Troff
1430-----
1431
1432In long escape names the closing ] is now required to be at the same
1433input level as the opening [.
1434
1435The \A'S' escape sequence returns 1 or 0 according as S is or is not
1436suitable for use as a name.
1437
1438\~ produces an unbreakable space that can be stretched when the line
1439is adjusted.
1440
1441The `mso' request is like the `so' request except that it searches for
1442the file in the same directories in which tmac.X is searched for when
1443the -mX option is given.
1444
1445The escape sequence `\R' is similar to the `nr' request.
1446
1447Eqn
1448---
1449
1450A new `special' primitive allows you to add new types of unary
1451constructs by writing a troff macro.
1452
1453Pic
1454---
1455
1456The implementation no longer uses gperf.
1457
1458Grops
1459-----
1460
1461The compile-time -DBROKEN_SPOOLER option has been replaced by a
1462BROKEN_SPOOLER_FLAGS option.  This allows more precise control over
1463how grops should workaround broken spoolers and previewers.  There is
1464a new -b option that can change this at run-time.
1465
1466Grops now generates PostScript that complies with version 3.0 of the
1467Document Structuring Convention.
1468
1469The resource management component of grops (the part that deals with
1470imported documents and downloadable fonts) has been rewritten and now
1471supports version 3.0 of the Document Structuring Conventions.  The
1472%%DocumentFonts comment is no longer supported; you must use the
1473%%Document{Needed,Supplied}{Fonts,Resources} comments instead
1474(or as well.)
1475
1476tmac.psatk contains some macros that support the mechanism used by the
1477Andrew Toolkit for including PostScript graphics in troff documents.
1478
1479Xditview
1480--------
1481
1482Parts of xditview have been rewritten so that it can be used with the
1483output of gtroff -Tps.  groff -TXps will run gtroff -Tps with
1484gxditview.
1485
1486There is a new menu entry `Print' which brings up a dialog box for
1487specifying a command with which the file being previewed should be
1488printed.
1489
1490Xditview now uses imake.
1491
1492VERSION 1.01
1493============
1494
1495The groff command now understands the gtroff `-a' and `-i' options.
1496
1497With the `m' and `n' scale indicators, the scale factor is rounded
1498horizontally before being applied.  This makes (almost) no difference
1499for devices with `hor' equal to 1, but it makes groff with -Tascii or
1500-Tlatin1 behave more like nroff in its treatment of these scale
1501indicators.  Accordingly tmac.tty now calls the `nroff' request so
1502that the `n' condition will be true.
1503
1504The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
1505have been made to work at least somewhat with -C.  In particular the
1506special characters defined by these macros now work with -C.
1507
1508groff -Tdvi -p will now pass pic the -x flag; this will enable filling
1509of arrowheads and boxes, provided that your dvi driver supports the
1510latest version of the tpic specials.
1511
1512Eqn
1513---
1514
1515There is a new `-N' option that tells eqn not to allow newlines in
1516delimiters.  This allows eqn to recover better from missing closing
1517delimiters.  The groff command will pass on a `-N' option to eqn.
1518
1519Grops
1520-----
1521
1522You can now use psfig with grops.  See the file ps/psfig.diff.  I do
1523not recommend using psfig for new documents.
1524
1525The command \X'ps: file F' is similar to \X'ps: exec ...' except that
1526the PostScript code is read from the file F instead of being contained
1527within the \X command.  This was added to support psfig.
1528
1529Grodvi
1530------
1531
1532There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
1533
1534Macros
1535------
1536
1537The groff -me macros now work with the -C option.  As a result, they
1538may also work with Unix nroff/troff.
1539
1540In -me, the $r and $R number registers now contain the line spacing as
1541a percentage of the pointsize expressed in units (normally about 120).
1542The previous definition was useless with low resolution devices such
1543as X75 and X100.
1544
1545VERSION 1.00
1546============
1547
1548A -ms-like macro-package is now included.
1549
1550The name for the Icelandic lowercase eth character has been changed
1551from \(-d to \(Sd.
1552
1553Troff
1554-----
1555
1556There is a new request `nroff', which makes the `n' built-in condition
1557true and the `t' built-in condition false; also a new request `troff'
1558which undoes the effect of the `nroff' request.  This is intended only
1559for backward compatibility: it is usually better to test \n(.H or
1560\n(.V or to use the `c' built-in condition.
1561
1562The \R escape sequence has been deleted.  Use \E instead.
1563
1564There are `break' and `continue' requests for use with the `while'
1565request.
1566
1567There is a request `hym' that can ensure that when the current
1568adjustment mode is not `b' a line will not be hyphenated if it is no
1569more than a given amount short, and a request `hys' that can ensure
1570that when the current adjustment mode is `b' a line will not be
1571hyphenated if it can be justified by adding no more than a given
1572amount of extra space to each word space.
1573
1574There is a request `rj' similar to `ce' that right justifies lines.
1575
1576A warning of type `space' will be given when a call is made to an
1577undefined request or macro with a name longer than two characters, and
1578the first two characters of the name make a name that is defined.
1579This is intended to find places where a space has been omitted been a
1580request or macro and its argument.  This type of warning is enabled by
1581default.
1582
1583Pic
1584---
1585
1586A comma is permitted between the arguments to the `reset' command.
1587
1588For use with TeX, there is a new `-c' option that makes gpic treat
1589lines beginning with `.' in a way that is more compatible with tpic
1590(but ugly).
1591
1592Eqn
1593---
1594
1595It is no longer necessary to add `space 0' at the beginning of
1596complicated equations inside pictures.
1597
1598`prime' is now treated as an ordinary character, as in Unix eqn.  The
1599previous behaviour of `prime' as an operator can now be obtained using
1600`opprime'.
1601
1602Xditview
1603--------
1604
1605There are two new devices X75-12 and X100-12 which are the same as X75
1606and X100 except that they are optimized for documents that use mostly
160712 point text.
1608
1609VERSION 0.6
1610===========
1611
1612The installation process has been refined to make it easy for you to
1613share groff with someone who has the same type of machine as you but
1614does not have a C++ compiler.  See the end of the INSTALL file for
1615details.
1616
1617There is a man page for the tfmtodit program which explains how to use
1618your own fonts with groff -Tdvi.
1619
1620There is a man page for afmtodit which explains how to use your own
1621PostScript fonts with groff -Tps.
1622
1623The \N escape sequence is now fully supported.  It can now be used to
1624access any character in a font by its output code, even if it doesn't
1625have a groff name.  This is made possible by a convention in the font
1626files that a character name of `---' refers to an unnamed character.
1627The drivers now all support the `N' command required for this.  The font
1628description files have been updated to include unnamed characters.
1629
1630The `x' command in font description files has been removed: instead
1631any unknown commands are automatically made available to the drivers.
1632If you constructed your own font files with an earlier version of
1633tfmtodit or afmtodit, you must construct them again using the current
1634version.
1635
1636Characters between 0200 and 0237 octal are no longer legal input
1637characters.  Note that these are not used in ISO 8859.
1638
1639A command called `grog' has been added, similar to the `doctype'
1640command described in Kernighan and Pike.
1641
1642Groff
1643-----
1644
1645The groff command has some new options: -V prints the pipeline
1646instead of executing it; -P passes an argument to the postprocessor,
1647-L passes an argument to the spooler.
1648
1649There is a C++ implementation of the groff command.  This handles some
1650things slightly better than the shell script.  In particular, it can
1651correctly handle arguments containing characters that have a special
1652meaning to the shell; it can give an error message when child
1653processes other than the last in the pipeline terminate abnormally;
1654its exit status can take account of the exit statuses of all its child
1655processes; it is a little more efficient; when geqn is used, it
1656searches for the eqnchar file in the same way that font metric files
1657are searched for, rather than expecting to find it in one particular
1658directory.
1659
1660Gtroff
1661------
1662
1663There is font translation feature: For example, you can tell gtroff to
1664use font `HR' whenever font `H' is requested with the line
1665  .ftr H HR
1666This would be useful for a document that uses `H' to refer to
1667Helvetica.
1668
1669There are some new number registers: `.kern' contains the current kern
1670mode, `.lg' the current ligature mode, `.x' the major version number,
1671`.y' the minor version number, `.ce' the number of lines to be
1672centered in the current environment, `.trunc' the amount of vertical
1673space truncated by the most recently sprung vertical position trap,
1674`.ne' the amount of vertical space needed in the last `ne' request
1675that caused a vertical position trap to be sprung.
1676
1677The `cf' request now behaves sensibly in a diversion.  If used in a
1678diversion, it will now arrange for the file to be copied to the output
1679when the diversion is reread.
1680
1681There is a new request `trf' (transparent file) similar to `cf', but
1682more like `\!'.
1683
1684There is a new escape sequence `\Y[xxx]', roughly equivalent to
1685`\X'\*[xxx]'', except that the contents of string or macro xxx are not
1686interpreted, and xxx may contain newlines.  This requires an output
1687format extension; the drivers have been modified to understand this.
1688Grops has also been modified to cope with newlines in the arguments to
1689\X commands; grops has a new \X command mdef, which is like def except
1690that it has a first argument giving the number of definitions.
1691
1692There is a new warning category `escape' which warns about unknown
1693escape sequences.
1694
1695The `fp' request now takes an optional third argument giving the external
1696name of the font.
1697
1698The `\_' character is now automatically translated to `\(ul' as in troff.
1699
1700The environment variable `GROFF_HYPHEN' gives the name of the file
1701containing the hyphenation patterns.
1702
1703There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
1704
1705Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
1706of end of sentence recognition.
1707
1708There is an anti-recursion feature in the `char' request, so you can
1709say `.char \(bu \s+2\(bu\s-2'.
1710
1711The limit on the number of font positions has been removed.
1712Accordingly `\n[.fp]' never returns 0.
1713
1714The restriction on the number of numbered environments has been removed.
1715
1716There is a new escape sequence `\E' that makes it possible to
1717guarantee that an escape sequence won't get interpreted in copy-mode.
1718The `\R' escape sequence is accordingly now deprecated.
1719
1720Gpic
1721----
1722
1723Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
1724`if' and `define' constructs) can now be of the form `{ anything }'.
1725
1726If the `linethick' variable is negative (as it now is initially),
1727lines will be drawn with a thickness proportional to the current point
1728size.
1729
1730The `rand' function now takes no arguments and returns a number between
17310 and 1.  The old syntax is still supported.
1732
1733`^' can be used in expressions to indicate exponentiation.
1734
1735In the `for' construct the argument to the by clause can be prefixed
1736by `*' to indicate that the increment is multiplicative.
1737
1738A bare expression may be used as an attribute.  If the current
1739direction is `dir', then an attribute `expr' is equivalent to
1740`dir expr'
1741
1742There is a `sprintf' construct that allows numbers to be formatted and used
1743wherever a quoted string can be used.
1744
1745The height of a text object without an explicit height attribute is
1746the number of text strings associated with the object times the value
1747of the `textht' variable.
1748
1749The maximum height and width of a picture is controlled by the
1750`maxpswid' and `maxpsht' variables.
1751
1752Gtbl
1753----
1754
1755Gtbl can now handle gracefully the situation where the `ce' request
1756has been applied to a table.
1757
1758Geqn
1759----
1760
1761The `ifdef' primitive has been generalized.
1762
1763A tilde accent can be put underneath a box using `utilde'.  This
1764defined using a general `uaccent' primitive.
1765
1766Grops
1767-----
1768
1769There is a new PostScript font downloading scheme which handles font
1770downloading for imported illustrations.  Previously, the name of the
1771file containing the font was given in the `x download' line in the
1772groff font metric file.  Now, there is a `download' file which says
1773for each PostScript font name which file contains that font.  Grops
1774can also now handle inter-font dependencies, where one downloadable
1775font depends on some other (possibly downloadable) font.
1776
1777The `T' font has been removed.  The characters it used to provide are
1778now provided by `char' definitions in tmac.ps. TSymbol.ps has also
1779been removed, and the tweaks it provided are now provided by `char'
1780definitions.
1781