NEWS revision 114402
150477SpeterThis file describes recent user-visible changes in groff. Bug fixes are not 242120Sdesdescribed. There are more details in the man and info pages. 381325Speter 481325SpeterVERSION 1.19 5206366Sjkim============ 6206366Sjkim 742120SdesTroff 8206380Sjkim----- 9206380Sjkim 1060966Spetero Input encoding files for latin-9 (a.k.a. latin-0 and ISO 8859-15) and 11 latin-2 (ISO 8859-2) have been added. Example use: 12 13 groff -Tdvi -mlatin9 my_file > my_file.dvi 14 15 You still need proper fonts with the necessary glyphs. Out of the box, 16 the groff package supports latin-9 only for -Tps, -Tdvi, and -Tutf8, 17 and latin-2 only for -Tdvi and -Tutf8. 18 19o Composite glyphs are now supported. To do this, a subset of the Adobe 20 Glyph List (AGL) Algorithm as described in 21 22 http://partners.adobe.com/asn/developer/typeforum/unicodegn.html 23 24 is used to construct glyph names based on Unicode character codes. The 25 existing groff glyph names are frozen; no glyph names which can't be 26 constructed algorithmically will be added in the future. 27 28 The \[...] escape sequence has been extended to specify multiple glyph 29 components. Example: 30 31 \[A ho] 32 33 this accesses a glyph with the name `u0041_0328'. 34 35 Some groff glyphs which are useful as composites map to `wrong' Unicode 36 code points. For example, `ho' maps to U+02DB which is a spacing 37 ogonek, whereas a non-spacing ogonek U+0328 is needed for composite 38 glyphs. The new request 39 40 .composite from to 41 42 will change the mapping while a composite glyph name is constructed. 43 To make \[A ho] yield the expected result, 44 45 .composite ho u0328 46 47 is needed. [The new file `composite.tmac' loaded at start-up already 48 contains proper calls to `.composite'.] 49 50 Please refer to the info pages of groff and to the groff_char man page 51 for more details. 52 53o A new request `fschar' has been added to define font-specific fallback 54 characters. They are searched after the list of fonts declared with the 55 `fspecial' request but before the list of fonts declared with `special'. 56 57o Fallback characters defined with `fschar' can be removed with the 58 new `rfschar' request. 59 60o A new request `schar' has been added to define global fallback 61 characters. They are searched after the list of fonts declared with the 62 `special' request but before the already mounted special fonts. 63 64o In groff versions 1.18 and 1.18.1, \D'f ...' didn't move the current 65 point horizontally. Despite of being silly, this change has been 66 reverted for backwards compatibility. Consequently, the intermediate 67 output command `Df' also moves the position horizontally again. 68 69 \D'f ...' is deprecated since it depends on the horizontal resolution of 70 the output device (given with the `hor' parameter in the DESC file). 71 Use the new \D'Fg ...' escape instead. 72 73o For orthogonality, new \D subcommands to change the fill color are 74 available: 75 76 \D'Fr ...' (rgb) 77 \D'Fc ...' (cmy) 78 \D'Fg ...' (gray) 79 \D'Fk ...' (cmyk) 80 \D'Fd' (default color) 81 82 The arguments are the same as with the `defcolor' request. The current 83 position is *not* changed. 84 85o The values set with \H and \S are now available in number registers 86 \n[.height] and \n[.slant], respectively. 87 88o The `.pe' number register isn't new but hasn't been documented before. 89 It is set to 1 during a page ejection caused by the `bp' request. 90 91o The new glyph symbol `tno' is a textual variant of `no'. 92 93o The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL. 94 (Well, it is not really new since it has been previously supported by 95 grolj4.) The mapping for both the dvi and lj4 symbol font has been 96 changed accordingly so that Greek small letter epsilon, `*e', has the 97 same glyph shape as with other devices. 98 99Grops 100----- 101 102o The font `freeeuro.pfa' has been added to provide various default glyph 103 shapes for `eu' and `Eu'. 104 105o It is now possible to access all glyphs in a Type 1 font, not only 256 106 (provided the font file created by afmtodit has proper entries). grops 107 constructs additional encoding vectors on the fly if necessary. 108 109o The paper size is now emitted via the %%DocumentMedia and PageSize 110 mechanisms so that it is no longer required to tell `gv' or `ps2pdf' 111 about the paper size. The `broken' flag value 16 omits this feature 112 (the used PostScript command `setpagedevice' is a LanguageLevel 2 113 extension). Patch by Egil Kvaleberg <egil@kvaleberg.no>. 114 115o Non-slanted PostScript metrics have been changed again; they no longer 116 contain negative left italic correction values. This assures correct 117 spacing with eqn. 118 119Grodvi 120------ 121 122o The font cmtex10 has been added as the special font `SC' to the DVI fonts. 123 It is used as a font-specific special font for CW and CWI. 124 125o New options -l and -p to set landscape orientation and the paper size. 126 grodvi now emits a `papersize' special which is understood by DVI drivers 127 like dvips. 128 129 Consequently, the DESC file should contain a `papersize' keyword. 130 131o The glyph shapes for \[*f] and \[*e] have been exchanged with \[+f] and 132 \[+e], respectively, to be in sync with all other devices. 133 134o Glyphs \[HE] and \[DI] have been replaced with \[u2662] and \[u2661], 135 respectively, since the former two glyphs have a black (filled) shape 136 which grodvi doesn't provide by default (it never has actually). 137 138Grolj4 139------ 140 141o The glyphs \[*e] and \[+e] have been exchanged to be in sync with 142 all other devices. 143 144o The glyph \[~=] is now called \[|=]. Similar to other devices, \[~=] 145 is now another name for glyph \[~~]. 146 147Grotty 148------ 149 150o New option `-r'. It is similar to the -i option except it tells grotty to 151 use the `reverse video' attribute to render italic fonts. 152 153Pic 154--- 155 156o New command `figname' to set the name of a picture's output box in TeX 157 mode. 158 159Refer 160----- 161 162o The environment variable `REFER' to override the name of the default 163 database isn't new but hasn't been documented before. 164 165Soelim 166------ 167 168o New option `-r' to avoid emission of `.lf' lines. 169 170o New option `-t' to emit TeX comment lines (giving current file and the 171 line number) instead of `.lf' lines. 172 173Afmtodit 174-------- 175 176o Unencoded glyphs in an AFM file are output also (since grops can now emit 177 multiple encoding vectors for a single font). 178 179o New option `-m' to prevent negative left italic correction values. 180 181o The mapping and encoding file together with file `DESC' are now searched 182 in the default font directory also. Please refer to the man page of 183 afmtodit for more details. 184 185Macro Packages 186-------------- 187 188o Larry Kollar <kollar@alltel.net> and others made the man macros more 189 customizable. 190 191 . New command line options -rFT, -rIN, and -rSN to set the vertical 192 location of the footer line, the body text indentation, and the 193 sub-subheading indentation. 194 195 . New command line option -rHY (similar to the ms macros) to control 196 hyphenation. 197 198 . New macros `.PT' and `.BT' to print the header and footer strings. 199 They can be replaced with a customized version in `man.local'. 200 201 . The string `HF' now holds the typeface to print headings and 202 subheadings. 203 204 . Similar to the ms macros, the LT register now defaults to LL if not 205 explicitly specified on the command line. 206 207o troff's start-up file `troffrc' now includes `papersize.tmac' to set 208 the paper size with the command line option `-dpaper=<size>'. 209 210 Possible values for `<size>' are the same as the predefined `papersize' 211 values in the DESC file (only lowercase; see the groff_font man page) 212 except a7-d7. An appended `l' (ell) character denotes landscape 213 orientation. Examples: `a4', `c3l', `letterl'. 214 215 Most output drivers need additional command line switches `-p' and 216 `-l' to override the default paper length and orientation as set in 217 the driver specific DESC file. 218 219 For example, use the following for PS output on A4 paper in landscape 220 orientation: 221 222 groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps 223 224 225VERSION 1.18.1 226============== 227 228Troff 229----- 230 231o The non-slanted PostScript font definition files have been regenerated to 232 include left and right italic correction values. Applying those to a 233 glyph (this is, prepending the glyph with `\,' and appending `\/' to the 234 glyph) sets the glyph width to the real value given by the horizontal 235 bounding box values. Without those escapes, the advance width for the 236 particular glyph is used (which can differ considerably). 237 238 Most users will neither need this feature nor notice a difference in 239 existing documents (provided \, and \/ is used as advertised, namely for 240 italic fonts only); its main goal is to improve image generation with 241 grohtml. 242 243 This is an experimental change, and feedback is welcome. 244 245Tbl 246--- 247 248o Added global option `nospaces' to ignore leading and trailing spaces in 249 data items. 250 251Grolbp 252------ 253 254o The option -w (--linewidth) has been added (similar to other device 255 drivers) to set the default line width. 256 257Grn 258--- 259 260o Support for b-spline and Bezier curves has been added. 261 262Groffer 263------- 264 265o New option `--shell' to select the shell under which groffer shall run. 266 267Macro Packages 268-------------- 269 270o The string `Am' (producing an ampersand) has been added to mdoc for 271 compatibility with NetBSD. 272 273o `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit) 274 instead. 275 276o In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal 277 and vertical movements; please refer to contrib/mom/NEWS for more 278 details. 279 280o New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers. 281 282Miscellaneous 283------------- 284 285o The `papersize' keyword in the DESC file now accepts multiple arguments. 286 It is scanned from left to the right, and the first valid argument is 287 used. This makes it possible to provide a fallback paper size. 288 289 Example: 290 291 papersize /etc/papersize a4 292 293o A local font directory has been prepended to the default font path; it 294 defaults to /usr/local/share/groff/site-font. Similar to the normal 295 font searching process, files must be placed into a devXXX subdirectory, 296 e.g. 297 298 /usr/local/share/groff/site-font/devps/FOO 299 300 for a PostScript font definition file FOO. 301 302 303VERSION 1.18 304============ 305 306*************************************************************************** 307* * 308* PLEASE READ THE CHANGES BELOW REGARDING GROTTY, GROFF'S TTY FRONTEND. * 309* * 310*************************************************************************** 311 312Troff 313----- 314 315o Color support has been added to troff and pic (and to the device drivers 316 grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will 317 follow). A new function `defcolor' defines colors; the escape sequence 318 `\m' sets the drawing color, the escape sequence `\M' specifies the 319 background color for closed objects created with \D'...' commands. 320 `\m[]' and `\M[]' switch back to the previous color. `\m' and `\M' 321 correspond to the new troff output command sets starting with `m' and 322 `DF'. The device-specific default color is called `default' and can't be 323 redefined. 324 325 Use the `color' request to toggle the usage of colors (default is on); the 326 read-only register `.color' is 0 if colors are not active, and non-zero 327 otherwise. 328 329 The old `Df' output command is mapped onto `DFg'; all color output 330 commands don't change the current font position (consequently, `Df' 331 doesn't either). 332 333 Outputting color can be disabled in troff and groff with the option -c 334 (it is always disabled in compatibility mode). See the section on grotty 335 for the GROFF_NO_SGR environment variable also. 336 337 For defining color components as fractions between 0 and 1, a new scaling 338 indicator `f' has been introduced: 1f = 65536u. For testing whether a 339 color is defined (with .if and .ie), a new conditional operator `m' is 340 available. 341 342 More details can be found in the groff_diff.7 manual page and in 343 groff.texinfo. 344 345o Similar to \m and \M, \f[] switches back to the previous font. \fP 346 (and \f[P]) is still valid for backwards compatibility. 347 348o The new escape \F is the same as `.fam'; \F[] switches back to previous 349 family -- \F[P] selects family `P'. 350 351o Two new glyph symbols are available: `eu' is the official Euro symbol; 352 `Eu' is a font-specific glyph variant. 353 354o The new glyph symbols `t+-', `tdi', and `tmu' are textual variants of 355 `+-', `di', and `mu', respectively. 356 357o Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has 358 got the troff glyph name `mc'. 359 360o -Tutf8 is now available on EBCDIC hosts. 361 362o Strings can take arguments, using this syntax: \*[foo arg1 arg2 ...]. 363 Example: 364 365 .ds xxx This is a \\$1 test. 366 \*[xxx nice] 367 368o It is now possible to have whitespace between the first and second dot (or 369 the name of the ending macro) to end a macro definition. Example: 370 371 .de ! 372 .. 373 . 374 .de foo 375 . nop Hello, I'm `foo'. 376 . nop I will now define `bar'. 377 . de bar ! 378 . nop Hello, I'm `bar'. 379 . ! 380 .. 381 382o `.fn' is a new string-valued register which returns the (internal) real 383 font name; styles and families are properly concatenated. 384 385o Three new read/write registers `seconds', `minutes', and `hours' contain 386 the current time, set at start-up of troff. Use the `af' request to 387 control their output format. 388 389o The new request `fchar' can be used to provide fallback characters. It 390 has the same syntax as the `char' request; the only difference is that a 391 character defined with `.char' hides the glyph with the same name in the 392 current font, whereas a character defined with `.fchar' is checked only if 393 the particular glyph isn't found in the current font. This test happens 394 before checking special fonts. 395 396o In analogy to the `tmc' request, `.writec' is the same as `.write' but 397 doesn't emit a final newline. 398 399o The new request `itc' is a variant of `.it' for which a line interrupted 400 with \c counts as one input line. 401 402o Two new requests `ds1' and `as1' which are similar to `ds' and `as' but 403 with compatibility mode disabled during expansion of strings defined by 404 them. 405 406o The syntax of the `substring' request has been changed: The first 407 character in a string now has index 0, the last character has index -1. 408 Note that this is an incompatible change. 409 410o To emit strings directly to the intermediate output, a new `output' 411 request has been added; it is similar to `\!' used at the top level. 412 413o `.hpf' has been extended. It can now handle most TeX hyphenation 414 pattern files without modification. To do that, the commands \patterns, 415 \hyphenation, and \endinput are recognized. Please refer to groff_diff.7 416 for more information. 417 418o `hpfcode' is a new request to provide an input encoding mapping for the 419 `hpf' request. 420 421o The new request `hpfa' appends hyphenation patterns (`hpf' replaces 422 already existing patterns). 423 424o A new request `ami' (append macro indirect) has been added. The first and 425 second parameter of `ami' are taken from string registers rather than 426 directly; this very special request is needed to make `trace.tmac' 427 independent from the escape character (which might even be disabled). 428 429o The new request `sizes' is similar to the `sizes' command in DESC files. 430 It expects the same syntax; the data must be on a single line, and the 431 final `0' can be omitted. 432 433o `trin' (translate input) is a new request which is similar to `tr' with 434 the exception that the `asciify' request will use the character code (if 435 any) before the character translation. Example: 436 437 .trin ax 438 .di xxx 439 a 440 .br 441 .di 442 .xxx 443 .trin aa 444 .asciify xxx 445 .xxx 446 447 The result is `x a'. Using `tr', the result would be `x x'. 448 449o The request `pvs' isn't new, but hasn't been documented before. It 450 adds vertical space after a line has been output. This makes it an 451 alternative to the `ls' request to produce double-spaced documents. 452 The read-only register `.pvs' holds the current amount of the 453 post-vertical line space. 454 455o For compatibility with plan 9's troff, multiple `pi' requests are 456 supported: 457 458 .pi foo 459 .pi bar 460 461 is now equivalent to 462 463 .pi foo | bar 464 465o A new escape sequence `\O' is available to disable and enable glyph 466 output. Please see groff_diff.7 and groff.texinfo for more details. 467 468o The escapes `\%', `\&', `\)', and `\:' no longer cause an error in \X; 469 they are ignored now. Additionally `\ ' and `\~' are converted to 470 single space characters. 471 472o The default tab distance in nroff mode is now 0.8i to be compatible 473 with UNIX troff. 474 475o Using the latin-1 input character 0xAD (soft hyphen) for the `shc' 476 request was a bad idea. Instead, it is now translated to `\%', and 477 the default hyphenation character is again \[hy]. Note that the glyph 478 \[shc] is not useful for typographic purposes; it only exists to have 479 glyph names for all latin-1 characters. 480 481Macro Packages 482-------------- 483 484o Peter Schaffter <df191@ncf.ca> has contributed a new major macro package 485 called `mom', mainly for non-scientific writers, which takes care of 486 many typographic issues. It comes with a complete reference (in HTML 487 format) and some examples. `mom' has been designed to format documents 488 for PostScript output only. 489 490o Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to 491 the man macros for compatibility with older BSD releases. 492 493o Both the man and mdoc macro packages now use the LL and LT registers for 494 setting the line and title length, respectively (similar to those 495 registers in the ms macro package). If not set on the command line or 496 in a macro file loaded before the macro package itself, they default to 497 78n in nroff mode and 6.5i in troff mode. 498 499o The `-xwidth' specifier in the mdoc macro package has been removed. Its 500 functionality is now integrated directly into `-width'. Similarly, 501 `-column' has been extended to provide this functionality also. 502 503o A new macro `Ex' has been added to the mdoc macro package to document an 504 exit status. 505 506o The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is 507 now automatically loaded for -Tdvi), using a dvips special to load the EPS 508 file. 509 510o The trace.tmac package now traces calls to `am' also. Additionally, it 511 works in compatibility mode. 512 513o `troff.1' has been split. Differences to UNIX troff are now documented 514 in the new man page `groff_diff.7'. 515 516o `groff_mwww.7' has been renamed to `groff_www.7'. The file mwww.tmac 517 has been removed. 518 519o `groff_ms.7' has been completely rewritten. It now contains a complete 520 reference to the ms macros. 521 522o `groff_trace.7' documents the trace macro package. 523 524o Changes in www.tmac: 525 526 Note that HTML support is still in alpha change, so it is rather likely 527 that both macro names and macro syntax will change. Some of the macros 528 mentioned below aren't really new but haven't been documented properly 529 before. 530 531 The following macros have been renamed: 532 533 MAILTO -> MTO 534 IMAGE -> IMG 535 LINE -> HR 536 537 For consistency, the macros `URL', `FTL', and `MTO' now all have the 538 address as the first parameter followed by the description. 539 540 By default, grohtml generates links to all section headings at the top 541 of the document. Use the new `LK' macro to specify a different place. 542 543 For specifying the background color and a background image, use the 544 new macros `BCL' and `BGIMG', respectively. 545 546 The macro `NHR' has been added; it suppresses the generation of top and 547 bottom rules which grohtml emits by default. 548 549 The new macro `HX' determines the cut-off point for automatic link 550 generation to headings. 551 552 The image position parameter names in `IMG' have been changed to `-L', 553 `-R', and `-C'. 554 555 New macro `PIMG' for inclusion of a PNG image (it will automatically 556 convert it into an EPS file if not -Thtml is used). 557 558 New macro `MPIMG' for putting a PNG image into the left or right margin 559 (it will automatically convert it into an EPS file if not 560 -Thtml is used). 561 562 New macros `HnS', `HnE' to start and end a header line block. 563 564 New macro `DC' to produce dropcap characters. 565 566 New macro `HTL' to generate an HTML title line only but no H1 heading. 567 568 New macros `ULS' and `ULE' to start and end an unordered list. The new 569 macro `LI' inserts a list item. 570 571Groff 572----- 573 574o The new command line option `-c' disables color output (which is always 575 disabled in compatibility mode). 576 577Nroff 578----- 579 580o Two new command line options `-c' and `-C'; the former passes `-c' to 581 grotty (switching to the old output scheme); the latter passes `-C' to 582 groff (enabling compatibility mode). 583 584Pic 585--- 586 587o New keywords `color' (or `colour', `colored', `coloured'), `outline' (or 588 `outlined'), and `shaded' are available. `outline' sets the color of the 589 outline, `shaded' the fill color, and `color' sets both. Example: 590 591 circle shaded "green" outline "black" ; 592 593 Filled arrows always use the outline color for filling. 594 595 Color support for TeX output is not implemented yet. 596 597Pic2graph 598--------- 599 600o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It 601 converts a PIC diagram into a cropped image. Since it uses gs and the PNM 602 library, virtually all graphics formats are available for output. 603 604Eqn2graph 605--------- 606 607o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It 608 converts an EQN diagram into a cropped image. Since it uses gs and the PNM 609 library, virtually all graphics formats are available for output. 610 611Groffer 612------- 613 614o A new script contributed by Bernd Warken <bwarken@mayn.de>. It displays 615 groff files and man pages on X and tty, taking care of most parameters 616 automatically. 617 618Grog 619---- 620 621o Documents using the mom macro package are recognized. 622 623Grops 624----- 625 626o Color support has been added. 627 628o A new option `-p' is available to select the output paper size. It has 629 the same syntax as the new `papersize' keyword in the DESC file. 630 631Grodvi 632------ 633 634o By default, font sizes are now available in the range 5-10000pt, similar 635 to PS fonts. If you want the old behaviour (i.e., font sizes at discrete 636 values only), insert the following at the start of your document: 637 638 .if '\*[.T]'dvi' \ 639 . sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \ 640 1728 1800 2000 2074 2200 2400 2488 2800 3600 641 642o A new font file HBI (using cmssbxo10; this is slanted sans serif bold 643 extended) has been added. 644 645o Two font families are now available: `T' and `H'. 646 647o EC and TC fonts have been integrated. Use `-mec' (calling the file 648 ec.tmac) to switch to them. Those fonts give a much better coverage of 649 the symbols defined by groff than the CM fonts. 650 651 Note that ec.tmac must be called before any language-specific files; it 652 doesn't take care of hcode values. 653 654o Color support has been added. For drawing commands, colors are translated 655 to gray values currently. 656 657Grotty 658------ 659 660o Color support has been added, using the SGR (ISO 6429, sometimes called 661 ANSI color) escape sequences. 662 663o SGR escape sequences are now used by default for underlining and bold 664 printing also, no longer using the backspace character trick. To revert 665 to the old behaviour, use the `-c' switch. 666 667 Note that you have to use the `-R' option of `less' to make SGR escapes 668 display correctly. On the other hand, terminal programs and consoles like 669 `xterm' which support SGR sequences natively can directly display the 670 output of grotty. Consequently, the options `-b', `-B', `-u', and `-U' 671 work only in combination with `-c' and are ignored silently otherwise. 672 673 For the `man' program, it may be necessary to add the `-R' option of 674 `less' to the $PAGER environment variable; alternatively, you can use 675 `man's `-P' option (or adapt its configuration file accordingly). See 676 man(1) for more details. 677 678o If the environment variable GROFF_NO_SGR is set, SGR output is disabled, 679 reverting to the old behaviour. 680 681o A new special \X'tty: sgr n' has been added; if n is non-zero or missing, 682 enable SGR output (the default). 683 684o If the new option `-i' is used (only in SGR mode), grotty sends escape 685 sequences to set the italic font attribute instead of the underline 686 attribute for italic fonts. Note that many terminals don't have support 687 for this (including xterm). 688 689Grohtml 690------- 691 692o Color support for glyphs has been added. 693 694o New option `-h' to select the style of headings in HTML output. 695 696o New option `-b' to set the background colour to white. 697 698o New options `-a' and `-g' to control the number of bits for anti-aliasing 699 used for text and graphics, respectively. Default value is 4; 0 means 700 no anti-aliasing. 701 702o groff character/glyph entities now map onto HTML 4 character entities. 703 704Grolbp 705------ 706 707o Valid paper sizes are now specified as with the new `papersize' keyword 708 in the DESC file. Specifically, the old custom paper type format 709 `custAAAxBBB' is no longer supported. 710 711Miscellaneous 712------------- 713 714o A new manual page `ditroff.7' is available. 715 716o The groff texinfo manual will now be installed, together with a bunch 717 of examples. 718 719o A new keyword `papersize' has been added to the DESC file format. Its 720 argument is either 721 722 . a predefined paper format (e.g. `A4' or `letter') 723 724 . a file name pointing to a file which must contain a paper size 725 specification in its first line (e.g. `/etc/papersize') 726 727 . a custom paper size definition like `35c,4i' 728 729 See groff_font(5) for more details. This keyword only affects the 730 physical dimensions of the output medium; grops, grolj4, and grolbp use it 731 currently. troff completely ignores it. 732 733VERSION 1.17.2 734============== 735 736This is major bug-fixing release which should replace 1.17.1. 737 738Troff 739----- 740 741o The `IMAGE' macro in www.tmac has changed: Now the optional 2nd parameter 742 gives the horizontal image location (left, centered, or right), and the 743 optional 3rd and 4th parameter the image dimensions. 744 745VERSION 1.17.1 746============== 747 748This is mainly a bug-fixing release. 749 750Troff 751----- 752 753o Two new requests `de1' and `am1' which are similar to `de' and `am' but 754 with compatibility mode disabled during expansion of macros defined by 755 them. 756 757o Added request `brp'. This is the same as `\p'. 758 759o Similar to other versions of troff, the `ns' request now works in all 760 diversions, not only in the top-level one. 761 762o New read-only number register `.ns'. Returns 1 if in no-space mode, 763 0 otherwise. 764 765Nroff 766----- 767 768o Options -p (pic) and -t (tbl) added. 769 770o The environment variable GROFF_BIN_PATH is now checked before PATH for 771 finding groff. 772 773Grohtml 774------- 775 776o New option `-D dir' to specify a directory in which all images are placed. 777 778o New option `-I stem' to specify an image name stame. If not given, 779 `grohtml-XXX' is used (`XXX' is the process ID). 780 781VERSION 1.17 782============ 783 784Groff 785----- 786 787o `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'. The 788 old behaviour has been changed to overcome problems with platforms which 789 have an 8+3 file name limit, and platforms which have other versions of 790 troff installed also. Additionally, all macro files have been renamed 791 using the latter scheme to avoid 8+3 name clashes. 792 793o The new environment variable GROFF_BIN_PATH is checked for programs groff 794 is calling (preprocessors, troff, and output devices) before PATH. If not 795 set, it defaults to the directory where the groff binary is located. 796 Previously, it was PATH only. The nroff script only uses GROFF_BIN_PATH 797 to find the groff binary but passes both the GROFF_BIN_PATH and PATH 798 environment variables to groff. 799 800Troff 801----- 802 803o The mdoc package has been completely rewritten, using the full power of 804 GNU troff to remove limitations of Unix troff (which is no longer 805 supported). Most important changes are: 806 807 . No argument limit 808 . Almost all macros are parsed and callable (if it makes sense) 809 . `.Lb': prints library names 810 . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>' has 811 been withdrawn 812 . Updated `.St' command 813 . `.Fx': prints FreeBSD 814 . `.Ox': prints OpenBSD 815 . `.Bsx': prints BSD/OS 816 . `.Brq', `.Bro', `.Brc': brace enclosure macros 817 . `.Bd -centered': center lines 818 . `.Bl -xwidth <string>': interpret <string> and use the resulting width 819 . Support for double-sided printing (-rD1 command line switch) 820 . Support for 11pt and 12pt document sizes (-rS11, -rS12 command line 821 switches) 822 823 `groff_mdoc.7' replaces `groff_mdoc.samples.7'; it now completely 824 documents the mdoc package. 825 826 Great care has been taken to assure backwards compatibility. If you 827 encounter any abnormal results, please report them to bug-groff@gnu.org. 828 829o A new command line option for the `man' macros (similar to the `mdoc' 830 package) has been implemented: `-rcR=1' (now the default in nroff mode) 831 produces one single, very long page instead of multiple pages. `-rcR=0' 832 deactivates it. 833 834o The `return' request has been added to return immediately from a macro. 835 836o A new request `nop' (no operation) has been added which is similar to 837 `if 1'. For example, 838 839 .if t \{\ 840 Hallo! 841 .\} 842 843 can now be written as 844 845 .if t \{\ 846 . nop Hallo! 847 .\} 848 849o `box' and `boxa' are two new requests which behave similarly to `di' and 850 `da' but don't include a partially filled line (which is restored after 851 ending the diversion). 852 853o The `asciify' request has been extended to `unformat' space characters 854 and some other escape sequences also. 855 856 `\ ' is no longer unformatted as a space but remains an unpaddable, 857 unbreakable space character. 858 859o The new `unformat' request is similar to `asciify' but only handles space 860 characters and tabs specially if the diversion is reread, retaining font 861 information. This makes it possible to reformat diversions; for example 862 the following 863 864 .ll 3i 865 . 866 a01 a02 a03 a04 a05 a06 a07 a08 a09 a10. 867 . 868 .box box1 869 .ev 1 870 .nf 871 \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P] 872 .br 873 .ev 874 .box 875 . 876 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10. 877 . 878 .unformat box1 879 .box1 880 881 gives 882 883 a01 a02 a03 a04 a05 a06 a07 884 a08 a09 a10. c01 c02 c03 c04 885 c05 c06 c07 c08 c09 c10. b01 886 b02 b03 b04 b05 b06 b07 b08 887 b09 b10. 888 889 Without the `unformat' request, space characters are converted to word 890 space nodes which are no longer stretchable, and the result would be 891 892 a01 a02 a03 a04 a05 a06 a07 893 a08 a09 a10. c01 c02 c03 c04 894 c05 c06 c07 c08 c09 c10. b01 895 b02 b03 b04 b05 b06 b07 b08 896 b09 b10. 897 898o The new request `linetabs' controls the `line-tabs' mode. In line-tabs 899 mode, tab distances are computed relative to the (current) output line. 900 Otherwise they are taken relative to the input line. For example, the 901 following 902 903 .ds x a\t\c 904 .ds y b\t\c 905 .ds z c 906 .ta 1i 3i 907 \*x 908 \*y 909 \*z 910 911 yields 912 913 a b c 914 915 In line-tabs mode, the same code gives 916 917 a b c 918 919 The new read-only number register `.linetabs' returns 1 if in line-tabs 920 mode, and 0 otherwise. 921 922o Two new requests `tm1' and `tmc' have been added to improve writing 923 messages to the terminal. `tm1' is similar to `tm' but allows leading 924 whitespace. `tmc' is similar to `tm1' but doesn't emit a final newline. 925 926o For compatibility with sqtroff, the request `output' has been added. 927 The behaviour is similar to `\!' at the top-level, that is, it directly 928 inserts its argument into the intermediate output format. The syntax 929 is similar to .tm1, allowing leading whitespace. 930 931o The new `spreadwarn' request will make troff warn if spaces in an output 932 line are widened by a given limit or more. 933 934o Use `warnscale' to change the scaling indicator troff will use for 935 warning messages. 936 937o A new request `dei' (define indirect) has been added. The first and 938 second parameter of `dei' are taken from string registers rather than 939 directly; this very special request is needed to make `trace.tmac' 940 independent from the escape character (which might even be disabled). 941 942o It is now possible to save and restore the escape character with two new 943 requests `ecs' and `ecr'. 944 945o The new escape sequence \B'...' is an analogon to `\A': If the string 946 within the delimiters is a valid numeric expression, return character `1', 947 and `0' otherwise. 948 949o The new escape sequence `\:' inserts a zero-width break point. This is 950 similar to `\%' but without a soft hyphen character. 951 952o The `tr' request can now map characters onto `\~'. 953 954o Calling the `fam' request without an argument switches back to the 955 previous font family. 956 957o The new read-only register `.int' is set to a positive value if the last 958 output line is interrupted (i.e., if the input line contains `\c'). 959 960o The `writem' request is not new, but hasn't been documented before. This 961 is similar to `write' but instead of a string the contents of a given 962 macro or string is written to a stream. 963 964o The read/write number register `hp' to get/set the current horizontal 965 position relative to the input line isn't new but hasn't been documented 966 properly before. 967 968o `\X' and `\Y' are now transparent for end-of-sentence recognition. 969 970o The `cu' request in nroff mode now works as documented (i.e., it 971 underlines spaces also). 972 973Grog 974---- 975 976o The grog script now works in non-compatibility mode also (which is the 977 default). As usual, use the `-C' option to activate compatibility mode. 978 979Grops 980----- 981 982o A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has 983 been added to select a different prologue file. 984 985o The effect of the former `-mpsnew' option to access more Type 1 characters 986 is now the default and no longer available. To get the old behaviour 987 (i.e., emulation of some glyphs by composition) use `-mpsold'. 988 989Miscellaneous 990------------- 991 992o For security reasons the following changes have been done: 993 994 . The tmac.safer file has been replaced with a built-in solution; .open, 995 .opena, .pso, .sy, and .pi are completely disabled in safer mode (which 996 is the default); to enable these requests the `-U' command line flag 997 must be used. 998 999 . Files specified with the .mso request or given with the `-m' command 1000 line option, and hyphenation patterns loaded with `.hpf' are no longer 1001 searched in the current directory by default (besides the usual tmac 1002 path). Instead, the home directory is used. To add the current 1003 directory, either use the `-U' or `-M' command line option or set the 1004 GROFF_TMAC_PATH environment variable to an appropriate value. 1005 1006 . troffrc, troffrc-end, and eqnrc are neither searched in the current nor 1007 in the home directory (even if -U is given). Use -M or GROFF_TMAC_PATH 1008 to change that. 1009 1010 . Similarly, the current directory is no longer part of the font path. 1011 Use the `-F' command line option or the GROFF_FONT_PATH environment 1012 variable if you really need the current directory. 1013 1014o groff now installs its data files into /usr/local/share/groff/<version> by 1015 default, following the GNU standard. Additionally, a local tmac directory 1016 (by default /usr/local/share/groff/site-tmac) is scanned before the 1017 standard tmac directory. Wrapper files for system-specific macro packages 1018 (if necessary) are put into /usr/local/lib/groff/site-tmac; this directory 1019 is searched before the local tmac directory. 1020 1021o All programs now have option `-v' to show the version number; they exit 1022 immediately afterwards, following the GNU standards. Additionally, 1023 `--version' and `--help' have been added, doing the obvious actions. 1024 1025VERSION 1.16.1 1026============== 1027 1028Bug fixes only; no user-visible changes. 1029 1030VERSION 1.16 1031============ 1032 1033Groff 1034----- 1035 1036The anachronism of calling the man macro package with `-man' has been fixed; 1037now you can say `-m man' also. The same is true for `ms', `me', `markup', 1038`mandoc', and `mdoc'. 1039 1040A new switch `-g' for calling `grn' is available. 1041 1042A new switch `-G' for calling `grap' is available. 1043 1044EBCDIC support for tty devices has been added. On such hosts, IBM code page 10451047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for 1046the moment, -Tutf8). Note that non-tty devices are not yet supported (but 1047installed). 1048 1049Troff 1050----- 1051 1052A new command line option to the `man' macros is available: `-rSxx' (with 1053`xx' either 10, 11, or 12) to set the base document font size to `xx' 1054points. Additionally, `.SH' now produces larger headings than `.SS'. 1055 1056To solve a problem with the .PSPIC macro which needs the `-U' switch of 1057troff to access an external program (psbb), a new request .psbb is now 1058available to get the bounding box of a PostScript image file. The values 1059(in PostScript units) are returned in the new read-only number registers 1060`llx', `lly', `urx', and `ury'. Consequently, .PSPIC has been adapted to 1061use the new request, and the psbb program has been removed. 1062 1063A new predefined writable number register, `year', has been added. It 1064contains the current year. 1065 1066A new read-only register, `.Y', has been added. It contains the revision 1067number of the groff package. 1068 1069`\fP' now behaves as expected in situations like the following where the 1070font `foo' is undefined: 1071 1072 .B bold text 1073 normal text \f[foo]bar\fP normal text 1074 1075Previously, the text after \fP appeared as bold. 1076 1077The `substring' request is not new, but hasn't been documented before. 1078 1079The predefined `.T' string register (which holds the current output device) 1080is not new, but hasn't been documented before. 1081 1082A new request `length' computes the length of a string and returns it in 1083a number register. 1084 1085The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace' 1086(a debugging aid) are now installed also. 1087 1088A new resource file, `troffrc-end', is now available. It is invoked after 1089all user-specified macros. Currently used by the html device to include 1090tmac.html; thus no need for users to specify -mhtml anymore. 1091 1092The soft hyphen character now has a glyph name: `shc'. 1093 1094The latin-1 character 173 (PS name `periodcentered') has got the troff glyph 1095name `pc' and is no longer intermixed with the symbol character `md' (PS 1096name `mathdot'). 1097 1098ASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq' 1099(which is an alias to character `"'). 1100 1101ASCII character 39 (PS name `quoteright') has got the troff glyph name `cq' 1102(which is an alias to character "'"). 1103 1104Some additions to the font description files have been implemented for 1105better support of HTML output: 1106 1107 The new format of lines in the `charset' subsection of font description 1108 files is 1109 1110 name metrics type code [entity_name] [-- comment] 1111 1112 Currently, only the font description files in devhtml use the optional 1113 entity_name string to define glyph entities in HTML. Everything after the 1114 entity_name field is ignored; in case this field isn't used, two hyphen 1115 characters are now necessary to start a comment. 1116 1117 Two new requests are available in DESC files (currently used only with 1118 grohtml): 1119 1120 use_charnames_in_special 1121 This command indicates that troff should encode named characters 1122 inside special commands. 1123 1124 pass_filenames 1125 requests that troff tells the driver the source file name being 1126 processed. This is achieved by another tcommand: `F filename'. 1127 1128Grotty 1129------ 1130 1131Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output. 1132 1133Grohtml 1134------- 1135 1136Added .LINE macro to tmac.arkup. 1137 1138The obsolete `.LINK' macro has been removed. 1139 1140.URL, .FTP, and .MAILTO macros now accept an optional third argument which 1141will be immediately appended to the second argument (to be used with 1142punctuation, for example). 1143 1144Grodvi 1145------ 1146 1147The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e). 1148 1149A new font file CWI (using cmitt10; this is typewriter italic) has been 1150added. 1151 1152Grolbp 1153------ 1154 1155A new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser 1156printers). This code has been contributed by Francisco Andres Verdu 1157<pandres@dragonet.es>. 1158 1159Grn 1160--- 1161 1162A new preprocessor to process gremlin pictures. It is based on the 1163original Berkeley implementation of grn, written by David Slattengren 1164and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz 1165<daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>. 1166 1167Pic 1168--- 1169 1170Added the `srand' command to set the seed for a new sequence of 1171pseudo-random numbers to be returned by `rand'. 1172 1173Gxditview 1174--------- 1175 1176Simplified installation: The Imakefile will now be configured (by groff's 1177configure script). 1178 1179Documentation 1180------------- 1181 1182Three new man pages are available: groff_tmac.5 (documenting how troff macros 1183are accessed and where they are found), groff.7 (a short reference of the GNU 1184roff language), and roff.7 (a general survey on GNU troff). 1185 1186Miscellaneous 1187------------- 1188 1189A partial port to win32 (for use with Microsoft Visual C++ 6.0) is now part 1190of the distribution. It has been contributed by Blake McBride 1191<blake@florida-software.com>. 1192 1193More information about programs, macros, documentation, etc., which is 1194related to groff has been collected in the file `MORE.STUFF'. 1195 1196VERSION 1.13, 1.14, 1.15 1197======================== 1198 1199Bug fixes only; no user-visible changes. 1200 1201VERSION 1.12 1202============ 1203 1204Finally, there are new maintainers for groff. Mailing lists and a CVS 1205repository are available also. See the file README for details. Not all 1206reported bugs could be fixed, so please send mails again if something is 1207still not working. 1208 1209Most of the installation problems should have vanished now (most 1210notably the $(tmac_wrap) bug). 1211 1212There is now a man page called groff_man.7 which documents the basics of the 1213-man macros. It has been originally written by Susan G. Kleinmann 1214<sgk@debian.org>. 1215 1216A (still incomplete) groff reference manual in texinfo format originally 1217contributed by Trent A. Fisher <trent@gnurd.portland.or.us>. 1218 1219me.man and msafer.man have been renamed to groff_me.man 1220resp. groff_msafer.man for consistency. 1221 1222Default strings for macros in doc-common resp. tmac.an no longer contain the 1223word `UNIX'. 1224 1225groff should now be Y2k safe (fixes contributed by Paul Eggert 1226<eggert@twinsun.com>). 1227 1228Following the GNU standards, groff will now use the prefix `/usr/local/' as 1229the default instead of replacing an existent groff binary. 1230 1231groff, troff, nroff, and pic now support the -U flag to activate unsafe 1232behaviour (without -msafer); the -S flag for using the -msafer macros is now 1233the default. 1234 1235Grohtml 1236------- 1237 1238This is a new output device for producing HTML output contributed by Gaius 1239Mulley <gaius@glam.ac.uk>. It is still very alpha but has been included 1240into the distribution so that a lot of people have a chance to test it. Bug 1241reports are highly welcome. 1242 1243Grolj4 1244------ 1245 1246Duplex printing support has been contributed by Jeffrey Copeland 1247<jeff@opennt.com>. 1248 1249Soelim 1250------ 1251 1252Added -I option for defining include paths (patch contributed by Peter 1253Miller <peterm@jna.com.au>). 1254 1255Gxditview 1256--------- 1257 1258Fallback resources added (patch contributed by Larry Jones 1259<larry.jones@sdrc.com>). 1260 1261Will now support 8 gray levels. 1262 1263mm 1264-- 1265 1266New version 1.32 (contributed by Joergen Haegg <jh@axis.com>). 1267 1268VERSION 1.11 1269============ 1270 1271Complete documentation for pic is now in the file doc/pic.ms. It was 1272contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically 1273*not* volunteering to take over groff as he is way overworked with 1274half a dozen other projects. 1275 1276VERSION 1.10 1277============ 1278 1279The directory where data files are installed has been changed from 1280/usr/local/lib/groff to /usr/local/share/groff to comply with the 1281latest GNU coding standards. 1282 1283By default groff programs with Unix equivalents are installed with a 1284"g" prefix unless there is an existing (non-groff) troff installation. 1285 1286A new approach is used to make system macro packages available to 1287groff. Instead of simply including /usr/lib/tmac in the list of 1288directories searched by groff, the installation process creates for 1289each system macro package a wrapper macro package in the groff macro 1290directory that references the system macro package. The groff macro 1291packages are now installed with a leading "g" prefix if there is a 1292system version of the same macro package, and otherwise without the 1293"g" prefix, with the exception that the groff version of -me which is 1294always installed as -me. 1295 1296There is a new device, lj4, for the HP LaserJet 4 (and PCL5 1297compatibles). 1298 1299Groff 1300----- 1301 1302groff has a -S option that prevents the use of unsafe features in pic 1303and troff. This uses a new -S option of pic and the -msafer macros 1304for troff. 1305 1306Troff 1307----- 1308 1309The `blm' request specifies a macro to be invoked when a blank line is 1310encountered. 1311 1312Pic 1313--- 1314 1315A -S (safer) option disables the sh command. 1316 1317Grops 1318----- 1319 1320The -m option enables manual feed. 1321 1322VERSION 1.09 1323============ 1324 1325\(rn will now produce a character that has the traditional metrics, 1326and will form corners with \(ul and \(br. This means that it will not 1327align properly with \(sr. Instead there's a new character 1328\[radicalex] which aligns with \(sr; this is used by eqn for doing 1329square roots. 1330 1331Troff 1332----- 1333 1334The `pso' request allows you to read from the standard output of a 1335command. 1336 1337Grops 1338----- 1339 1340The PSPIC macro has options to allow the horizontal alignment of the 1341graphic to be specified. 1342 1343VERSION 1.08 1344============ 1345 1346Troff 1347----- 1348 1349The escape sequence \V[xxx] will interpolate the value of the 1350environment variable xxx. 1351 1352Tbl 1353--- 1354 1355The decimalpoint option can be used to specify the character to be 1356recognized as the decimal point character in place of the default 1357period. 1358 1359VERSION 1.07 1360============ 1361 1362Groff 1363----- 1364 1365The environment variable GROFF_COMMAND_PREFIX can be used to control 1366whether groff looks for `gtroff' or `troff' (similarily for the 1367preprocessors.) 1368 1369Troff 1370----- 1371 1372Multilingual hyphenation is supported by new `hpf' and `hla' requests, 1373and by a `\n[.hla]' number register. The -H option has been removed. 1374Files of hyphenation patterns can have comments. 1375 1376When a font cannot be found, troff gives a warning (of type `font', 1377enabled by default) instead of an error. 1378 1379There's a new request `trnt' that's like `tr' except that it doesn't 1380apply to text transparently throughput into a diversion with \!. 1381 1382Tbl 1383--- 1384 1385There is a `nokeep' option which tells tbl not to use diversions to 1386try to keep the table on one page. 1387 1388Eqn 1389--- 1390 1391Setting the parameter `nroff' to a non-zero value causes `ndefine' to 1392behave like `define' and `tdefine' to be ignored. This is done by 1393eqnrc when the current device is ascii or latin1. There's a `neqn' 1394script that just does `eqn -Tascii'. 1395 1396Grotty 1397------ 1398 1399grotty uses whatever page length was specified using the `pl' request 1400rather than using the paperlength command in the DESC file. The 1401paperwidth command in the DESC file is also ignored. 1402 1403VERSION 1.06 1404============ 1405 1406The programs in groff that have Unix counterparts can now be installed 1407without a leading `g' prefix. See the `g' variable in the Makefile. 1408 1409The g?nroff script simulates the nroff command using groff. 1410 1411New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz, 1412\(an. See groff_char(7). 1413 1414^L is now a legal input character. 1415 1416Groff 1417----- 1418 1419The Xps pseudo-device has disappeared. Instead there is a new -X 1420option that tells groff to use gxditview instead of the usual 1421postprocessor. (So instead of -TXps, use -XTps or just -X if your 1422default device is ps.) 1423 1424The postprocessor to be used for a particular device is now specified 1425by a `postpro' command in the DESC file rather than being compiled 1426into groff. Similarly the command to be used for printing (with the 1427-l option) is now specified by a `print' command in the DESC file. 1428 1429The groff command no longer specifies eqnchar as an input file for 1430eqn. Instead eqn automatically loads a file `eqnrc'. The groff 1431command no longer passes the -D option to eqn. Instead eqnrc sets the 1432draw_lines parameter. 1433 1434The groff command no longer tells troff to load a device-specific 1435macro file. This is handled instead by the `troffrc' file, which is 1436always loaded by troff. 1437 1438The shell script version of groff has been removed. 1439 1440Troff 1441----- 1442 1443The `rchar' request removes a character definition established with `char'. 1444 1445Compatibility mode is disabled and the escape character is set to `\' 1446while a character definition is being processed. 1447 1448The `\#' escape sequence is like `\"' except that the terminating 1449newline is ignored. 1450 1451The `shc' request tells troff which character to insert (instead of 1452the default \(hy) when a word is hyphenated at a line break. 1453 1454A font name of 0 (zero) in the DESC file will cause no font to be 1455mounted on the corresponding font position. This is useful for 1456arranging that special fonts are mounted on positions on which users 1457are not likely explicitly to mount fonts. All groff devices now avoid 1458initially mounting fonts on positions 5-9. 1459 1460The `do' request allows a single request or macro to be interpreted 1461with compatibility mode disabled. 1462 1463troff automatically loads a file `troffrc' before any other input file. 1464This can be prevented with the -R option. This file is responsible 1465for loading the device-specific macros. 1466 1467Pic 1468--- 1469 1470The -x option has been removed and a -n option has been added. By 1471default, pic now assumes that the postprocessor supports groff 1472extensions. The -n option tells pic to generate output that works 1473with ditroff drivers. The -z option now applies only to TeX mode. 1474 1475The -p option has been removed. Instead if the -n option is not 1476specified, pic generates output that uses \X'ps: ...' if the \n(0p 1477register is non-zero and tmac.ps sets this register to 1. 1478 1479In places where you could 1st or 5th you can now say `i'th or `i+1'th 1480(the quotes are required). 1481 1482Eqn 1483--- 1484 1485Eqn now automatically reads a file `eqnrc' from the macro directory. 1486This performs the same role that the eqnchar files used to. This can 1487be prevented by the -R option. 1488 1489Setting the draw_lines parameter to a non-zero value causes lines to 1490be drawn using \D rather than \l. The -D option is now obsolete. 1491 1492`uparrow', `downarrow' and `updownarrow' can be used with `left' and 1493`right'. 1494 1495The amount of extra space added before and after lines containing 1496equations can be controlled using the `body_height' and `body_depth' 1497parameters. 1498 1499Grops 1500----- 1501 1502Font description files have been regenerated from newer AFM files. 1503You can get access to the additional characters present in the text 1504fonts in newer PostScript printers by using -mpsnew. 1505 1506The default value of the -b option is specified by a `broken' command 1507in the DESC file. 1508 1509With the -g option, grops will generate PostScript code that guesses 1510the page height. This allows documents to be printed on both letter 1511(8.5x11) and A4 paper without change. 1512 1513Grodvi 1514------ 1515 1516ISO Latin-1 characters are available with -Tdvi. Format groff_char(7) 1517with groff -Tdvi for more information. 1518 1519Grotty 1520------ 1521 1522The -mtty-char macros contain additional character definitions for 1523use with grotty. 1524 1525Macros 1526------ 1527 1528In previous releases the groff -me macros treated the $r and $R number 1529registers in a way that was incompatible with the BSD -me macros. The 1530reason for this was that the approach used by the BSD -me macros does 1531not work with low resolution devices such as -TX75 and -TX100. 1532However, this caused problems with existing -me documents. In this 1533release, the vertical spacing is controlled by the $v and $V registers 1534which have the same meaning as $r and $R in earlier groff releases. 1535In addition, if the $r or $R register is set to a value that would be 1536correct for for the BSD -me macros and a low resolution device is not 1537being used, then an appropriate value for the $v or $V register will 1538be derived from the $r or $R register. 1539 1540The groff -me macros work with -C and (I think) with Unix troff. 1541 1542For backward compatibility with BSD -me, the \*{ and \*} strings are 1543also available as \*[ and \*]. Of course, \*[ will only be usable 1544with -C. 1545 1546The \*T string has been deleted. Use \*(Tm instead. 1547 1548Xditview 1549-------- 1550 1551The `n', Space and Return keys are bound to the Next Page action. The 1552`p', BackSpace and Delete keys are bound to the Previous Page action. 1553The `q' key is bound to the Quit action. 1554 1555The `r' key is bound to a rerasterize action that reruns groff, and 1556redisplays the current page. 1557 1558VERSION 1.05 1559============ 1560 1561Pic 1562--- 1563 1564There is a alternative assignment operator `:=' which interacts 1565differently with blocks. 1566 1567There is a new command `command', which allows the values of variables 1568to be passed through to troff or TeX. 1569 1570The `print' command now accepts multiple arguments. 1571 1572String comparison expressions (using `==' or `!=') are allowed in more 1573contexts. 1574 1575Grotty 1576------ 1577 1578Horizontal and vertical lines drawn with \D'l ...' will be rendered 1579using -, | and + characters. This is intended to give reasonable 1580results with boxed tables. It won't work well with pic. 1581 1582Macros 1583------ 1584 1585The -mdoc macros have been upgraded to the version in the second 1586Berkeley networking release. This version is not completely 1587compatible with earlier versions; the old version is still available 1588as -mdoc.old. The grog script has been enhanced so that it can 1589usually determine whether a document requires the old or new versions. 1590 1591With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box 1592around where the picture would appear with -Tps. 1593 1594VERSION 1.04 1595============ 1596 1597An implementation of the -mm macros is included. 1598 1599The directory in which temporary files are created can be controlled 1600by setting the GROFF_TMPDIR or TMPDIR environment variables. 1601 1602Pic 1603--- 1604 1605Some MS-DOS support (see pic/make-dos-dist). 1606 1607Grops 1608----- 1609 1610There are two new \X commands (\X'ps: invis' and \X'ps: endinvis') 1611which make it possible to have substitute characters that are 1612displayed when previewing with -TXps but ignored when printing with 1613grops. 1614 1615Xditview 1616-------- 1617 1618Support for scalable fonts. 1619 1620VERSION 1.03 1621============ 1622 1623No changes other than bug fixes. 1624 1625VERSION 1.02 1626============ 1627 1628There is an implementation of refer and associated programs. groff -R 1629preprocesses with grefer; no mechanism is provided for passing 1630arguments to grefer because most grefer options have equivalent 1631commands which can be included in the file. grog also supports refer. 1632 1633There is an alternative perl implementation of the grog script. 1634 1635The code field in lines in the charset section of font description 1636files is now allowed to contain an arbitrary integer (previously it 1637was required to lie between 0 and 255). Currently grops and grodvi 1638use only the low order 8 bits of the value. Grodvi will use the 1639complete value; however, this is unlikely to be useful with 1640traditional TeX tools (.tfm files only allow 8 bit character codes.) 1641 1642Left and right double quotes can be obtained with \(lq and \(rq 1643respectively. 1644 1645There is a new program called pfbtops which translates PostScript 1646fonts in pfb format to ASCII. 1647 1648A slightly modified version of the Berkeley tmac.doc is included. 1649 1650Troff 1651----- 1652 1653In long escape names the closing ] is now required to be at the same 1654input level as the opening [. 1655 1656The \A'S' escape sequence returns 1 or 0 according as S is or is not 1657suitable for use as a name. 1658 1659\~ produces an unbreakable space that can be stretched when the line 1660is adjusted. 1661 1662The `mso' request is like the `so' request except that it searches for 1663the file in the same directories in which tmac.X is searched for when 1664the -mX option is given. 1665 1666The escape sequence `\R' is similar to the `nr' request. 1667 1668Eqn 1669--- 1670 1671A new `special' primitive allows you to add new types of unary 1672constructs by writing a troff macro. 1673 1674Pic 1675--- 1676 1677The implementation no longer uses gperf. 1678 1679Grops 1680----- 1681 1682The compile-time -DBROKEN_SPOOLER option has been replaced by a 1683BROKEN_SPOOLER_FLAGS option. This allows more precise control over 1684how grops should workaround broken spoolers and previewers. There is 1685a new -b option that can change this at run-time. 1686 1687Grops now generates PostScript that complies with version 3.0 of the 1688Document Structuring Convention. 1689 1690The resource management component of grops (the part that deals with 1691imported documents and downloadable fonts) has been rewritten and now 1692supports version 3.0 of the Document Structuring Conventions. The 1693%%DocumentFonts comment is no longer supported; you must use the 1694%%Document{Needed,Supplied}{Fonts,Resources} comments instead 1695(or as well.) 1696 1697tmac.psatk contains some macros that support the mechanism used by the 1698Andrew Toolkit for including PostScript graphics in troff documents. 1699 1700Xditview 1701-------- 1702 1703Parts of xditview have been rewritten so that it can be used with the 1704output of gtroff -Tps. groff -TXps will run gtroff -Tps with 1705gxditview. 1706 1707There is a new menu entry `Print' which brings up a dialog box for 1708specifying a command with which the file being previewed should be 1709printed. 1710 1711Xditview now uses imake. 1712 1713VERSION 1.01 1714============ 1715 1716The groff command now understands the gtroff `-a' and `-i' options. 1717 1718With the `m' and `n' scale indicators, the scale factor is rounded 1719horizontally before being applied. This makes (almost) no difference 1720for devices with `hor' equal to 1, but it makes groff with -Tascii or 1721-Tlatin1 behave more like nroff in its treatment of these scale 1722indicators. Accordingly tmac.tty now calls the `nroff' request so 1723that the `n' condition will be true. 1724 1725The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X) 1726have been made to work at least somewhat with -C. In particular the 1727special characters defined by these macros now work with -C. 1728 1729groff -Tdvi -p will now pass pic the -x flag; this will enable filling 1730of arrowheads and boxes, provided that your dvi driver supports the 1731latest version of the tpic specials. 1732 1733Eqn 1734--- 1735 1736There is a new `-N' option that tells eqn not to allow newlines in 1737delimiters. This allows eqn to recover better from missing closing 1738delimiters. The groff command will pass on a `-N' option to eqn. 1739 1740Grops 1741----- 1742 1743You can now use psfig with grops. See the file ps/psfig.diff. I do 1744not recommend using psfig for new documents. 1745 1746The command \X'ps: file F' is similar to \X'ps: exec ...' except that 1747the PostScript code is read from the file F instead of being contained 1748within the \X command. This was added to support psfig. 1749 1750Grodvi 1751------ 1752 1753There are font files HB and HI corresponding to cmsssbx10 and cmssi10. 1754 1755Macros 1756------ 1757 1758The groff -me macros now work with the -C option. As a result, they 1759may also work with Unix nroff/troff. 1760 1761In -me, the $r and $R number registers now contain the line spacing as 1762a percentage of the pointsize expressed in units (normally about 120). 1763The previous definition was useless with low resolution devices such 1764as X75 and X100. 1765 1766VERSION 1.00 1767============ 1768 1769A -ms-like macro-package is now included. 1770 1771The name for the Icelandic lowercase eth character has been changed 1772from \(-d to \(Sd. 1773 1774Troff 1775----- 1776 1777There is a new request `nroff', which makes the `n' built-in condition 1778true and the `t' built-in condition false; also a new request `troff' 1779which undoes the effect of the `nroff' request. This is intended only 1780for backward compatibility: it is usually better to test \n(.H or 1781\n(.V or to use the `c' built-in condition. 1782 1783The \R escape sequence has been deleted. Use \E instead. 1784 1785There are `break' and `continue' requests for use with the `while' 1786request. 1787 1788There is a request `hym' that can ensure that when the current 1789adjustment mode is not `b' a line will not be hyphenated if it is no 1790more than a given amount short, and a request `hys' that can ensure 1791that when the current adjustment mode is `b' a line will not be 1792hyphenated if it can be justified by adding no more than a given 1793amount of extra space to each word space. 1794 1795There is a request `rj' similar to `ce' that right justifies lines. 1796 1797A warning of type `space' will be given when a call is made to an 1798undefined request or macro with a name longer than two characters, and 1799the first two characters of the name make a name that is defined. 1800This is intended to find places where a space has been omitted been a 1801request or macro and its argument. This type of warning is enabled by 1802default. 1803 1804Pic 1805--- 1806 1807A comma is permitted between the arguments to the `reset' command. 1808 1809For use with TeX, there is a new `-c' option that makes gpic treat 1810lines beginning with `.' in a way that is more compatible with tpic 1811(but ugly). 1812 1813Eqn 1814--- 1815 1816It is no longer necessary to add `space 0' at the beginning of 1817complicated equations inside pictures. 1818 1819`prime' is now treated as an ordinary character, as in Unix eqn. The 1820previous behaviour of `prime' as an operator can now be obtained using 1821`opprime'. 1822 1823Xditview 1824-------- 1825 1826There are two new devices X75-12 and X100-12 which are the same as X75 1827and X100 except that they are optimized for documents that use mostly 182812 point text. 1829 1830VERSION 0.6 1831=========== 1832 1833The installation process has been refined to make it easy for you to 1834share groff with someone who has the same type of machine as you but 1835does not have a C++ compiler. See the end of the INSTALL file for 1836details. 1837 1838There is a man page for the tfmtodit program which explains how to use 1839your own fonts with groff -Tdvi. 1840 1841There is a man page for afmtodit which explains how to use your own 1842PostScript fonts with groff -Tps. 1843 1844The \N escape sequence is now fully supported. It can now be used to 1845access any character in a font by its output code, even if it doesn't 1846have a groff name. This is made possible by a convention in the font 1847files that a character name of `---' refers to an unnamed character. 1848The drivers now all support the `N' command required for this. The font 1849description files have been updated to include unnamed characters. 1850 1851The `x' command in font description files has been removed: instead 1852any unknown commands are automatically made available to the drivers. 1853If you constructed your own font files with an earlier version of 1854tfmtodit or afmtodit, you must construct them again using the current 1855version. 1856 1857Characters between 0200 and 0237 octal are no longer legal input 1858characters. Note that these are not used in ISO 8859. 1859 1860A command called `grog' has been added, similar to the `doctype' 1861command described in Kernighan and Pike. 1862 1863Groff 1864----- 1865 1866The groff command has some new options: -V prints the pipeline 1867instead of executing it; -P passes an argument to the postprocessor, 1868-L passes an argument to the spooler. 1869 1870There is a C++ implementation of the groff command. This handles some 1871things slightly better than the shell script. In particular, it can 1872correctly handle arguments containing characters that have a special 1873meaning to the shell; it can give an error message when child 1874processes other than the last in the pipeline terminate abnormally; 1875its exit status can take account of the exit statuses of all its child 1876processes; it is a little more efficient; when geqn is used, it 1877searches for the eqnchar file in the same way that font metric files 1878are searched for, rather than expecting to find it in one particular 1879directory. 1880 1881Gtroff 1882------ 1883 1884There is font translation feature: For example, you can tell gtroff to 1885use font `HR' whenever font `H' is requested with the line 1886 .ftr H HR 1887This would be useful for a document that uses `H' to refer to 1888Helvetica. 1889 1890There are some new number registers: `.kern' contains the current kern 1891mode, `.lg' the current ligature mode, `.x' the major version number, 1892`.y' the minor version number, `.ce' the number of lines to be 1893centered in the current environment, `.trunc' the amount of vertical 1894space truncated by the most recently sprung vertical position trap, 1895`.ne' the amount of vertical space needed in the last `ne' request 1896that caused a vertical position trap to be sprung. 1897 1898The `cf' request now behaves sensibly in a diversion. If used in a 1899diversion, it will now arrange for the file to be copied to the output 1900when the diversion is reread. 1901 1902There is a new request `trf' (transparent file) similar to `cf', but 1903more like `\!'. 1904 1905There is a new escape sequence `\Y[xxx]', roughly equivalent to 1906`\X'\*[xxx]'', except that the contents of string or macro xxx are not 1907interpreted, and xxx may contain newlines. This requires an output 1908format extension; the drivers have been modified to understand this. 1909Grops has also been modified to cope with newlines in the arguments to 1910\X commands; grops has a new \X command mdef, which is like def except 1911that it has a first argument giving the number of definitions. 1912 1913There is a new warning category `escape' which warns about unknown 1914escape sequences. 1915 1916The `fp' request now takes an optional third argument giving the external 1917name of the font. 1918 1919The `\_' character is now automatically translated to `\(ul' as in troff. 1920 1921The environment variable `GROFF_HYPHEN' gives the name of the file 1922containing the hyphenation patterns. 1923 1924There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'. 1925 1926Characters ", ', ), ], *, \(dg are now initially transparent for the purposes 1927of end of sentence recognition. 1928 1929There is an anti-recursion feature in the `char' request, so you can 1930say `.char \(bu \s+2\(bu\s-2'. 1931 1932The limit on the number of font positions has been removed. 1933Accordingly `\n[.fp]' never returns 0. 1934 1935The restriction on the number of numbered environments has been removed. 1936 1937There is a new escape sequence `\E' that makes it possible to 1938guarantee that an escape sequence won't get interpreted in copy-mode. 1939The `\R' escape sequence is accordingly now deprecated. 1940 1941Gpic 1942---- 1943 1944Arguments of the form `X anything X' (in the `copy thru', `sh', `for', 1945`if' and `define' constructs) can now be of the form `{ anything }'. 1946 1947If the `linethick' variable is negative (as it now is initially), 1948lines will be drawn with a thickness proportional to the current point 1949size. 1950 1951The `rand' function now takes no arguments and returns a number between 19520 and 1. The old syntax is still supported. 1953 1954`^' can be used in expressions to indicate exponentiation. 1955 1956In the `for' construct the argument to the by clause can be prefixed 1957by `*' to indicate that the increment is multiplicative. 1958 1959A bare expression may be used as an attribute. If the current 1960direction is `dir', then an attribute `expr' is equivalent to 1961`dir expr' 1962 1963There is a `sprintf' construct that allows numbers to be formatted and used 1964wherever a quoted string can be used. 1965 1966The height of a text object without an explicit height attribute is 1967the number of text strings associated with the object times the value 1968of the `textht' variable. 1969 1970The maximum height and width of a picture is controlled by the 1971`maxpswid' and `maxpsht' variables. 1972 1973Gtbl 1974---- 1975 1976Gtbl can now handle gracefully the situation where the `ce' request 1977has been applied to a table. 1978 1979Geqn 1980---- 1981 1982The `ifdef' primitive has been generalized. 1983 1984A tilde accent can be put underneath a box using `utilde'. This 1985defined using a general `uaccent' primitive. 1986 1987Grops 1988----- 1989 1990There is a new PostScript font downloading scheme which handles font 1991downloading for imported illustrations. Previously, the name of the 1992file containing the font was given in the `x download' line in the 1993groff font metric file. Now, there is a `download' file which says 1994for each PostScript font name which file contains that font. Grops 1995can also now handle inter-font dependencies, where one downloadable 1996font depends on some other (possibly downloadable) font. 1997 1998The `T' font has been removed. The characters it used to provide are 1999now provided by `char' definitions in tmac.ps. TSymbol.ps has also 2000been removed, and the tweaks it provided are now provided by `char' 2001definitions. 2002