eeb4090610c20633cfd128f587fbf9f7fd7ee2bd
[platform/upstream/groff.git] / NEWS
1     Copyright (C) 1992-2014 Free Software Foundation, Inc.
2
3     Copying and distribution of this file, with or without modification,
4     are permitted in any medium without royalty provided the copyright
5     notice and this notice are preserved.
6
7 This file describes recent user-visible changes in groff.  Bug fixes are not
8 described.  There are more details in the man and info pages.
9
10 VERSION 1.22.3
11 ==============
12
13 Gxditview
14 ---------
15
16 o X11 resources for `gxditview', which were previously installed in
17   /usr/X11/lib/X11/app-defaults no matter which `prefix' was set, are
18   now installed in appresdir=$prefix/lib/X11/app-defaults.  If
19   `appresdir' is not a standard X11 resource directory, the environment
20   variable XFILESEARCHPATH should be set to this path.  The standard
21   default directories depends on the system `libXt'.  Common directories
22   include:
23  
24    /usr/lib/X11/app-defaults
25    /usr/share/X11/app-defaults
26    /etc/X11/app-defaults
27
28   Note that if the option `--with-appresdir' is passed to `configure',
29   the `prefix' will not be added to `appresdir'.
30
31
32 Glilypond
33 ---------
34
35 o This new preprocessor (contributed by Bernd Warken) allows embedding of
36   code for GNU LilyPond (http://www.lilypond.org), a music typesetter.  The
37   data gets automatically processed and embedded as EPS images.
38
39
40 Gperl
41 -----
42
43 o Bernd Warken contributed a new preprocessor to handle Perl code that can
44   be evaluated and then processed by groff.
45
46
47 Gpinyin
48 -------
49
50 o Another preprocessor from Bernd Warken to pretty-print Pinyin syllables
51   like `guo2wang2' as `guówáng'.
52
53
54 Pdfroff
55 -------
56
57 o The pdfroff utility script now activates its `--no-toc-relocation' option
58   by default, unless a request similar to:
59
60      .if !\n[PHASE] .tm pdfroff-option:set toc_relocation=enabled
61
62   is invoked during input file processing; (`.if !\n[PHASE] ...' ensures
63   that the effect of the `.tm' request is restricted to the document setup
64   phase of processing, as pdfroff sets it to 1 or 2 in the output phase,
65   but leaves it unset in the setup phase).
66
67   The bundled `spdf.tmac' macro package, which implicitly activates
68   `-mpdfmark' for `ms' macro users, ensures that TOC relocation is
69   appropriately enabled, when the `.TC' macro is invoked.
70
71
72 Macro Packages
73 --------------
74
75 o The -mom macro package now has full support for eqn, pic, and tbl, as well
76   as captioning and labelling of pdf images and preprocessor output.  Lists
77   of Figures, Equations, and Tables can now be autogenerated.  PDF_IMAGE has
78   a new FRAME option.
79
80 o A French introduction to the -me macro package has been added (file
81   `meintro_fr.me').
82
83 o In -mdoc, command %C is now available, providing a city or place
84   reference.
85
86
87 VERSION 1.22.2
88 ==============
89
90 Tbl
91 ---
92
93 o The character `#' can now be used as an eqn delimiter within tables.
94
95
96 Eqn
97 ---
98
99 o A GNU extension
100
101     delim on
102
103   has been added to reactivate delimiters which have been disabled with
104   `delim off'.
105
106
107 VERSION 1.22.1
108 ==============
109
110 (There was no release 1.22.)
111
112 Groff
113 -----
114
115 o A new option `-j' has been added to call the `chem' preprocessor.
116
117 Tbl
118 ---
119
120 o Improved line numbering support.
121
122 Macro Packages
123 --------------
124
125 o Support for the `refer' preprocessor has been added to the -mm macro
126   package.
127
128 o In -me, the `TH' macro was changed for compatibility with line number
129   support in tables.
130
131   `bl' now works inside of blocks.
132
133   The behaviour of centered blocks has been improved.
134
135   Line numbering support has been improved.
136
137 o The -mom macro package has reached version 2.0, focusing on PDF output
138   with gropdf (using the new `pdfmom' wrapper script).  See the file
139   `version-2.html' of the -mom documentation for a list of the many changes.
140
141 o Some generic Unicode fallback characters (mainly Roman numerals) have been
142   added.
143
144 Gropdf
145 ------
146
147 o A new driver for generating PDF output directly, contributed by Deri James
148   <deri@chuzzlewit.myzen.co.uk>.  Note that this driver is written in Perl,
149   thus you need a working Perl installation to run this output device.
150
151 Pdfmom
152 ------
153
154 o A new wrapper around groff that facilitates the production of PDF
155   documents from files formatted with the -mom macros.
156
157
158 VERSION 1.21
159 ============
160
161 Troff
162 -----
163
164 o The new `lsm' request specifies a macro to be invoked when leading spaces
165   in an input line are encountered (which are removed then).  Number
166   registers `lsn' and `lss' hold the number of removed leading spaces and
167   the corresponding horizontal space, respectively.
168
169 o There is a new warning category `file', enabled by default.  The `mso'
170   request emits warnings in this category when the requested macro file does
171   not exist.
172
173 o The new `class' request assigns a short name to a set of characters
174   which can be referred to in the `cflags' request.  This is especially
175   useful to control line-breaking and hyphenation rules in CJK languages.
176
177 o Three new values for the `cflags' request have been added, which are
178   needed for proper CJK support.
179
180     128  prohibit before but allow break after character
181     256  prohibit after but allow break before character
182     512  allow break before and after character
183
184 Tbl
185 ---
186
187 o A new global option `nowarn' suppresses warnings if tables are longer than
188   the current line width.
189
190 Afmtodit
191 --------
192
193 o New option `-o' to specify the name of the output file.
194
195 Macro Packages
196 --------------
197
198 o A new macro `%U' has been added to the mdoc package to indicate a URL
199   reference within an .Rs/.Re environment.
200
201 o Rudimentary support for the Japanese script has been added, most suitable
202   for man page handling as output by grotty.  The file `ja.tmac' contains
203   the necessary setup to allow line breaks before and after CJK characters
204   (with proper exceptions).  Note, however, that no inter-character spacing
205   is implemented yet -- this usually causes many warnings about bad line
206   breaks.
207
208
209 VERSION 1.20.1
210 ==============
211
212 A packaging error made it necessary to publish this release.  No
213 user-visible changes.
214
215
216 VERSION 1.20
217 ============
218
219 Groff
220 -----
221
222 o XHTML support has been added to grohtml and can be specified by
223   -Txhtml.  This option also utilizes the MathML capability of
224   eqn and combines the outputs of both in the final XHTML file.
225   Users can also specify the `-P-V' option together with `-Txhtml'
226   in groff.  This has the effect of creating an XHTML validator
227   button at the bottom of each page.
228
229 o Some options have been added to control a new preprocessor,
230   `preconv' (see below): `-k' activates it, `-K' sets the input
231   encoding, and `-D' sets the default encoding.
232
233 o A new environment variable `GROFF_ENCODING' sets the encoding
234   of input files; it implies command option `-k'.
235
236 Troff
237 -----
238
239 o Two new requests `device' and `devicem' have been added which are
240   equivalents to the \X and \Y escapes, respectively.
241
242 o A new read-only number register `.br' is available which is set to 1
243   if a macro is called as .foo and to 0 if called as 'foo.  This allows to
244   reliably modify requests.
245
246     .als bp@orig bp
247     .de bp
248     .  tm before bp
249     .  ie \\n[.br] .bp@orig
250     .  el 'bp@orig
251     .  tm after bp
252     ..
253
254 o A new request `fzoom' has been added to adjust the optical size of a
255   font in relation to the others.  The zoom factor is given in integer
256   multiples of 1/1000th.  In the following example, the CR font is
257   magnified by 10% (the zoom factor is 1.1).
258
259     .fam P
260     .fzoom CR 1100
261     .ps 12
262     Palatino and \f[CR]Courier\f[]
263
264   The new number register `.zoom' holds the zoom value of the current font,
265   in multiples of 1/1000th.
266
267 o The `cflags' request has been extended with a new flag value 64, to be
268   used in combination with values 2 (break before character) and 4 (break
269   after character).  If set, the hyphenation codes of the surrounding
270   characters are ignored.
271
272 o A new debugging request, `pev', has been added to print all of the current
273   known environments to stderr.  It first prints the state of the current
274   environment, then iterates through all of the known environments, printing
275   each except the one that is current.
276
277 o A new escape `\$^' has been added.  It represents the parameters of a
278   macro as if they were an argument to the `ds' request.  This is used by
279   `trace.tmac'.
280
281 o A new read-only number register `.O' is available which returns the
282   current suppression level as set by the `\O' escape.
283
284 o The space width emitted by the `\|' and `\^' escape sequences can be
285   controlled on a per-font basis.  If there is a glyph named `\|' or `\^',
286   respectively (note the leading backslash), defined in the current font
287   file, use this glyph's width instead of the default value.
288
289   This behaviour is not new, but hasn't been documented before.
290
291 Nroff
292 -----
293
294 o Two new command line options `-w' and `-W' are accepted and passed to
295   groff to enable and disable warning messages, respectively.
296
297 Preconv
298 -------
299
300 o This is a new preprocessor to convert various input encodings to something
301   groff understands (this is, ASCII and \[uXXXX] entities, with `XXXX' a
302   hexadecimal number with 4 to 6 digits, representing a Unicode input code).
303   Normally, preconv should be invoked with options `-k' and `-K' of groff.
304   See the preconv man page for details.
305
306 Pic
307 ---
308
309 o int(x) now really behaves as documented: It truncates the non-integer part
310   of x, this is, it rounds towards zero and not towards the next integer
311   less than or equal to x.
312
313 o Pic now supports up to 32 macro arguments (and up to 16 on EBCDIC
314   platforms).
315
316 o Heinz-Jürgen Örtel contributed code for two new keywords, `xslanted' and
317   `yslanted', which can change the shape of boxes into arbitrary
318   parallelograms.
319
320 Tbl
321 ---
322
323 o Latest versions of DWB tbl introduced an `x' column specifier for a single
324   column expanded to the line width.  GNU tbl has now been extended to
325   support even multiple `x' specifiers within a table.
326
327 o To avoid collision with the new `x' specifier, a block formatting macro
328   must now be selected with specifier letter `m'.
329
330 Eqn
331 ---
332
333 o Eric S. Raymond has added a new device type to eqn, MathML.  When
334   -TMathML is enabled, eqn now emits MathML formula markup rather than
335   groff commands.  The new groff -Txhtml device uses this.
336
337 Chem
338 ----
339
340 o The preprocessor `chem' was added.  `chem' is a roff language to generate
341   chemical structure diagrams.  It generates `pic' output.
342
343 Grops
344 -----
345
346 o The PS font definition files have been regenerated with newer AFM versions
347   from Adobe's 35 core fonts as present in most Level 2 PS printers.  The
348   changes are minor (most notably, the addition of the `Euro' glyph and an
349   extended set of kerning values).
350
351   For backwards compatibility, the old set of font definition files is still
352   available; for details please read the man page of grops.
353
354 Grotty
355 ------
356
357 o \D'p...' is now supported if the polygon consists entirely of horizontal
358    and vertical lines.
359
360 Grohtml
361 -------
362
363 o XHTML support has been added.
364
365 o New command line option `-V' (to be used in XHTML mode) to produce an
366   XHTML validator button.
367
368 o New command line option `-y' to produce a right-justified groff signature
369   at the end of the document (in combination with option `-V').
370
371 Gxditview
372 ---------
373
374 o Support for keyboard navigation has been improved.
375
376 o Similar to other X11 applications, there are now two resource files,
377   `GXditview' and `GXditview-color'.
378
379 Groffer
380 -------
381
382 o `groffer' version 1.* exists now in a shell and a Perl version.
383
384 Afmtodit
385 --------
386
387 o New option `-c' to output more font information as comments.
388
389 o New option `-k' to suppress output of kerning data.
390
391 o New option `-f NAME' to set the internal name of the groff font.
392
393 Macro Packages
394 --------------
395
396 o Joachim Walsdorff contributed the `hdtbl' package for the generation of
397   tables, using a syntax very similar to the HTML table model.  For
398   example, a table with two cells and two rows looks like this:
399
400     .TBL cols=2
401     .  TR .TD 1*1 .TD 1*2
402     .  TR .TD 2*1 .TD 2*2
403     .ETB
404
405   Here the same table using a more expanded syntax:
406
407     .TBL cols=2
408     .  TR
409     .    TD 1*1
410     .    TD 1*2
411     .  TR
412     .    TD 2*1
413     .    TD 2*2
414     .ETB
415
416   Tables can be nested; `hdtbl' works without a preprocessor so that the
417   full capability of groff's macro engine is available.
418
419   This package currently works with `-Tps' only.
420
421 o -mandoc now supports multiple man pages (in either man or mdoc format).
422
423 o Fabrice Ménard contributed locales support.  In particular, it is now
424   possible to get French localization of the main macro packages (-ms, -mm,
425   -me, and -mom, but not -man and -mdoc which are localized differently) by
426   appending `-mfr' to the list of macro packages.  Example:
427
428     groff -ms -mfr foo > foo.ps
429
430   Note that latin-9 input encoding is used for French (to support the `oe'
431   ligature).
432
433 o Swedish macro localization (with `-msv') has been added.
434
435 o German macro localization (with `-mde' and `-mden' for traditional and
436   new orthography, respectively) has been added.
437
438 o Czech macro localization (with `-mcs') has been added.
439
440   Note that latin-2 input encoding is used for Czech.
441
442 o A new macro `Dx' has been added to the mdoc package which identifies the
443   DragonFly OS.
444
445 o If mdoc is used to print multiple man pages (together with the -rcR=0
446   command line option), each man page now starts a new page.
447
448 o -mtrace has been considerably improved, now showing number and string
449   register assignments, among other things.  See the groff_trace man page
450   for details.
451
452 o The PSPIC macro now works with all devices (producing a hollow
453   rectangle on devices which don't support inclusion of PS images) and
454   is loaded in troffrc at start-up.
455
456 o A new auxiliary macro package `62bit' has been added which provides some
457   macros for adding, multiplying, and dividing signed 62bit integers (mainly
458   to handle normal groff number operations without risking overflow errors).
459
460 o For -ms, Eric S. Raymond contributed support for ancient Bell Labs
461   localisms `.SC', `.UC', `.P1', and `.P2'.  The latter three are enabled
462   only after .SC is called.
463
464 o A new string, `SN-STYLE', has been added to the ms macros, controlling
465   the formatting of section numbers in headings defined by `.NH'.
466
467 o The new macro package `ptx' provides a template definition for the `.xx'
468   macro as needed by GNU ptx (for creating permuted indices).
469
470
471 VERSION 1.19.2
472 ==============
473
474 Troff
475 -----
476
477 o Analogously to the .ft and \f pair, two new requests `gcolor' and
478   `fcolor' (which pair with \m and \M, respectively) have been added to
479   set the glyph and background colours.
480
481 o A new read-only, string-valued register `.sty' returns the name of the
482   current style.
483
484 o Two new conditional operators `F <name>' and `S <name>' have been added.
485   `F' is true if a font <name> exists.  `S' is true if a style <name> has
486   been registered.
487
488 o Cyrillic characters have been added to the `utf8' and `html' output
489   devices.
490
491 Pic
492 ---
493
494 o The `by' argument in a `for' loop can now be negative if it is additive.
495   For the multiplicative case, it must be greater than zero.
496
497 Eqn
498 ---
499
500 o The following keywords aren't new but haven't been documented previously:
501
502     undef NAME    (to undefine a macro)
503     copy  "FILE"  (a synonym for `include')
504     space n       (to modify the vertical spacing before and after
505                    an equation)
506
507 o The following macros aren't new but haven't been documented previously:
508
509     Alpha, ..., Omega   (the same as `ALPHA', ..., `OMEGA')
510     ldots               (three dots on the base line)
511     dollar              (a dollar glyph)
512
513 o The following keywords have been extended.  Again, this isn't new but
514   hasn't been documented previously:
515
516     col n { ... }
517     lcol n { ... }
518     rcol n { ... }
519     ccol n { ... }
520     pile n { ... }
521     lpile n { ... }
522     rpile n { ... }
523     cpile n { ... }   (set vertical spacing between rows to N)
524
525 Grohtml
526 -------
527
528 o This device driver has been raised to beta stage; its set of tags should
529   be stable now.
530
531 o New command line option `-s' to set the base point size.
532
533 o New command line option `-S' to set the split level while generating
534   multiple files.
535
536 Grotty
537 ------
538
539 o Experimental support for zero-width and double-width characters.
540
541 Gxditview
542 ---------
543
544 o On platforms which have the X Window System this program is now built and
545   installed automatically.
546
547 Xtotroff
548 --------
549
550 o This program to create font definition files for xditview isn't new but
551   hasn't been installed previously.
552
553 Groffer
554 -------
555
556 o A security problem (reported as CAN-2004-0969) has been fixed.
557
558 Gdiffmk
559 -------
560
561 o A new script contributed by Mike Bianchi.  It compares two groff, nroff,
562   or troff documents and creates an output with added margin characters
563   (using `.mc') to indicate the differences.
564
565 Pdfroff
566 -------
567
568 o A new wrapper script contributed by Keith Marshall to easily create PDF
569   documents with groff.
570
571 Macro packages
572 --------------
573
574 o ms.tmac
575
576   . Support for fractional point sizes: A value for the `PS', `VS', `FPS',
577     and `VPS' register larger than or equal to 1000 is always divided by
578     1000.  For example, `.nr PS 10250' sets the document's font size to
579     10.25 points.
580
581   . The `Ds' and `De' macros provided in ms since groff version 1.19 have
582     been removed; the equivalent `DS' and `DE' macros should be used
583     instead.  X11 documents which actually use `Ds' and `De' always load a
584     specific macro file from the X11 distribution (`macros.t') which
585     provides proper definitions for the two macros.
586
587   . The following registers have been added for improving layout control:
588
589     PORPHANS
590       Defines number of lines following `LP', `PP', `QP', `IP' or `XP' which
591       must be kept together, before any automatic page break.
592
593     HORPHANS
594       Sets number of lines of following paragraph which must be kept with a
595       heading, defined by `NH' or `SH', before any automatic page break.
596
597     GROWPS
598       Sets the first level of heading (set with `NH') which keeps the
599       same point size as body text.
600
601     PSINCR
602       Sets the point size increment for each level of heading (set with
603       `NH'), below the threshold level set by `GROWPS'; e.g., if
604       \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p, then `.NH 1'
605       produces 14pt headings, `.NH 2' produces 12pt, and all other
606       levels remain at 10pt (because \n[PS] = 10).
607
608   . The `SH' macro now accepts a numeric argument, to make heading size
609     match that of `NH' with same argument value when the `GROWPS'/`PSINCR'
610     feature is enabled.
611
612   Please refer to the documentation of the ms package for other, minor
613   improvements.
614
615 o me.tmac
616
617   The section type set with the `++' request is available in the `_M'
618   register.  This isn't new but hasn't been documented before.
619
620 o www.tmac
621
622   The `HR' macro no longer causes an empty line for non-HTML devices.
623
624   A new macro `HEAD' has been added to directly add data to the
625   <head>...</head> block.
626
627   New macros `OLS' and `OLE' to start and end an ordered list.
628
629   New macros `DLS' and `DLE' to start and end a definition list.
630
631 Pdfmark
632 -------
633
634 o A new macro package contributed by Keith Marshall which implements PDF
635   marks.  This is in alpha stage currently.
636
637 Miscellaneous
638 -------------
639
640 o Two new keywords to the DESC file have been added which are needed for
641   grohtml: `image_generator' and `unscaled_charwidths'.  The former gives
642   the name of the program which creates PNG images, and the latter makes
643   troff always use unscaled character widths.
644
645
646 VERSION 1.19.1
647 ==============
648
649 Groff
650 -----
651
652 o The argument of the command line option `-I' is now also passed to troff
653   and grops, specifying a directory to search for files on the command line,
654   files named in `so' and `psbb' requests, and files named in \X'ps: file'
655   and \X'ps: import' escapes.
656
657 o If option `-V' is used more than once, the commands are both printed
658   on standard error and run.
659
660 Troff
661 -----
662
663 o Two new read-only, string-valued registers `.m' and `.M' return the
664   name of the current drawing and background color, respectively.
665
666 o New read-only register `.U' which is set to 1 if in safer mode and set
667   to 0 if in unsafe mode.
668
669 o An input encoding file for latin-5 (a.k.a. ISO 8859-9) has been added.
670   Example use:
671
672     groff -Tdvi -mlatin5 my_file > my_file.dvi
673
674   Note that some output devices don't support all glyphs of this encoding.
675
676 o If the `return' request is called with an argument, it exits twice,
677   namely the current macro and the macro one level higher.  This is
678   used to define a wrapper macro for `return' in trace.tmac.
679
680 o For completeness, two new requests have been added: `dei1' and `ami1'.
681   They are equivalent to `dei' and `ami', respectively, but the macros
682   are executed with compatibility mode off (similar to `de1' and `am1').
683
684 o New command line option `-I' to specify a directory for files (both
685   those on the command line and those named in `psbb' requests).  This is
686   also handled by the groff wrapper program.
687
688 o Since version 1.19 you can say `.vs 0'.  Older versions emit a warning
689   and convert this to `.vs \n[.V]'.
690
691   This hasn't been documented properly.  Note that `.vs 0' isn't saved in a
692   diversion since it doesn't result in vertical motion.
693
694 Pic
695 ---
696
697 o Dashed and dotted ellipses have been implemented.
698
699 Tbl
700 ---
701
702 o New specifier `x' to make tbl call a user-defined macro on a table
703   cell.  Patch by Heinz-Jürgen Oertel <hj.oertel@surfeu.de>.
704
705 Grap2graph
706 ----------
707
708 o A new script contributed by Eric S. Raymond <esr@thyrsus.com>.  It
709   converts a grap diagram into a cropped image.  Since it uses gs and the
710   PNM library, virtually all graphics formats are available for output.
711   [Note that the grap program itself isn't part of the groff package;
712   see the file MORE.STUFF how to obtain grap.]
713
714 Grohtml
715 -------
716
717 o New option `-j' to emit output split into multiple files.
718
719 Grops
720 -----
721
722 o New command line option `-I' to specify a directory to search for files
723   on the command line and files named in \X'ps: import' and \X'ps: file'
724   escapes.  This is also handled by the groff wrapper program.
725
726 o The default value for the `broken' keyword in the DESC file is now 0.
727
728 Grolj4
729 ------
730
731 o A new man page `lj4_font(5)' documents how fonts are accessed with
732   grolj4.
733
734 o The built-in fonts for LJ4 and newer PCL 5 devices have been completely
735   revised, mainly to access as much glyphs as possible.  The provided
736   metric files should be compatible with recent PCL 5 printers also.
737   Additionally, font description files have been added for the Arial and
738   Times New Roman family, the MS symbol, and Wingdings fonts.
739
740 Afmtodit
741 --------
742
743 o New option `-x' to prevent use of built-in Adobe Glyph List.
744
745 Hpftodit
746 --------
747
748 o Completely revised to handle HP TrueType metric files also.  See the
749   hpftodit manual page for more details.
750
751 Groffer
752 -------
753
754 o This version is a rewrite of groffer in many parts, but it is kept in
755   the old single script style.
756
757   New options: --text, --mode text, --tty-viewer, --X, --mode X,
758   --X-viewer, --html, --mode html, --html-view, --apropos-data,
759   --apropos-devel, --apropos-progs.
760
761   New documentation file: README_SH.
762
763   Enhancement of the configuration files and the `apropos' handling.
764
765 Macro Packages
766 --------------
767
768 o www.tmac: New macro `JOBNAME' to split output into multiple files.
769
770 o In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
771   section.
772
773
774 VERSION 1.19
775 ============
776
777 Troff
778 -----
779
780 o Input encoding files for latin-9 (a.k.a. latin-0 and ISO 8859-15) and
781   latin-2 (ISO 8859-2) have been added.  Example use:
782
783     groff -Tdvi -mlatin9 my_file > my_file.dvi
784
785   You still need proper fonts with the necessary glyphs.  Out of the box,
786   the groff package supports latin-9 only for -Tps, -Tdvi, and -Tutf8,
787   and latin-2 only for -Tdvi and -Tutf8.
788
789 o Composite glyphs are now supported.  To do this, a subset of the Adobe
790   Glyph List (AGL) Algorithm as described in
791
792     http://partners.adobe.com/public/developer/opentype/index_glyph.html
793
794   is used to construct glyph names based on Unicode character codes.  The
795   existing groff glyph names are frozen; no glyph names which can't be
796   constructed algorithmically will be added in the future.
797
798   The \[...] escape sequence has been extended to specify multiple glyph
799   components.  Example:
800
801     \[A ho]
802
803   this accesses a glyph with the name `u0041_0328'.
804
805   Some groff glyphs which are useful as composites map to `wrong' Unicode
806   code points.  For example, `ho' maps to U+02DB which is a spacing
807   ogonek, whereas a non-spacing ogonek U+0328 is needed for composite
808   glyphs.  The new request
809
810     .composite from to
811
812   changes the mapping while a composite glyph name is constructed.
813   To make \[A ho] yield the expected result,
814
815     .composite ho u0328
816
817   is needed.  [The new file `composite.tmac' loaded at start-up already
818   contains proper calls to `.composite'.]
819
820   Please refer to the info pages of groff and to the groff_char man page
821   for more details.
822
823 o A new request `fschar' has been added to define font-specific fallback
824   characters.  They are searched after the list of fonts declared with the
825   `fspecial' request but before the list of fonts declared with `special'.
826
827 o Fallback characters defined with `fschar' can be removed with the
828   new `rfschar' request.
829
830 o A new request `schar' has been added to define global fallback
831   characters.  They are searched after the list of fonts declared with the
832   `special' request but before the already mounted special fonts.
833
834 o In groff versions 1.18 and 1.18.1, \D'f ...' didn't move the current
835   point horizontally.  Despite of being silly, this change has been
836   reverted for backwards compatibility.  Consequently, the intermediate
837   output command `Df' also moves the position horizontally again.
838
839   \D'f ...' is deprecated since it depends on the horizontal resolution of
840   the output device (given with the `hor' parameter in the DESC file).
841   Use the new \D'Fg ...' escape instead.
842
843 o For orthogonality, new \D subcommands to change the fill color are
844   available:
845
846     \D'Fr ...' (rgb)
847     \D'Fc ...' (cmy)
848     \D'Fg ...' (gray)
849     \D'Fk ...' (cmyk)
850     \D'Fd'     (default color)
851
852   The arguments are the same as with the `defcolor' request.  The current
853   position is *not* changed.
854
855 o The values set with \H and \S are now available in number registers
856   \n[.height] and \n[.slant], respectively.
857
858 o The `.pe' number register isn't new but hasn't been documented before.
859   It is set to 1 during a page ejection caused by the `bp' request.
860
861 o The new glyph symbol `tno' is a textual variant of `no'.
862
863 o The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
864   (Well, it is not really new since it has been previously supported by
865   grolj4.)  The mapping for both the dvi and lj4 symbol font has been
866   changed accordingly so that Greek small letter epsilon, `*e', has the
867   same glyph shape as with other devices.
868
869 Grops
870 -----
871
872 o The font `freeeuro.pfa' has been added to provide various default glyph
873   shapes for `eu' and `Eu'.
874
875 o It is now possible to access all glyphs in a Type 1 font, not only 256
876   (provided the font file created by afmtodit has proper entries).  grops
877   constructs additional encoding vectors on the fly if necessary.
878
879 o The paper size is now emitted via the %%DocumentMedia and PageSize
880   mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
881   about the paper size.  The `broken' flag value 16 omits this feature
882   (the used PostScript command `setpagedevice' is a LanguageLevel 2
883   extension) -- if you intend to further process grops output to get an
884   encapsulated PS (EPS) file you must also use this option.
885
886   Patch by Egil Kvaleberg <egil@kvaleberg.no>.
887
888 o Non-slanted PostScript metrics have been changed again; they no longer
889   contain negative left italic correction values.  This assures correct
890   spacing with eqn.
891
892 Grodvi
893 ------
894
895 o The font cmtex10 has been added as the special font `SC' to the DVI fonts.
896   It is used as a font-specific special font for CW and CWI.
897
898 o New options -l and -p to set landscape orientation and the paper size.
899   grodvi now emits a `papersize' special which is understood by DVI drivers
900   like dvips.
901
902   Consequently, the DESC file should contain a `papersize' keyword.
903
904 o The glyph shapes for \[*f] and \[*e] have been exchanged with \[+f] and
905   \[+e], respectively, to be in sync with all other devices.
906
907 o Glyphs \[HE] and \[DI] have been replaced with \[u2662] and \[u2661],
908   respectively, since the former two glyphs have a black (filled) shape
909   which grodvi doesn't provide by default (it never has actually).
910
911 Grolj4
912 ------
913
914 o The glyphs \[*e] and \[+e] have been exchanged to be in sync with
915   all other devices.
916
917 o The glyph \[~=] is now called \[|=].  Similar to other devices, \[~=]
918   is now another name for glyph \[~~].
919
920 Grotty
921 ------
922
923 o New option `-r'.  It is similar to the -i option except it tells grotty to
924   use the `reverse video' attribute to render italic fonts.
925
926 Pic
927 ---
928
929 o New command `figname' to set the name of a picture's output box in TeX
930   mode.
931
932 Refer
933 -----
934
935 o The environment variable `REFER' to override the name of the default
936   database isn't new but hasn't been documented before.
937
938 Soelim
939 ------
940
941 o New option `-r' to avoid emission of `.lf' lines.
942
943 o New option `-t' to emit TeX comment lines (giving current file and the
944   line number) instead of `.lf' lines.
945
946 Afmtodit
947 --------
948
949 o Unencoded glyphs in an AFM file are output also (since grops can now emit
950   multiple encoding vectors for a single font).
951
952 o New option `-m' to prevent negative left italic correction values.
953
954 o The mapping and encoding file together with file `DESC' are now searched
955   in the default font directory also.  Please refer to the man page of
956   afmtodit for more details.
957
958 Macro Packages
959 --------------
960
961 o Larry Kollar <kollar@alltel.net> and others made the man macros more
962   customizable.
963
964   . New command line options -rFT, -rIN, and -rSN to set the vertical
965     location of the footer line, the body text indentation, and the
966     sub-subheading indentation.
967
968   . New command line option -rHY (similar to the ms macros) to control
969     hyphenation.
970
971   . New macros `.PT' and `.BT' to print the header and footer strings.
972     They can be replaced with a customized version in `man.local'.
973
974   . The string `HF' now holds the typeface to print headings and
975     subheadings.
976
977   . Similar to the ms macros, the LT register now defaults to LL if not
978     explicitly specified on the command line.
979
980 o troff's start-up file `troffrc' now includes `papersize.tmac' to set
981   the paper size with the command line option `-dpaper=<size>'.
982
983   Possible values for `<size>' are the same as the predefined `papersize'
984   values in the DESC file (only lowercase; see the groff_font man page)
985   except a7-d7.  An appended `l' (ell) character denotes landscape
986   orientation.  Examples: `a4', `c3l', `letterl'.
987
988   Most output drivers need additional command line switches `-p' and
989   `-l' to override the default paper length and orientation as set in
990   the driver specific DESC file.
991
992   For example, use the following for PS output on A4 paper in landscape
993   orientation:
994
995     groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
996
997
998 VERSION 1.18.1
999 ==============
1000
1001 Troff
1002 -----
1003
1004 o The non-slanted PostScript font definition files have been regenerated to
1005   include left and right italic correction values.  Applying those to a
1006   glyph (this is, prepending the glyph with `\,' and appending `\/' to the
1007   glyph) sets the glyph width to the real value given by the horizontal
1008   bounding box values.  Without those escapes, the advance width for the
1009   particular glyph is used (which can differ considerably).
1010
1011   Most users will neither need this feature nor notice a difference in
1012   existing documents (provided \, and \/ is used as advertised, namely for
1013   italic fonts only); its main goal is to improve image generation with
1014   grohtml.
1015
1016   This is an experimental change, and feedback is welcome.
1017
1018 Tbl
1019 ---
1020
1021 o Added global option `nospaces' to ignore leading and trailing spaces in
1022   data items.
1023
1024 Grolbp
1025 ------
1026
1027 o The option -w (--linewidth) has been added (similar to other device
1028   drivers) to set the default line width.
1029
1030 Grn
1031 ---
1032
1033 o Support for b-spline and Bezier curves has been added.
1034
1035 Groffer
1036 -------
1037
1038 o New option `--shell' to select the shell under which groffer shall run.
1039
1040 Macro Packages
1041 --------------
1042
1043 o The string `Am' (producing an ampersand) has been added to mdoc for
1044   compatibility with NetBSD.
1045
1046 o `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
1047   instead.
1048
1049 o In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
1050   and vertical movements; please refer to contrib/mom/NEWS for more
1051   details.
1052
1053 o New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
1054
1055 Miscellaneous
1056 -------------
1057
1058 o The `papersize' keyword in the DESC file now accepts multiple arguments.
1059   It is scanned from left to the right, and the first valid argument is
1060   used. This makes it possible to provide a fallback paper size.
1061
1062   Example:
1063
1064     papersize /etc/papersize a4
1065
1066 o A local font directory has been prepended to the default font path; it
1067   defaults to /usr/local/share/groff/site-font.  Similar to the normal
1068   font searching process, files must be placed into a devXXX subdirectory,
1069   e.g.
1070
1071     /usr/local/share/groff/site-font/devps/FOO
1072
1073   for a PostScript font definition file FOO.
1074
1075
1076 VERSION 1.18
1077 ============
1078
1079 ***************************************************************************
1080 *                                                                         *
1081 *  PLEASE READ THE CHANGES BELOW REGARDING GROTTY, GROFF'S TTY FRONTEND.  *
1082 *                                                                         *
1083 ***************************************************************************
1084
1085 Troff
1086 -----
1087
1088 o Color support has been added to troff and pic (and to the device drivers
1089   grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
1090   follow).  A new function `defcolor' defines colors; the escape sequence
1091   `\m' sets the drawing color, the escape sequence `\M' specifies the
1092   background color for closed objects created with \D'...' commands.
1093   `\m[]' and `\M[]' switch back to the previous color.  `\m' and `\M'
1094   correspond to the new troff output command sets starting with `m' and
1095   `DF'.  The device-specific default color is called `default' and can't be
1096   redefined.
1097
1098   Use the `color' request to toggle the usage of colors (default is on); the
1099   read-only register `.color' is 0 if colors are not active, and non-zero
1100   otherwise.
1101
1102   The old `Df' output command is mapped onto `DFg'; all color output
1103   commands don't change the current font position (consequently, `Df'
1104   doesn't either).
1105
1106   Outputting color can be disabled in troff and groff with the option -c
1107   (it is always disabled in compatibility mode).  See the section on grotty
1108   for the GROFF_NO_SGR environment variable also.
1109
1110   For defining color components as fractions between 0 and 1, a new scaling
1111   indicator `f' has been introduced: 1f = 65536u.  For testing whether a
1112   color is defined (with .if and .ie), a new conditional operator `m' is
1113   available.
1114
1115   More details can be found in the groff_diff.7 manual page and in
1116   groff.texinfo.
1117
1118 o Similar to \m and \M, \f[] switches back to the previous font.  \fP
1119   (and \f[P]) is still valid for backwards compatibility.
1120
1121 o The new escape \F is the same as `.fam'; \F[] switches back to previous
1122   family -- \F[P] selects family `P'.
1123
1124 o Two new glyph symbols are available: `eu' is the official Euro symbol;
1125   `Eu' is a font-specific glyph variant.
1126
1127 o The new glyph symbols `t+-', `tdi', and `tmu' are textual variants of
1128   `+-', `di', and `mu', respectively.
1129
1130 o Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
1131   got the troff glyph name `mc'.
1132
1133 o -Tutf8 is now available on EBCDIC hosts.
1134
1135 o Strings can take arguments, using this syntax: \*[foo arg1 arg2 ...].
1136   Example:
1137
1138     .ds xxx This is a \\$1 test.
1139     \*[xxx nice]
1140
1141 o It is now possible to have whitespace between the first and second dot (or
1142   the name of the ending macro) to end a macro definition.  Example:
1143
1144     .de !
1145     ..
1146     .
1147     .de foo
1148     .  nop Hello, I'm `foo'.
1149     .  nop I will now define `bar'.
1150     .  de bar !
1151     .    nop Hello, I'm `bar'.
1152     .  !
1153     ..
1154
1155 o `.fn' is a new string-valued register which returns the (internal) real
1156   font name; styles and families are properly concatenated.
1157
1158 o Three new read/write registers `seconds', `minutes', and `hours' contain
1159   the current time, set at start-up of troff.  Use the `af' request to
1160   control their output format.
1161
1162 o The new request `fchar' can be used to provide fallback characters.  It
1163   has the same syntax as the `char' request; the only difference is that a
1164   character defined with `.char' hides the glyph with the same name in the
1165   current font, whereas a character defined with `.fchar' is checked only if
1166   the particular glyph isn't found in the current font.  This test happens
1167   before checking special fonts.
1168
1169 o In analogy to the `tmc' request, `.writec' is the same as `.write' but
1170   doesn't emit a final newline.
1171
1172 o The new request `itc' is a variant of `.it' for which a line interrupted
1173   with \c counts as one input line.
1174
1175 o Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
1176   with compatibility mode disabled during expansion of strings defined by
1177   them.
1178
1179 o The syntax of the `substring' request has been changed: The first
1180   character in a string now has index 0, the last character has index -1.
1181   Note that this is an incompatible change.
1182
1183 o To emit strings directly to the intermediate output, a new `output'
1184   request has been added; it is similar to `\!' used at the top level.
1185
1186 o `.hpf' has been extended.  It can now handle most TeX hyphenation
1187   pattern files without modification.  To do that, the commands \patterns,
1188   \hyphenation, and \endinput are recognized.  Please refer to groff_diff.7
1189   for more information.
1190
1191 o `hpfcode' is a new request to provide an input encoding mapping for the
1192   `hpf' request.
1193
1194 o The new request `hpfa' appends hyphenation patterns (`hpf' replaces
1195   already existing patterns).
1196
1197 o A new request `ami' (append macro indirect) has been added.  The first and
1198   second parameter of `ami' are taken from string registers rather than
1199   directly; this very special request is needed to make `trace.tmac'
1200   independent from the escape character (which might even be disabled).
1201
1202 o The new request `sizes' is similar to the `sizes' command in DESC files.
1203   It expects the same syntax; the data must be on a single line, and the
1204   final `0' can be omitted.
1205
1206 o `trin' (translate input) is a new request which is similar to `tr' with
1207   the exception that the `asciify' request uses the character code (if
1208   any) before the character translation.  Example:
1209
1210     .trin ax
1211     .di xxx
1212     a
1213     .br
1214     .di
1215     .xxx
1216     .trin aa
1217     .asciify xxx
1218     .xxx
1219
1220   The result is `x a'.  Using `tr', the result would be `x x'.
1221
1222 o The request `pvs' isn't new, but hasn't been documented before.  It
1223   adds vertical space after a line has been output.  This makes it an
1224   alternative to the `ls' request to produce double-spaced documents.
1225   The read-only register `.pvs' holds the current amount of the
1226   post-vertical line space.
1227
1228 o For compatibility with plan 9's troff, multiple `pi' requests are
1229   supported:
1230
1231     .pi foo
1232     .pi bar
1233
1234   is now equivalent to
1235
1236     .pi foo | bar
1237
1238 o A new escape sequence `\O' is available to disable and enable glyph
1239   output.  Please see groff_diff.7 and groff.texinfo for more details.
1240
1241 o The escapes `\%', `\&', `\)', and `\:' no longer cause an error in \X;
1242   they are ignored now.  Additionally `\ ' and `\~' are converted to
1243   single space characters.
1244
1245 o The default tab distance in nroff mode is now 0.8i to be compatible
1246   with UNIX troff.
1247
1248 o Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
1249   request was a bad idea.  Instead, it is now translated to `\%', and
1250   the default hyphenation character is again \[hy].  Note that the glyph
1251   \[shc] is not useful for typographic purposes; it only exists to have
1252   glyph names for all latin-1 characters.
1253
1254 Macro Packages
1255 --------------
1256
1257 o Peter Schaffter <df191@ncf.ca> has contributed a new major macro package
1258   called `mom', mainly for non-scientific writers, which takes care of
1259   many typographic issues.  It comes with a complete reference (in HTML
1260   format) and some examples.  `mom' has been designed to format documents
1261   for PostScript output only.
1262
1263 o Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
1264   the man macros for compatibility with older BSD releases.
1265
1266 o Both the man and mdoc macro packages now use the LL and LT registers for
1267   setting the line and title length, respectively (similar to those
1268   registers in the ms macro package).  If not set on the command line or
1269   in a macro file loaded before the macro package itself, they default to
1270   78n in nroff mode and 6.5i in troff mode.
1271
1272 o The `-xwidth' specifier in the mdoc macro package has been removed.  Its
1273   functionality is now integrated directly into `-width'.  Similarly,
1274   `-column' has been extended to provide this functionality also.
1275
1276 o A new macro `Ex' has been added to the mdoc macro package to document an
1277   exit status.
1278
1279 o The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
1280   now automatically loaded for -Tdvi), using a dvips special to load the EPS
1281   file.
1282
1283 o The trace.tmac package now traces calls to `am' also.  Additionally, it
1284   works in compatibility mode.
1285
1286 o `troff.1' has been split.  Differences to UNIX troff are now documented
1287   in the new man page `groff_diff.7'.
1288
1289 o `groff_mwww.7' has been renamed to `groff_www.7'.  The file mwww.tmac
1290   has been removed.
1291
1292 o `groff_ms.7' has been completely rewritten.  It now contains a complete
1293   reference to the ms macros.
1294
1295 o `groff_trace.7' documents the trace macro package.
1296
1297 o Changes in www.tmac:
1298
1299     Note that HTML support is still in alpha change, so it is rather likely
1300     that both macro names and macro syntax will change.  Some of the macros
1301     mentioned below aren't really new but haven't been documented properly
1302     before.
1303
1304     The following macros have been renamed:
1305
1306         MAILTO     -> MTO
1307         IMAGE      -> IMG
1308         LINE       -> HR
1309
1310     For consistency, the macros `URL', `FTL', and `MTO' now all have the
1311     address as the first parameter followed by the description.
1312
1313     By default, grohtml generates links to all section headings at the top
1314     of the document.  Use the new `LK' macro to specify a different place.
1315
1316     For specifying the background color and a background image, use the
1317     new macros `BCL' and `BGIMG', respectively.
1318
1319     The macro `NHR' has been added; it suppresses the generation of top and
1320     bottom rules which grohtml emits by default.
1321
1322     The new macro `HX' determines the cut-off point for automatic link
1323     generation to headings.
1324
1325     The image position parameter names in `IMG' have been changed to `-L',
1326     `-R', and `-C'.
1327
1328     New macro `PIMG' for inclusion of a PNG image (it automatically
1329     converts it into an EPS file if not -Thtml is used).
1330
1331     New macro `MPIMG' for putting a PNG image into the left or right margin
1332     (it automatically converts it into an EPS file if not -Thtml is used).
1333
1334     New macros `HnS', `HnE' to start and end a header line block.
1335
1336     New macro `DC' to produce dropcap characters.
1337
1338     New macro `HTL' to generate an HTML title line only but no H1 heading.
1339
1340     New macros `ULS' and `ULE' to start and end an unordered list.  The new
1341     macro `LI' inserts a list item.
1342
1343 Groff
1344 -----
1345
1346 o The new command line option `-c' disables color output (which is always
1347   disabled in compatibility mode).
1348
1349 Nroff
1350 -----
1351
1352 o Two new command line options `-c' and `-C'; the former passes `-c' to
1353   grotty (switching to the old output scheme); the latter passes `-C' to
1354   groff (enabling compatibility mode).
1355
1356 Pic
1357 ---
1358
1359 o New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
1360   `outlined'), and `shaded' are available.  `outline' sets the color of the
1361   outline, `shaded' the fill color, and `color' sets both.  Example:
1362
1363     circle shaded "green" outline "black" ;
1364
1365   Filled arrows always use the outline color for filling.
1366
1367   Color support for TeX output is not implemented yet.
1368
1369 Pic2graph
1370 ---------
1371
1372 o A new script contributed by Eric S. Raymond <esr@thyrsus.com>.  It
1373   converts a PIC diagram into a cropped image.  Since it uses gs and the PNM
1374   library, virtually all graphics formats are available for output.
1375
1376 Eqn2graph
1377 ---------
1378
1379 o A new script contributed by Eric S. Raymond <esr@thyrsus.com>.  It
1380   converts an EQN diagram into a cropped image.  Since it uses gs and the PNM
1381   library, virtually all graphics formats are available for output.
1382
1383 Groffer
1384 -------
1385
1386 o A new script contributed by Bernd Warken <bwarken@mayn.de>.  It displays
1387   groff files and man pages on X and tty, taking care of most parameters
1388   automatically.
1389
1390 Grog
1391 ----
1392
1393 o Documents using the mom macro package are recognized.
1394
1395 Grops
1396 -----
1397
1398 o Color support has been added.
1399
1400 o A new option `-p' is available to select the output paper size.  It has
1401   the same syntax as the new `papersize' keyword in the DESC file.
1402
1403 Grodvi
1404 ------
1405
1406 o By default, font sizes are now available in the range 5-10000pt, similar
1407   to PS fonts. If you want the old behaviour (i.e., font sizes at discrete
1408   values only), insert the following at the start of your document:
1409
1410     .if '\*[.T]'dvi' \
1411     .  sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \
1412              1728 1800 2000 2074 2200 2400 2488 2800 3600
1413
1414 o A new font file HBI (using cmssbxo10; this is slanted sans serif bold
1415   extended) has been added.
1416
1417 o Two font families are now available: `T' and `H'.
1418
1419 o EC and TC fonts have been integrated.  Use `-mec' (calling the file
1420   ec.tmac) to switch to them.  Those fonts give a much better coverage of
1421   the symbols defined by groff than the CM fonts.
1422
1423   Note that ec.tmac must be called before any language-specific files; it
1424   doesn't take care of hcode values.
1425
1426 o Color support has been added.  For drawing commands, colors are translated
1427   to gray values currently.
1428
1429 Grotty
1430 ------
1431
1432 o Color support has been added, using the SGR (ISO 6429, sometimes called
1433   ANSI color) escape sequences.
1434
1435 o SGR escape sequences are now used by default for underlining and bold
1436   printing also, no longer using the backspace character trick.  To revert
1437   to the old behaviour, use the `-c' switch.
1438
1439   Note that you have to use the `-R' option of `less' to make SGR escapes
1440   display correctly.  On the other hand, terminal programs and consoles like
1441   `xterm' which support SGR sequences natively can directly display the
1442   output of grotty.  Consequently, the options `-b', `-B', `-u', and `-U'
1443   work only in combination with `-c' and are ignored silently otherwise.
1444
1445   For the `man' program, it may be necessary to add the `-R' option of
1446   `less' to the $PAGER environment variable (or $MANPAGER, depending on the
1447   used `man' program); alternatively, you can use `man's `-P' option (or
1448   adapt its configuration file accordingly).  See man(1) for more details.
1449
1450 o If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
1451   reverting to the old behaviour.
1452
1453 o A new special \X'tty: sgr n' has been added; if n is non-zero or missing,
1454   enable SGR output (the default).
1455
1456 o If the new option `-i' is used (only in SGR mode), grotty sends escape
1457   sequences to set the italic font attribute instead of the underline
1458   attribute for italic fonts.  Note that many terminals don't have support
1459   for this (including xterm).
1460
1461 Grohtml
1462 -------
1463
1464 o Color support for glyphs has been added.
1465
1466 o New option `-h' to select the style of headings in HTML output.
1467
1468 o New option `-b' to set the background colour to white.
1469
1470 o New options `-a' and `-g' to control the number of bits for anti-aliasing
1471   used for text and graphics, respectively.  Default value is 4; 0 means
1472   no anti-aliasing.
1473
1474 o groff character/glyph entities now map onto HTML 4 character entities.
1475
1476 Grolbp
1477 ------
1478
1479 o Valid paper sizes are now specified as with the new `papersize' keyword
1480   in the DESC file.  Specifically, the old custom paper type format
1481   `custAAAxBBB' is no longer supported.
1482
1483 Miscellaneous
1484 -------------
1485
1486 o A new manual page `ditroff.7' is available.
1487
1488 o The groff texinfo manual is installed now, together with a bunch
1489   of examples.
1490
1491 o A new keyword `papersize' has been added to the DESC file format.  Its
1492   argument is either
1493
1494   . a predefined paper format (e.g. `A4' or `letter')
1495
1496   . a file name pointing to a file which must contain a paper size
1497     specification in its first line (e.g. `/etc/papersize')
1498
1499   . a custom paper size definition like `35c,4i'
1500
1501   See groff_font(5) for more details.  This keyword only affects the
1502   physical dimensions of the output medium; grops, grolj4, and grolbp use it
1503   currently.  troff completely ignores it.
1504
1505
1506 VERSION 1.17.2
1507 ==============
1508
1509 This is major bug-fixing release which should replace 1.17.1.
1510
1511 Troff
1512 -----
1513
1514 o The `IMAGE' macro in www.tmac has changed: Now the optional 2nd parameter
1515   gives the horizontal image location (left, centered, or right), and the
1516   optional 3rd and 4th parameter the image dimensions.
1517
1518
1519 VERSION 1.17.1
1520 ==============
1521
1522 This is mainly a bug-fixing release.
1523
1524 Troff
1525 -----
1526
1527 o Two new requests `de1' and `am1' which are similar to `de' and `am' but
1528   with compatibility mode disabled during expansion of macros defined by
1529   them.
1530
1531 o Added request `brp'.  This is the same as `\p'.
1532
1533 o Similar to other versions of troff, the `ns' request now works in all
1534   diversions, not only in the top-level one.
1535
1536 o New read-only number register `.ns'.  Returns 1 if in no-space mode,
1537   0 otherwise.
1538
1539 Nroff
1540 -----
1541
1542 o Options -p (pic) and -t (tbl) added.
1543
1544 o The environment variable GROFF_BIN_PATH is now checked before PATH for
1545   finding groff.
1546
1547 Grohtml
1548 -------
1549
1550 o New option `-D dir' to specify a directory in which all images are placed.
1551
1552 o New option `-I stem' to specify an image name stame.  If not given,
1553   `grohtml-XXX' is used (`XXX' is the process ID).
1554
1555
1556 VERSION 1.17
1557 ============
1558
1559 Groff
1560 -----
1561
1562 o `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'.  The
1563   old behaviour has been changed to overcome problems with platforms which
1564   have an 8+3 file name limit, and platforms which have other versions of
1565   troff installed also.  Additionally, all macro files have been renamed
1566   using the latter scheme to avoid 8+3 name clashes.
1567
1568 o The new environment variable GROFF_BIN_PATH is checked for programs groff
1569   is calling (preprocessors, troff, and output devices) before PATH.  If not
1570   set, it defaults to the directory where the groff binary is located.
1571   Previously, it was PATH only.  The nroff script only uses GROFF_BIN_PATH
1572   to find the groff binary but passes both the GROFF_BIN_PATH and PATH
1573   environment variables to groff.
1574
1575 Troff
1576 -----
1577
1578 o The mdoc package has been completely rewritten, using the full power of
1579   GNU troff to remove limitations of Unix troff (which is no longer
1580   supported).  Most important changes are:
1581
1582   . No argument limit
1583   . Almost all macros are parsed and callable (if it makes sense)
1584   . `.Lb': prints library names
1585   . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>' has
1586     been withdrawn
1587   . Updated `.St' command
1588   . `.Fx': prints FreeBSD
1589   . `.Ox': prints OpenBSD
1590   . `.Bsx': prints BSD/OS
1591   . `.Brq', `.Bro', `.Brc': brace enclosure macros
1592   . `.Bd -centered': center lines
1593   . `.Bl -xwidth <string>': interpret <string> and use the resulting width
1594   . Support for double-sided printing (-rD1 command line switch)
1595   . Support for 11pt and 12pt document sizes (-rS11, -rS12 command line
1596     switches)
1597
1598   `groff_mdoc.7' replaces `groff_mdoc.samples.7'; it now completely
1599   documents the mdoc package.
1600
1601   Great care has been taken to assure backwards compatibility.  If you
1602   encounter any abnormal results, please report them to bug-groff@gnu.org.
1603
1604 o A new command line option for the `man' macros (similar to the `mdoc'
1605   package) has been implemented: `-rcR=1' (now the default in nroff mode)
1606   produces one single, very long page instead of multiple pages.  `-rcR=0'
1607   deactivates it.
1608
1609 o The `return' request has been added to return immediately from a macro.
1610
1611 o A new request `nop' (no operation) has been added which is similar to
1612   `if 1'.  For example,
1613
1614     .if t \{\
1615     Hallo!
1616     .\}
1617
1618   can now be written as
1619
1620     .if t \{\
1621     .  nop Hallo!
1622     .\}
1623
1624 o `box' and `boxa' are two new requests which behave similarly to `di' and
1625   `da' but don't include a partially filled line (which is restored after
1626   ending the diversion).
1627
1628 o The `asciify' request has been extended to `unformat' space characters
1629   and some other escape sequences also.
1630
1631   `\ ' is no longer unformatted as a space but remains an unpaddable,
1632   unbreakable space character.
1633
1634 o The new `unformat' request is similar to `asciify' but only handles space
1635   characters and tabs specially if the diversion is reread, retaining font
1636   information.  This makes it possible to reformat diversions; for example
1637   the following
1638
1639     .ll 3i
1640     .
1641     a01 a02 a03 a04 a05 a06 a07 a08 a09 a10.
1642     .
1643     .box box1
1644     .ev 1
1645     .nf
1646     \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P]
1647     .br
1648     .ev
1649     .box
1650     .
1651     c01 c02 c03 c04 c05 c06 c07 c08 c09 c10.
1652     .
1653     .unformat box1
1654     .box1
1655
1656   gives
1657
1658     a01  a02  a03  a04 a05 a06 a07
1659     a08 a09 a10.  c01 c02 c03  c04
1660     c05  c06 c07 c08 c09 c10.  b01
1661     b02 b03 b04 b05  b06  b07  b08
1662     b09 b10.
1663
1664   Without the `unformat' request, space characters are converted to word
1665   space nodes which are no longer stretchable, and the result would be
1666
1667     a01  a02  a03  a04 a05 a06 a07
1668     a08 a09 a10.  c01 c02 c03  c04
1669     c05  c06 c07 c08 c09 c10.  b01
1670     b02 b03 b04 b05 b06 b07 b08
1671     b09 b10.
1672
1673 o The new request `linetabs' controls the `line-tabs' mode.  In line-tabs
1674   mode, tab distances are computed relative to the (current) output line.
1675   Otherwise they are taken relative to the input line.  For example, the
1676   following
1677
1678     .ds x a\t\c
1679     .ds y b\t\c
1680     .ds z c
1681     .ta 1i 3i
1682     \*x
1683     \*y
1684     \*z
1685
1686   yields
1687
1688     a         b         c
1689
1690   In line-tabs mode, the same code gives
1691
1692     a         b                   c
1693
1694   The new read-only number register `.linetabs' returns 1 if in line-tabs
1695   mode, and 0 otherwise.
1696
1697 o Two new requests `tm1' and `tmc' have been added to improve writing
1698   messages to the terminal.  `tm1' is similar to `tm' but allows leading
1699   whitespace.  `tmc' is similar to `tm1' but doesn't emit a final newline.
1700
1701 o For compatibility with sqtroff, the request `output' has been added.
1702   The behaviour is similar to `\!' at the top-level, that is, it directly
1703   inserts its argument into the intermediate output format.  The syntax
1704   is similar to .tm1, allowing leading whitespace.
1705
1706 o The new `spreadwarn' request makes troff warn if spaces in an output
1707   line are widened by a given limit or more.
1708
1709 o Use `warnscale' to change the scaling indicator troff uses for
1710   warning messages.
1711
1712 o A new request `dei' (define indirect) has been added.  The first and
1713   second parameter of `dei' are taken from string registers rather than
1714   directly; this very special request is needed to make `trace.tmac'
1715   independent from the escape character (which might even be disabled).
1716
1717 o It is now possible to save and restore the escape character with two new
1718   requests `ecs' and `ecr'.
1719
1720 o The new escape sequence \B'...' is an analogon to `\A': If the string
1721   within the delimiters is a valid numeric expression, return character `1',
1722   and `0' otherwise.
1723
1724 o The new escape sequence `\:' inserts a zero-width break point.  This is
1725   similar to `\%' but without a soft hyphen character.
1726
1727 o The `tr' request can now map characters onto `\~'.
1728
1729 o Calling the `fam' request without an argument switches back to the
1730   previous font family.
1731
1732 o The new read-only register `.int' is set to a positive value if the last
1733   output line is interrupted (i.e., if the input line contains `\c').
1734
1735 o The `writem' request is not new, but hasn't been documented before.  This
1736   is similar to `write' but instead of a string the contents of a given
1737   macro or string is written to a stream.
1738
1739 o The read/write number register `hp' to get/set the current horizontal
1740   position relative to the input line isn't new but hasn't been documented
1741   properly before.
1742
1743 o `\X' and `\Y' are now transparent for end-of-sentence recognition.
1744
1745 o The `cu' request in nroff mode now works as documented (i.e., it
1746   underlines spaces also).
1747
1748 Grog
1749 ----
1750
1751 o The grog script now works in non-compatibility mode also (which is the
1752   default).  As usual, use the `-C' option to activate compatibility mode.
1753
1754 Grops
1755 -----
1756
1757 o A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has
1758   been added to select a different prologue file.
1759
1760 o The effect of the former `-mpsnew' option to access more Type 1 characters
1761   is now the default and no longer available.  To get the old behaviour
1762   (i.e., emulation of some glyphs by composition) use `-mpsold'.
1763
1764 Miscellaneous
1765 -------------
1766
1767 o For security reasons the following changes have been done:
1768
1769   . The tmac.safer file has been replaced with a built-in solution; .open,
1770     .opena, .pso, .sy, and .pi are completely disabled in safer mode (which
1771     is the default); to enable these requests the `-U' command line flag
1772     must be used.
1773
1774   . Files specified with the .mso request or given with the `-m' command
1775     line option, and hyphenation patterns loaded with `.hpf' are no longer
1776     searched in the current directory by default (besides the usual tmac
1777     path).  Instead, the home directory is used.  To add the current
1778     directory, either use the `-U' or `-M' command line option or set the
1779     GROFF_TMAC_PATH environment variable to an appropriate value.
1780
1781   . troffrc, troffrc-end, and eqnrc are neither searched in the current nor
1782     in the home directory (even if -U is given).  Use -M or GROFF_TMAC_PATH
1783     to change that.
1784
1785   . Similarly, the current directory is no longer part of the font path.
1786     Use the `-F' command line option or the GROFF_FONT_PATH environment
1787     variable if you really need the current directory.
1788
1789 o groff now installs its data files into /usr/local/share/groff/<version> by
1790   default, following the GNU standard.  Additionally, a local tmac directory
1791   (by default /usr/local/share/groff/site-tmac) is scanned before the
1792   standard tmac directory.  Wrapper files for system-specific macro packages
1793   (if necessary) are put into /usr/local/lib/groff/site-tmac; this directory
1794   is searched before the local tmac directory.
1795
1796 o All programs now have option `-v' to show the version number; they exit
1797   immediately afterwards, following the GNU standards.  Additionally,
1798   `--version' and `--help' have been added, doing the obvious actions.
1799
1800
1801 VERSION 1.16.1
1802 ==============
1803
1804 Bug fixes only; no user-visible changes.
1805
1806
1807 VERSION 1.16
1808 ============
1809
1810 Groff
1811 -----
1812
1813 The anachronism of calling the man macro package with `-man' has been fixed;
1814 now you can say `-m man' also. The same is true for `ms', `me', `markup',
1815 `mandoc', and `mdoc'.
1816
1817 A new switch `-g' for calling `grn' is available.
1818
1819 A new switch `-G' for calling `grap' is available.
1820
1821 EBCDIC support for tty devices has been added.  On such hosts, IBM code page
1822 1047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for
1823 the moment, -Tutf8).  Note that non-tty devices are not yet supported (but
1824 installed).
1825
1826 Troff
1827 -----
1828
1829 A new command line option to the `man' macros is available: `-rSxx' (with
1830 `xx' either 10, 11, or 12) to set the base document font size to `xx'
1831 points.  Additionally, `.SH' now produces larger headings than `.SS'.
1832
1833 To solve a problem with the .PSPIC macro which needs the `-U' switch of
1834 troff to access an external program (psbb), a new request .psbb is now
1835 available to get the bounding box of a PostScript image file.  The values
1836 (in PostScript units) are returned in the new read-only number registers
1837 `llx', `lly', `urx', and `ury'.  Consequently, .PSPIC has been adapted to
1838 use the new request, and the psbb program has been removed.
1839
1840 A new predefined writable number register, `year', has been added.  It
1841 contains the current year.
1842
1843 A new read-only register, `.Y', has been added.  It contains the revision
1844 number of the groff package.
1845
1846 `\fP' now behaves as expected in situations like the following where the
1847 font `foo' is undefined:
1848
1849   .B bold text
1850   normal text \f[foo]bar\fP normal text
1851
1852 Previously, the text after \fP appeared as bold.
1853
1854 The `substring' request is not new, but hasn't been documented before.
1855
1856 The predefined `.T' string register (which holds the current output device)
1857 is not new, but hasn't been documented before.
1858
1859 A new request `length' computes the length of a string and returns it in
1860 a number register.
1861
1862 The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
1863 (a debugging aid) are now installed also.
1864
1865 A new resource file, `troffrc-end', is now available.  It is invoked after
1866 all user-specified macros.  Currently used by the html device to include
1867 tmac.html; thus no need for users to specify -mhtml anymore.
1868
1869 The soft hyphen character now has a glyph name: `shc'.
1870
1871 The latin-1 character 173 (PS name `periodcentered') has got the troff glyph
1872 name `pc' and is no longer intermixed with the symbol character `md' (PS
1873 name `mathdot').
1874
1875 ASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq'
1876 (which is an alias to character `"').
1877
1878 ASCII character 39 (PS name `quoteright') has got the troff glyph name `cq'
1879 (which is an alias to character "'").
1880
1881 Some additions to the font description files have been implemented for
1882 better support of HTML output:
1883
1884   The new format of lines in the `charset' subsection of font description
1885   files is
1886
1887      name metrics type code [entity_name] [-- comment]
1888
1889   Currently, only the font description files in devhtml use the optional
1890   entity_name string to define glyph entities in HTML.  Everything after the
1891   entity_name field is ignored; in case this field isn't used, two hyphen
1892   characters are now necessary to start a comment.
1893
1894   Two new requests are available in DESC files (currently used only with
1895   grohtml):
1896
1897     use_charnames_in_special
1898       This command indicates that troff should encode named characters
1899       inside special commands.
1900
1901     pass_filenames
1902       requests that troff tells the driver the source file name being
1903       processed.  This is achieved by another tcommand: `F filename'.
1904
1905 Grotty
1906 ------
1907
1908 Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
1909
1910 Grohtml
1911 -------
1912
1913 Added .LINE macro to tmac.arkup.
1914
1915 The obsolete `.LINK' macro has been removed.
1916
1917 .URL, .FTP, and .MAILTO macros now accept an optional third argument which
1918 is immediately appended to the second argument (to be used with
1919 punctuation, for example).
1920
1921 Grodvi
1922 ------
1923
1924 The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
1925
1926 A new font file CWI (using cmitt10; this is typewriter italic) has been
1927 added.
1928
1929 Grolbp
1930 ------
1931
1932 A new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser
1933 printers).  This code has been contributed by Francisco Andres Verdu
1934 <pandres@dragonet.es>.
1935
1936 Grn
1937 ---
1938
1939 A new preprocessor to process gremlin pictures.  It is based on the
1940 original Berkeley implementation of grn, written by David Slattengren
1941 and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
1942 <daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
1943
1944 Pic
1945 ---
1946
1947 Added the `srand' command to set the seed for a new sequence of
1948 pseudo-random numbers to be returned by `rand'.
1949
1950 Gxditview
1951 ---------
1952
1953 Simplified installation: The Imakefile is now configured (by groff's
1954 configure script).
1955
1956 Documentation
1957 -------------
1958
1959 Three new man pages are available: groff_tmac.5 (documenting how troff macros
1960 are accessed and where they are found), groff.7 (a short reference of the GNU
1961 roff language), and roff.7 (a general survey on GNU troff).
1962
1963 Miscellaneous
1964 -------------
1965
1966 A partial port to win32 (for use with Microsoft Visual C++ 6.0) is now part
1967 of the distribution.  It has been contributed by Blake McBride
1968 <blake@florida-software.com>.
1969
1970 More information about programs, macros, documentation, etc., which is
1971 related to groff has been collected in the file `MORE.STUFF'.
1972
1973
1974 VERSION 1.13, 1.14, 1.15
1975 ========================
1976
1977 Bug fixes only; no user-visible changes.
1978
1979
1980 VERSION 1.12
1981 ============
1982
1983 Finally, there are new maintainers for groff.  Mailing lists and a development
1984 repository are available also. See the file README for details.  Not all
1985 reported bugs could be fixed, so please send mails again if something is
1986 still not working.
1987
1988 Most of the installation problems should have vanished now (most
1989 notably the $(tmac_wrap) bug).
1990
1991 There is now a man page called groff_man.7 which documents the basics of the
1992 -man macros.  It has been originally written by Susan G. Kleinmann
1993 <sgk@debian.org>.
1994
1995 A (still incomplete) groff reference manual in texinfo format originally
1996 contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
1997
1998 me.man and msafer.man have been renamed to groff_me.man
1999 resp. groff_msafer.man for consistency.
2000
2001 Default strings for macros in doc-common resp. tmac.an no longer contain the
2002 word `UNIX'.
2003
2004 groff should now be Y2k safe (fixes contributed by Paul Eggert
2005 <eggert@twinsun.com>).
2006
2007 Following the GNU standards, groff now uses the prefix `/usr/local/' as
2008 the default instead of replacing an existent groff binary.
2009
2010 groff, troff, nroff, and pic now support the -U flag to activate unsafe
2011 behaviour (without -msafer); the -S flag for using the -msafer macros is now
2012 the default.
2013
2014 Grohtml
2015 -------
2016
2017 This is a new output device for producing HTML output contributed by Gaius
2018 Mulley <gaius@glam.ac.uk>.  It is still very alpha but has been included
2019 into the distribution so that a lot of people have a chance to test it.  Bug
2020 reports are highly welcome.
2021
2022 Grolj4
2023 ------
2024
2025 Duplex printing support has been contributed by Jeffrey Copeland
2026 <jeff@opennt.com>.
2027
2028 Soelim
2029 ------
2030
2031 Added -I option for defining include paths (patch contributed by Peter
2032 Miller <peterm@jna.com.au>).
2033
2034 Gxditview
2035 ---------
2036
2037 Fallback resources added (patch contributed by Larry Jones
2038 <larry.jones@sdrc.com>).
2039
2040 Will now support 8 gray levels.
2041
2042 mm
2043 --
2044
2045 New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
2046
2047
2048 VERSION 1.11
2049 ============
2050
2051 Complete documentation for pic is now in the file doc/pic.ms.  It was
2052 contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
2053 *not* volunteering to take over groff as he is way overworked with
2054 half a dozen other projects.
2055
2056
2057 VERSION 1.10
2058 ============
2059
2060 The directory where data files are installed has been changed from
2061 /usr/local/lib/groff to /usr/local/share/groff to comply with the
2062 latest GNU coding standards.
2063
2064 By default groff programs with Unix equivalents are installed with a
2065 "g" prefix unless there is an existing (non-groff) troff installation.
2066
2067 A new approach is used to make system macro packages available to
2068 groff.  Instead of simply including /usr/lib/tmac in the list of
2069 directories searched by groff, the installation process creates for
2070 each system macro package a wrapper macro package in the groff macro
2071 directory that references the system macro package.  The groff macro
2072 packages are now installed with a leading "g" prefix if there is a
2073 system version of the same macro package, and otherwise without the
2074 "g" prefix, with the exception that the groff version of -me which is
2075 always installed as -me.
2076
2077 There is a new device, lj4, for the HP LaserJet 4 (and PCL5
2078 compatibles).
2079
2080 Groff
2081 -----
2082
2083 groff has a -S option that prevents the use of unsafe features in pic
2084 and troff.  This uses a new -S option of pic and the -msafer macros
2085 for troff.
2086
2087 Troff
2088 -----
2089
2090 The `blm' request specifies a macro to be invoked when a blank line is
2091 encountered.
2092
2093 Pic
2094 ---
2095
2096 A -S (safer) option disables the sh command.
2097
2098 Grops
2099 -----
2100
2101 The -m option enables manual feed.
2102
2103
2104 VERSION 1.09
2105 ============
2106
2107 \(rn now produces a character that has the traditional metrics,
2108 and form corners with \(ul and \(br.  This means that it does not
2109 align properly with \(sr.  Instead there's a new character
2110 \[radicalex] which aligns with \(sr; this is used by eqn for doing
2111 square roots.
2112
2113 Troff
2114 -----
2115
2116 The `pso' request allows you to read from the standard output of a
2117 command.
2118
2119 Grops
2120 -----
2121
2122 The PSPIC macro has options to allow the horizontal alignment of the
2123 graphic to be specified.
2124
2125
2126 VERSION 1.08
2127 ============
2128
2129 Troff
2130 -----
2131
2132 The escape sequence \V[xxx] interpolates the value of the
2133 environment variable xxx.
2134
2135 Tbl
2136 ---
2137
2138 The decimalpoint option can be used to specify the character to be
2139 recognized as the decimal point character in place of the default
2140 period.
2141
2142
2143 VERSION 1.07
2144 ============
2145
2146 Groff
2147 -----
2148
2149 The environment variable GROFF_COMMAND_PREFIX can be used to control
2150 whether groff looks for `gtroff' or `troff' (similarily for the
2151 preprocessors.)
2152
2153 Troff
2154 -----
2155
2156 Multilingual hyphenation is supported by new `hpf' and `hla' requests,
2157 and by a `\n[.hla]' number register.  The -H option has been removed.
2158 Files of hyphenation patterns can have comments.
2159
2160 When a font cannot be found, troff gives a warning (of type `font',
2161 enabled by default) instead of an error.
2162
2163 There's a new request `trnt' that's like `tr' except that it doesn't
2164 apply to text transparently throughput into a diversion with \!.
2165
2166 Tbl
2167 ---
2168
2169 There is a `nokeep' option which tells tbl not to use diversions to
2170 try to keep the table on one page.
2171
2172 Eqn
2173 ---
2174
2175 Setting the parameter `nroff' to a non-zero value causes `ndefine' to
2176 behave like `define' and `tdefine' to be ignored.  This is done by
2177 eqnrc when the current device is ascii or latin1.  There's a `neqn'
2178 script that just does `eqn -Tascii'.
2179
2180 Grotty
2181 ------
2182
2183 grotty uses whatever page length was specified using the `pl' request
2184 rather than using the paperlength command in the DESC file.  The
2185 paperwidth command in the DESC file is also ignored.
2186
2187
2188 VERSION 1.06
2189 ============
2190
2191 The programs in groff that have Unix counterparts can now be installed
2192 without a leading `g' prefix.  See the `g' variable in the Makefile.
2193
2194 The g?nroff script simulates the nroff command using groff.
2195
2196 New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
2197 \(an.  See groff_char(7).
2198
2199 ^L is now a valid input character.
2200
2201 Groff
2202 -----
2203
2204 The Xps pseudo-device has disappeared.  Instead there is a new -X
2205 option that tells groff to use gxditview instead of the usual
2206 postprocessor. (So instead of -TXps, use -XTps or just -X if your
2207 default device is ps.)
2208
2209 The postprocessor to be used for a particular device is now specified
2210 by a `postpro' command in the DESC file rather than being compiled
2211 into groff.  Similarly the command to be used for printing (with the
2212 -l option) is now specified by a `print' command in the DESC file.
2213
2214 The groff command no longer specifies eqnchar as an input file for
2215 eqn.  Instead eqn automatically loads a file `eqnrc'.  The groff
2216 command no longer passes the -D option to eqn.  Instead eqnrc sets the
2217 draw_lines parameter.
2218
2219 The groff command no longer tells troff to load a device-specific
2220 macro file.  This is handled instead by the `troffrc' file, which is
2221 always loaded by troff.
2222
2223 The shell script version of groff has been removed.
2224
2225 Troff
2226 -----
2227
2228 The `rchar' request removes a character definition established with `char'.
2229
2230 Compatibility mode is disabled and the escape character is set to `\'
2231 while a character definition is being processed.
2232
2233 The `\#' escape sequence is like `\"' except that the terminating
2234 newline is ignored.
2235
2236 The `shc' request tells troff which character to insert (instead of
2237 the default \(hy) when a word is hyphenated at a line break.
2238
2239 A font name of 0 (zero) in the DESC file causes no font to be
2240 mounted on the corresponding font position.  This is useful for
2241 arranging that special fonts are mounted on positions on which users
2242 are not likely explicitly to mount fonts.  All groff devices now avoid
2243 initially mounting fonts on positions 5-9.
2244
2245 The `do' request allows a single request or macro to be interpreted
2246 with compatibility mode disabled.
2247
2248 troff automatically loads a file `troffrc' before any other input file.
2249 This can be prevented with the -R option.  This file is responsible
2250 for loading the device-specific macros.
2251
2252 Pic
2253 ---
2254
2255 The -x option has been removed and a -n option has been added.  By
2256 default, pic now assumes that the postprocessor supports groff
2257 extensions.  The -n option tells pic to generate output that works
2258 with ditroff drivers.  The -z option now applies only to TeX mode.
2259
2260 The -p option has been removed. Instead if the -n option is not
2261 specified, pic generates output that uses \X'ps: ...' if the \n(0p
2262 register is non-zero and tmac.ps sets this register to 1.
2263
2264 In places where you could 1st or 5th you can now say `i'th or `i+1'th
2265 (the quotes are required).
2266
2267 Eqn
2268 ---
2269
2270 Eqn now automatically reads a file `eqnrc' from the macro directory.
2271 This performs the same role that the eqnchar files used to.  This can
2272 be prevented by the -R option.
2273
2274 Setting the draw_lines parameter to a non-zero value causes lines to
2275 be drawn using \D rather than \l.  The -D option is now obsolete.
2276
2277 `uparrow', `downarrow' and `updownarrow' can be used with `left' and
2278 `right'.
2279
2280 The amount of extra space added before and after lines containing
2281 equations can be controlled using the `body_height' and `body_depth'
2282 parameters.
2283
2284 Grops
2285 -----
2286
2287 Font description files have been regenerated from newer AFM files.
2288 You can get access to the additional characters present in the text
2289 fonts in newer PostScript printers by using -mpsnew.
2290
2291 The default value of the -b option is specified by a `broken' command
2292 in the DESC file.
2293
2294 With the -g option, grops generates PostScript code that guesses
2295 the page height.  This allows documents to be printed on both letter
2296 (8.5x11) and A4 paper without change.
2297
2298 Grodvi
2299 ------
2300
2301 ISO Latin-1 characters are available with -Tdvi.  Format groff_char(7)
2302 with groff -Tdvi for more information.
2303
2304 Grotty
2305 ------
2306
2307 The -mtty-char macros contain additional character definitions for
2308 use with grotty.
2309
2310 Macros
2311 ------
2312
2313 In previous releases the groff -me macros treated the $r and $R number
2314 registers in a way that was incompatible with the BSD -me macros.  The
2315 reason for this was that the approach used by the BSD -me macros does
2316 not work with low resolution devices such as -TX75 and -TX100.
2317 However, this caused problems with existing -me documents.  In this
2318 release, the vertical spacing is controlled by the $v and $V registers
2319 which have the same meaning as $r and $R in earlier groff releases.
2320 In addition, if the $r or $R register is set to a value that would be
2321 correct for for the BSD -me macros and a low resolution device is not
2322 being used, then an appropriate value for the $v or $V register
2323 is derived from the $r or $R register.
2324
2325 The groff -me macros work with -C and (I think) with Unix troff.
2326
2327 For backward compatibility with BSD -me, the \*{ and \*} strings are
2328 also available as \*[ and \*].  Of course, \*[ is only usable
2329 with -C.
2330
2331 The \*T string has been deleted.  Use \*(Tm instead.
2332
2333 Xditview
2334 --------
2335
2336 The `n', Space and Return keys are bound to the Next Page action.  The
2337 `p', BackSpace and Delete keys are bound to the Previous Page action.
2338 The `q' key is bound to the Quit action.
2339
2340 The `r' key is bound to a rerasterize action that reruns groff, and
2341 redisplays the current page.
2342
2343
2344 VERSION 1.05
2345 ============
2346
2347 Pic
2348 ---
2349
2350 There is a alternative assignment operator `:=' which interacts
2351 differently with blocks.
2352
2353 There is a new command `command', which allows the values of variables
2354 to be passed through to troff or TeX.
2355
2356 The `print' command now accepts multiple arguments.
2357
2358 String comparison expressions (using `==' or `!=') are allowed in more
2359 contexts.
2360
2361 Grotty
2362 ------
2363
2364 Horizontal and vertical lines drawn with \D'l ...' are rendered
2365 using -, | and + characters.  This is intended to give reasonable
2366 results with boxed tables.  It won't work well with pic.
2367
2368 Macros
2369 ------
2370
2371 The -mdoc macros have been upgraded to the version in the second
2372 Berkeley networking release.  This version is not completely
2373 compatible with earlier versions; the old version is still available
2374 as -mdoc.old.  The grog script has been enhanced so that it can
2375 usually determine whether a document requires the old or new versions.
2376
2377 With -TX75, -TX100 and -TXps, the PSPIC macro produces a box
2378 around where the picture would appear with -Tps.
2379
2380
2381 VERSION 1.04
2382 ============
2383
2384 An implementation of the -mm macros is included.
2385
2386 The directory in which temporary files are created can be controlled
2387 by setting the GROFF_TMPDIR or TMPDIR environment variables.
2388
2389 Pic
2390 ---
2391
2392 Some MS-DOS support (see pic/make-dos-dist).
2393
2394 Grops
2395 -----
2396
2397 There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
2398 which make it possible to have substitute characters that are
2399 displayed when previewing with -TXps but ignored when printing with
2400 grops.
2401
2402 Xditview
2403 --------
2404
2405 Support for scalable fonts.
2406
2407
2408 VERSION 1.03
2409 ============
2410
2411 No changes other than bug fixes.
2412
2413
2414 VERSION 1.02
2415 ============
2416
2417 There is an implementation of refer and associated programs.  groff -R
2418 preprocesses with grefer; no mechanism is provided for passing
2419 arguments to grefer because most grefer options have equivalent
2420 commands which can be included in the file.  grog also supports refer.
2421
2422 There is an alternative perl implementation of the grog script.
2423
2424 The code field in lines in the charset section of font description
2425 files is now allowed to contain an arbitrary integer (previously it
2426 was required to lie between 0 and 255).  Currently grops and grodvi
2427 use only the low order 8 bits of the value.  Grodvi uses the
2428 complete value; however, this is unlikely to be useful with
2429 traditional TeX tools (.tfm files only allow 8 bit character codes.)
2430
2431 Left and right double quotes can be obtained with \(lq and \(rq
2432 respectively.
2433
2434 There is a new program called pfbtops which translates PostScript
2435 fonts in pfb format to ASCII.
2436
2437 A slightly modified version of the Berkeley tmac.doc is included.
2438
2439 Troff
2440 -----
2441
2442 In long escape names the closing ] is now required to be at the same
2443 input level as the opening [.
2444
2445 The \A'S' escape sequence returns 1 or 0 according as S is or is not
2446 suitable for use as a name.
2447
2448 \~ produces an unbreakable space that can be stretched when the line
2449 is adjusted.
2450
2451 The `mso' request is like the `so' request except that it searches for
2452 the file in the same directories in which tmac.X is searched for when
2453 the -mX option is given.
2454
2455 The escape sequence `\R' is similar to the `nr' request.
2456
2457 Eqn
2458 ---
2459
2460 A new `special' primitive allows you to add new types of unary
2461 constructs by writing a troff macro.
2462
2463 Pic
2464 ---
2465
2466 The implementation no longer uses gperf.
2467
2468 Grops
2469 -----
2470
2471 The compile-time -DBROKEN_SPOOLER option has been replaced by a
2472 BROKEN_SPOOLER_FLAGS option.  This allows more precise control over
2473 how grops should workaround broken spoolers and previewers.  There is
2474 a new -b option that can change this at run-time.
2475
2476 Grops now generates PostScript that complies with version 3.0 of the
2477 Document Structuring Convention.
2478
2479 The resource management component of grops (the part that deals with
2480 imported documents and downloadable fonts) has been rewritten and now
2481 supports version 3.0 of the Document Structuring Conventions.  The
2482 %%DocumentFonts comment is no longer supported; you must use the
2483 %%Document{Needed,Supplied}{Fonts,Resources} comments instead
2484 (or as well.)
2485
2486 tmac.psatk contains some macros that support the mechanism used by the
2487 Andrew Toolkit for including PostScript graphics in troff documents.
2488
2489 Xditview
2490 --------
2491
2492 Parts of xditview have been rewritten so that it can be used with the
2493 output of gtroff -Tps.  groff -TXps runs gtroff -Tps with
2494 gxditview.
2495
2496 There is a new menu entry `Print' which brings up a dialog box for
2497 specifying a command with which the file being previewed should be
2498 printed.
2499
2500 Xditview now uses imake.
2501
2502
2503 VERSION 1.01
2504 ============
2505
2506 The groff command now understands the gtroff `-a' and `-i' options.
2507
2508 With the `m' and `n' scale indicators, the scale factor is rounded
2509 horizontally before being applied.  This makes (almost) no difference
2510 for devices with `hor' equal to 1, but it makes groff with -Tascii or
2511 -Tlatin1 behave more like nroff in its treatment of these scale
2512 indicators.  Accordingly tmac.tty now calls the `nroff' request so
2513 that the `n' condition is true.
2514
2515 The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
2516 have been made to work at least somewhat with -C.  In particular the
2517 special characters defined by these macros now work with -C.
2518
2519 groff -Tdvi -p now passes pic the -x flag; this enables filling
2520 of arrowheads and boxes, provided that your dvi driver supports the
2521 latest version of the tpic specials.
2522
2523 Eqn
2524 ---
2525
2526 There is a new `-N' option that tells eqn not to allow newlines in
2527 delimiters.  This allows eqn to recover better from missing closing
2528 delimiters.  The groff command passes on a `-N' option to eqn.
2529
2530 Grops
2531 -----
2532
2533 You can now use psfig with grops.  See the file ps/psfig.diff.  I do
2534 not recommend using psfig for new documents.
2535
2536 The command \X'ps: file F' is similar to \X'ps: exec ...' except that
2537 the PostScript code is read from the file F instead of being contained
2538 within the \X command.  This was added to support psfig.
2539
2540 Grodvi
2541 ------
2542
2543 There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
2544
2545 Macros
2546 ------
2547
2548 The groff -me macros now work with the -C option.  As a result, they
2549 may also work with Unix nroff/troff.
2550
2551 In -me, the $r and $R number registers now contain the line spacing as
2552 a percentage of the pointsize expressed in units (normally about 120).
2553 The previous definition was useless with low resolution devices such
2554 as X75 and X100.
2555
2556
2557 VERSION 1.00
2558 ============
2559
2560 A -ms-like macro-package is now included.
2561
2562 The name for the Icelandic lowercase eth character has been changed
2563 from \(-d to \(Sd.
2564
2565 Troff
2566 -----
2567
2568 There is a new request `nroff', which makes the `n' built-in condition
2569 true and the `t' built-in condition false; also a new request `troff'
2570 which undoes the effect of the `nroff' request.  This is intended only
2571 for backward compatibility: it is usually better to test \n(.H or
2572 \n(.V or to use the `c' built-in condition.
2573
2574 The \R escape sequence has been deleted.  Use \E instead.
2575
2576 There are `break' and `continue' requests for use with the `while'
2577 request.
2578
2579 There is a request `hym' that can ensure that when the current
2580 adjustment mode is not `b' a line is not hyphenated if it is no
2581 more than a given amount short, and a request `hys' that can ensure
2582 that when the current adjustment mode is `b' a line is not
2583 hyphenated if it can be justified by adding no more than a given
2584 amount of extra space to each word space.
2585
2586 There is a request `rj' similar to `ce' that right justifies lines.
2587
2588 A warning of type `space' is given when a call is made to an
2589 undefined request or macro with a name longer than two characters, and
2590 the first two characters of the name make a name that is defined.
2591 This is intended to find places where a space has been omitted been a
2592 request or macro and its argument.  This type of warning is enabled by
2593 default.
2594
2595 Pic
2596 ---
2597
2598 A comma is permitted between the arguments to the `reset' command.
2599
2600 For use with TeX, there is a new `-c' option that makes gpic treat
2601 lines beginning with `.' in a way that is more compatible with tpic
2602 (but ugly).
2603
2604 Eqn
2605 ---
2606
2607 It is no longer necessary to add `space 0' at the beginning of
2608 complicated equations inside pictures.
2609
2610 `prime' is now treated as an ordinary character, as in Unix eqn.  The
2611 previous behaviour of `prime' as an operator can now be obtained using
2612 `opprime'.
2613
2614 Xditview
2615 --------
2616
2617 There are two new devices X75-12 and X100-12 which are the same as X75
2618 and X100 except that they are optimized for documents that use mostly
2619 12 point text.
2620
2621
2622 VERSION 0.6
2623 ===========
2624
2625 The installation process has been refined to make it easy for you to
2626 share groff with someone who has the same type of machine as you but
2627 does not have a C++ compiler.  See the end of the INSTALL file for
2628 details.
2629
2630 There is a man page for the tfmtodit program which explains how to use
2631 your own fonts with groff -Tdvi.
2632
2633 There is a man page for afmtodit which explains how to use your own
2634 PostScript fonts with groff -Tps.
2635
2636 The \N escape sequence is now fully supported.  It can now be used to
2637 access any character in a font by its output code, even if it doesn't
2638 have a groff name.  This is made possible by a convention in the font
2639 files that a character name of `---' refers to an unnamed character.
2640 The drivers now all support the `N' command required for this.  The font
2641 description files have been updated to include unnamed characters.
2642
2643 The `x' command in font description files has been removed: instead
2644 any unknown commands are automatically made available to the drivers.
2645 If you constructed your own font files with an earlier version of
2646 tfmtodit or afmtodit, you must construct them again using the current
2647 version.
2648
2649 Characters between 0200 and 0237 octal are no longer valid input
2650 characters.  Note that these are not used in ISO 8859.
2651
2652 A command called `grog' has been added, similar to the `doctype'
2653 command described in Kernighan and Pike.
2654
2655 Groff
2656 -----
2657
2658 The groff command has some new options: -V prints the pipeline
2659 instead of executing it; -P passes an argument to the postprocessor,
2660 -L passes an argument to the spooler.
2661
2662 There is a C++ implementation of the groff command.  This handles some
2663 things slightly better than the shell script.  In particular, it can
2664 correctly handle arguments containing characters that have a special
2665 meaning to the shell; it can give an error message when child
2666 processes other than the last in the pipeline terminate abnormally;
2667 its exit status can take account of the exit statuses of all its child
2668 processes; it is a little more efficient; when geqn is used, it
2669 searches for the eqnchar file in the same way that font metric files
2670 are searched for, rather than expecting to find it in one particular
2671 directory.
2672
2673 Gtroff
2674 ------
2675
2676 There is font translation feature: For example, you can tell gtroff to
2677 use font `HR' whenever font `H' is requested with the line
2678   .ftr H HR
2679 This would be useful for a document that uses `H' to refer to
2680 Helvetica.
2681
2682 There are some new number registers: `.kern' contains the current kern
2683 mode, `.lg' the current ligature mode, `.x' the major version number,
2684 `.y' the minor version number, `.ce' the number of lines to be
2685 centered in the current environment, `.trunc' the amount of vertical
2686 space truncated by the most recently sprung vertical position trap,
2687 `.ne' the amount of vertical space needed in the last `ne' request
2688 that caused a vertical position trap to be sprung.
2689
2690 The `cf' request now behaves sensibly in a diversion.  If used in a
2691 diversion, it now arranges for the file to be copied to the output
2692 when the diversion is reread.
2693
2694 There is a new request `trf' (transparent file) similar to `cf', but
2695 more like `\!'.
2696
2697 There is a new escape sequence `\Y[xxx]', roughly equivalent to
2698 `\X'\*[xxx]'', except that the contents of string or macro xxx are not
2699 interpreted, and xxx may contain newlines.  This requires an output
2700 format extension; the drivers have been modified to understand this.
2701 Grops has also been modified to cope with newlines in the arguments to
2702 \X commands; grops has a new \X command mdef, which is like def except
2703 that it has a first argument giving the number of definitions.
2704
2705 There is a new warning category `escape' which warns about unknown
2706 escape sequences.
2707
2708 The `fp' request now takes an optional third argument giving the external
2709 name of the font.
2710
2711 The `\_' character is now automatically translated to `\(ul' as in troff.
2712
2713 The environment variable `GROFF_HYPHEN' gives the name of the file
2714 containing the hyphenation patterns.
2715
2716 There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
2717
2718 Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
2719 of end of sentence recognition.
2720
2721 There is an anti-recursion feature in the `char' request, so you can
2722 say `.char \(bu \s+2\(bu\s-2'.
2723
2724 The limit on the number of font positions has been removed.
2725 Accordingly `\n[.fp]' never returns 0.
2726
2727 The restriction on the number of numbered environments has been removed.
2728
2729 There is a new escape sequence `\E' that makes it possible to
2730 guarantee that an escape sequence won't get interpreted in copy-mode.
2731 The `\R' escape sequence is accordingly now deprecated.
2732
2733 Gpic
2734 ----
2735
2736 Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
2737 `if' and `define' constructs) can now be of the form `{ anything }'.
2738
2739 If the `linethick' variable is negative (as it now is initially),
2740 lines are drawn with a thickness proportional to the current point
2741 size.
2742
2743 The `rand' function now takes no arguments and returns a number between
2744 0 and 1.  The old syntax is still supported.
2745
2746 `^' can be used in expressions to indicate exponentiation.
2747
2748 In the `for' construct the argument to the by clause can be prefixed
2749 by `*' to indicate that the increment is multiplicative.
2750
2751 A bare expression may be used as an attribute.  If the current
2752 direction is `dir', then an attribute `expr' is equivalent to
2753 `dir expr'
2754
2755 There is a `sprintf' construct that allows numbers to be formatted and used
2756 wherever a quoted string can be used.
2757
2758 The height of a text object without an explicit height attribute is
2759 the number of text strings associated with the object times the value
2760 of the `textht' variable.
2761
2762 The maximum height and width of a picture is controlled by the
2763 `maxpswid' and `maxpsht' variables.
2764
2765 Gtbl
2766 ----
2767
2768 Gtbl can now handle gracefully the situation where the `ce' request
2769 has been applied to a table.
2770
2771 Geqn
2772 ----
2773
2774 The `ifdef' primitive has been generalized.
2775
2776 A tilde accent can be put underneath a box using `utilde'.  This
2777 defined using a general `uaccent' primitive.
2778
2779 Grops
2780 -----
2781
2782 There is a new PostScript font downloading scheme which handles font
2783 downloading for imported illustrations.  Previously, the name of the
2784 file containing the font was given in the `x download' line in the
2785 groff font metric file.  Now, there is a `download' file which says
2786 for each PostScript font name which file contains that font.  Grops
2787 can also now handle inter-font dependencies, where one downloadable
2788 font depends on some other (possibly downloadable) font.
2789
2790 The `T' font has been removed.  The characters it used to provide are
2791 now provided by `char' definitions in tmac.ps. TSymbol.ps has also
2792 been removed, and the tweaks it provided are now provided by `char'
2793 definitions.
2794
2795 ##### Emacs
2796 Local Variables:
2797 version-control: never
2798 coding: latin-1
2799 mode: text
2800 End: