NEWS revision 79543
179543SruThis file describes recent user-visible changes in groff.  Bug fixes are not
279543Srudescribed.  There are more details in the man pages.
318099Spst
479543SruVERSION 1.17.2
579543Sru==============
679543Sru
779543SruThis is major bug-fixing release which should replace 1.17.1.
879543Sru
979543SruTroff
1079543Sru-----
1179543Sru
1279543Sruo The `IMAGE' macro in www.tmac has changed: Now the optional 2nd parameter
1379543Sru  gives the horizontal image location (left, centered, or right), and the
1479543Sru  optional 3rd and 4th parameter the image dimensions.
1579543Sru
1679543SruVERSION 1.17.1
1779543Sru==============
1879543Sru
1979543SruThis is mainly a bug-fixing release.
2079543Sru
2179543SruTroff
2279543Sru-----
2379543Sru
2479543Sruo Two new requests `de1' and `am1' which are similar to `de' and `am' but
2579543Sru  with compatibility mode disabled during expansion of macros defined by
2679543Sru  them.
2779543Sru
2879543Sruo Added request `brp'.  This is the same as `\p'.
2979543Sru
3079543Sruo Similar to other versions of troff, `.ns' now works in all diversions,
3179543Sru  not only in the top-level one.
3279543Sru
3379543Sruo New read-only number register `.ns'.  Returns 1 if in no-space mode,
3479543Sru  0 otherwise.
3579543Sru
3679543SruNroff
3779543Sru-----
3879543Sru
3979543Sruo Options -p (pic) and -t (tbl) added.
4079543Sru
4179543Sruo The environment variable GROFF_BIN_PATH is now checked before PATH for
4279543Sru  finding groff.
4379543Sru
4479543SruGrohtml
4579543Sru-------
4679543Sru
4779543Sruo New option `-D dir' to specify a directory in which all images are placed.
4879543Sru
4979543Sruo New option `-I stem' to specify an image name stame.  If not given,
5079543Sru  `grohtml-XXX' is used (`XXX' is the process ID).
5179543Sru
5279543SruVERSION 1.17
5379543Sru============
5479543Sru
5575584SruGroff
5675584Sru-----
5775584Sru
5879543Sruo `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'.  The
5975584Sru  old behaviour has been changed to overcome problems with platforms which
6075584Sru  have an 8+3 file name limit, and platforms which have other versions of
6175584Sru  troff installed also. Additionally, all macro files have been renamed
6275584Sru  using the latter scheme to avoid 8+3 name clashes.
6375584Sru
6479543Sruo The new environment variable GROFF_BIN_PATH is checked for programs groff
6579543Sru  is calling (preprocessors, troff, and output devices) before PATH.  If not
6679543Sru  set, it defaults to the directory where the groff binary is located. 
6779543Sru  Previously, it was PATH only.  The nroff script only uses GROFF_BIN_PATH
6879543Sru  to find the groff binary but passes both the GROFF_BIN_PATH and PATH
6979543Sru  environment variable to groff.
7075584Sru
7175584SruTroff
7275584Sru-----
7375584Sru
7475584Sruo The mdoc package has been completely rewritten, using the full power of
7575584Sru  GNU troff to remove limitations of Unix troff (which is no longer
7675584Sru  supported).  Most important changes are:
7775584Sru
7875584Sru  . No argument limit.
7975584Sru  . Almost all macros are parsed and callable (if it makes sense).
8075584Sru  . `.Lb': prints library names
8175584Sru  . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>' has
8275584Sru    been withdrawn.
8375584Sru  . Updated `.St' command
8475584Sru  . `.Fx': prints FreeBSD
8575584Sru  . `.Ox': prints OpenBSD
8675584Sru  . `.Bsx': prints BSD/OS
8775584Sru  . `.Brq', `.Bro', `.Brc': brace enclosure macros
8875584Sru  . `.Bd -centered': center lines
8975584Sru  . `.Bl -xwidth <string>': interpret <string> and use the resulting width
9075584Sru  . support for double-sided printing (-rD1 command line switch)
9175584Sru  . support for 11pt and 12pt document sizes (-rS11, -rS12 command line
9275584Sru    switches)
9375584Sru
9475584Sru  `groff_mdoc.man' replaces `groff_mdoc.samples.man'; it now completely
9575584Sru  documents the mdoc package.
9675584Sru
9775584Sru  Great care has been taken to assure backwards compatibility.  If you
9875584Sru  encounter any abnormal results, please report them to bug-groff@gnu.org.
9975584Sru
10075584Sruo A new command line option for the `man' macros (similar to the `mdoc'
10179543Sru  package has been implemented: `-rcR=1' (now the default in nroff mode)
10279543Sru  produces one single, very long page instead of multiple pages.  `-rcR=0'
10379543Sru  deactivates it.
10475584Sru
10575584Sruo The `return' request has been added to return immediately from a macro.
10675584Sru
10775584Sruo A new request `nop' (no operation) has been added which is similar to
10875584Sru  `if 1'.  For example,
10975584Sru
11075584Sru    .if t \{\
11175584Sru    Hallo!
11275584Sru    .\}
11375584Sru
11475584Sru  can now be written as
11575584Sru
11675584Sru    .if t \{\
11775584Sru    .  nop Hallo!
11875584Sru    .\}
11975584Sru
12075584Sruo `box' and `boxa' are two new requests which behave similarly to `di' and
12175584Sru  `da' but don't include a partially filled line (which is restored after
12275584Sru  ending the diversion).
12375584Sru
12475584Sruo The `asciify' request has been extended to `unformat' space characters
12575584Sru  and some other escape sequences also.
12675584Sru
12779543Sru  `\ ' is no longer unformatted as a space but remains an unpaddable,
12875584Sru  unbreakable space character.
12975584Sru
13075584Sruo The new `unformat' request is similar to `asciify' but only handles space
13175584Sru  characters and tabs specially if the diversion is reread, retaining font
13275584Sru  information.  This makes it possible to reformat diversions; for example
13375584Sru  the following
13475584Sru
13575584Sru    .ll 3i
13675584Sru    .
13775584Sru    a01 a02 a03 a04 a05 a06 a07 a08 a09 a10.
13875584Sru    .
13975584Sru    .box box1
14075584Sru    .ev 1
14175584Sru    .nf
14275584Sru    \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P]
14375584Sru    .br
14475584Sru    .ev
14575584Sru    .box
14675584Sru    .
14775584Sru    c01 c02 c03 c04 c05 c06 c07 c08 c09 c10.
14875584Sru    .
14975584Sru    .unformat box1
15075584Sru    .box1
15175584Sru
15275584Sru  gives
15375584Sru
15475584Sru    a01  a02  a03  a04 a05 a06 a07
15575584Sru    a08 a09 a10.  c01 c02 c03  c04
15675584Sru    c05  c06 c07 c08 c09 c10.  b01
15775584Sru    b02 b03 b04 b05  b06  b07  b08
15875584Sru    b09 b10.
15975584Sru
16075584Sru  Without the `unformat' request, space characters are converted to word
16175584Sru  space nodes which are no longer stretchable, and the result would be
16275584Sru
16375584Sru    a01  a02  a03  a04 a05 a06 a07
16475584Sru    a08 a09 a10.  c01 c02 c03  c04
16575584Sru    c05  c06 c07 c08 c09 c10.  b01
16675584Sru    b02 b03 b04 b05 b06 b07 b08
16775584Sru    b09 b10.
16875584Sru
16975584Sruo The new request `linetabs' controls the `line-tabs' mode.  In line-tabs
17075584Sru  mode, tab distances are computed relative to the (current) output line.
17175584Sru  Otherwise they are taken relative to the input line.  For example, the
17275584Sru  following
17375584Sru
17475584Sru    .ds x a\t\c
17575584Sru    .ds y b\t\c
17675584Sru    .ds z c
17775584Sru    .ta 1i 3i
17875584Sru    \*x
17975584Sru    \*y
18075584Sru    \*z
18175584Sru
18275584Sru  yields
18375584Sru
18475584Sru    a         b         c
18575584Sru
18675584Sru  In line-tabs mode, the same code gives
18775584Sru
18875584Sru    a         b                   c
18975584Sru
19075584Sru  The new read-only number register `.linetabs' returns 1 if in line-tabs
19175584Sru  mode, and 0 otherwise.
19275584Sru
19375584Sruo Two new requests `tm1' and `tmc' have been added to improve writing
19475584Sru  messages to the terminal.  `tm1' is similar to `tm' but allows leading
19575584Sru  whitespace.  `tmc' is similar to `tm1' but doesn't emit a final newline.
19675584Sru
19775584Sruo A new request `dei' (define indirect) has been added.  The first and
19875584Sru  second parameter of `dei' are taken from string registers rather than
19975584Sru  directly; this very special request is needed to make `trace.tmac'
20075584Sru  independent from the escape character (which might even be disabled).
20175584Sru
20275584Sruo It is now possible to save and restore the escape character with two new
20375584Sru  requests `ecs' and `ecr'.
20475584Sru
20575584Sruo The new escape sequence \B'...' is an analogon to `\A': If the string
20675584Sru  within the delimiters is a valid numeric expression, return character `1',
20775584Sru  and `0' otherwise.
20875584Sru
20975584Sruo The new escape sequence `\:' inserts a zero-width break point.  This is
21075584Sru  similar to `\%' but without a soft hyphen character.
21175584Sru
21275584Sruo The `tr' request can now map characters onto `\~'.
21375584Sru
21475584Sruo Calling the `fam' request without an argument switches back to the
21575584Sru  previous font family.
21675584Sru
21775584Sruo The new read-only register `.int' is set to a positive value if the last
21879543Sru  output line is interrupted (i.e., if the input line contains `\c').
21975584Sru
22075584Sruo The `writem' request is not new, but hasn't been documented before.  This
22175584Sru  is similar to `write' but instead of a string the contents of a given
22275584Sru  macro or string is written to a stream.
22375584Sru
22475584Sruo The read/write number register `hp' to get/set the current horizontal
22575584Sru  position relative to the input line isn't new but hasn't been documented
22675584Sru  properly before.
22775584Sru
22879543Sruo `\X' and `\Y' are now transparent for end-of-sentence recognition.
22975584Sru
23079543Sruo The `cu' request in nroff mode now works as documented (i.e., it
23179543Sru  underlines spaces also).
23275584Sru
23375584SruGrog
23475584Sru----
23575584Sru
23679543Sruo The grog script now works in non-compatibility mode also (which is the
23775584Sru  default).  As usual, use the `-C' option to activate compatibility mode.
23875584Sru
23975584SruGrops
24075584Sru-----
24175584Sru
24275584SruA new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has been
24375584Sruadded to select a different prologue file.
24475584Sru
24575584SruThe effect of the former `-mpsnew' option to access more Type 1 characters
24675584Sruis now the default and no longer available.  To get the old behaviour (i.e.,
24775584Sruemulation of some glyphs by composition) use `-mpsold'.
24875584Sru
24975584SruMiscellaneous
25075584Sru-------------
25175584Sru
25275584Sruo For security reasons the following changes have been done:
25375584Sru
25475584Sru  . The tmac.safer file has been replaced with a built-in solution; .open,
25575584Sru    .opena, .pso, .sy, and .pi are completely disabled in safer mode (which
25675584Sru    is the default); to enable these requests the `-U' command line flag
25775584Sru    must be used.
25875584Sru
25975584Sru  . Files specified with the .mso request or given with the `-m' command
26075584Sru    line option, and hyphenation patterns loaded with `.hpf' are no longer
26175584Sru    searched in the current directory by default (besides the usual tmac
26275584Sru    path). Instead, the home directory is used. To add the current
26375584Sru    directory, either use the `-U' or `-M' command line option or set the
26475584Sru    GROFF_TMAC_PATH environment variable to an appropriate value.
26575584Sru
26675584Sru  . troffrc, troffrc-end, and eqnrc are neither searched in the current nor
26775584Sru    in the home directory (even if -U is given).  Use -M or GROFF_TMAC_PATH
26875584Sru    to change that.
26975584Sru
27075584Sru  . Similarly, the current directory is no longer part of the font path.
27175584Sru    Use the `-F' command line option or the GROFF_FONT_PATH environment
27275584Sru    variable if you really need the current directory.
27375584Sru
27479543Sruo groff now installs its data files into /usr/local/share/groff/<version> by
27579543Sru  default, following the GNU standard.  Additionally, a local tmac directory
27679543Sru  (by default /usr/local/share/groff/site-tmac) is scanned before the
27779543Sru  standard tmac directory.  Wrapper files for system-specific macro packages
27879543Sru  (if necessary) are put into /usr/local/lib/groff/site-tmac; this directory
27979543Sru  is searched before the local tmac directory.
28075584Sru
28179543Sruo All programs now have option `-v' to show the version number; they exit
28279543Sru  immediately afterwards, following the GNU standards.  Additionally,
28375584Sru  `--version' and `--help' have been added, doing the obvious actions.
28475584Sru
28569626SruVERSION 1.16.1
28669626Sru==============
28769626Sru
28869626SruBug fixes only; no user-visible changes.
28969626Sru
29069626SruVERSION 1.16
29169626Sru============
29269626Sru
29369626SruGroff
29469626Sru-----
29569626Sru
29669626SruThe anachronism of calling the man macro package with `-man' has been fixed;
29769626Srunow you can say `-m man' also. The same is true for `ms', `me', `markup',
29869626Sru`mandoc', and `mdoc'.
29969626Sru
30069626SruA new switch `-g' for calling `grn' is available.
30169626Sru
30269626SruA new switch `-G' for calling `grap' is available.
30369626Sru
30469626SruEBCDIC support for tty devices has been added.  On such hosts, IBM code page
30569626Sru1047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for
30669626Sruthe moment, -Tutf8).  Note that non-tty devices are not yet supported (but
30769626Sruinstalled).
30869626Sru
30969626SruTroff
31069626Sru-----
31169626Sru
31269626SruA new command line option to the `man' macros is available: `-rSxx' (with
31369626Sru`xx' either 10, 11, or 12) to set the base document font size to `xx'
31469626Srupoints.  Additionally, `.SH' now produces larger headings than `.SS'.
31569626Sru
31669626SruTo solve a problem with the .PSPIC macro which needs the `-U' switch of
31769626Srutroff to access an external program (psbb), a new request .psbb is now
31869626Sruavailable to get the bounding box of a PostScript image file.  The values
31969626Sru(in PostScript units) are returned in the new read-only number registers
32069626Sru`llx', `lly', `urx', and `ury'.  Consequently, .PSPIC has been adapted to
32169626Sruuse the new request, and the psbb program has been removed.
32269626Sru
32369626SruA new predefined writable number register, `year', has been added.  It
32469626Srucontains the current year.
32569626Sru
32669626SruA new read-only register, `.Y', has been added.  It contains the revision
32769626Srunumber of the groff package.
32869626Sru
32969626Sru`\fP' now behaves as expected in situations like the following where the
33069626Srufont `foo' is undefined:
33169626Sru
33269626Sru  .B bold text
33369626Sru  normal text \f[foo]bar\fP normal text
33469626Sru
33569626SruPreviously, the text after \fP appeared as bold.
33669626Sru
33769626SruThe `substring' request is not new, but hasn't been documented before.
33869626Sru
33969626SruThe predefined `.T' string register (which holds the current output device)
34069626Sruis not new, but hasn't been documented before.
34169626Sru
34269626SruA new request `length' computes the length of a string and returns it in
34369626Srua number register.
34469626Sru
34569626SruThe macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
34669626Sru(a debugging aid) are now installed also.
34769626Sru
34869626SruA new resource file, `troffrc-end', is now available.  It is invoked after
34969626Sruall user-specified macros.  Currently used by the html device to include
35069626Srutmac.html; thus no need for users to specify -mhtml anymore.
35169626Sru
35269626SruThe soft hyphen character now has a glyph name: `shc'.
35369626Sru
35469626SruThe latin-1 character 173 (PS name `periodcentered') has got the troff glyph
35569626Sruname `pc' and is no longer intermixed with the symbol character `md' (PS
35669626Sruname `mathdot').
35769626Sru
35869626SruASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq'
35969626Sru(which is an alias to character `"').
36069626Sru
36169626SruASCII character 39 (PS name `quoteright') has got the troff glyph name `cq'
36269626Sru(which is an alias to character "'").
36369626Sru
36469626SruSome additions to the font description files have been implemented for
36569626Srubetter support of HTML output:
36669626Sru
36769626Sru  The new format of lines in the `charset' subsection of font description
36869626Sru  files is
36969626Sru
37069626Sru     name metrics type code [entity_name] [-- comment]
37169626Sru
37269626Sru  Currently, only the font description files in devhtml use the optional
37369626Sru  entity_name string to define glyph entities in HTML.  Everything after the
37469626Sru  entity_name field is ignored; in case this field isn't used, two hyphen
37569626Sru  characters are now necessary to start a comment.
37669626Sru
37769626Sru  Two new requests are available in DESC files (currently used only with
37869626Sru  grohtml):
37969626Sru
38069626Sru    use_charnames_in_special
38169626Sru      This command indicates that troff should encode named characters
38269626Sru      inside special commands.
38369626Sru
38469626Sru    pass_filenames
38569626Sru      requests that troff tells the driver the source file name being
38669626Sru      processed.  This is achieved by another tcommand: `F filename'.
38769626Sru
38869626SruGrotty
38969626Sru------
39069626Sru
39169626SruBruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
39269626Sru
39369626SruGrohtml
39469626Sru-------
39569626Sru
39669626SruAdded .LINE macro to tmac.arkup.
39769626Sru
39869626SruThe obsolete `.LINK' macro has been removed.
39969626Sru
40069626Sru.URL, .FTP, and .MAILTO macros now accept an optional third argument which
40169626Sruwill be immediately appended to the second argument (to be used with
40269626Srupunctuation, for example).
40369626Sru
40469626SruGrodvi
40569626Sru------
40669626Sru
40769626SruThe font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
40869626Sru
40969626SruA new font file CWI (using cmitt10; this is typewriter italic) has been
41069626Sruadded.
41169626Sru
41269626SruGrolbp
41369626Sru------
41469626Sru
41569626SruA new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser
41669626Sruprinters).  This code has been contributed by Francisco Andres Verdu
41769626Sru<pandres@dragonet.es>.
41869626Sru
41969626SruGrn
42069626Sru---
42169626Sru
42269626SruA new preprocessor to process gremlin pictures.  It is based on the
42369626Sruoriginal Berkeley implementation of grn, written by David Slattengren
42469626Sruand Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
42569626Sru<daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
42669626Sru
42769626SruPic
42869626Sru---
42969626Sru
43069626SruAdded the `srand' command to set the seed for a new sequence of
43169626Srupseudo-random numbers to be returned by `rand'.
43269626Sru
43369626SruGxditview
43469626Sru---------
43569626Sru
43669626SruSimplified installation: The Imakefile will now be configured (by groff's
43769626Sruconfigure script).
43869626Sru
43969626SruDocumentation
44069626Sru-------------
44169626Sru
44269626SruThree new man pages are available: groff_tmac.5 (documenting how troff macros
44369626Sruare accessed and where they are found), groff.7 (a short reference of the GNU
44469626Sruroff language), and roff.7 (a general survey on GNU troff).
44569626Sru
44669626SruMiscellaneous
44769626Sru-------------
44869626Sru
44969626SruA port to win32 (for use with Microsoft Visual C++ 6.0) is now part of the
45069626Srudistribution.  It has been contributed by Blake McBride
45169626Sru<blake@florida-software.com>.
45269626Sru
45369626SruMore information about programs, macros, documentation, etc., which is
45469626Srurelated to groff has been collected in the file `MORE.STUFF'.
45569626Sru
45655839SasmodaiVERSION 1.13, 1.14, 1.15
45755839Sasmodai========================
45855839Sasmodai
45955839SasmodaiBug fixes only; no user-visible changes.
46055839Sasmodai
46155839SasmodaiVERSION 1.12
46244777Sobrien============
46344777Sobrien
46455839SasmodaiFinally, there are new maintainers for groff.  Mailing lists and a CVS
46555839Sasmodairepository are available also.  See the file README for details.  Not
46655839Sasmodaiall reported bug could be fixed, so please send mails again if
46755839Sasmodaisomething is still not working.
46844777Sobrien
46955839SasmodaiMost of the installation problems should have vanished now (most
47055839Sasmodainotably the $(tmac_wrap) bug).
47144777Sobrien
47255839SasmodaiThere is now a man page called groff_man.man which documents the
47355839Sasmodaibasics of the -man macros.  It has been originally written by Susan
47455839SasmodaiG. Kleinmann <sgk@debian.org>.
47555839Sasmodai
47655839SasmodaiA (still incomplete) groff reference manual in texinfo format
47755839Sasmodaioriginally contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
47855839Sasmodai
47955839Sasmodaime.man and msafer.man have been renamed to groff_me.man
48055839Sasmodairesp. groff_msafer.man for consistency.
48155839Sasmodai
48255839SasmodaiDefault strings for macros in doc-common resp. tmac.an no longer
48355839Sasmodaicontain the word `UNIX'.
48455839Sasmodai
48555839Sasmodaigroff should now be Y2k safe (fixes contributed by Paul Eggert
48655839Sasmodai<eggert@twinsun.com>).
48755839Sasmodai
48855839SasmodaiFollowing the GNU standards, groff will now use the prefix
48955839Sasmodai`/usr/local/' as the default instead of replacing an existent groff
49055839Sasmodaibinary.
49155839Sasmodai
49255839Sasmodaigroff, troff, nroff, and pic now support the -U flag to activate unsafe
49355839Sasmodaibehaviour (without -msafer); the -S flag for using the -msafer macros
49455839Sasmodaiis now the default.
49555839Sasmodai
49655839SasmodaiGrohtml
49755839Sasmodai-------
49855839Sasmodai
49955839SasmodaiThis is a new output device for producing HTML output contributed by
50055839SasmodaiGaius Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been
50155839Sasmodaiincluded into the distribution so that a lot of people have a chance
50255839Sasmodaito test it.  Bug reports are highly welcome.
50355839Sasmodai
50455839SasmodaiGrolj4
50555839Sasmodai------
50655839Sasmodai
50755839SasmodaiDuplex printing support has been contributed by Jeffrey Copeland
50855839Sasmodai<jeff@opennt.com>.
50955839Sasmodai
51055839SasmodaiSoelim
51155839Sasmodai------
51255839Sasmodai
51355839SasmodaiAdded -I option for defining include paths (patch contributed by Peter
51455839SasmodaiMiller <peterm@jna.com.au>).
51555839Sasmodai
51655839SasmodaiGxditview
51755839Sasmodai---------
51855839Sasmodai
51955839SasmodaiFallback resources added (patch contributed by Larry Jones
52055839Sasmodai<larry.jones@sdrc.com>).
52155839Sasmodai
52255839SasmodaiWill now support 8 gray levels.
52355839Sasmodai
52455839Sasmodaimm
52555839Sasmodai--
52655839Sasmodai
52755839SasmodaiNew version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
52855839Sasmodai
52955839SasmodaiVERSION 1.11
53055839Sasmodai============
53155839Sasmodai
53244777SobrienComplete documentation for pic is now in the file doc/pic.ms.  It was
53344777Sobriencontributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
53444777Sobrien*not* volunteering to take over groff as he is way overworked with
53544777Sobrienhalf a dozen other projects.
53644777Sobrien
53718099SpstVERSION 1.10
53818099Spst============
53918099Spst
54018099SpstThe directory where data files are installed has been changed from
54118099Spst/usr/local/lib/groff to /usr/local/share/groff to comply with the
54218099Spstlatest GNU coding standards.
54318099Spst
54418099SpstBy default groff programs with Unix equivalents are installed with a
54518099Spst"g" prefix unless there is an existing (non-groff) troff installation.
54618099Spst
54718099SpstA new approach is used to make system macro packages available to
54818099Spstgroff.  Instead of simply including /usr/lib/tmac in the list of
54918099Spstdirectories searched by groff, the installation process creates for
55018099Spsteach system macro package a wrapper macro package in the groff macro
55118099Spstdirectory that references the system macro package.  The groff macro
55218099Spstpackages are now installed with a leading "g" prefix if there is a
55318099Spstsystem version of the same macro package, and otherwise without the
55418099Spst"g" prefix, with the exception that the groff version of -me which is
55518099Spstalways installed as -me.
55618099Spst
55718099SpstThere is a new device, lj4, for the HP LaserJet 4 (and PCL5
55818099Spstcompatibles).
55918099Spst
56018099SpstGroff
56118099Spst-----
56218099Spst
56318099Spstgroff has a -S option that prevents the use of unsafe features in pic
56418099Spstand troff.  This uses a new -S option of pic and the -msafer macros
56518099Spstfor troff.
56618099Spst
56718099SpstTroff
56818099Spst-----
56918099Spst
57018099SpstThe `blm' request specifies a macro to be invoked when a blank line is
57118099Spstencountered.
57218099Spst
57318099SpstPic
57418099Spst---
57518099Spst
57618099SpstA -S (safer) option disables the sh command.
57718099Spst
57818099SpstGrops
57918099Spst-----
58018099Spst
58118099SpstThe -m option enables manual feed.
58218099Spst
58318099SpstVERSION 1.09
58418099Spst============
58518099Spst
58618099Spst\(rn will now produce a character that has the traditional metrics,
58718099Spstand will form corners with \(ul and \(br.  This means that it will not
58818099Spstalign properly with \(sr.  Instead there's a new character
58918099Spst\[radicalex] which aligns with \(sr; this is used by eqn for doing
59018099Spstsquare roots.
59118099Spst
59218099SpstTroff
59318099Spst-----
59418099Spst
59518099SpstThe `pso' request allows you to read from the standard output of a
59618099Spstcommand.
59718099Spst
59818099SpstGrops
59918099Spst-----
60018099Spst
60118099SpstThe PSPIC macro has options to allow the horizontal alignment of the
60218099Spstgraphic to be specified.
60318099Spst
60418099SpstVERSION 1.08
60518099Spst============
60618099Spst
60718099SpstTroff
60818099Spst-----
60918099Spst
61018099SpstThe escape sequence \V[xxx] will interpolate the value of the
61118099Spstenvironment variable xxx.
61218099Spst
61318099SpstTbl
61418099Spst---
61518099Spst
61618099SpstThe decimalpoint option can be used to specify the character to be
61718099Spstrecognized as the decimal point character in place of the default
61818099Spstperiod.
61918099Spst
62018099SpstVERSION 1.07
62118099Spst============
62218099Spst
62318099SpstGroff
62418099Spst-----
62518099Spst
62618099SpstThe environment variable GROFF_COMMAND_PREFIX can be used to control
62718099Spstwhether groff looks for `gtroff' or `troff' (similarily for the
62818099Spstpreprocessors.)
62918099Spst
63018099SpstTroff
63118099Spst-----
63218099Spst
63318099SpstMultilingual hyphenation is supported by new `hpf' and `hla' requests,
63418099Spstand by a `\n[.hla]' number register.  The -H option has been removed.
63518099SpstFiles of hyphenation patterns can have comments.
63618099Spst
63718099SpstWhen a font cannot be found, troff gives a warning (of type `font',
63818099Spstenabled by default) instead of an error.
63918099Spst
64018099SpstThere's a new request `trnt' that's like `tr' except that it doesn't
64118099Spstapply to text transparently throughput into a diversion with \!.
64218099Spst
64318099SpstTbl
64418099Spst---
64518099Spst
64618099SpstThere is a `nokeep' option which tells tbl not to use diversions to
64718099Spsttry to keep the table on one page.
64818099Spst
64918099SpstEqn
65018099Spst---
65118099Spst
65218099SpstSetting the parameter `nroff' to a non-zero value causes `ndefine' to
65318099Spstbehave like `define' and `tdefine' to be ignored.  This is done by
65418099Spsteqnrc when the current device is ascii or latin1.  There's a `neqn'
65518099Spstscript that just does `eqn -Tascii'.
65618099Spst
65718099SpstGrotty
65818099Spst------
65918099Spst
66018099Spstgrotty uses whatever page length was specified using the `pl' request
66118099Spstrather than using the paperlength command in the DESC file.  The
66218099Spstpaperwidth command in the DESC file is also ignored.
66318099Spst
66418099SpstVERSION 1.06
66518099Spst============
66618099Spst
66718099SpstThe programs in groff that have Unix counterparts can now be installed
66818099Spstwithout a leading `g' prefix.  See the `g' variable in the Makefile.
66918099Spst
67018099SpstThe g?nroff script simulates the nroff command using groff.
67118099Spst
67218099SpstNew special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
67318099Spst\(an.  See groff_char(7).
67418099Spst
67518099Spst^L is now a legal input character.
67618099Spst
67718099SpstGroff
67818099Spst-----
67918099Spst
68018099SpstThe Xps pseudo-device has disappeared.  Instead there is a new -X
68118099Spstoption that tells groff to use gxditview instead of the usual
68218099Spstpostprocessor. (So instead of -TXps, use -XTps or just -X if your
68318099Spstdefault device is ps.)
68418099Spst
68518099SpstThe postprocessor to be used for a particular device is now specified
68618099Spstby a `postpro' command in the DESC file rather than being compiled
68718099Spstinto groff.  Similarly the command to be used for printing (with the
68818099Spst-l option) is now specified by a `print' command in the DESC file.
68918099Spst
69018099SpstThe groff command no longer specifies eqnchar as an input file for
69118099Spsteqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
69218099Spstcommand no longer passes the -D option to eqn.  Instead eqnrc sets the
69318099Spstdraw_lines parameter.
69418099Spst
69518099SpstThe groff command no longer tells troff to load a device-specific
69618099Spstmacro file.  This is handled instead by the `troffrc' file, which is
69718099Spstalways loaded by troff.
69818099Spst
69918099SpstThe shell script version of groff has been removed.
70018099Spst
70118099SpstTroff
70218099Spst-----
70318099Spst
70418099SpstThe `rchar' request removes a character definition established with `char'.
70518099Spst
70618099SpstCompatibility mode is disabled and the escape character is set to `\'
70718099Spstwhile a character definition is being processed.
70818099Spst
70918099SpstThe `\#' escape sequence is like `\"' except that the terminating
71018099Spstnewline is ignored.
71118099Spst
71218099SpstThe `shc' request tells troff which character to insert (instead of
71318099Spstthe default \(hy) when a word is hyphenated at a line break.
71418099Spst
71518099SpstA font name of 0 (zero) in the DESC file will cause no font to be
71618099Spstmounted on the corresponding font position.  This is useful for
71718099Spstarranging that special fonts are mounted on positions on which users
71818099Spstare not likely explicitly to mount fonts.  All groff devices now avoid
71918099Spstinitially mounting fonts on positions 5-9.
72018099Spst
72118099SpstThe `do' request allows a single request or macro to be interpreted
72218099Spstwith compatibility mode disabled.
72318099Spst
72418099Spsttroff automatically loads a file `troffrc' before any other input file.
72518099SpstThis can be prevented with the -R option.  This file is responsible
72618099Spstfor loading the device-specific macros.
72718099Spst
72818099SpstPic
72918099Spst---
73018099Spst
73118099SpstThe -x option has been removed and a -n option has been added.  By
73218099Spstdefault, pic now assumes that the postprocessor supports groff
73318099Spstextensions.  The -n option tells pic to generate output that works
73418099Spstwith ditroff drivers.  The -z option now applies only to TeX mode.
73518099Spst
73618099SpstThe -p option has been removed. Instead if the -n option is not
73718099Spstspecified, pic generates output that uses \X'ps: ...' if the \n(0p
73818099Spstregister is non-zero and tmac.ps sets this register to 1.
73918099Spst
74018099SpstIn places where you could 1st or 5th you can now say `i'th or `i+1'th
74118099Spst(the quotes are required).
74218099Spst
74318099SpstEqn
74418099Spst---
74518099Spst
74618099SpstEqn now automatically reads a file `eqnrc' from the macro directory.
74718099SpstThis performs the same role that the eqnchar files used to.  This can
74818099Spstbe prevented by the -R option.
74918099Spst
75018099SpstSetting the draw_lines parameter to a non-zero value causes lines to
75118099Spstbe drawn using \D rather than \l.  The -D option is now obsolete.
75218099Spst
75318099Spst`uparrow', `downarrow' and `updownarrow' can be used with `left' and
75418099Spst`right'.
75518099Spst
75618099SpstThe amount of extra space added before and after lines containing
75718099Spstequations can be controlled using the `body_height' and `body_depth'
75818099Spstparameters.
75918099Spst
76018099SpstGrops
76118099Spst-----
76218099Spst
76318099SpstFont description files have been regenerated from newer AFM files.
76418099SpstYou can get access to the additional characters present in the text
76518099Spstfonts in newer PostScript printers by using -mpsnew.
76618099Spst
76718099SpstThe default value of the -b option is specified by a `broken' command
76818099Spstin the DESC file.
76918099Spst
77018099SpstWith the -g option, grops will generate PostScript code that guesses
77118099Spstthe page height.  This allows documents to be printed on both letter
77218099Spst(8.5x11) and A4 paper without change.
77318099Spst
77418099SpstGrodvi
77518099Spst------
77618099Spst
77718099SpstISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
77818099Spstwith groff -Tdvi for more information.
77918099Spst
78018099SpstGrotty
78118099Spst------
78218099Spst
78318099SpstThe -mtty-char macros contain additional character definitions for
78418099Spstuse with grotty.
78518099Spst
78618099SpstMacros
78718099Spst------
78818099Spst
78918099SpstIn previous releases the groff -me macros treated the $r and $R number
79018099Spstregisters in a way that was incompatible with the BSD -me macros.  The
79118099Spstreason for this was that the approach used by the BSD -me macros does
79218099Spstnot work with low resolution devices such as -TX75 and -TX100.
79318099SpstHowever, this caused problems with existing -me documents.  In this
79418099Spstrelease, the vertical spacing is controlled by the $v and $V registers
79518099Spstwhich have the same meaning as $r and $R in earlier groff releases.
79618099SpstIn addition, if the $r or $R register is set to a value that would be
79718099Spstcorrect for for the BSD -me macros and a low resolution device is not
79818099Spstbeing used, then an appropriate value for the $v or $V register will
79918099Spstbe derived from the $r or $R register.
80018099Spst
80118099SpstThe groff -me macros work with -C and (I think) with Unix troff.
80218099Spst
80318099SpstFor backward compatibility with BSD -me, the \*{ and \*} strings are
80418099Spstalso available as \*[ and \*].  Of course, \*[ will only be usable
80518099Spstwith -C.
80618099Spst
80718099SpstThe \*T string has been deleted.  Use \*(Tm instead.
80818099Spst
80918099SpstXditview
81018099Spst--------
81118099Spst
81218099SpstThe `n', Space and Return keys are bound to the Next Page action.  The
81318099Spst`p', BackSpace and Delete keys are bound to the Previous Page action.
81418099SpstThe `q' key is bound to the Quit action.
81518099Spst
81618099SpstThe `r' key is bound to a rerasterize action that reruns groff, and
81718099Spstredisplays the current page.
81818099Spst
81918099SpstVERSION 1.05
82018099Spst============
82118099Spst
82218099SpstPic
82318099Spst---
82418099Spst
82518099SpstThere is a alternative assignment operator `:=' which interacts
82618099Spstdifferently with blocks.
82718099Spst
82818099SpstThere is a new command `command', which allows the values of variables
82918099Spstto be passed through to troff or TeX.
83018099Spst
83118099SpstThe `print' command now accepts multiple arguments.
83218099Spst
83318099SpstString comparison expressions (using `==' or `!=') are allowed in more
83418099Spstcontexts.
83518099Spst
83618099SpstGrotty
83718099Spst------
83818099Spst
83918099SpstHorizontal and vertical lines drawn with \D'l ...' will be rendered
84018099Spstusing -, | and + characters.  This is intended to give reasonable
84118099Spstresults with boxed tables.  It won't work well with pic.
84218099Spst
84318099SpstMacros
84418099Spst------
84518099Spst
84618099SpstThe -mdoc macros have been upgraded to the version in the second
84718099SpstBerkeley networking release.  This version is not completely
84818099Spstcompatible with earlier versions; the old version is still available
84918099Spstas -mdoc.old.  The grog script has been enhanced so that it can
85018099Spstusually determine whether a document requires the old or new versions.
85118099Spst
85218099SpstWith -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
85318099Spstaround where the picture would appear with -Tps.
85418099Spst
85518099SpstVERSION 1.04
85618099Spst============
85718099Spst
85818099SpstAn implementation of the -mm macros is included.
85918099Spst
86018099SpstThe directory in which temporary files are created can be controlled
86118099Spstby setting the GROFF_TMPDIR or TMPDIR environment variables.
86218099Spst
86318099SpstPic
86418099Spst---
86518099Spst
86618099SpstSome MS-DOS support (see pic/make-dos-dist).
86718099Spst
86818099SpstGrops
86918099Spst-----
87018099Spst
87118099SpstThere are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
87218099Spstwhich make it possible to have substitute characters that are
87318099Spstdisplayed when previewing with -TXps but ignored when printing with
87418099Spstgrops.
87518099Spst
87618099SpstXditview
87718099Spst--------
87818099Spst
87918099SpstSupport for scalable fonts.
88018099Spst
88118099SpstVERSION 1.03
88218099Spst============
88318099Spst
88418099SpstNo changes other than bug fixes.
88518099Spst
88618099SpstVERSION 1.02
88718099Spst============
88818099Spst
88918099SpstThere is an implementation of refer and associated programs.  groff -R
89018099Spstpreprocesses with grefer; no mechanism is provided for passing
89118099Spstarguments to grefer because most grefer options have equivalent
89218099Spstcommands which can be included in the file.  grog also supports refer.
89318099Spst
89418099SpstThere is an alternative perl implementation of the grog script.
89518099Spst
89618099SpstThe code field in lines in the charset section of font description
89718099Spstfiles is now allowed to contain an arbitrary integer (previously it
89818099Spstwas required to lie between 0 and 255).  Currently grops and grodvi
89918099Spstuse only the low order 8 bits of the value.  Grodvi will use the
90018099Spstcomplete value; however, this is unlikely to be useful with
90118099Spsttraditional TeX tools (.tfm files only allow 8 bit character codes.)
90218099Spst
90318099SpstLeft and right double quotes can be obtained with \(lq and \(rq
90418099Spstrespectively.
90518099Spst
90618099SpstThere is a new program called pfbtops which translates PostScript
90718099Spstfonts in pfb format to ASCII.
90818099Spst
90918099SpstA slightly modified version of the Berkeley tmac.doc is included.
91018099Spst
91118099SpstTroff
91218099Spst-----
91318099Spst
91418099SpstIn long escape names the closing ] is now required to be at the same
91518099Spstinput level as the opening [.
91618099Spst
91718099SpstThe \A'S' escape sequence returns 1 or 0 according as S is or is not
91818099Spstsuitable for use as a name.
91918099Spst
92018099Spst\~ produces an unbreakable space that can be stretched when the line
92118099Spstis adjusted.
92218099Spst
92318099SpstThe `mso' request is like the `so' request except that it searches for
92418099Spstthe file in the same directories in which tmac.X is searched for when
92518099Spstthe -mX option is given.
92618099Spst
92718099SpstThe escape sequence `\R' is similar to the `nr' request.
92818099Spst
92918099SpstEqn
93018099Spst---
93118099Spst
93218099SpstA new `special' primitive allows you to add new types of unary
93318099Spstconstructs by writing a troff macro.
93418099Spst
93518099SpstPic
93618099Spst---
93718099Spst
93818099SpstThe implementation no longer uses gperf.
93918099Spst
94018099SpstGrops
94118099Spst-----
94218099Spst
94318099SpstThe compile-time -DBROKEN_SPOOLER option has been replaced by a
94418099SpstBROKEN_SPOOLER_FLAGS option.  This allows more precise control over
94518099Spsthow grops should workaround broken spoolers and previewers.  There is
94618099Spsta new -b option that can change this at run-time.
94718099Spst
94818099SpstGrops now generates PostScript that complies with version 3.0 of the
94918099SpstDocument Structuring Convention.
95018099Spst
95118099SpstThe resource management component of grops (the part that deals with
95218099Spstimported documents and downloadable fonts) has been rewritten and now
95318099Spstsupports version 3.0 of the Document Structuring Conventions.  The
95418099Spst%%DocumentFonts comment is no longer supported; you must use the
95518099Spst%%Document{Needed,Supplied}{Fonts,Resources} comments instead
95618099Spst(or as well.)
95718099Spst
95818099Spsttmac.psatk contains some macros that support the mechanism used by the
95918099SpstAndrew Toolkit for including PostScript graphics in troff documents.
96018099Spst
96118099SpstXditview
96218099Spst--------
96318099Spst
96418099SpstParts of xditview have been rewritten so that it can be used with the
96518099Spstoutput of gtroff -Tps.  groff -TXps will run gtroff -Tps with
96618099Spstgxditview.
96718099Spst
96818099SpstThere is a new menu entry `Print' which brings up a dialog box for
96918099Spstspecifying a command with which the file being previewed should be
97018099Spstprinted.
97118099Spst
97218099SpstXditview now uses imake.
97318099Spst
97418099SpstVERSION 1.01
97518099Spst============
97618099Spst
97718099SpstThe groff command now understands the gtroff `-a' and `-i' options.
97818099Spst
97918099SpstWith the `m' and `n' scale indicators, the scale factor is rounded
98018099Spsthorizontally before being applied.  This makes (almost) no difference
98118099Spstfor devices with `hor' equal to 1, but it makes groff with -Tascii or
98218099Spst-Tlatin1 behave more like nroff in its treatment of these scale
98318099Spstindicators.  Accordingly tmac.tty now calls the `nroff' request so
98418099Spstthat the `n' condition will be true.
98518099Spst
98618099SpstThe device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
98718099Spsthave been made to work at least somewhat with -C.  In particular the
98818099Spstspecial characters defined by these macros now work with -C.
98918099Spst
99018099Spstgroff -Tdvi -p will now pass pic the -x flag; this will enable filling
99118099Spstof arrowheads and boxes, provided that your dvi driver supports the
99218099Spstlatest version of the tpic specials.
99318099Spst
99418099SpstEqn
99518099Spst---
99618099Spst
99718099SpstThere is a new `-N' option that tells eqn not to allow newlines in
99818099Spstdelimiters.  This allows eqn to recover better from missing closing
99918099Spstdelimiters.  The groff command will pass on a `-N' option to eqn.
100018099Spst
100118099SpstGrops
100218099Spst-----
100318099Spst
100418099SpstYou can now use psfig with grops.  See the file ps/psfig.diff.  I do
100518099Spstnot recommend using psfig for new documents.
100618099Spst
100718099SpstThe command \X'ps: file F' is similar to \X'ps: exec ...' except that
100818099Spstthe PostScript code is read from the file F instead of being contained
100918099Spstwithin the \X command.  This was added to support psfig.
101018099Spst
101118099SpstGrodvi
101218099Spst------
101318099Spst
101418099SpstThere are font files HB and HI corresponding to cmsssbx10 and cmssi10.
101518099Spst
101618099SpstMacros
101718099Spst------
101818099Spst
101918099SpstThe groff -me macros now work with the -C option.  As a result, they
102018099Spstmay also work with Unix nroff/troff.
102118099Spst
102218099SpstIn -me, the $r and $R number registers now contain the line spacing as
102318099Spsta percentage of the pointsize expressed in units (normally about 120).
102418099SpstThe previous definition was useless with low resolution devices such
102518099Spstas X75 and X100.
102618099Spst
102718099SpstVERSION 1.00
102818099Spst============
102918099Spst
103018099SpstA -ms-like macro-package is now included.
103118099Spst
103218099SpstThe name for the Icelandic lowercase eth character has been changed
103318099Spstfrom \(-d to \(Sd.
103418099Spst
103518099SpstTroff
103618099Spst-----
103718099Spst
103818099SpstThere is a new request `nroff', which makes the `n' built-in condition
103918099Spsttrue and the `t' built-in condition false; also a new request `troff'
104018099Spstwhich undoes the effect of the `nroff' request.  This is intended only
104118099Spstfor backward compatibility: it is usually better to test \n(.H or
104218099Spst\n(.V or to use the `c' built-in condition.
104318099Spst
104418099SpstThe \R escape sequence has been deleted.  Use \E instead.
104518099Spst
104618099SpstThere are `break' and `continue' requests for use with the `while'
104718099Spstrequest.
104818099Spst
104918099SpstThere is a request `hym' that can ensure that when the current
105018099Spstadjustment mode is not `b' a line will not be hyphenated if it is no
105118099Spstmore than a given amount short, and a request `hys' that can ensure
105218099Spstthat when the current adjustment mode is `b' a line will not be
105318099Spsthyphenated if it can be justified by adding no more than a given
105418099Spstamount of extra space to each word space.
105518099Spst
105618099SpstThere is a request `rj' similar to `ce' that right justifies lines.
105718099Spst
105818099SpstA warning of type `space' will be given when a call is made to an
105918099Spstundefined request or macro with a name longer than two characters, and
106018099Spstthe first two characters of the name make a name that is defined.
106118099SpstThis is intended to find places where a space has been omitted been a
106218099Spstrequest or macro and its argument.  This type of warning is enabled by
106318099Spstdefault.
106418099Spst
106518099SpstPic
106618099Spst---
106718099Spst
106818099SpstA comma is permitted between the arguments to the `reset' command.
106918099Spst
107018099SpstFor use with TeX, there is a new `-c' option that makes gpic treat
107118099Spstlines beginning with `.' in a way that is more compatible with tpic
107218099Spst(but ugly).
107318099Spst
107418099SpstEqn
107518099Spst---
107618099Spst
107718099SpstIt is no longer necessary to add `space 0' at the beginning of
107818099Spstcomplicated equations inside pictures.
107918099Spst
108018099Spst`prime' is now treated as an ordinary character, as in Unix eqn.  The
108118099Spstprevious behaviour of `prime' as an operator can now be obtained using
108218099Spst`opprime'.
108318099Spst
108418099SpstXditview
108518099Spst--------
108618099Spst
108718099SpstThere are two new devices X75-12 and X100-12 which are the same as X75
108818099Spstand X100 except that they are optimized for documents that use mostly
108918099Spst12 point text.
109018099Spst
109118099SpstVERSION 0.6
109218099Spst===========
109318099Spst
109418099SpstThe installation process has been refined to make it easy for you to
109518099Spstshare groff with someone who has the same type of machine as you but
109618099Spstdoes not have a C++ compiler.  See the end of the INSTALL file for
109718099Spstdetails.
109818099Spst
109918099SpstThere is a man page for the tfmtodit program which explains how to use
110018099Spstyour own fonts with groff -Tdvi.
110118099Spst
110218099SpstThere is a man page for afmtodit which explains how to use your own
110318099SpstPostScript fonts with groff -Tps.
110418099Spst
110518099SpstThe \N escape sequence is now fully supported.  It can now be used to
110618099Spstaccess any character in a font by its output code, even if it doesn't
110718099Spsthave a groff name.  This is made possible by a convention in the font
110818099Spstfiles that a character name of `---' refers to an unnamed character.
110918099SpstThe drivers now all support the `N' command required for this.  The font
111018099Spstdescription files have been updated to include unnamed characters.
111118099Spst
111218099SpstThe `x' command in font description files has been removed: instead
111318099Spstany unknown commands are automatically made available to the drivers.
111418099SpstIf you constructed your own font files with an earlier version of
111518099Spsttfmtodit or afmtodit, you must construct them again using the current
111618099Spstversion.
111718099Spst
111818099SpstCharacters between 0200 and 0237 octal are no longer legal input
111918099Spstcharacters.  Note that these are not used in ISO 8859.
112018099Spst
112118099SpstA command called `grog' has been added, similar to the `doctype'
112218099Spstcommand described in Kernighan and Pike.
112318099Spst
112418099SpstGroff
112518099Spst-----
112618099Spst
112718099SpstThe groff command has some new options: -V prints the pipeline
112818099Spstinstead of executing it; -P passes an argument to the postprocessor,
112918099Spst-L passes an argument to the spooler.
113018099Spst
113118099SpstThere is a C++ implementation of the groff command.  This handles some
113218099Spstthings slightly better than the shell script.  In particular, it can
113318099Spstcorrectly handle arguments containing characters that have a special
113418099Spstmeaning to the shell; it can give an error message when child
113518099Spstprocesses other than the last in the pipeline terminate abnormally;
113618099Spstits exit status can take account of the exit statuses of all its child
113718099Spstprocesses; it is a little more efficient; when geqn is used, it
113818099Spstsearches for the eqnchar file in the same way that font metric files
113918099Spstare searched for, rather than expecting to find it in one particular
114018099Spstdirectory.
114118099Spst
114218099SpstGtroff
114318099Spst------
114418099Spst
114518099SpstThere is font translation feature: For example, you can tell gtroff to
114618099Spstuse font `HR' whenever font `H' is requested with the line
114718099Spst  .ftr H HR
114818099SpstThis would be useful for a document that uses `H' to refer to
114918099SpstHelvetica.
115018099Spst
115118099SpstThere are some new number registers: `.kern' contains the current kern
115218099Spstmode, `.lg' the current ligature mode, `.x' the major version number,
115318099Spst`.y' the minor version number, `.ce' the number of lines to be
115418099Spstcentered in the current environment, `.trunc' the amount of vertical
115518099Spstspace truncated by the most recently sprung vertical position trap,
115618099Spst`.ne' the amount of vertical space needed in the last `ne' request
115718099Spstthat caused a vertical position trap to be sprung.
115818099Spst
115918099SpstThe `cf' request now behaves sensibly in a diversion.  If used in a
116018099Spstdiversion, it will now arrange for the file to be copied to the output
116118099Spstwhen the diversion is reread.
116218099Spst
116318099SpstThere is a new request `trf' (transparent file) similar to `cf', but
116418099Spstmore like `\!'.
116518099Spst
116618099SpstThere is a new escape sequence `\Y[xxx]', roughly equivalent to
116718099Spst`\X'\*[xxx]'', except that the contents of string or macro xxx are not
116818099Spstinterpreted, and xxx may contain newlines.  This requires an output
116918099Spstformat extension; the drivers have been modified to understand this.
117018099SpstGrops has also been modified to cope with newlines in the arguments to
117118099Spst\X commands; grops has a new \X command mdef, which is like def except
117218099Spstthat it has a first argument giving the number of definitions.
117318099Spst
117418099SpstThere is a new warning category `escape' which warns about unknown
117518099Spstescape sequences.
117618099Spst
117718099SpstThe `fp' request now takes an optional third argument giving the external
117818099Spstname of the font.
117918099Spst
118018099SpstThe `\_' character is now automatically translated to `\(ul' as in troff.
118118099Spst
118218099SpstThe environment variable `GROFF_HYPHEN' gives the name of the file
118318099Spstcontaining the hyphenation patterns.
118418099Spst
118518099SpstThere is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
118618099Spst
118718099SpstCharacters ", ', ), ], *, \(dg are now initially transparent for the purposes
118818099Spstof end of sentence recognition.
118918099Spst
119018099SpstThere is an anti-recursion feature in the `char' request, so you can
119118099Spstsay `.char \(bu \s+2\(bu\s-2'.
119218099Spst
119318099SpstThe limit on the number of font positions has been removed.
119418099SpstAccordingly `\n[.fp]' never returns 0.
119518099Spst
119618099SpstThe restriction on the number of numbered environments has been removed.
119718099Spst
119818099SpstThere is a new escape sequence `\E' that makes it possible to
119918099Spstguarantee that an escape sequence won't get interpreted in copy-mode.
120018099SpstThe `\R' escape sequence is accordingly now deprecated.
120118099Spst
120218099SpstGpic
120318099Spst----
120418099Spst
120518099SpstArguments of the form `X anything X' (in the `copy thru', `sh', `for',
120618099Spst`if' and `define' constructs) can now be of the form `{ anything }'.
120718099Spst
120818099SpstIf the `linethick' variable is negative (as it now is initially),
120918099Spstlines will be drawn with a thickness proportional to the current point
121018099Spstsize.
121118099Spst
121218099SpstThe `rand' function now takes no arguments and returns a number between
121318099Spst0 and 1.  The old syntax is still supported.
121418099Spst
121518099Spst`^' can be used in expressions to indicate exponentiation.
121618099Spst
121718099SpstIn the `for' construct the argument to the by clause can be prefixed
121818099Spstby `*' to indicate that the increment is multiplicative.
121918099Spst
122018099SpstA bare expression may be used as an attribute.  If the current
122118099Spstdirection is `dir', then an attribute `expr' is equivalent to
122218099Spst`dir expr'
122318099Spst
122418099SpstThere is a `sprintf' construct that allows numbers to be formatted and used
122518099Spstwherever a quoted string can be used.
122618099Spst
122718099SpstThe height of a text object without an explicit height attribute is
122818099Spstthe number of text strings associated with the object times the value
122918099Spstof the `textht' variable.
123018099Spst
123118099SpstThe maximum height and width of a picture is controlled by the
123218099Spst`maxpswid' and `maxpsht' variables.
123318099Spst
123418099SpstGtbl
123518099Spst----
123618099Spst
123718099SpstGtbl can now handle gracefully the situation where the `ce' request
123818099Spsthas been applied to a table.
123918099Spst
124018099SpstGeqn
124118099Spst----
124218099Spst
124318099SpstThe `ifdef' primitive has been generalized.
124418099Spst
124518099SpstA tilde accent can be put underneath a box using `utilde'.  This
124618099Spstdefined using a general `uaccent' primitive.
124718099Spst
124818099SpstGrops
124918099Spst-----
125018099Spst
125118099SpstThere is a new PostScript font downloading scheme which handles font
125218099Spstdownloading for imported illustrations.  Previously, the name of the
125318099Spstfile containing the font was given in the `x download' line in the
125418099Spstgroff font metric file.  Now, there is a `download' file which says
125518099Spstfor each PostScript font name which file contains that font.  Grops
125618099Spstcan also now handle inter-font dependencies, where one downloadable
125718099Spstfont depends on some other (possibly downloadable) font.
125818099Spst
125918099SpstThe `T' font has been removed.  The characters it used to provide are
126018099Spstnow provided by `char' definitions in tmac.ps. TSymbol.ps has also
126118099Spstbeen removed, and the tweaks it provided are now provided by `char'
126218099Spstdefinitions.
1263