* src/include/lib.h: Added xtmptemplate and made xtmpfile
[s-roff.git] / NEWS
blobd5669fe8173736cb1b19de70ad2d9d0c5644fe4f
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 predefined writable number register, `year', has been added.  It
45 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 appeared as bold.
58 The `substring' request is not new, but hasn't been documented before.
60 A new request `length' computes the length of a string and returns it in
61 a number register.
63 The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
64 (a debugging aid) are now installed also.
66 A new resource file, `troffrc-end', is now available.  It is invoked after
67 all user-specified macros.  Currently used by the html device to include
68 tmac.html; thus no need for users to specify -mhtml anymore.
70 Grotty
71 ------
73 Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
75 Grohtml
76 -------
78 Added .LINE macro to tmac.arkup.
80 The obsolete `.LINK' macro has been removed.
82 .URL, .FTP, and .MAILTO now accept an optional third argument which will
83 be immediately appended to the second argument (to be used with punctuation,
84 for example).
86 Pic
87 ---
89 Added the `srand' command to set the seed for a new sequence of the
90 pseudo-random numbers to be returned by `rand'.
92 VERSION 1.13, 1.14, 1.15
93 ========================
95 Bug fixes only; no user-visible changes.
97 VERSION 1.12
98 ============
100 Finally, there are new maintainers for groff.  Mailing lists and a CVS
101 repository are available also.  See the file README for details.  Not
102 all reported bug could be fixed, so please send mails again if
103 something is still not working.
105 Most of the installation problems should have vanished now (most
106 notably the $(tmac_wrap) bug).
108 There is now a man page called groff_man.man which documents the
109 basics of the -man macros.  It has been originally written by Susan
110 G. Kleinmann <sgk@debian.org>.
112 A (still incomplete) groff reference manual in texinfo format
113 originally contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
115 me.man and msafer.man have been renamed to groff_me.man
116 resp. groff_msafer.man for consistency.
118 Default strings for macros in doc-common resp. tmac.an no longer
119 contain the word `UNIX'.
121 groff should now be Y2k safe (fixes contributed by Paul Eggert
122 <eggert@twinsun.com>).
124 Following the GNU standards, groff will now use the prefix
125 `/usr/local/' as the default instead of replacing an existent groff
126 binary.
128 groff, troff, nroff, and pic now support the -U flag to activate unsafe
129 behaviour (without -msafer); the -S flag for using the -msafer macros
130 is now the default.
132 Grohtml
133 -------
135 This is a new output device for producing HTML output contributed by
136 Gaius Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been
137 included into the distribution so that a lot of people have a chance
138 to test it.  Bug reports are highly welcome.
140 Grolj4
141 ------
143 Duplex printing support has been contributed by Jeffrey Copeland
144 <jeff@opennt.com>.
146 Soelim
147 ------
149 Added -I option for defining include paths (patch contributed by Peter
150 Miller <peterm@jna.com.au>).
152 Gxditview
153 ---------
155 Fallback resources added (patch contributed by Larry Jones
156 <larry.jones@sdrc.com>).
158 Will now support 8 gray levels.
163 New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
165 VERSION 1.11
166 ============
168 Complete documentation for pic is now in the file doc/pic.ms.  It was
169 contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
170 *not* volunteering to take over groff as he is way overworked with
171 half a dozen other projects.
173 VERSION 1.10
174 ============
176 The directory where data files are installed has been changed from
177 /usr/local/lib/groff to /usr/local/share/groff to comply with the
178 latest GNU coding standards.
180 By default groff programs with Unix equivalents are installed with a
181 "g" prefix unless there is an existing (non-groff) troff installation.
183 A new approach is used to make system macro packages available to
184 groff.  Instead of simply including /usr/lib/tmac in the list of
185 directories searched by groff, the installation process creates for
186 each system macro package a wrapper macro package in the groff macro
187 directory that references the system macro package.  The groff macro
188 packages are now installed with a leading "g" prefix if there is a
189 system version of the same macro package, and otherwise without the
190 "g" prefix, with the exception that the groff version of -me which is
191 always installed as -me.
193 There is a new device, lj4, for the HP LaserJet 4 (and PCL5
194 compatibles).
196 Groff
197 -----
199 groff has a -S option that prevents the use of unsafe features in pic
200 and troff.  This uses a new -S option of pic and the -msafer macros
201 for troff.
203 Troff
204 -----
206 The `blm' request specifies a macro to be invoked when a blank line is
207 encountered.
212 A -S (safer) option disables the sh command.
214 Grops
215 -----
217 The -m option enables manual feed.
219 VERSION 1.09
220 ============
222 \(rn will now produce a character that has the traditional metrics,
223 and will form corners with \(ul and \(br.  This means that it will not
224 align properly with \(sr.  Instead there's a new character
225 \[radicalex] which aligns with \(sr; this is used by eqn for doing
226 square roots.
228 Troff
229 -----
231 The `pso' request allows you to read from the standard output of a
232 command.
234 Grops
235 -----
237 The PSPIC macro has options to allow the horizontal alignment of the
238 graphic to be specified.
240 VERSION 1.08
241 ============
243 Troff
244 -----
246 The escape sequence \V[xxx] will interpolate the value of the
247 environment variable xxx.
252 The decimalpoint option can be used to specify the character to be
253 recognized as the decimal point character in place of the default
254 period.
256 VERSION 1.07
257 ============
259 Groff
260 -----
262 The environment variable GROFF_COMMAND_PREFIX can be used to control
263 whether groff looks for `gtroff' or `troff' (similarily for the
264 preprocessors.)
266 Troff
267 -----
269 Multilingual hyphenation is supported by new `hpf' and `hla' requests,
270 and by a `\n[.hla]' number register.  The -H option has been removed.
271 Files of hyphenation patterns can have comments.
273 When a font cannot be found, troff gives a warning (of type `font',
274 enabled by default) instead of an error.
276 There's a new request `trnt' that's like `tr' except that it doesn't
277 apply to text transparently throughput into a diversion with \!.
282 There is a `nokeep' option which tells tbl not to use diversions to
283 try to keep the table on one page.
288 Setting the parameter `nroff' to a non-zero value causes `ndefine' to
289 behave like `define' and `tdefine' to be ignored.  This is done by
290 eqnrc when the current device is ascii or latin1.  There's a `neqn'
291 script that just does `eqn -Tascii'.
293 Grotty
294 ------
296 grotty uses whatever page length was specified using the `pl' request
297 rather than using the paperlength command in the DESC file.  The
298 paperwidth command in the DESC file is also ignored.
300 VERSION 1.06
301 ============
303 The programs in groff that have Unix counterparts can now be installed
304 without a leading `g' prefix.  See the `g' variable in the Makefile.
306 The g?nroff script simulates the nroff command using groff.
308 New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
309 \(an.  See groff_char(7).
311 ^L is now a legal input character.
313 Groff
314 -----
316 The Xps pseudo-device has disappeared.  Instead there is a new -X
317 option that tells groff to use gxditview instead of the usual
318 postprocessor. (So instead of -TXps, use -XTps or just -X if your
319 default device is ps.)
321 The postprocessor to be used for a particular device is now specified
322 by a `postpro' command in the DESC file rather than being compiled
323 into groff.  Similarly the command to be used for printing (with the
324 -l option) is now specified by a `print' command in the DESC file.
326 The groff command no longer specifies eqnchar as an input file for
327 eqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
328 command no longer passes the -D option to eqn.  Instead eqnrc sets the
329 draw_lines parameter.
331 The groff command no longer tells troff to load a device-specific
332 macro file.  This is handled instead by the `troffrc' file, which is
333 always loaded by troff.
335 The shell script version of groff has been removed.
337 Troff
338 -----
340 The `rchar' request removes a character definition established with `char'.
342 Compatibility mode is disabled and the escape character is set to `\'
343 while a character definition is being processed.
345 The `\#' escape sequence is like `\"' except that the terminating
346 newline is ignored.
348 The `shc' request tells troff which character to insert (instead of
349 the default \(hy) when a word is hyphenated at a line break.
351 A font name of 0 (zero) in the DESC file will cause no font to be
352 mounted on the corresponding font position.  This is useful for
353 arranging that special fonts are mounted on positions on which users
354 are not likely explicitly to mount fonts.  All groff devices now avoid
355 initially mounting fonts on positions 5-9.
357 The `do' request allows a single request or macro to be interpreted
358 with compatibility mode disabled.
360 troff automatically loads a file `troffrc' before any other input file.
361 This can be prevented with the -R option.  This file is responsible
362 for loading the device-specific macros.
367 The -x option has been removed and a -n option has been added.  By
368 default, pic now assumes that the postprocessor supports groff
369 extensions.  The -n option tells pic to generate output that works
370 with ditroff drivers.  The -z option now applies only to TeX mode.
372 The -p option has been removed. Instead if the -n option is not
373 specified, pic generates output that uses \X'ps: ...' if the \n(0p
374 register is non-zero and tmac.ps sets this register to 1.
376 In places where you could 1st or 5th you can now say `i'th or `i+1'th
377 (the quotes are required).
382 Eqn now automatically reads a file `eqnrc' from the macro directory.
383 This performs the same role that the eqnchar files used to.  This can
384 be prevented by the -R option.
386 Setting the draw_lines parameter to a non-zero value causes lines to
387 be drawn using \D rather than \l.  The -D option is now obsolete.
389 `uparrow', `downarrow' and `updownarrow' can be used with `left' and
390 `right'.
392 The amount of extra space added before and after lines containing
393 equations can be controlled using the `body_height' and `body_depth'
394 parameters.
396 Grops
397 -----
399 Font description files have been regenerated from newer AFM files.
400 You can get access to the additional characters present in the text
401 fonts in newer PostScript printers by using -mpsnew.
403 The default value of the -b option is specified by a `broken' command
404 in the DESC file.
406 With the -g option, grops will generate PostScript code that guesses
407 the page height.  This allows documents to be printed on both letter
408 (8.5x11) and A4 paper without change.
410 Grodvi
411 ------
413 ISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
414 with groff -Tdvi for more information.
416 Grotty
417 ------
419 The -mtty-char macros contain additional character definitions for
420 use with grotty.
422 Macros
423 ------
425 In previous releases the groff -me macros treated the $r and $R number
426 registers in a way that was incompatible with the BSD -me macros.  The
427 reason for this was that the approach used by the BSD -me macros does
428 not work with low resolution devices such as -TX75 and -TX100.
429 However, this caused problems with existing -me documents.  In this
430 release, the vertical spacing is controlled by the $v and $V registers
431 which have the same meaning as $r and $R in earlier groff releases.
432 In addition, if the $r or $R register is set to a value that would be
433 correct for for the BSD -me macros and a low resolution device is not
434 being used, then an appropriate value for the $v or $V register will
435 be derived from the $r or $R register.
437 The groff -me macros work with -C and (I think) with Unix troff.
439 For backward compatibility with BSD -me, the \*{ and \*} strings are
440 also available as \*[ and \*].  Of course, \*[ will only be usable
441 with -C.
443 The \*T string has been deleted.  Use \*(Tm instead.
445 Xditview
446 --------
448 The `n', Space and Return keys are bound to the Next Page action.  The
449 `p', BackSpace and Delete keys are bound to the Previous Page action.
450 The `q' key is bound to the Quit action.
452 The `r' key is bound to a rerasterize action that reruns groff, and
453 redisplays the current page.
455 VERSION 1.05
456 ============
461 There is a alternative assignment operator `:=' which interacts
462 differently with blocks.
464 There is a new command `command', which allows the values of variables
465 to be passed through to troff or TeX.
467 The `print' command now accepts multiple arguments.
469 String comparison expressions (using `==' or `!=') are allowed in more
470 contexts.
472 Grotty
473 ------
475 Horizontal and vertical lines drawn with \D'l ...' will be rendered
476 using -, | and + characters.  This is intended to give reasonable
477 results with boxed tables.  It won't work well with pic.
479 Macros
480 ------
482 The -mdoc macros have been upgraded to the version in the second
483 Berkeley networking release.  This version is not completely
484 compatible with earlier versions; the old version is still available
485 as -mdoc.old.  The grog script has been enhanced so that it can
486 usually determine whether a document requires the old or new versions.
488 With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
489 around where the picture would appear with -Tps.
491 VERSION 1.04
492 ============
494 An implementation of the -mm macros is included.
496 The directory in which temporary files are created can be controlled
497 by setting the GROFF_TMPDIR or TMPDIR environment variables.
502 Some MS-DOS support (see pic/make-dos-dist).
504 Grops
505 -----
507 There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
508 which make it possible to have substitute characters that are
509 displayed when previewing with -TXps but ignored when printing with
510 grops.
512 Xditview
513 --------
515 Support for scalable fonts.
517 VERSION 1.03
518 ============
520 No changes other than bug fixes.
522 VERSION 1.02
523 ============
525 There is an implementation of refer and associated programs.  groff -R
526 preprocesses with grefer; no mechanism is provided for passing
527 arguments to grefer because most grefer options have equivalent
528 commands which can be included in the file.  grog also supports refer.
530 There is an alternative perl implementation of the grog script.
532 The code field in lines in the charset section of font description
533 files is now allowed to contain an arbitrary integer (previously it
534 was required to lie between 0 and 255).  Currently grops and grodvi
535 use only the low order 8 bits of the value.  Grodvi will use the
536 complete value; however, this is unlikely to be useful with
537 traditional TeX tools (.tfm files only allow 8 bit character codes.)
539 Left and right double quotes can be obtained with \(lq and \(rq
540 respectively.
542 There is a new program called pfbtops which translates PostScript
543 fonts in pfb format to ASCII.
545 A slightly modified version of the Berkeley tmac.doc is included.
547 Troff
548 -----
550 In long escape names the closing ] is now required to be at the same
551 input level as the opening [.
553 The \A'S' escape sequence returns 1 or 0 according as S is or is not
554 suitable for use as a name.
556 \~ produces an unbreakable space that can be stretched when the line
557 is adjusted.
559 The `mso' request is like the `so' request except that it searches for
560 the file in the same directories in which tmac.X is searched for when
561 the -mX option is given.
563 The escape sequence `\R' is similar to the `nr' request.
568 A new `special' primitive allows you to add new types of unary
569 constructs by writing a troff macro.
574 The implementation no longer uses gperf.
576 Grops
577 -----
579 The compile-time -DBROKEN_SPOOLER option has been replaced by a
580 BROKEN_SPOOLER_FLAGS option.  This allows more precise control over
581 how grops should workaround broken spoolers and previewers.  There is
582 a new -b option that can change this at run-time.
584 Grops now generates PostScript that complies with version 3.0 of the
585 Document Structuring Convention.
587 The resource management component of grops (the part that deals with
588 imported documents and downloadable fonts) has been rewritten and now
589 supports version 3.0 of the Document Structuring Conventions.  The
590 %%DocumentFonts comment is no longer supported; you must use the
591 %%Document{Needed,Supplied}{Fonts,Resources} comments instead
592 (or as well.)
594 tmac.psatk contains some macros that support the mechanism used by the
595 Andrew Toolkit for including PostScript graphics in troff documents.
597 Xditview
598 --------
600 Parts of xditview have been rewritten so that it can be used with the
601 output of gtroff -Tps.  groff -TXps will run gtroff -Tps with
602 gxditview.
604 There is a new menu entry `Print' which brings up a dialog box for
605 specifying a command with which the file being previewed should be
606 printed.
608 Xditview now uses imake.
610 VERSION 1.01
611 ============
613 The groff command now understands the gtroff `-a' and `-i' options.
615 With the `m' and `n' scale indicators, the scale factor is rounded
616 horizontally before being applied.  This makes (almost) no difference
617 for devices with `hor' equal to 1, but it makes groff with -Tascii or
618 -Tlatin1 behave more like nroff in its treatment of these scale
619 indicators.  Accordingly tmac.tty now calls the `nroff' request so
620 that the `n' condition will be true.
622 The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
623 have been made to work at least somewhat with -C.  In particular the
624 special characters defined by these macros now work with -C.
626 groff -Tdvi -p will now pass pic the -x flag; this will enable filling
627 of arrowheads and boxes, provided that your dvi driver supports the
628 latest version of the tpic specials.
633 There is a new `-N' option that tells eqn not to allow newlines in
634 delimiters.  This allows eqn to recover better from missing closing
635 delimiters.  The groff command will pass on a `-N' option to eqn.
637 Grops
638 -----
640 You can now use psfig with grops.  See the file ps/psfig.diff.  I do
641 not recommend using psfig for new documents.
643 The command \X'ps: file F' is similar to \X'ps: exec ...' except that
644 the PostScript code is read from the file F instead of being contained
645 within the \X command.  This was added to support psfig.
647 Grodvi
648 ------
650 There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
652 Macros
653 ------
655 The groff -me macros now work with the -C option.  As a result, they
656 may also work with Unix nroff/troff.
658 In -me, the $r and $R number registers now contain the line spacing as
659 a percentage of the pointsize expressed in units (normally about 120).
660 The previous definition was useless with low resolution devices such
661 as X75 and X100.
663 VERSION 1.00
664 ============
666 A -ms-like macro-package is now included.
668 The name for the Icelandic lowercase eth character has been changed
669 from \(-d to \(Sd.
671 Troff
672 -----
674 There is a new request `nroff', which makes the `n' built-in condition
675 true and the `t' built-in condition false; also a new request `troff'
676 which undoes the effect of the `nroff' request.  This is intended only
677 for backward compatibility: it is usually better to test \n(.H or
678 \n(.V or to use the `c' built-in condition.
680 The \R escape sequence has been deleted.  Use \E instead.
682 There are `break' and `continue' requests for use with the `while'
683 request.
685 There is a request `hym' that can ensure that when the current
686 adjustment mode is not `b' a line will not be hyphenated if it is no
687 more than a given amount short, and a request `hys' that can ensure
688 that when the current adjustment mode is `b' a line will not be
689 hyphenated if it can be justified by adding no more than a given
690 amount of extra space to each word space.
692 There is a request `rj' similar to `ce' that right justifies lines.
694 A warning of type `space' will be given when a call is made to an
695 undefined request or macro with a name longer than two characters, and
696 the first two characters of the name make a name that is defined.
697 This is intended to find places where a space has been omitted been a
698 request or macro and its argument.  This type of warning is enabled by
699 default.
704 A comma is permitted between the arguments to the `reset' command.
706 For use with TeX, there is a new `-c' option that makes gpic treat
707 lines beginning with `.' in a way that is more compatible with tpic
708 (but ugly).
713 It is no longer necessary to add `space 0' at the beginning of
714 complicated equations inside pictures.
716 `prime' is now treated as an ordinary character, as in Unix eqn.  The
717 previous behaviour of `prime' as an operator can now be obtained using
718 `opprime'.
720 Xditview
721 --------
723 There are two new devices X75-12 and X100-12 which are the same as X75
724 and X100 except that they are optimized for documents that use mostly
725 12 point text.
727 VERSION 0.6
728 ===========
730 The installation process has been refined to make it easy for you to
731 share groff with someone who has the same type of machine as you but
732 does not have a C++ compiler.  See the end of the INSTALL file for
733 details.
735 There is a man page for the tfmtodit program which explains how to use
736 your own fonts with groff -Tdvi.
738 There is a man page for afmtodit which explains how to use your own
739 PostScript fonts with groff -Tps.
741 The \N escape sequence is now fully supported.  It can now be used to
742 access any character in a font by its output code, even if it doesn't
743 have a groff name.  This is made possible by a convention in the font
744 files that a character name of `---' refers to an unnamed character.
745 The drivers now all support the `N' command required for this.  The font
746 description files have been updated to include unnamed characters.
748 The `x' command in font description files has been removed: instead
749 any unknown commands are automatically made available to the drivers.
750 If you constructed your own font files with an earlier version of
751 tfmtodit or afmtodit, you must construct them again using the current
752 version.
754 Characters between 0200 and 0237 octal are no longer legal input
755 characters.  Note that these are not used in ISO 8859.
757 A command called `grog' has been added, similar to the `doctype'
758 command described in Kernighan and Pike.
760 Groff
761 -----
763 The groff command has some new options: -V prints the pipeline
764 instead of executing it; -P passes an argument to the postprocessor,
765 -L passes an argument to the spooler.
767 There is a C++ implementation of the groff command.  This handles some
768 things slightly better than the shell script.  In particular, it can
769 correctly handle arguments containing characters that have a special
770 meaning to the shell; it can give an error message when child
771 processes other than the last in the pipeline terminate abnormally;
772 its exit status can take account of the exit statuses of all its child
773 processes; it is a little more efficient; when geqn is used, it
774 searches for the eqnchar file in the same way that font metric files
775 are searched for, rather than expecting to find it in one particular
776 directory.
778 Gtroff
779 ------
781 There is font translation feature: For example, you can tell gtroff to
782 use font `HR' whenever font `H' is requested with the line
783   .ftr H HR
784 This would be useful for a document that uses `H' to refer to
785 Helvetica.
787 There are some new number registers: `.kern' contains the current kern
788 mode, `.lg' the current ligature mode, `.x' the major version number,
789 `.y' the minor version number, `.ce' the number of lines to be
790 centered in the current environment, `.trunc' the amount of vertical
791 space truncated by the most recently sprung vertical position trap,
792 `.ne' the amount of vertical space needed in the last `ne' request
793 that caused a vertical position trap to be sprung.
795 The `cf' request now behaves sensibly in a diversion.  If used in a
796 diversion, it will now arrange for the file to be copied to the output
797 when the diversion is reread.
799 There is a new request `trf' (transparent file) similar to `cf', but
800 more like `\!'.
802 There is a new escape sequence `\Y[xxx]', roughly equivalent to
803 `\X'\*[xxx]'', except that the contents of string or macro xxx are not
804 interpreted, and xxx may contain newlines.  This requires an output
805 format extension; the drivers have been modified to understand this.
806 Grops has also been modified to cope with newlines in the arguments to
807 \X commands; grops has a new \X command mdef, which is like def except
808 that it has a first argument giving the number of definitions.
810 There is a new warning category `escape' which warns about unknown
811 escape sequences.
813 The `fp' request now takes an optional third argument giving the external
814 name of the font.
816 The `\_' character is now automatically translated to `\(ul' as in troff.
818 The environment variable `GROFF_HYPHEN' gives the name of the file
819 containing the hyphenation patterns.
821 There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
823 Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
824 of end of sentence recognition.
826 There is an anti-recursion feature in the `char' request, so you can
827 say `.char \(bu \s+2\(bu\s-2'.
829 The limit on the number of font positions has been removed.
830 Accordingly `\n[.fp]' never returns 0.
832 The restriction on the number of numbered environments has been removed.
834 There is a new escape sequence `\E' that makes it possible to
835 guarantee that an escape sequence won't get interpreted in copy-mode.
836 The `\R' escape sequence is accordingly now deprecated.
838 Gpic
839 ----
841 Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
842 `if' and `define' constructs) can now be of the form `{ anything }'.
844 If the `linethick' variable is negative (as it now is initially),
845 lines will be drawn with a thickness proportional to the current point
846 size.
848 The `rand' function now takes no arguments and returns a number between
849 0 and 1.  The old syntax is still supported.
851 `^' can be used in expressions to indicate exponentiation.
853 In the `for' construct the argument to the by clause can be prefixed
854 by `*' to indicate that the increment is multiplicative.
856 A bare expression may be used as an attribute.  If the current
857 direction is `dir', then an attribute `expr' is equivalent to
858 `dir expr'
860 There is a `sprintf' construct that allows numbers to be formatted and used
861 wherever a quoted string can be used.
863 The height of a text object without an explicit height attribute is
864 the number of text strings associated with the object times the value
865 of the `textht' variable.
867 The maximum height and width of a picture is controlled by the
868 `maxpswid' and `maxpsht' variables.
870 Gtbl
871 ----
873 Gtbl can now handle gracefully the situation where the `ce' request
874 has been applied to a table.
876 Geqn
877 ----
879 The `ifdef' primitive has been generalized.
881 A tilde accent can be put underneath a box using `utilde'.  This
882 defined using a general `uaccent' primitive.
884 Grops
885 -----
887 There is a new PostScript font downloading scheme which handles font
888 downloading for imported illustrations.  Previously, the name of the
889 file containing the font was given in the `x download' line in the
890 groff font metric file.  Now, there is a `download' file which says
891 for each PostScript font name which file contains that font.  Grops
892 can also now handle inter-font dependencies, where one downloadable
893 font depends on some other (possibly downloadable) font.
895 The `T' font has been removed.  The characters it used to provide are
896 now provided by `char' definitions in tmac.ps. TSymbol.ps has also
897 been removed, and the tweaks it provided are now provided by `char'
898 definitions.