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