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