NEWS revision 79543
1This file describes recent user-visible changes in groff.  Bug fixes are not
2described.  There are more details in the man pages.
3
4VERSION 1.17.2
5==============
6
7This is major bug-fixing release which should replace 1.17.1.
8
9Troff
10-----
11
12o The `IMAGE' macro in www.tmac has changed: Now the optional 2nd parameter
13  gives the horizontal image location (left, centered, or right), and the
14  optional 3rd and 4th parameter the image dimensions.
15
16VERSION 1.17.1
17==============
18
19This is mainly a bug-fixing release.
20
21Troff
22-----
23
24o Two new requests `de1' and `am1' which are similar to `de' and `am' but
25  with compatibility mode disabled during expansion of macros defined by
26  them.
27
28o Added request `brp'.  This is the same as `\p'.
29
30o Similar to other versions of troff, `.ns' now works in all diversions,
31  not only in the top-level one.
32
33o New read-only number register `.ns'.  Returns 1 if in no-space mode,
34  0 otherwise.
35
36Nroff
37-----
38
39o Options -p (pic) and -t (tbl) added.
40
41o The environment variable GROFF_BIN_PATH is now checked before PATH for
42  finding groff.
43
44Grohtml
45-------
46
47o New option `-D dir' to specify a directory in which all images are placed.
48
49o New option `-I stem' to specify an image name stame.  If not given,
50  `grohtml-XXX' is used (`XXX' is the process ID).
51
52VERSION 1.17
53============
54
55Groff
56-----
57
58o `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'.  The
59  old behaviour has been changed to overcome problems with platforms which
60  have an 8+3 file name limit, and platforms which have other versions of
61  troff installed also. Additionally, all macro files have been renamed
62  using the latter scheme to avoid 8+3 name clashes.
63
64o The new environment variable GROFF_BIN_PATH is checked for programs groff
65  is calling (preprocessors, troff, and output devices) before PATH.  If not
66  set, it defaults to the directory where the groff binary is located. 
67  Previously, it was PATH only.  The nroff script only uses GROFF_BIN_PATH
68  to find the groff binary but passes both the GROFF_BIN_PATH and PATH
69  environment variable to groff.
70
71Troff
72-----
73
74o The mdoc package has been completely rewritten, using the full power of
75  GNU troff to remove limitations of Unix troff (which is no longer
76  supported).  Most important changes are:
77
78  . No argument limit.
79  . Almost all macros are parsed and callable (if it makes sense).
80  . `.Lb': prints library names
81  . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>' has
82    been withdrawn.
83  . Updated `.St' command
84  . `.Fx': prints FreeBSD
85  . `.Ox': prints OpenBSD
86  . `.Bsx': prints BSD/OS
87  . `.Brq', `.Bro', `.Brc': brace enclosure macros
88  . `.Bd -centered': center lines
89  . `.Bl -xwidth <string>': interpret <string> and use the resulting width
90  . support for double-sided printing (-rD1 command line switch)
91  . support for 11pt and 12pt document sizes (-rS11, -rS12 command line
92    switches)
93
94  `groff_mdoc.man' replaces `groff_mdoc.samples.man'; it now completely
95  documents the mdoc package.
96
97  Great care has been taken to assure backwards compatibility.  If you
98  encounter any abnormal results, please report them to bug-groff@gnu.org.
99
100o A new command line option for the `man' macros (similar to the `mdoc'
101  package has been implemented: `-rcR=1' (now the default in nroff mode)
102  produces one single, very long page instead of multiple pages.  `-rcR=0'
103  deactivates it.
104
105o The `return' request has been added to return immediately from a macro.
106
107o A new request `nop' (no operation) has been added which is similar to
108  `if 1'.  For example,
109
110    .if t \{\
111    Hallo!
112    .\}
113
114  can now be written as
115
116    .if t \{\
117    .  nop Hallo!
118    .\}
119
120o `box' and `boxa' are two new requests which behave similarly to `di' and
121  `da' but don't include a partially filled line (which is restored after
122  ending the diversion).
123
124o The `asciify' request has been extended to `unformat' space characters
125  and some other escape sequences also.
126
127  `\ ' is no longer unformatted as a space but remains an unpaddable,
128  unbreakable space character.
129
130o The new `unformat' request is similar to `asciify' but only handles space
131  characters and tabs specially if the diversion is reread, retaining font
132  information.  This makes it possible to reformat diversions; for example
133  the following
134
135    .ll 3i
136    .
137    a01 a02 a03 a04 a05 a06 a07 a08 a09 a10.
138    .
139    .box box1
140    .ev 1
141    .nf
142    \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P]
143    .br
144    .ev
145    .box
146    .
147    c01 c02 c03 c04 c05 c06 c07 c08 c09 c10.
148    .
149    .unformat box1
150    .box1
151
152  gives
153
154    a01  a02  a03  a04 a05 a06 a07
155    a08 a09 a10.  c01 c02 c03  c04
156    c05  c06 c07 c08 c09 c10.  b01
157    b02 b03 b04 b05  b06  b07  b08
158    b09 b10.
159
160  Without the `unformat' request, space characters are converted to word
161  space nodes which are no longer stretchable, and the result would be
162
163    a01  a02  a03  a04 a05 a06 a07
164    a08 a09 a10.  c01 c02 c03  c04
165    c05  c06 c07 c08 c09 c10.  b01
166    b02 b03 b04 b05 b06 b07 b08
167    b09 b10.
168
169o The new request `linetabs' controls the `line-tabs' mode.  In line-tabs
170  mode, tab distances are computed relative to the (current) output line.
171  Otherwise they are taken relative to the input line.  For example, the
172  following
173
174    .ds x a\t\c
175    .ds y b\t\c
176    .ds z c
177    .ta 1i 3i
178    \*x
179    \*y
180    \*z
181
182  yields
183
184    a         b         c
185
186  In line-tabs mode, the same code gives
187
188    a         b                   c
189
190  The new read-only number register `.linetabs' returns 1 if in line-tabs
191  mode, and 0 otherwise.
192
193o Two new requests `tm1' and `tmc' have been added to improve writing
194  messages to the terminal.  `tm1' is similar to `tm' but allows leading
195  whitespace.  `tmc' is similar to `tm1' but doesn't emit a final newline.
196
197o A new request `dei' (define indirect) has been added.  The first and
198  second parameter of `dei' are taken from string registers rather than
199  directly; this very special request is needed to make `trace.tmac'
200  independent from the escape character (which might even be disabled).
201
202o It is now possible to save and restore the escape character with two new
203  requests `ecs' and `ecr'.
204
205o The new escape sequence \B'...' is an analogon to `\A': If the string
206  within the delimiters is a valid numeric expression, return character `1',
207  and `0' otherwise.
208
209o The new escape sequence `\:' inserts a zero-width break point.  This is
210  similar to `\%' but without a soft hyphen character.
211
212o The `tr' request can now map characters onto `\~'.
213
214o Calling the `fam' request without an argument switches back to the
215  previous font family.
216
217o The new read-only register `.int' is set to a positive value if the last
218  output line is interrupted (i.e., if the input line contains `\c').
219
220o The `writem' request is not new, but hasn't been documented before.  This
221  is similar to `write' but instead of a string the contents of a given
222  macro or string is written to a stream.
223
224o The read/write number register `hp' to get/set the current horizontal
225  position relative to the input line isn't new but hasn't been documented
226  properly before.
227
228o `\X' and `\Y' are now transparent for end-of-sentence recognition.
229
230o The `cu' request in nroff mode now works as documented (i.e., it
231  underlines spaces also).
232
233Grog
234----
235
236o The grog script now works in non-compatibility mode also (which is the
237  default).  As usual, use the `-C' option to activate compatibility mode.
238
239Grops
240-----
241
242A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has been
243added to select a different prologue file.
244
245The effect of the former `-mpsnew' option to access more Type 1 characters
246is now the default and no longer available.  To get the old behaviour (i.e.,
247emulation of some glyphs by composition) use `-mpsold'.
248
249Miscellaneous
250-------------
251
252o For security reasons the following changes have been done:
253
254  . The tmac.safer file has been replaced with a built-in solution; .open,
255    .opena, .pso, .sy, and .pi are completely disabled in safer mode (which
256    is the default); to enable these requests the `-U' command line flag
257    must be used.
258
259  . Files specified with the .mso request or given with the `-m' command
260    line option, and hyphenation patterns loaded with `.hpf' are no longer
261    searched in the current directory by default (besides the usual tmac
262    path). Instead, the home directory is used. To add the current
263    directory, either use the `-U' or `-M' command line option or set the
264    GROFF_TMAC_PATH environment variable to an appropriate value.
265
266  . troffrc, troffrc-end, and eqnrc are neither searched in the current nor
267    in the home directory (even if -U is given).  Use -M or GROFF_TMAC_PATH
268    to change that.
269
270  . Similarly, the current directory is no longer part of the font path.
271    Use the `-F' command line option or the GROFF_FONT_PATH environment
272    variable if you really need the current directory.
273
274o groff now installs its data files into /usr/local/share/groff/<version> by
275  default, following the GNU standard.  Additionally, a local tmac directory
276  (by default /usr/local/share/groff/site-tmac) is scanned before the
277  standard tmac directory.  Wrapper files for system-specific macro packages
278  (if necessary) are put into /usr/local/lib/groff/site-tmac; this directory
279  is searched before the local tmac directory.
280
281o All programs now have option `-v' to show the version number; they exit
282  immediately afterwards, following the GNU standards.  Additionally,
283  `--version' and `--help' have been added, doing the obvious actions.
284
285VERSION 1.16.1
286==============
287
288Bug fixes only; no user-visible changes.
289
290VERSION 1.16
291============
292
293Groff
294-----
295
296The anachronism of calling the man macro package with `-man' has been fixed;
297now you can say `-m man' also. The same is true for `ms', `me', `markup',
298`mandoc', and `mdoc'.
299
300A new switch `-g' for calling `grn' is available.
301
302A new switch `-G' for calling `grap' is available.
303
304EBCDIC support for tty devices has been added.  On such hosts, IBM code page
3051047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for
306the moment, -Tutf8).  Note that non-tty devices are not yet supported (but
307installed).
308
309Troff
310-----
311
312A new command line option to the `man' macros is available: `-rSxx' (with
313`xx' either 10, 11, or 12) to set the base document font size to `xx'
314points.  Additionally, `.SH' now produces larger headings than `.SS'.
315
316To solve a problem with the .PSPIC macro which needs the `-U' switch of
317troff to access an external program (psbb), a new request .psbb is now
318available to get the bounding box of a PostScript image file.  The values
319(in PostScript units) are returned in the new read-only number registers
320`llx', `lly', `urx', and `ury'.  Consequently, .PSPIC has been adapted to
321use the new request, and the psbb program has been removed.
322
323A new predefined writable number register, `year', has been added.  It
324contains the current year.
325
326A new read-only register, `.Y', has been added.  It contains the revision
327number of the groff package.
328
329`\fP' now behaves as expected in situations like the following where the
330font `foo' is undefined:
331
332  .B bold text
333  normal text \f[foo]bar\fP normal text
334
335Previously, the text after \fP appeared as bold.
336
337The `substring' request is not new, but hasn't been documented before.
338
339The predefined `.T' string register (which holds the current output device)
340is not new, but hasn't been documented before.
341
342A new request `length' computes the length of a string and returns it in
343a number register.
344
345The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
346(a debugging aid) are now installed also.
347
348A new resource file, `troffrc-end', is now available.  It is invoked after
349all user-specified macros.  Currently used by the html device to include
350tmac.html; thus no need for users to specify -mhtml anymore.
351
352The soft hyphen character now has a glyph name: `shc'.
353
354The latin-1 character 173 (PS name `periodcentered') has got the troff glyph
355name `pc' and is no longer intermixed with the symbol character `md' (PS
356name `mathdot').
357
358ASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq'
359(which is an alias to character `"').
360
361ASCII character 39 (PS name `quoteright') has got the troff glyph name `cq'
362(which is an alias to character "'").
363
364Some additions to the font description files have been implemented for
365better support of HTML output:
366
367  The new format of lines in the `charset' subsection of font description
368  files is
369
370     name metrics type code [entity_name] [-- comment]
371
372  Currently, only the font description files in devhtml use the optional
373  entity_name string to define glyph entities in HTML.  Everything after the
374  entity_name field is ignored; in case this field isn't used, two hyphen
375  characters are now necessary to start a comment.
376
377  Two new requests are available in DESC files (currently used only with
378  grohtml):
379
380    use_charnames_in_special
381      This command indicates that troff should encode named characters
382      inside special commands.
383
384    pass_filenames
385      requests that troff tells the driver the source file name being
386      processed.  This is achieved by another tcommand: `F filename'.
387
388Grotty
389------
390
391Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
392
393Grohtml
394-------
395
396Added .LINE macro to tmac.arkup.
397
398The obsolete `.LINK' macro has been removed.
399
400.URL, .FTP, and .MAILTO macros now accept an optional third argument which
401will be immediately appended to the second argument (to be used with
402punctuation, for example).
403
404Grodvi
405------
406
407The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
408
409A new font file CWI (using cmitt10; this is typewriter italic) has been
410added.
411
412Grolbp
413------
414
415A new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser
416printers).  This code has been contributed by Francisco Andres Verdu
417<pandres@dragonet.es>.
418
419Grn
420---
421
422A new preprocessor to process gremlin pictures.  It is based on the
423original Berkeley implementation of grn, written by David Slattengren
424and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
425<daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
426
427Pic
428---
429
430Added the `srand' command to set the seed for a new sequence of
431pseudo-random numbers to be returned by `rand'.
432
433Gxditview
434---------
435
436Simplified installation: The Imakefile will now be configured (by groff's
437configure script).
438
439Documentation
440-------------
441
442Three new man pages are available: groff_tmac.5 (documenting how troff macros
443are accessed and where they are found), groff.7 (a short reference of the GNU
444roff language), and roff.7 (a general survey on GNU troff).
445
446Miscellaneous
447-------------
448
449A port to win32 (for use with Microsoft Visual C++ 6.0) is now part of the
450distribution.  It has been contributed by Blake McBride
451<blake@florida-software.com>.
452
453More information about programs, macros, documentation, etc., which is
454related to groff has been collected in the file `MORE.STUFF'.
455
456VERSION 1.13, 1.14, 1.15
457========================
458
459Bug fixes only; no user-visible changes.
460
461VERSION 1.12
462============
463
464Finally, there are new maintainers for groff.  Mailing lists and a CVS
465repository are available also.  See the file README for details.  Not
466all reported bug could be fixed, so please send mails again if
467something is still not working.
468
469Most of the installation problems should have vanished now (most
470notably the $(tmac_wrap) bug).
471
472There is now a man page called groff_man.man which documents the
473basics of the -man macros.  It has been originally written by Susan
474G. Kleinmann <sgk@debian.org>.
475
476A (still incomplete) groff reference manual in texinfo format
477originally contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
478
479me.man and msafer.man have been renamed to groff_me.man
480resp. groff_msafer.man for consistency.
481
482Default strings for macros in doc-common resp. tmac.an no longer
483contain the word `UNIX'.
484
485groff should now be Y2k safe (fixes contributed by Paul Eggert
486<eggert@twinsun.com>).
487
488Following the GNU standards, groff will now use the prefix
489`/usr/local/' as the default instead of replacing an existent groff
490binary.
491
492groff, troff, nroff, and pic now support the -U flag to activate unsafe
493behaviour (without -msafer); the -S flag for using the -msafer macros
494is now the default.
495
496Grohtml
497-------
498
499This is a new output device for producing HTML output contributed by
500Gaius Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been
501included into the distribution so that a lot of people have a chance
502to test it.  Bug reports are highly welcome.
503
504Grolj4
505------
506
507Duplex printing support has been contributed by Jeffrey Copeland
508<jeff@opennt.com>.
509
510Soelim
511------
512
513Added -I option for defining include paths (patch contributed by Peter
514Miller <peterm@jna.com.au>).
515
516Gxditview
517---------
518
519Fallback resources added (patch contributed by Larry Jones
520<larry.jones@sdrc.com>).
521
522Will now support 8 gray levels.
523
524mm
525--
526
527New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
528
529VERSION 1.11
530============
531
532Complete documentation for pic is now in the file doc/pic.ms.  It was
533contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
534*not* volunteering to take over groff as he is way overworked with
535half a dozen other projects.
536
537VERSION 1.10
538============
539
540The directory where data files are installed has been changed from
541/usr/local/lib/groff to /usr/local/share/groff to comply with the
542latest GNU coding standards.
543
544By default groff programs with Unix equivalents are installed with a
545"g" prefix unless there is an existing (non-groff) troff installation.
546
547A new approach is used to make system macro packages available to
548groff.  Instead of simply including /usr/lib/tmac in the list of
549directories searched by groff, the installation process creates for
550each system macro package a wrapper macro package in the groff macro
551directory that references the system macro package.  The groff macro
552packages are now installed with a leading "g" prefix if there is a
553system version of the same macro package, and otherwise without the
554"g" prefix, with the exception that the groff version of -me which is
555always installed as -me.
556
557There is a new device, lj4, for the HP LaserJet 4 (and PCL5
558compatibles).
559
560Groff
561-----
562
563groff has a -S option that prevents the use of unsafe features in pic
564and troff.  This uses a new -S option of pic and the -msafer macros
565for troff.
566
567Troff
568-----
569
570The `blm' request specifies a macro to be invoked when a blank line is
571encountered.
572
573Pic
574---
575
576A -S (safer) option disables the sh command.
577
578Grops
579-----
580
581The -m option enables manual feed.
582
583VERSION 1.09
584============
585
586\(rn will now produce a character that has the traditional metrics,
587and will form corners with \(ul and \(br.  This means that it will not
588align properly with \(sr.  Instead there's a new character
589\[radicalex] which aligns with \(sr; this is used by eqn for doing
590square roots.
591
592Troff
593-----
594
595The `pso' request allows you to read from the standard output of a
596command.
597
598Grops
599-----
600
601The PSPIC macro has options to allow the horizontal alignment of the
602graphic to be specified.
603
604VERSION 1.08
605============
606
607Troff
608-----
609
610The escape sequence \V[xxx] will interpolate the value of the
611environment variable xxx.
612
613Tbl
614---
615
616The decimalpoint option can be used to specify the character to be
617recognized as the decimal point character in place of the default
618period.
619
620VERSION 1.07
621============
622
623Groff
624-----
625
626The environment variable GROFF_COMMAND_PREFIX can be used to control
627whether groff looks for `gtroff' or `troff' (similarily for the
628preprocessors.)
629
630Troff
631-----
632
633Multilingual hyphenation is supported by new `hpf' and `hla' requests,
634and by a `\n[.hla]' number register.  The -H option has been removed.
635Files of hyphenation patterns can have comments.
636
637When a font cannot be found, troff gives a warning (of type `font',
638enabled by default) instead of an error.
639
640There's a new request `trnt' that's like `tr' except that it doesn't
641apply to text transparently throughput into a diversion with \!.
642
643Tbl
644---
645
646There is a `nokeep' option which tells tbl not to use diversions to
647try to keep the table on one page.
648
649Eqn
650---
651
652Setting the parameter `nroff' to a non-zero value causes `ndefine' to
653behave like `define' and `tdefine' to be ignored.  This is done by
654eqnrc when the current device is ascii or latin1.  There's a `neqn'
655script that just does `eqn -Tascii'.
656
657Grotty
658------
659
660grotty uses whatever page length was specified using the `pl' request
661rather than using the paperlength command in the DESC file.  The
662paperwidth command in the DESC file is also ignored.
663
664VERSION 1.06
665============
666
667The programs in groff that have Unix counterparts can now be installed
668without a leading `g' prefix.  See the `g' variable in the Makefile.
669
670The g?nroff script simulates the nroff command using groff.
671
672New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
673\(an.  See groff_char(7).
674
675^L is now a legal input character.
676
677Groff
678-----
679
680The Xps pseudo-device has disappeared.  Instead there is a new -X
681option that tells groff to use gxditview instead of the usual
682postprocessor. (So instead of -TXps, use -XTps or just -X if your
683default device is ps.)
684
685The postprocessor to be used for a particular device is now specified
686by a `postpro' command in the DESC file rather than being compiled
687into groff.  Similarly the command to be used for printing (with the
688-l option) is now specified by a `print' command in the DESC file.
689
690The groff command no longer specifies eqnchar as an input file for
691eqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
692command no longer passes the -D option to eqn.  Instead eqnrc sets the
693draw_lines parameter.
694
695The groff command no longer tells troff to load a device-specific
696macro file.  This is handled instead by the `troffrc' file, which is
697always loaded by troff.
698
699The shell script version of groff has been removed.
700
701Troff
702-----
703
704The `rchar' request removes a character definition established with `char'.
705
706Compatibility mode is disabled and the escape character is set to `\'
707while a character definition is being processed.
708
709The `\#' escape sequence is like `\"' except that the terminating
710newline is ignored.
711
712The `shc' request tells troff which character to insert (instead of
713the default \(hy) when a word is hyphenated at a line break.
714
715A font name of 0 (zero) in the DESC file will cause no font to be
716mounted on the corresponding font position.  This is useful for
717arranging that special fonts are mounted on positions on which users
718are not likely explicitly to mount fonts.  All groff devices now avoid
719initially mounting fonts on positions 5-9.
720
721The `do' request allows a single request or macro to be interpreted
722with compatibility mode disabled.
723
724troff automatically loads a file `troffrc' before any other input file.
725This can be prevented with the -R option.  This file is responsible
726for loading the device-specific macros.
727
728Pic
729---
730
731The -x option has been removed and a -n option has been added.  By
732default, pic now assumes that the postprocessor supports groff
733extensions.  The -n option tells pic to generate output that works
734with ditroff drivers.  The -z option now applies only to TeX mode.
735
736The -p option has been removed. Instead if the -n option is not
737specified, pic generates output that uses \X'ps: ...' if the \n(0p
738register is non-zero and tmac.ps sets this register to 1.
739
740In places where you could 1st or 5th you can now say `i'th or `i+1'th
741(the quotes are required).
742
743Eqn
744---
745
746Eqn now automatically reads a file `eqnrc' from the macro directory.
747This performs the same role that the eqnchar files used to.  This can
748be prevented by the -R option.
749
750Setting the draw_lines parameter to a non-zero value causes lines to
751be drawn using \D rather than \l.  The -D option is now obsolete.
752
753`uparrow', `downarrow' and `updownarrow' can be used with `left' and
754`right'.
755
756The amount of extra space added before and after lines containing
757equations can be controlled using the `body_height' and `body_depth'
758parameters.
759
760Grops
761-----
762
763Font description files have been regenerated from newer AFM files.
764You can get access to the additional characters present in the text
765fonts in newer PostScript printers by using -mpsnew.
766
767The default value of the -b option is specified by a `broken' command
768in the DESC file.
769
770With the -g option, grops will generate PostScript code that guesses
771the page height.  This allows documents to be printed on both letter
772(8.5x11) and A4 paper without change.
773
774Grodvi
775------
776
777ISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
778with groff -Tdvi for more information.
779
780Grotty
781------
782
783The -mtty-char macros contain additional character definitions for
784use with grotty.
785
786Macros
787------
788
789In previous releases the groff -me macros treated the $r and $R number
790registers in a way that was incompatible with the BSD -me macros.  The
791reason for this was that the approach used by the BSD -me macros does
792not work with low resolution devices such as -TX75 and -TX100.
793However, this caused problems with existing -me documents.  In this
794release, the vertical spacing is controlled by the $v and $V registers
795which have the same meaning as $r and $R in earlier groff releases.
796In addition, if the $r or $R register is set to a value that would be
797correct for for the BSD -me macros and a low resolution device is not
798being used, then an appropriate value for the $v or $V register will
799be derived from the $r or $R register.
800
801The groff -me macros work with -C and (I think) with Unix troff.
802
803For backward compatibility with BSD -me, the \*{ and \*} strings are
804also available as \*[ and \*].  Of course, \*[ will only be usable
805with -C.
806
807The \*T string has been deleted.  Use \*(Tm instead.
808
809Xditview
810--------
811
812The `n', Space and Return keys are bound to the Next Page action.  The
813`p', BackSpace and Delete keys are bound to the Previous Page action.
814The `q' key is bound to the Quit action.
815
816The `r' key is bound to a rerasterize action that reruns groff, and
817redisplays the current page.
818
819VERSION 1.05
820============
821
822Pic
823---
824
825There is a alternative assignment operator `:=' which interacts
826differently with blocks.
827
828There is a new command `command', which allows the values of variables
829to be passed through to troff or TeX.
830
831The `print' command now accepts multiple arguments.
832
833String comparison expressions (using `==' or `!=') are allowed in more
834contexts.
835
836Grotty
837------
838
839Horizontal and vertical lines drawn with \D'l ...' will be rendered
840using -, | and + characters.  This is intended to give reasonable
841results with boxed tables.  It won't work well with pic.
842
843Macros
844------
845
846The -mdoc macros have been upgraded to the version in the second
847Berkeley networking release.  This version is not completely
848compatible with earlier versions; the old version is still available
849as -mdoc.old.  The grog script has been enhanced so that it can
850usually determine whether a document requires the old or new versions.
851
852With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
853around where the picture would appear with -Tps.
854
855VERSION 1.04
856============
857
858An implementation of the -mm macros is included.
859
860The directory in which temporary files are created can be controlled
861by setting the GROFF_TMPDIR or TMPDIR environment variables.
862
863Pic
864---
865
866Some MS-DOS support (see pic/make-dos-dist).
867
868Grops
869-----
870
871There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
872which make it possible to have substitute characters that are
873displayed when previewing with -TXps but ignored when printing with
874grops.
875
876Xditview
877--------
878
879Support for scalable fonts.
880
881VERSION 1.03
882============
883
884No changes other than bug fixes.
885
886VERSION 1.02
887============
888
889There is an implementation of refer and associated programs.  groff -R
890preprocesses with grefer; no mechanism is provided for passing
891arguments to grefer because most grefer options have equivalent
892commands which can be included in the file.  grog also supports refer.
893
894There is an alternative perl implementation of the grog script.
895
896The code field in lines in the charset section of font description
897files is now allowed to contain an arbitrary integer (previously it
898was required to lie between 0 and 255).  Currently grops and grodvi
899use only the low order 8 bits of the value.  Grodvi will use the
900complete value; however, this is unlikely to be useful with
901traditional TeX tools (.tfm files only allow 8 bit character codes.)
902
903Left and right double quotes can be obtained with \(lq and \(rq
904respectively.
905
906There is a new program called pfbtops which translates PostScript
907fonts in pfb format to ASCII.
908
909A slightly modified version of the Berkeley tmac.doc is included.
910
911Troff
912-----
913
914In long escape names the closing ] is now required to be at the same
915input level as the opening [.
916
917The \A'S' escape sequence returns 1 or 0 according as S is or is not
918suitable for use as a name.
919
920\~ produces an unbreakable space that can be stretched when the line
921is adjusted.
922
923The `mso' request is like the `so' request except that it searches for
924the file in the same directories in which tmac.X is searched for when
925the -mX option is given.
926
927The escape sequence `\R' is similar to the `nr' request.
928
929Eqn
930---
931
932A new `special' primitive allows you to add new types of unary
933constructs by writing a troff macro.
934
935Pic
936---
937
938The implementation no longer uses gperf.
939
940Grops
941-----
942
943The compile-time -DBROKEN_SPOOLER option has been replaced by a
944BROKEN_SPOOLER_FLAGS option.  This allows more precise control over
945how grops should workaround broken spoolers and previewers.  There is
946a new -b option that can change this at run-time.
947
948Grops now generates PostScript that complies with version 3.0 of the
949Document Structuring Convention.
950
951The resource management component of grops (the part that deals with
952imported documents and downloadable fonts) has been rewritten and now
953supports version 3.0 of the Document Structuring Conventions.  The
954%%DocumentFonts comment is no longer supported; you must use the
955%%Document{Needed,Supplied}{Fonts,Resources} comments instead
956(or as well.)
957
958tmac.psatk contains some macros that support the mechanism used by the
959Andrew Toolkit for including PostScript graphics in troff documents.
960
961Xditview
962--------
963
964Parts of xditview have been rewritten so that it can be used with the
965output of gtroff -Tps.  groff -TXps will run gtroff -Tps with
966gxditview.
967
968There is a new menu entry `Print' which brings up a dialog box for
969specifying a command with which the file being previewed should be
970printed.
971
972Xditview now uses imake.
973
974VERSION 1.01
975============
976
977The groff command now understands the gtroff `-a' and `-i' options.
978
979With the `m' and `n' scale indicators, the scale factor is rounded
980horizontally before being applied.  This makes (almost) no difference
981for devices with `hor' equal to 1, but it makes groff with -Tascii or
982-Tlatin1 behave more like nroff in its treatment of these scale
983indicators.  Accordingly tmac.tty now calls the `nroff' request so
984that the `n' condition will be true.
985
986The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
987have been made to work at least somewhat with -C.  In particular the
988special characters defined by these macros now work with -C.
989
990groff -Tdvi -p will now pass pic the -x flag; this will enable filling
991of arrowheads and boxes, provided that your dvi driver supports the
992latest version of the tpic specials.
993
994Eqn
995---
996
997There is a new `-N' option that tells eqn not to allow newlines in
998delimiters.  This allows eqn to recover better from missing closing
999delimiters.  The groff command will pass on a `-N' option to eqn.
1000
1001Grops
1002-----
1003
1004You can now use psfig with grops.  See the file ps/psfig.diff.  I do
1005not recommend using psfig for new documents.
1006
1007The command \X'ps: file F' is similar to \X'ps: exec ...' except that
1008the PostScript code is read from the file F instead of being contained
1009within the \X command.  This was added to support psfig.
1010
1011Grodvi
1012------
1013
1014There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
1015
1016Macros
1017------
1018
1019The groff -me macros now work with the -C option.  As a result, they
1020may also work with Unix nroff/troff.
1021
1022In -me, the $r and $R number registers now contain the line spacing as
1023a percentage of the pointsize expressed in units (normally about 120).
1024The previous definition was useless with low resolution devices such
1025as X75 and X100.
1026
1027VERSION 1.00
1028============
1029
1030A -ms-like macro-package is now included.
1031
1032The name for the Icelandic lowercase eth character has been changed
1033from \(-d to \(Sd.
1034
1035Troff
1036-----
1037
1038There is a new request `nroff', which makes the `n' built-in condition
1039true and the `t' built-in condition false; also a new request `troff'
1040which undoes the effect of the `nroff' request.  This is intended only
1041for backward compatibility: it is usually better to test \n(.H or
1042\n(.V or to use the `c' built-in condition.
1043
1044The \R escape sequence has been deleted.  Use \E instead.
1045
1046There are `break' and `continue' requests for use with the `while'
1047request.
1048
1049There is a request `hym' that can ensure that when the current
1050adjustment mode is not `b' a line will not be hyphenated if it is no
1051more than a given amount short, and a request `hys' that can ensure
1052that when the current adjustment mode is `b' a line will not be
1053hyphenated if it can be justified by adding no more than a given
1054amount of extra space to each word space.
1055
1056There is a request `rj' similar to `ce' that right justifies lines.
1057
1058A warning of type `space' will be given when a call is made to an
1059undefined request or macro with a name longer than two characters, and
1060the first two characters of the name make a name that is defined.
1061This is intended to find places where a space has been omitted been a
1062request or macro and its argument.  This type of warning is enabled by
1063default.
1064
1065Pic
1066---
1067
1068A comma is permitted between the arguments to the `reset' command.
1069
1070For use with TeX, there is a new `-c' option that makes gpic treat
1071lines beginning with `.' in a way that is more compatible with tpic
1072(but ugly).
1073
1074Eqn
1075---
1076
1077It is no longer necessary to add `space 0' at the beginning of
1078complicated equations inside pictures.
1079
1080`prime' is now treated as an ordinary character, as in Unix eqn.  The
1081previous behaviour of `prime' as an operator can now be obtained using
1082`opprime'.
1083
1084Xditview
1085--------
1086
1087There are two new devices X75-12 and X100-12 which are the same as X75
1088and X100 except that they are optimized for documents that use mostly
108912 point text.
1090
1091VERSION 0.6
1092===========
1093
1094The installation process has been refined to make it easy for you to
1095share groff with someone who has the same type of machine as you but
1096does not have a C++ compiler.  See the end of the INSTALL file for
1097details.
1098
1099There is a man page for the tfmtodit program which explains how to use
1100your own fonts with groff -Tdvi.
1101
1102There is a man page for afmtodit which explains how to use your own
1103PostScript fonts with groff -Tps.
1104
1105The \N escape sequence is now fully supported.  It can now be used to
1106access any character in a font by its output code, even if it doesn't
1107have a groff name.  This is made possible by a convention in the font
1108files that a character name of `---' refers to an unnamed character.
1109The drivers now all support the `N' command required for this.  The font
1110description files have been updated to include unnamed characters.
1111
1112The `x' command in font description files has been removed: instead
1113any unknown commands are automatically made available to the drivers.
1114If you constructed your own font files with an earlier version of
1115tfmtodit or afmtodit, you must construct them again using the current
1116version.
1117
1118Characters between 0200 and 0237 octal are no longer legal input
1119characters.  Note that these are not used in ISO 8859.
1120
1121A command called `grog' has been added, similar to the `doctype'
1122command described in Kernighan and Pike.
1123
1124Groff
1125-----
1126
1127The groff command has some new options: -V prints the pipeline
1128instead of executing it; -P passes an argument to the postprocessor,
1129-L passes an argument to the spooler.
1130
1131There is a C++ implementation of the groff command.  This handles some
1132things slightly better than the shell script.  In particular, it can
1133correctly handle arguments containing characters that have a special
1134meaning to the shell; it can give an error message when child
1135processes other than the last in the pipeline terminate abnormally;
1136its exit status can take account of the exit statuses of all its child
1137processes; it is a little more efficient; when geqn is used, it
1138searches for the eqnchar file in the same way that font metric files
1139are searched for, rather than expecting to find it in one particular
1140directory.
1141
1142Gtroff
1143------
1144
1145There is font translation feature: For example, you can tell gtroff to
1146use font `HR' whenever font `H' is requested with the line
1147  .ftr H HR
1148This would be useful for a document that uses `H' to refer to
1149Helvetica.
1150
1151There are some new number registers: `.kern' contains the current kern
1152mode, `.lg' the current ligature mode, `.x' the major version number,
1153`.y' the minor version number, `.ce' the number of lines to be
1154centered in the current environment, `.trunc' the amount of vertical
1155space truncated by the most recently sprung vertical position trap,
1156`.ne' the amount of vertical space needed in the last `ne' request
1157that caused a vertical position trap to be sprung.
1158
1159The `cf' request now behaves sensibly in a diversion.  If used in a
1160diversion, it will now arrange for the file to be copied to the output
1161when the diversion is reread.
1162
1163There is a new request `trf' (transparent file) similar to `cf', but
1164more like `\!'.
1165
1166There is a new escape sequence `\Y[xxx]', roughly equivalent to
1167`\X'\*[xxx]'', except that the contents of string or macro xxx are not
1168interpreted, and xxx may contain newlines.  This requires an output
1169format extension; the drivers have been modified to understand this.
1170Grops has also been modified to cope with newlines in the arguments to
1171\X commands; grops has a new \X command mdef, which is like def except
1172that it has a first argument giving the number of definitions.
1173
1174There is a new warning category `escape' which warns about unknown
1175escape sequences.
1176
1177The `fp' request now takes an optional third argument giving the external
1178name of the font.
1179
1180The `\_' character is now automatically translated to `\(ul' as in troff.
1181
1182The environment variable `GROFF_HYPHEN' gives the name of the file
1183containing the hyphenation patterns.
1184
1185There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
1186
1187Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
1188of end of sentence recognition.
1189
1190There is an anti-recursion feature in the `char' request, so you can
1191say `.char \(bu \s+2\(bu\s-2'.
1192
1193The limit on the number of font positions has been removed.
1194Accordingly `\n[.fp]' never returns 0.
1195
1196The restriction on the number of numbered environments has been removed.
1197
1198There is a new escape sequence `\E' that makes it possible to
1199guarantee that an escape sequence won't get interpreted in copy-mode.
1200The `\R' escape sequence is accordingly now deprecated.
1201
1202Gpic
1203----
1204
1205Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
1206`if' and `define' constructs) can now be of the form `{ anything }'.
1207
1208If the `linethick' variable is negative (as it now is initially),
1209lines will be drawn with a thickness proportional to the current point
1210size.
1211
1212The `rand' function now takes no arguments and returns a number between
12130 and 1.  The old syntax is still supported.
1214
1215`^' can be used in expressions to indicate exponentiation.
1216
1217In the `for' construct the argument to the by clause can be prefixed
1218by `*' to indicate that the increment is multiplicative.
1219
1220A bare expression may be used as an attribute.  If the current
1221direction is `dir', then an attribute `expr' is equivalent to
1222`dir expr'
1223
1224There is a `sprintf' construct that allows numbers to be formatted and used
1225wherever a quoted string can be used.
1226
1227The height of a text object without an explicit height attribute is
1228the number of text strings associated with the object times the value
1229of the `textht' variable.
1230
1231The maximum height and width of a picture is controlled by the
1232`maxpswid' and `maxpsht' variables.
1233
1234Gtbl
1235----
1236
1237Gtbl can now handle gracefully the situation where the `ce' request
1238has been applied to a table.
1239
1240Geqn
1241----
1242
1243The `ifdef' primitive has been generalized.
1244
1245A tilde accent can be put underneath a box using `utilde'.  This
1246defined using a general `uaccent' primitive.
1247
1248Grops
1249-----
1250
1251There is a new PostScript font downloading scheme which handles font
1252downloading for imported illustrations.  Previously, the name of the
1253file containing the font was given in the `x download' line in the
1254groff font metric file.  Now, there is a `download' file which says
1255for each PostScript font name which file contains that font.  Grops
1256can also now handle inter-font dependencies, where one downloadable
1257font depends on some other (possibly downloadable) font.
1258
1259The `T' font has been removed.  The characters it used to provide are
1260now provided by `char' definitions in tmac.ps. TSymbol.ps has also
1261been removed, and the tweaks it provided are now provided by `char'
1262definitions.
1263