* src/roff/groff/groff.man: Added an example.
[s-roff.git] / NEWS
blobf0c69438fa366f47a85b49b0d7fda553f061a385
1 This file describes recent user-visible changes in groff.  Bug fixes
2 are not described.  There are more details in the man pages.
4 VERSION 1.16
5 ============
7 Groff
8 -----
10 Some additions to the font description files have been implemented for
11 better support of HTML output:
13   The new format of lines in the `charset' subsection of font description
14   files is
16      name metrics type code [entity_name] [-- comment]
18   Currently, only the font description files in devhtml use the optional
19   entity_name string to define the glyph entities in HTML.  Everything
20   after the entity_name field is ignored; in case this field isn't used,
21   two hyphen characters are now necessary to start a comment.
23   Two new requests are available in DESC files (currently used only with
24   grohtml):
26     use_charnames_in_special
27       This  command  indicates  that  troff should encode named characters
28       inside special commands.
30     pass_filenames
31       requests that troff tells  the  driver  the  source file name being
32       processed.  This is achieved by another tcommand: `F filename'.
34 Troff
35 -----
37 To solve a problem with the .PSPIC macro which needs the `-U' switch of
38 troff to access an external program (psbb), a new request .psbb is now
39 available to get the bounding box of a PostScript image file.  The values
40 (in PostScript units) are returned in the new read-only number registers
41 `llx', `lly', `urx', and `ury'.  Consequently, .PSPIC has been adapted to
42 use the new request, and the psbb program has been removed.
44 A new number predefined writable number register, `year', has been added.
45 It contains the current year.
47 A new read-only register, `.Y', has been added.  It contains the revision
48 number of the groff package.
50 `\fP' now behaves as expected in situations like the following where the
51 font `foo' is undefined:
53   .B bold text
54   normal text \f[foo]bar\fP normal text
56 Previously, the text after \fP has appeared as bold.
58 The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
59 (a debugging aid) are now installed also.
61 A new resource file, `troffrc-end', is now available.  It is invoked after
62 all user-specified macros.  Currently used by the html device to include
63 tmac.html; thus no need for users to specify -mhtml anymore.
65 Grotty
66 ------
68 Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
70 Grohtml
71 -------
73 Added .LINE macro to tmac.arkup.
75 The obsolete `.LINK' macro has been removed.
77 .URL, .FTP, and .MAILTO now accept an optional third argument which will
78 be immediately appended to the second argument (to be used with punctuation,
79 for example).
81 Pic
82 ---
84 Added the `srand' command to set the seed for a new sequence of the
85 pseudo-random numbers to be returned by `rand'.
87 VERSION 1.13, 1.14, 1.15
88 ========================
90 Bug fixes only; no user-visible changes.
92 VERSION 1.12
93 ============
95 Finally, there are new maintainers for groff.  Mailing lists and a CVS
96 repository are available also.  See the file README for details.  Not
97 all reported bug could be fixed, so please send mails again if
98 something is still not working.
100 Most of the installation problems should have vanished now (most
101 notably the $(tmac_wrap) bug).
103 There is now a man page called groff_man.man which documents the
104 basics of the -man macros.  It has been originally written by Susan
105 G. Kleinmann <sgk@debian.org>.
107 A (still incomplete) groff reference manual in texinfo format
108 originally contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
110 me.man and msafer.man have been renamed to groff_me.man
111 resp. groff_msafer.man for consistency.
113 Default strings for macros in doc-common resp. tmac.an no longer
114 contain the word `UNIX'.
116 groff should now be Y2k safe (fixes contributed by Paul Eggert
117 <eggert@twinsun.com>).
119 Following the GNU standards, groff will now use the prefix
120 `/usr/local/' as the default instead of replacing an existent groff
121 binary.
123 groff, troff, nroff, and pic now support the -U flag to activate unsafe
124 behaviour (without -msafer); the -S flag for using the -msafer macros
125 is now the default.
127 Grohtml
128 -------
130 This is a new output device for producing HTML output contributed by
131 Gaius Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been
132 included into the distribution so that a lot of people have a chance
133 to test it.  Bug reports are highly welcome.
135 Grolj4
136 ------
138 Duplex printing support has been contributed by Jeffrey Copeland
139 <jeff@opennt.com>.
141 Soelim
142 ------
144 Added -I option for defining include paths (patch contributed by Peter
145 Miller <peterm@jna.com.au>).
147 Gxditview
148 ---------
150 Fallback resources added (patch contributed by Larry Jones
151 <larry.jones@sdrc.com>).
153 Will now support 8 gray levels.
158 New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
160 VERSION 1.11
161 ============
163 Complete documentation for pic is now in the file doc/pic.ms.  It was
164 contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
165 *not* volunteering to take over groff as he is way overworked with
166 half a dozen other projects.
168 VERSION 1.10
169 ============
171 The directory where data files are installed has been changed from
172 /usr/local/lib/groff to /usr/local/share/groff to comply with the
173 latest GNU coding standards.
175 By default groff programs with Unix equivalents are installed with a
176 "g" prefix unless there is an existing (non-groff) troff installation.
178 A new approach is used to make system macro packages available to
179 groff.  Instead of simply including /usr/lib/tmac in the list of
180 directories searched by groff, the installation process creates for
181 each system macro package a wrapper macro package in the groff macro
182 directory that references the system macro package.  The groff macro
183 packages are now installed with a leading "g" prefix if there is a
184 system version of the same macro package, and otherwise without the
185 "g" prefix, with the exception that the groff version of -me which is
186 always installed as -me.
188 There is a new device, lj4, for the HP LaserJet 4 (and PCL5
189 compatibles).
191 Groff
192 -----
194 groff has a -S option that prevents the use of unsafe features in pic
195 and troff.  This uses a new -S option of pic and the -msafer macros
196 for troff.
198 Troff
199 -----
201 The `blm' request specifies a macro to be invoked when a blank line is
202 encountered.
207 A -S (safer) option disables the sh command.
209 Grops
210 -----
212 The -m option enables manual feed.
214 VERSION 1.09
215 ============
217 \(rn will now produce a character that has the traditional metrics,
218 and will form corners with \(ul and \(br.  This means that it will not
219 align properly with \(sr.  Instead there's a new character
220 \[radicalex] which aligns with \(sr; this is used by eqn for doing
221 square roots.
223 Troff
224 -----
226 The `pso' request allows you to read from the standard output of a
227 command.
229 Grops
230 -----
232 The PSPIC macro has options to allow the horizontal alignment of the
233 graphic to be specified.
235 VERSION 1.08
236 ============
238 Troff
239 -----
241 The escape sequence \V[xxx] will interpolate the value of the
242 environment variable xxx.
247 The decimalpoint option can be used to specify the character to be
248 recognized as the decimal point character in place of the default
249 period.
251 VERSION 1.07
252 ============
254 Groff
255 -----
257 The environment variable GROFF_COMMAND_PREFIX can be used to control
258 whether groff looks for `gtroff' or `troff' (similarily for the
259 preprocessors.)
261 Troff
262 -----
264 Multilingual hyphenation is supported by new `hpf' and `hla' requests,
265 and by a `\n[.hla]' number register.  The -H option has been removed.
266 Files of hyphenation patterns can have comments.
268 When a font cannot be found, troff gives a warning (of type `font',
269 enabled by default) instead of an error.
271 There's a new request `trnt' that's like `tr' except that it doesn't
272 apply to text transparently throughput into a diversion with \!.
277 There is a `nokeep' option which tells tbl not to use diversions to
278 try to keep the table on one page.
283 Setting the parameter `nroff' to a non-zero value causes `ndefine' to
284 behave like `define' and `tdefine' to be ignored.  This is done by
285 eqnrc when the current device is ascii or latin1.  There's a `neqn'
286 script that just does `eqn -Tascii'.
288 Grotty
289 ------
291 grotty uses whatever page length was specified using the `pl' request
292 rather than using the paperlength command in the DESC file.  The
293 paperwidth command in the DESC file is also ignored.
295 VERSION 1.06
296 ============
298 The programs in groff that have Unix counterparts can now be installed
299 without a leading `g' prefix.  See the `g' variable in the Makefile.
301 The g?nroff script simulates the nroff command using groff.
303 New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
304 \(an.  See groff_char(7).
306 ^L is now a legal input character.
308 Groff
309 -----
311 The Xps pseudo-device has disappeared.  Instead there is a new -X
312 option that tells groff to use gxditview instead of the usual
313 postprocessor. (So instead of -TXps, use -XTps or just -X if your
314 default device is ps.)
316 The postprocessor to be used for a particular device is now specified
317 by a `postpro' command in the DESC file rather than being compiled
318 into groff.  Similarly the command to be used for printing (with the
319 -l option) is now specified by a `print' command in the DESC file.
321 The groff command no longer specifies eqnchar as an input file for
322 eqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
323 command no longer passes the -D option to eqn.  Instead eqnrc sets the
324 draw_lines parameter.
326 The groff command no longer tells troff to load a device-specific
327 macro file.  This is handled instead by the `troffrc' file, which is
328 always loaded by troff.
330 The shell script version of groff has been removed.
332 Troff
333 -----
335 The `rchar' request removes a character definition established with `char'.
337 Compatibility mode is disabled and the escape character is set to `\'
338 while a character definition is being processed.
340 The `\#' escape sequence is like `\"' except that the terminating
341 newline is ignored.
343 The `shc' request tells troff which character to insert (instead of
344 the default \(hy) when a word is hyphenated at a line break.
346 A font name of 0 (zero) in the DESC file will cause no font to be
347 mounted on the corresponding font position.  This is useful for
348 arranging that special fonts are mounted on positions on which users
349 are not likely explicitly to mount fonts.  All groff devices now avoid
350 initially mounting fonts on positions 5-9.
352 The `do' request allows a single request or macro to be interpreted
353 with compatibility mode disabled.
355 troff automatically loads a file `troffrc' before any other input file.
356 This can be prevented with the -R option.  This file is responsible
357 for loading the device-specific macros.
362 The -x option has been removed and a -n option has been added.  By
363 default, pic now assumes that the postprocessor supports groff
364 extensions.  The -n option tells pic to generate output that works
365 with ditroff drivers.  The -z option now applies only to TeX mode.
367 The -p option has been removed. Instead if the -n option is not
368 specified, pic generates output that uses \X'ps: ...' if the \n(0p
369 register is non-zero and tmac.ps sets this register to 1.
371 In places where you could 1st or 5th you can now say `i'th or `i+1'th
372 (the quotes are required).
377 Eqn now automatically reads a file `eqnrc' from the macro directory.
378 This performs the same role that the eqnchar files used to.  This can
379 be prevented by the -R option.
381 Setting the draw_lines parameter to a non-zero value causes lines to
382 be drawn using \D rather than \l.  The -D option is now obsolete.
384 `uparrow', `downarrow' and `updownarrow' can be used with `left' and
385 `right'.
387 The amount of extra space added before and after lines containing
388 equations can be controlled using the `body_height' and `body_depth'
389 parameters.
391 Grops
392 -----
394 Font description files have been regenerated from newer AFM files.
395 You can get access to the additional characters present in the text
396 fonts in newer PostScript printers by using -mpsnew.
398 The default value of the -b option is specified by a `broken' command
399 in the DESC file.
401 With the -g option, grops will generate PostScript code that guesses
402 the page height.  This allows documents to be printed on both letter
403 (8.5x11) and A4 paper without change.
405 Grodvi
406 ------
408 ISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
409 with groff -Tdvi for more information.
411 Grotty
412 ------
414 The -mtty-char macros contain additional character definitions for
415 use with grotty.
417 Macros
418 ------
420 In previous releases the groff -me macros treated the $r and $R number
421 registers in a way that was incompatible with the BSD -me macros.  The
422 reason for this was that the approach used by the BSD -me macros does
423 not work with low resolution devices such as -TX75 and -TX100.
424 However, this caused problems with existing -me documents.  In this
425 release, the vertical spacing is controlled by the $v and $V registers
426 which have the same meaning as $r and $R in earlier groff releases.
427 In addition, if the $r or $R register is set to a value that would be
428 correct for for the BSD -me macros and a low resolution device is not
429 being used, then an appropriate value for the $v or $V register will
430 be derived from the $r or $R register.
432 The groff -me macros work with -C and (I think) with Unix troff.
434 For backward compatibility with BSD -me, the \*{ and \*} strings are
435 also available as \*[ and \*].  Of course, \*[ will only be usable
436 with -C.
438 The \*T string has been deleted.  Use \*(Tm instead.
440 Xditview
441 --------
443 The `n', Space and Return keys are bound to the Next Page action.  The
444 `p', BackSpace and Delete keys are bound to the Previous Page action.
445 The `q' key is bound to the Quit action.
447 The `r' key is bound to a rerasterize action that reruns groff, and
448 redisplays the current page.
450 VERSION 1.05
451 ============
456 There is a alternative assignment operator `:=' which interacts
457 differently with blocks.
459 There is a new command `command', which allows the values of variables
460 to be passed through to troff or TeX.
462 The `print' command now accepts multiple arguments.
464 String comparison expressions (using `==' or `!=') are allowed in more
465 contexts.
467 Grotty
468 ------
470 Horizontal and vertical lines drawn with \D'l ...' will be rendered
471 using -, | and + characters.  This is intended to give reasonable
472 results with boxed tables.  It won't work well with pic.
474 Macros
475 ------
477 The -mdoc macros have been upgraded to the version in the second
478 Berkeley networking release.  This version is not completely
479 compatible with earlier versions; the old version is still available
480 as -mdoc.old.  The grog script has been enhanced so that it can
481 usually determine whether a document requires the old or new versions.
483 With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
484 around where the picture would appear with -Tps.
486 VERSION 1.04
487 ============
489 An implementation of the -mm macros is included.
491 The directory in which temporary files are created can be controlled
492 by setting the GROFF_TMPDIR or TMPDIR environment variables.
497 Some MS-DOS support (see pic/make-dos-dist).
499 Grops
500 -----
502 There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
503 which make it possible to have substitute characters that are
504 displayed when previewing with -TXps but ignored when printing with
505 grops.
507 Xditview
508 --------
510 Support for scalable fonts.
512 VERSION 1.03
513 ============
515 No changes other than bug fixes.
517 VERSION 1.02
518 ============
520 There is an implementation of refer and associated programs.  groff -R
521 preprocesses with grefer; no mechanism is provided for passing
522 arguments to grefer because most grefer options have equivalent
523 commands which can be included in the file.  grog also supports refer.
525 There is an alternative perl implementation of the grog script.
527 The code field in lines in the charset section of font description
528 files is now allowed to contain an arbitrary integer (previously it
529 was required to lie between 0 and 255).  Currently grops and grodvi
530 use only the low order 8 bits of the value.  Grodvi will use the
531 complete value; however, this is unlikely to be useful with
532 traditional TeX tools (.tfm files only allow 8 bit character codes.)
534 Left and right double quotes can be obtained with \(lq and \(rq
535 respectively.
537 There is a new program called pfbtops which translates PostScript
538 fonts in pfb format to ASCII.
540 A slightly modified version of the Berkeley tmac.doc is included.
542 Troff
543 -----
545 In long escape names the closing ] is now required to be at the same
546 input level as the opening [.
548 The \A'S' escape sequence returns 1 or 0 according as S is or is not
549 suitable for use as a name.
551 \~ produces an unbreakable space that can be stretched when the line
552 is adjusted.
554 The `mso' request is like the `so' request except that it searches for
555 the file in the same directories in which tmac.X is searched for when
556 the -mX option is given.
558 The escape sequence `\R' is similar to the `nr' request.
563 A new `special' primitive allows you to add new types of unary
564 constructs by writing a troff macro.
569 The implementation no longer uses gperf.
571 Grops
572 -----
574 The compile-time -DBROKEN_SPOOLER option has been replaced by a
575 BROKEN_SPOOLER_FLAGS option.  This allows more precise control over
576 how grops should workaround broken spoolers and previewers.  There is
577 a new -b option that can change this at run-time.
579 Grops now generates PostScript that complies with version 3.0 of the
580 Document Structuring Convention.
582 The resource management component of grops (the part that deals with
583 imported documents and downloadable fonts) has been rewritten and now
584 supports version 3.0 of the Document Structuring Conventions.  The
585 %%DocumentFonts comment is no longer supported; you must use the
586 %%Document{Needed,Supplied}{Fonts,Resources} comments instead
587 (or as well.)
589 tmac.psatk contains some macros that support the mechanism used by the
590 Andrew Toolkit for including PostScript graphics in troff documents.
592 Xditview
593 --------
595 Parts of xditview have been rewritten so that it can be used with the
596 output of gtroff -Tps.  groff -TXps will run gtroff -Tps with
597 gxditview.
599 There is a new menu entry `Print' which brings up a dialog box for
600 specifying a command with which the file being previewed should be
601 printed.
603 Xditview now uses imake.
605 VERSION 1.01
606 ============
608 The groff command now understands the gtroff `-a' and `-i' options.
610 With the `m' and `n' scale indicators, the scale factor is rounded
611 horizontally before being applied.  This makes (almost) no difference
612 for devices with `hor' equal to 1, but it makes groff with -Tascii or
613 -Tlatin1 behave more like nroff in its treatment of these scale
614 indicators.  Accordingly tmac.tty now calls the `nroff' request so
615 that the `n' condition will be true.
617 The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
618 have been made to work at least somewhat with -C.  In particular the
619 special characters defined by these macros now work with -C.
621 groff -Tdvi -p will now pass pic the -x flag; this will enable filling
622 of arrowheads and boxes, provided that your dvi driver supports the
623 latest version of the tpic specials.
628 There is a new `-N' option that tells eqn not to allow newlines in
629 delimiters.  This allows eqn to recover better from missing closing
630 delimiters.  The groff command will pass on a `-N' option to eqn.
632 Grops
633 -----
635 You can now use psfig with grops.  See the file ps/psfig.diff.  I do
636 not recommend using psfig for new documents.
638 The command \X'ps: file F' is similar to \X'ps: exec ...' except that
639 the PostScript code is read from the file F instead of being contained
640 within the \X command.  This was added to support psfig.
642 Grodvi
643 ------
645 There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
647 Macros
648 ------
650 The groff -me macros now work with the -C option.  As a result, they
651 may also work with Unix nroff/troff.
653 In -me, the $r and $R number registers now contain the line spacing as
654 a percentage of the pointsize expressed in units (normally about 120).
655 The previous definition was useless with low resolution devices such
656 as X75 and X100.
658 VERSION 1.00
659 ============
661 A -ms-like macro-package is now included.
663 The name for the Icelandic lowercase eth character has been changed
664 from \(-d to \(Sd.
666 Troff
667 -----
669 There is a new request `nroff', which makes the `n' built-in condition
670 true and the `t' built-in condition false; also a new request `troff'
671 which undoes the effect of the `nroff' request.  This is intended only
672 for backward compatibility: it is usually better to test \n(.H or
673 \n(.V or to use the `c' built-in condition.
675 The \R escape sequence has been deleted.  Use \E instead.
677 There are `break' and `continue' requests for use with the `while'
678 request.
680 There is a request `hym' that can ensure that when the current
681 adjustment mode is not `b' a line will not be hyphenated if it is no
682 more than a given amount short, and a request `hys' that can ensure
683 that when the current adjustment mode is `b' a line will not be
684 hyphenated if it can be justified by adding no more than a given
685 amount of extra space to each word space.
687 There is a request `rj' similar to `ce' that right justifies lines.
689 A warning of type `space' will be given when a call is made to an
690 undefined request or macro with a name longer than two characters, and
691 the first two characters of the name make a name that is defined.
692 This is intended to find places where a space has been omitted been a
693 request or macro and its argument.  This type of warning is enabled by
694 default.
699 A comma is permitted between the arguments to the `reset' command.
701 For use with TeX, there is a new `-c' option that makes gpic treat
702 lines beginning with `.' in a way that is more compatible with tpic
703 (but ugly).
708 It is no longer necessary to add `space 0' at the beginning of
709 complicated equations inside pictures.
711 `prime' is now treated as an ordinary character, as in Unix eqn.  The
712 previous behaviour of `prime' as an operator can now be obtained using
713 `opprime'.
715 Xditview
716 --------
718 There are two new devices X75-12 and X100-12 which are the same as X75
719 and X100 except that they are optimized for documents that use mostly
720 12 point text.
722 VERSION 0.6
723 ===========
725 The installation process has been refined to make it easy for you to
726 share groff with someone who has the same type of machine as you but
727 does not have a C++ compiler.  See the end of the INSTALL file for
728 details.
730 There is a man page for the tfmtodit program which explains how to use
731 your own fonts with groff -Tdvi.
733 There is a man page for afmtodit which explains how to use your own
734 PostScript fonts with groff -Tps.
736 The \N escape sequence is now fully supported.  It can now be used to
737 access any character in a font by its output code, even if it doesn't
738 have a groff name.  This is made possible by a convention in the font
739 files that a character name of `---' refers to an unnamed character.
740 The drivers now all support the `N' command required for this.  The font
741 description files have been updated to include unnamed characters.
743 The `x' command in font description files has been removed: instead
744 any unknown commands are automatically made available to the drivers.
745 If you constructed your own font files with an earlier version of
746 tfmtodit or afmtodit, you must construct them again using the current
747 version.
749 Characters between 0200 and 0237 octal are no longer legal input
750 characters.  Note that these are not used in ISO 8859.
752 A command called `grog' has been added, similar to the `doctype'
753 command described in Kernighan and Pike.
755 Groff
756 -----
758 The groff command has some new options: -V prints the pipeline
759 instead of executing it; -P passes an argument to the postprocessor,
760 -L passes an argument to the spooler.
762 There is a C++ implementation of the groff command.  This handles some
763 things slightly better than the shell script.  In particular, it can
764 correctly handle arguments containing characters that have a special
765 meaning to the shell; it can give an error message when child
766 processes other than the last in the pipeline terminate abnormally;
767 its exit status can take account of the exit statuses of all its child
768 processes; it is a little more efficient; when geqn is used, it
769 searches for the eqnchar file in the same way that font metric files
770 are searched for, rather than expecting to find it in one particular
771 directory.
773 Gtroff
774 ------
776 There is font translation feature: For example, you can tell gtroff to
777 use font `HR' whenever font `H' is requested with the line
778   .ftr H HR
779 This would be useful for a document that uses `H' to refer to
780 Helvetica.
782 There are some new number registers: `.kern' contains the current kern
783 mode, `.lg' the current ligature mode, `.x' the major version number,
784 `.y' the minor version number, `.ce' the number of lines to be
785 centered in the current environment, `.trunc' the amount of vertical
786 space truncated by the most recently sprung vertical position trap,
787 `.ne' the amount of vertical space needed in the last `ne' request
788 that caused a vertical position trap to be sprung.
790 The `cf' request now behaves sensibly in a diversion.  If used in a
791 diversion, it will now arrange for the file to be copied to the output
792 when the diversion is reread.
794 There is a new request `trf' (transparent file) similar to `cf', but
795 more like `\!'.
797 There is a new escape sequence `\Y[xxx]', roughly equivalent to
798 `\X'\*[xxx]'', except that the contents of string or macro xxx are not
799 interpreted, and xxx may contain newlines.  This requires an output
800 format extension; the drivers have been modified to understand this.
801 Grops has also been modified to cope with newlines in the arguments to
802 \X commands; grops has a new \X command mdef, which is like def except
803 that it has a first argument giving the number of definitions.
805 There is a new warning category `escape' which warns about unknown
806 escape sequences.
808 The `fp' request now takes an optional third argument giving the external
809 name of the font.
811 The `\_' character is now automatically translated to `\(ul' as in troff.
813 The environment variable `GROFF_HYPHEN' gives the name of the file
814 containing the hyphenation patterns.
816 There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
818 Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
819 of end of sentence recognition.
821 There is an anti-recursion feature in the `char' request, so you can
822 say `.char \(bu \s+2\(bu\s-2'.
824 The limit on the number of font positions has been removed.
825 Accordingly `\n[.fp]' never returns 0.
827 The restriction on the number of numbered environments has been removed.
829 There is a new escape sequence `\E' that makes it possible to
830 guarantee that an escape sequence won't get interpreted in copy-mode.
831 The `\R' escape sequence is accordingly now deprecated.
833 Gpic
834 ----
836 Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
837 `if' and `define' constructs) can now be of the form `{ anything }'.
839 If the `linethick' variable is negative (as it now is initially),
840 lines will be drawn with a thickness proportional to the current point
841 size.
843 The `rand' function now takes no arguments and returns a number between
844 0 and 1.  The old syntax is still supported.
846 `^' can be used in expressions to indicate exponentiation.
848 In the `for' construct the argument to the by clause can be prefixed
849 by `*' to indicate that the increment is multiplicative.
851 A bare expression may be used as an attribute.  If the current
852 direction is `dir', then an attribute `expr' is equivalent to
853 `dir expr'
855 There is a `sprintf' construct that allows numbers to be formatted and used
856 wherever a quoted string can be used.
858 The height of a text object without an explicit height attribute is
859 the number of text strings associated with the object times the value
860 of the `textht' variable.
862 The maximum height and width of a picture is controlled by the
863 `maxpswid' and `maxpsht' variables.
865 Gtbl
866 ----
868 Gtbl can now handle gracefully the situation where the `ce' request
869 has been applied to a table.
871 Geqn
872 ----
874 The `ifdef' primitive has been generalized.
876 A tilde accent can be put underneath a box using `utilde'.  This
877 defined using a general `uaccent' primitive.
879 Grops
880 -----
882 There is a new PostScript font downloading scheme which handles font
883 downloading for imported illustrations.  Previously, the name of the
884 file containing the font was given in the `x download' line in the
885 groff font metric file.  Now, there is a `download' file which says
886 for each PostScript font name which file contains that font.  Grops
887 can also now handle inter-font dependencies, where one downloadable
888 font depends on some other (possibly downloadable) font.
890 The `T' font has been removed.  The characters it used to provide are
891 now provided by `char' definitions in tmac.ps. TSymbol.ps has also
892 been removed, and the tweaks it provided are now provided by `char'
893 definitions.