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