* doc/groff.texinfo: Completed tab section. Added info about
[s-roff.git] / NEWS
blob2351ca164971822c4bd04f3c9bd54201b76dff48
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 The anachronism of calling the man package with `-man' has been fixed; now
11 you can say `-m man' also.  The same is true for `ms', `me', `markup',
12 `mandoc', and `mdoc'.
14 Some additions to the font description files have been implemented for
15 better support of HTML output:
17   The new format of lines in the `charset' subsection of font description
18   files is
20      name metrics type code [entity_name] [-- comment]
22   Currently, only the font description files in devhtml use the optional
23   entity_name string to define glyph entities in HTML.  Everything after the
24   entity_name field is ignored; in case this field isn't used, two hyphen
25   characters are now necessary to start a comment.
27   Two new requests are available in DESC files (currently used only with
28   grohtml):
30     use_charnames_in_special
31       This  command  indicates  that  troff should encode named characters
32       inside special commands.
34     pass_filenames
35       requests that troff tells  the  driver  the  source file name being
36       processed.  This is achieved by another tcommand: `F filename'.
38 A new switch `-g' for calling `grn' is available.
40 A new switch `-G' for calling `grap' is available.
42 EBCDIC support for tty devices has been added.  On such hosts, IBM code page
43 1047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for
44 the moment, -Tutf8).  Note that non-tty devices are not yet supported (but
45 installed).
47 Troff
48 -----
50 To solve a problem with the .PSPIC macro which needs the `-U' switch of
51 troff to access an external program (psbb), a new request .psbb is now
52 available to get the bounding box of a PostScript image file.  The values
53 (in PostScript units) are returned in the new read-only number registers
54 `llx', `lly', `urx', and `ury'.  Consequently, .PSPIC has been adapted to
55 use the new request, and the psbb program has been removed.
57 A new predefined writable number register, `year', has been added.  It
58 contains the current year.
60 A new read-only register, `.Y', has been added.  It contains the revision
61 number of the groff package.
63 `\fP' now behaves as expected in situations like the following where the
64 font `foo' is undefined:
66   .B bold text
67   normal text \f[foo]bar\fP normal text
69 Previously, the text after \fP appeared as bold.
71 The `substring' request is not new, but hasn't been documented before.
73 The predefined `.T' string register (which holds the current output device)
74 is not new, but hasn't been documented before.
76 A new request `length' computes the length of a string and returns it in
77 a number register.
79 The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
80 (a debugging aid) are now installed also.
82 A new resource file, `troffrc-end', is now available.  It is invoked after
83 all user-specified macros.  Currently used by the html device to include
84 tmac.html; thus no need for users to specify -mhtml anymore.
86 The soft hyphen character now has a glyph name: `shc'.
88 The latin-1 character 173 (PS name `periodcentered') has got the troff glyph
89 name `ps' and is no longer intermixed with the symbol character `md' (PS
90 name `mathdot').
92 ASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq'
93 (which is an alias to character `"').
95 Grotty
96 ------
98 Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
100 Grohtml
101 -------
103 Added .LINE macro to tmac.arkup.
105 The obsolete `.LINK' macro has been removed.
107 .URL, .FTP, and .MAILTO macros now accept an optional third argument which
108 will be immediately appended to the second argument (to be used with
109 punctuation, for example).
111 Grodvi
112 ------
114 The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
116 Grolbp
117 ------
119 A new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser
120 printers).  This code has been contributed by Francisco Andres Verdu
121 <pandres@dragonet.es>.
126 A new preprocessor to process gremlin pictures.  It is based on the
127 original Berkeley implementation of grn, written by David Slattengren
128 and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
129 <daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
134 Added the `srand' command to set the seed for a new sequence of
135 pseudo-random numbers to be returned by `rand'.
137 Gxditview
138 ---------
140 Simplified installation: The Imakefile will now be configured (by groff's
141 configure script).
143 Documentation
144 -------------
146 Three new man pages are available: groff_tmac.5 (documenting how troff macros
147 are accessed and where they are found), groff.7 (a short reference of the GNU
148 roff language), and roff.7 (a general survey on GNU troff).
150 VERSION 1.13, 1.14, 1.15
151 ========================
153 Bug fixes only; no user-visible changes.
155 VERSION 1.12
156 ============
158 Finally, there are new maintainers for groff.  Mailing lists and a CVS
159 repository are available also.  See the file README for details.  Not
160 all reported bug could be fixed, so please send mails again if
161 something is still not working.
163 Most of the installation problems should have vanished now (most
164 notably the $(tmac_wrap) bug).
166 There is now a man page called groff_man.man which documents the
167 basics of the -man macros.  It has been originally written by Susan
168 G. Kleinmann <sgk@debian.org>.
170 A (still incomplete) groff reference manual in texinfo format
171 originally contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
173 me.man and msafer.man have been renamed to groff_me.man
174 resp. groff_msafer.man for consistency.
176 Default strings for macros in doc-common resp. tmac.an no longer
177 contain the word `UNIX'.
179 groff should now be Y2k safe (fixes contributed by Paul Eggert
180 <eggert@twinsun.com>).
182 Following the GNU standards, groff will now use the prefix
183 `/usr/local/' as the default instead of replacing an existent groff
184 binary.
186 groff, troff, nroff, and pic now support the -U flag to activate unsafe
187 behaviour (without -msafer); the -S flag for using the -msafer macros
188 is now the default.
190 Grohtml
191 -------
193 This is a new output device for producing HTML output contributed by
194 Gaius Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been
195 included into the distribution so that a lot of people have a chance
196 to test it.  Bug reports are highly welcome.
198 Grolj4
199 ------
201 Duplex printing support has been contributed by Jeffrey Copeland
202 <jeff@opennt.com>.
204 Soelim
205 ------
207 Added -I option for defining include paths (patch contributed by Peter
208 Miller <peterm@jna.com.au>).
210 Gxditview
211 ---------
213 Fallback resources added (patch contributed by Larry Jones
214 <larry.jones@sdrc.com>).
216 Will now support 8 gray levels.
221 New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
223 VERSION 1.11
224 ============
226 Complete documentation for pic is now in the file doc/pic.ms.  It was
227 contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
228 *not* volunteering to take over groff as he is way overworked with
229 half a dozen other projects.
231 VERSION 1.10
232 ============
234 The directory where data files are installed has been changed from
235 /usr/local/lib/groff to /usr/local/share/groff to comply with the
236 latest GNU coding standards.
238 By default groff programs with Unix equivalents are installed with a
239 "g" prefix unless there is an existing (non-groff) troff installation.
241 A new approach is used to make system macro packages available to
242 groff.  Instead of simply including /usr/lib/tmac in the list of
243 directories searched by groff, the installation process creates for
244 each system macro package a wrapper macro package in the groff macro
245 directory that references the system macro package.  The groff macro
246 packages are now installed with a leading "g" prefix if there is a
247 system version of the same macro package, and otherwise without the
248 "g" prefix, with the exception that the groff version of -me which is
249 always installed as -me.
251 There is a new device, lj4, for the HP LaserJet 4 (and PCL5
252 compatibles).
254 Groff
255 -----
257 groff has a -S option that prevents the use of unsafe features in pic
258 and troff.  This uses a new -S option of pic and the -msafer macros
259 for troff.
261 Troff
262 -----
264 The `blm' request specifies a macro to be invoked when a blank line is
265 encountered.
270 A -S (safer) option disables the sh command.
272 Grops
273 -----
275 The -m option enables manual feed.
277 VERSION 1.09
278 ============
280 \(rn will now produce a character that has the traditional metrics,
281 and will form corners with \(ul and \(br.  This means that it will not
282 align properly with \(sr.  Instead there's a new character
283 \[radicalex] which aligns with \(sr; this is used by eqn for doing
284 square roots.
286 Troff
287 -----
289 The `pso' request allows you to read from the standard output of a
290 command.
292 Grops
293 -----
295 The PSPIC macro has options to allow the horizontal alignment of the
296 graphic to be specified.
298 VERSION 1.08
299 ============
301 Troff
302 -----
304 The escape sequence \V[xxx] will interpolate the value of the
305 environment variable xxx.
310 The decimalpoint option can be used to specify the character to be
311 recognized as the decimal point character in place of the default
312 period.
314 VERSION 1.07
315 ============
317 Groff
318 -----
320 The environment variable GROFF_COMMAND_PREFIX can be used to control
321 whether groff looks for `gtroff' or `troff' (similarily for the
322 preprocessors.)
324 Troff
325 -----
327 Multilingual hyphenation is supported by new `hpf' and `hla' requests,
328 and by a `\n[.hla]' number register.  The -H option has been removed.
329 Files of hyphenation patterns can have comments.
331 When a font cannot be found, troff gives a warning (of type `font',
332 enabled by default) instead of an error.
334 There's a new request `trnt' that's like `tr' except that it doesn't
335 apply to text transparently throughput into a diversion with \!.
340 There is a `nokeep' option which tells tbl not to use diversions to
341 try to keep the table on one page.
346 Setting the parameter `nroff' to a non-zero value causes `ndefine' to
347 behave like `define' and `tdefine' to be ignored.  This is done by
348 eqnrc when the current device is ascii or latin1.  There's a `neqn'
349 script that just does `eqn -Tascii'.
351 Grotty
352 ------
354 grotty uses whatever page length was specified using the `pl' request
355 rather than using the paperlength command in the DESC file.  The
356 paperwidth command in the DESC file is also ignored.
358 VERSION 1.06
359 ============
361 The programs in groff that have Unix counterparts can now be installed
362 without a leading `g' prefix.  See the `g' variable in the Makefile.
364 The g?nroff script simulates the nroff command using groff.
366 New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
367 \(an.  See groff_char(7).
369 ^L is now a legal input character.
371 Groff
372 -----
374 The Xps pseudo-device has disappeared.  Instead there is a new -X
375 option that tells groff to use gxditview instead of the usual
376 postprocessor. (So instead of -TXps, use -XTps or just -X if your
377 default device is ps.)
379 The postprocessor to be used for a particular device is now specified
380 by a `postpro' command in the DESC file rather than being compiled
381 into groff.  Similarly the command to be used for printing (with the
382 -l option) is now specified by a `print' command in the DESC file.
384 The groff command no longer specifies eqnchar as an input file for
385 eqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
386 command no longer passes the -D option to eqn.  Instead eqnrc sets the
387 draw_lines parameter.
389 The groff command no longer tells troff to load a device-specific
390 macro file.  This is handled instead by the `troffrc' file, which is
391 always loaded by troff.
393 The shell script version of groff has been removed.
395 Troff
396 -----
398 The `rchar' request removes a character definition established with `char'.
400 Compatibility mode is disabled and the escape character is set to `\'
401 while a character definition is being processed.
403 The `\#' escape sequence is like `\"' except that the terminating
404 newline is ignored.
406 The `shc' request tells troff which character to insert (instead of
407 the default \(hy) when a word is hyphenated at a line break.
409 A font name of 0 (zero) in the DESC file will cause no font to be
410 mounted on the corresponding font position.  This is useful for
411 arranging that special fonts are mounted on positions on which users
412 are not likely explicitly to mount fonts.  All groff devices now avoid
413 initially mounting fonts on positions 5-9.
415 The `do' request allows a single request or macro to be interpreted
416 with compatibility mode disabled.
418 troff automatically loads a file `troffrc' before any other input file.
419 This can be prevented with the -R option.  This file is responsible
420 for loading the device-specific macros.
425 The -x option has been removed and a -n option has been added.  By
426 default, pic now assumes that the postprocessor supports groff
427 extensions.  The -n option tells pic to generate output that works
428 with ditroff drivers.  The -z option now applies only to TeX mode.
430 The -p option has been removed. Instead if the -n option is not
431 specified, pic generates output that uses \X'ps: ...' if the \n(0p
432 register is non-zero and tmac.ps sets this register to 1.
434 In places where you could 1st or 5th you can now say `i'th or `i+1'th
435 (the quotes are required).
440 Eqn now automatically reads a file `eqnrc' from the macro directory.
441 This performs the same role that the eqnchar files used to.  This can
442 be prevented by the -R option.
444 Setting the draw_lines parameter to a non-zero value causes lines to
445 be drawn using \D rather than \l.  The -D option is now obsolete.
447 `uparrow', `downarrow' and `updownarrow' can be used with `left' and
448 `right'.
450 The amount of extra space added before and after lines containing
451 equations can be controlled using the `body_height' and `body_depth'
452 parameters.
454 Grops
455 -----
457 Font description files have been regenerated from newer AFM files.
458 You can get access to the additional characters present in the text
459 fonts in newer PostScript printers by using -mpsnew.
461 The default value of the -b option is specified by a `broken' command
462 in the DESC file.
464 With the -g option, grops will generate PostScript code that guesses
465 the page height.  This allows documents to be printed on both letter
466 (8.5x11) and A4 paper without change.
468 Grodvi
469 ------
471 ISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
472 with groff -Tdvi for more information.
474 Grotty
475 ------
477 The -mtty-char macros contain additional character definitions for
478 use with grotty.
480 Macros
481 ------
483 In previous releases the groff -me macros treated the $r and $R number
484 registers in a way that was incompatible with the BSD -me macros.  The
485 reason for this was that the approach used by the BSD -me macros does
486 not work with low resolution devices such as -TX75 and -TX100.
487 However, this caused problems with existing -me documents.  In this
488 release, the vertical spacing is controlled by the $v and $V registers
489 which have the same meaning as $r and $R in earlier groff releases.
490 In addition, if the $r or $R register is set to a value that would be
491 correct for for the BSD -me macros and a low resolution device is not
492 being used, then an appropriate value for the $v or $V register will
493 be derived from the $r or $R register.
495 The groff -me macros work with -C and (I think) with Unix troff.
497 For backward compatibility with BSD -me, the \*{ and \*} strings are
498 also available as \*[ and \*].  Of course, \*[ will only be usable
499 with -C.
501 The \*T string has been deleted.  Use \*(Tm instead.
503 Xditview
504 --------
506 The `n', Space and Return keys are bound to the Next Page action.  The
507 `p', BackSpace and Delete keys are bound to the Previous Page action.
508 The `q' key is bound to the Quit action.
510 The `r' key is bound to a rerasterize action that reruns groff, and
511 redisplays the current page.
513 VERSION 1.05
514 ============
519 There is a alternative assignment operator `:=' which interacts
520 differently with blocks.
522 There is a new command `command', which allows the values of variables
523 to be passed through to troff or TeX.
525 The `print' command now accepts multiple arguments.
527 String comparison expressions (using `==' or `!=') are allowed in more
528 contexts.
530 Grotty
531 ------
533 Horizontal and vertical lines drawn with \D'l ...' will be rendered
534 using -, | and + characters.  This is intended to give reasonable
535 results with boxed tables.  It won't work well with pic.
537 Macros
538 ------
540 The -mdoc macros have been upgraded to the version in the second
541 Berkeley networking release.  This version is not completely
542 compatible with earlier versions; the old version is still available
543 as -mdoc.old.  The grog script has been enhanced so that it can
544 usually determine whether a document requires the old or new versions.
546 With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
547 around where the picture would appear with -Tps.
549 VERSION 1.04
550 ============
552 An implementation of the -mm macros is included.
554 The directory in which temporary files are created can be controlled
555 by setting the GROFF_TMPDIR or TMPDIR environment variables.
560 Some MS-DOS support (see pic/make-dos-dist).
562 Grops
563 -----
565 There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
566 which make it possible to have substitute characters that are
567 displayed when previewing with -TXps but ignored when printing with
568 grops.
570 Xditview
571 --------
573 Support for scalable fonts.
575 VERSION 1.03
576 ============
578 No changes other than bug fixes.
580 VERSION 1.02
581 ============
583 There is an implementation of refer and associated programs.  groff -R
584 preprocesses with grefer; no mechanism is provided for passing
585 arguments to grefer because most grefer options have equivalent
586 commands which can be included in the file.  grog also supports refer.
588 There is an alternative perl implementation of the grog script.
590 The code field in lines in the charset section of font description
591 files is now allowed to contain an arbitrary integer (previously it
592 was required to lie between 0 and 255).  Currently grops and grodvi
593 use only the low order 8 bits of the value.  Grodvi will use the
594 complete value; however, this is unlikely to be useful with
595 traditional TeX tools (.tfm files only allow 8 bit character codes.)
597 Left and right double quotes can be obtained with \(lq and \(rq
598 respectively.
600 There is a new program called pfbtops which translates PostScript
601 fonts in pfb format to ASCII.
603 A slightly modified version of the Berkeley tmac.doc is included.
605 Troff
606 -----
608 In long escape names the closing ] is now required to be at the same
609 input level as the opening [.
611 The \A'S' escape sequence returns 1 or 0 according as S is or is not
612 suitable for use as a name.
614 \~ produces an unbreakable space that can be stretched when the line
615 is adjusted.
617 The `mso' request is like the `so' request except that it searches for
618 the file in the same directories in which tmac.X is searched for when
619 the -mX option is given.
621 The escape sequence `\R' is similar to the `nr' request.
626 A new `special' primitive allows you to add new types of unary
627 constructs by writing a troff macro.
632 The implementation no longer uses gperf.
634 Grops
635 -----
637 The compile-time -DBROKEN_SPOOLER option has been replaced by a
638 BROKEN_SPOOLER_FLAGS option.  This allows more precise control over
639 how grops should workaround broken spoolers and previewers.  There is
640 a new -b option that can change this at run-time.
642 Grops now generates PostScript that complies with version 3.0 of the
643 Document Structuring Convention.
645 The resource management component of grops (the part that deals with
646 imported documents and downloadable fonts) has been rewritten and now
647 supports version 3.0 of the Document Structuring Conventions.  The
648 %%DocumentFonts comment is no longer supported; you must use the
649 %%Document{Needed,Supplied}{Fonts,Resources} comments instead
650 (or as well.)
652 tmac.psatk contains some macros that support the mechanism used by the
653 Andrew Toolkit for including PostScript graphics in troff documents.
655 Xditview
656 --------
658 Parts of xditview have been rewritten so that it can be used with the
659 output of gtroff -Tps.  groff -TXps will run gtroff -Tps with
660 gxditview.
662 There is a new menu entry `Print' which brings up a dialog box for
663 specifying a command with which the file being previewed should be
664 printed.
666 Xditview now uses imake.
668 VERSION 1.01
669 ============
671 The groff command now understands the gtroff `-a' and `-i' options.
673 With the `m' and `n' scale indicators, the scale factor is rounded
674 horizontally before being applied.  This makes (almost) no difference
675 for devices with `hor' equal to 1, but it makes groff with -Tascii or
676 -Tlatin1 behave more like nroff in its treatment of these scale
677 indicators.  Accordingly tmac.tty now calls the `nroff' request so
678 that the `n' condition will be true.
680 The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
681 have been made to work at least somewhat with -C.  In particular the
682 special characters defined by these macros now work with -C.
684 groff -Tdvi -p will now pass pic the -x flag; this will enable filling
685 of arrowheads and boxes, provided that your dvi driver supports the
686 latest version of the tpic specials.
691 There is a new `-N' option that tells eqn not to allow newlines in
692 delimiters.  This allows eqn to recover better from missing closing
693 delimiters.  The groff command will pass on a `-N' option to eqn.
695 Grops
696 -----
698 You can now use psfig with grops.  See the file ps/psfig.diff.  I do
699 not recommend using psfig for new documents.
701 The command \X'ps: file F' is similar to \X'ps: exec ...' except that
702 the PostScript code is read from the file F instead of being contained
703 within the \X command.  This was added to support psfig.
705 Grodvi
706 ------
708 There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
710 Macros
711 ------
713 The groff -me macros now work with the -C option.  As a result, they
714 may also work with Unix nroff/troff.
716 In -me, the $r and $R number registers now contain the line spacing as
717 a percentage of the pointsize expressed in units (normally about 120).
718 The previous definition was useless with low resolution devices such
719 as X75 and X100.
721 VERSION 1.00
722 ============
724 A -ms-like macro-package is now included.
726 The name for the Icelandic lowercase eth character has been changed
727 from \(-d to \(Sd.
729 Troff
730 -----
732 There is a new request `nroff', which makes the `n' built-in condition
733 true and the `t' built-in condition false; also a new request `troff'
734 which undoes the effect of the `nroff' request.  This is intended only
735 for backward compatibility: it is usually better to test \n(.H or
736 \n(.V or to use the `c' built-in condition.
738 The \R escape sequence has been deleted.  Use \E instead.
740 There are `break' and `continue' requests for use with the `while'
741 request.
743 There is a request `hym' that can ensure that when the current
744 adjustment mode is not `b' a line will not be hyphenated if it is no
745 more than a given amount short, and a request `hys' that can ensure
746 that when the current adjustment mode is `b' a line will not be
747 hyphenated if it can be justified by adding no more than a given
748 amount of extra space to each word space.
750 There is a request `rj' similar to `ce' that right justifies lines.
752 A warning of type `space' will be given when a call is made to an
753 undefined request or macro with a name longer than two characters, and
754 the first two characters of the name make a name that is defined.
755 This is intended to find places where a space has been omitted been a
756 request or macro and its argument.  This type of warning is enabled by
757 default.
762 A comma is permitted between the arguments to the `reset' command.
764 For use with TeX, there is a new `-c' option that makes gpic treat
765 lines beginning with `.' in a way that is more compatible with tpic
766 (but ugly).
771 It is no longer necessary to add `space 0' at the beginning of
772 complicated equations inside pictures.
774 `prime' is now treated as an ordinary character, as in Unix eqn.  The
775 previous behaviour of `prime' as an operator can now be obtained using
776 `opprime'.
778 Xditview
779 --------
781 There are two new devices X75-12 and X100-12 which are the same as X75
782 and X100 except that they are optimized for documents that use mostly
783 12 point text.
785 VERSION 0.6
786 ===========
788 The installation process has been refined to make it easy for you to
789 share groff with someone who has the same type of machine as you but
790 does not have a C++ compiler.  See the end of the INSTALL file for
791 details.
793 There is a man page for the tfmtodit program which explains how to use
794 your own fonts with groff -Tdvi.
796 There is a man page for afmtodit which explains how to use your own
797 PostScript fonts with groff -Tps.
799 The \N escape sequence is now fully supported.  It can now be used to
800 access any character in a font by its output code, even if it doesn't
801 have a groff name.  This is made possible by a convention in the font
802 files that a character name of `---' refers to an unnamed character.
803 The drivers now all support the `N' command required for this.  The font
804 description files have been updated to include unnamed characters.
806 The `x' command in font description files has been removed: instead
807 any unknown commands are automatically made available to the drivers.
808 If you constructed your own font files with an earlier version of
809 tfmtodit or afmtodit, you must construct them again using the current
810 version.
812 Characters between 0200 and 0237 octal are no longer legal input
813 characters.  Note that these are not used in ISO 8859.
815 A command called `grog' has been added, similar to the `doctype'
816 command described in Kernighan and Pike.
818 Groff
819 -----
821 The groff command has some new options: -V prints the pipeline
822 instead of executing it; -P passes an argument to the postprocessor,
823 -L passes an argument to the spooler.
825 There is a C++ implementation of the groff command.  This handles some
826 things slightly better than the shell script.  In particular, it can
827 correctly handle arguments containing characters that have a special
828 meaning to the shell; it can give an error message when child
829 processes other than the last in the pipeline terminate abnormally;
830 its exit status can take account of the exit statuses of all its child
831 processes; it is a little more efficient; when geqn is used, it
832 searches for the eqnchar file in the same way that font metric files
833 are searched for, rather than expecting to find it in one particular
834 directory.
836 Gtroff
837 ------
839 There is font translation feature: For example, you can tell gtroff to
840 use font `HR' whenever font `H' is requested with the line
841   .ftr H HR
842 This would be useful for a document that uses `H' to refer to
843 Helvetica.
845 There are some new number registers: `.kern' contains the current kern
846 mode, `.lg' the current ligature mode, `.x' the major version number,
847 `.y' the minor version number, `.ce' the number of lines to be
848 centered in the current environment, `.trunc' the amount of vertical
849 space truncated by the most recently sprung vertical position trap,
850 `.ne' the amount of vertical space needed in the last `ne' request
851 that caused a vertical position trap to be sprung.
853 The `cf' request now behaves sensibly in a diversion.  If used in a
854 diversion, it will now arrange for the file to be copied to the output
855 when the diversion is reread.
857 There is a new request `trf' (transparent file) similar to `cf', but
858 more like `\!'.
860 There is a new escape sequence `\Y[xxx]', roughly equivalent to
861 `\X'\*[xxx]'', except that the contents of string or macro xxx are not
862 interpreted, and xxx may contain newlines.  This requires an output
863 format extension; the drivers have been modified to understand this.
864 Grops has also been modified to cope with newlines in the arguments to
865 \X commands; grops has a new \X command mdef, which is like def except
866 that it has a first argument giving the number of definitions.
868 There is a new warning category `escape' which warns about unknown
869 escape sequences.
871 The `fp' request now takes an optional third argument giving the external
872 name of the font.
874 The `\_' character is now automatically translated to `\(ul' as in troff.
876 The environment variable `GROFF_HYPHEN' gives the name of the file
877 containing the hyphenation patterns.
879 There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
881 Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
882 of end of sentence recognition.
884 There is an anti-recursion feature in the `char' request, so you can
885 say `.char \(bu \s+2\(bu\s-2'.
887 The limit on the number of font positions has been removed.
888 Accordingly `\n[.fp]' never returns 0.
890 The restriction on the number of numbered environments has been removed.
892 There is a new escape sequence `\E' that makes it possible to
893 guarantee that an escape sequence won't get interpreted in copy-mode.
894 The `\R' escape sequence is accordingly now deprecated.
896 Gpic
897 ----
899 Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
900 `if' and `define' constructs) can now be of the form `{ anything }'.
902 If the `linethick' variable is negative (as it now is initially),
903 lines will be drawn with a thickness proportional to the current point
904 size.
906 The `rand' function now takes no arguments and returns a number between
907 0 and 1.  The old syntax is still supported.
909 `^' can be used in expressions to indicate exponentiation.
911 In the `for' construct the argument to the by clause can be prefixed
912 by `*' to indicate that the increment is multiplicative.
914 A bare expression may be used as an attribute.  If the current
915 direction is `dir', then an attribute `expr' is equivalent to
916 `dir expr'
918 There is a `sprintf' construct that allows numbers to be formatted and used
919 wherever a quoted string can be used.
921 The height of a text object without an explicit height attribute is
922 the number of text strings associated with the object times the value
923 of the `textht' variable.
925 The maximum height and width of a picture is controlled by the
926 `maxpswid' and `maxpsht' variables.
928 Gtbl
929 ----
931 Gtbl can now handle gracefully the situation where the `ce' request
932 has been applied to a table.
934 Geqn
935 ----
937 The `ifdef' primitive has been generalized.
939 A tilde accent can be put underneath a box using `utilde'.  This
940 defined using a general `uaccent' primitive.
942 Grops
943 -----
945 There is a new PostScript font downloading scheme which handles font
946 downloading for imported illustrations.  Previously, the name of the
947 file containing the font was given in the `x download' line in the
948 groff font metric file.  Now, there is a `download' file which says
949 for each PostScript font name which file contains that font.  Grops
950 can also now handle inter-font dependencies, where one downloadable
951 font depends on some other (possibly downloadable) font.
953 The `T' font has been removed.  The characters it used to provide are
954 now provided by `char' definitions in tmac.ps. TSymbol.ps has also
955 been removed, and the tweaks it provided are now provided by `char'
956 definitions.