NEWS revision 55839
1This file describes recent user-visible changes in groff. Bug fixes 2are not described. There are more details in the man pages. 3 4VERSION 1.13, 1.14, 1.15 5======================== 6 7Bug fixes only; no user-visible changes. 8 9VERSION 1.12 10============ 11 12Finally, there are new maintainers for groff. Mailing lists and a CVS 13repository are available also. See the file README for details. Not 14all reported bug could be fixed, so please send mails again if 15something is still not working. 16 17Most of the installation problems should have vanished now (most 18notably the $(tmac_wrap) bug). 19 20There is now a man page called groff_man.man which documents the 21basics of the -man macros. It has been originally written by Susan 22G. Kleinmann <sgk@debian.org>. 23 24A (still incomplete) groff reference manual in texinfo format 25originally contributed by Trent A. Fisher <trent@gnurd.portland.or.us>. 26 27me.man and msafer.man have been renamed to groff_me.man 28resp. groff_msafer.man for consistency. 29 30Default strings for macros in doc-common resp. tmac.an no longer 31contain the word `UNIX'. 32 33groff should now be Y2k safe (fixes contributed by Paul Eggert 34<eggert@twinsun.com>). 35 36Following the GNU standards, groff will now use the prefix 37`/usr/local/' as the default instead of replacing an existent groff 38binary. 39 40groff, troff, nroff, and pic now support the -U flag to activate unsafe 41behaviour (without -msafer); the -S flag for using the -msafer macros 42is now the default. 43 44Grohtml 45------- 46 47This is a new output device for producing HTML output contributed by 48Gaius Mulley <gaius@glam.ac.uk>. It is still very alpha but has been 49included into the distribution so that a lot of people have a chance 50to test it. Bug reports are highly welcome. 51 52Grolj4 53------ 54 55Duplex printing support has been contributed by Jeffrey Copeland 56<jeff@opennt.com>. 57 58Soelim 59------ 60 61Added -I option for defining include paths (patch contributed by Peter 62Miller <peterm@jna.com.au>). 63 64Gxditview 65--------- 66 67Fallback resources added (patch contributed by Larry Jones 68<larry.jones@sdrc.com>). 69 70Will now support 8 gray levels. 71 72mm 73-- 74 75New version 1.32 (contributed by Joergen Haegg <jh@axis.com>). 76 77VERSION 1.11 78============ 79 80Complete documentation for pic is now in the file doc/pic.ms. It was 81contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically 82*not* volunteering to take over groff as he is way overworked with 83half a dozen other projects. 84 85VERSION 1.10 86============ 87 88The directory where data files are installed has been changed from 89/usr/local/lib/groff to /usr/local/share/groff to comply with the 90latest GNU coding standards. 91 92By default groff programs with Unix equivalents are installed with a 93"g" prefix unless there is an existing (non-groff) troff installation. 94 95A new approach is used to make system macro packages available to 96groff. Instead of simply including /usr/lib/tmac in the list of 97directories searched by groff, the installation process creates for 98each system macro package a wrapper macro package in the groff macro 99directory that references the system macro package. The groff macro 100packages are now installed with a leading "g" prefix if there is a 101system version of the same macro package, and otherwise without the 102"g" prefix, with the exception that the groff version of -me which is 103always installed as -me. 104 105There is a new device, lj4, for the HP LaserJet 4 (and PCL5 106compatibles). 107 108Groff 109----- 110 111groff has a -S option that prevents the use of unsafe features in pic 112and troff. This uses a new -S option of pic and the -msafer macros 113for troff. 114 115Troff 116----- 117 118The `blm' request specifies a macro to be invoked when a blank line is 119encountered. 120 121Pic 122--- 123 124A -S (safer) option disables the sh command. 125 126Grops 127----- 128 129The -m option enables manual feed. 130 131VERSION 1.09 132============ 133 134\(rn will now produce a character that has the traditional metrics, 135and will form corners with \(ul and \(br. This means that it will not 136align properly with \(sr. Instead there's a new character 137\[radicalex] which aligns with \(sr; this is used by eqn for doing 138square roots. 139 140Troff 141----- 142 143The `pso' request allows you to read from the standard output of a 144command. 145 146Grops 147----- 148 149The PSPIC macro has options to allow the horizontal alignment of the 150graphic to be specified. 151 152VERSION 1.08 153============ 154 155Troff 156----- 157 158The escape sequence \V[xxx] will interpolate the value of the 159environment variable xxx. 160 161Tbl 162--- 163 164The decimalpoint option can be used to specify the character to be 165recognized as the decimal point character in place of the default 166period. 167 168VERSION 1.07 169============ 170 171Groff 172----- 173 174The environment variable GROFF_COMMAND_PREFIX can be used to control 175whether groff looks for `gtroff' or `troff' (similarily for the 176preprocessors.) 177 178Troff 179----- 180 181Multilingual hyphenation is supported by new `hpf' and `hla' requests, 182and by a `\n[.hla]' number register. The -H option has been removed. 183Files of hyphenation patterns can have comments. 184 185When a font cannot be found, troff gives a warning (of type `font', 186enabled by default) instead of an error. 187 188There's a new request `trnt' that's like `tr' except that it doesn't 189apply to text transparently throughput into a diversion with \!. 190 191Tbl 192--- 193 194There is a `nokeep' option which tells tbl not to use diversions to 195try to keep the table on one page. 196 197Eqn 198--- 199 200Setting the parameter `nroff' to a non-zero value causes `ndefine' to 201behave like `define' and `tdefine' to be ignored. This is done by 202eqnrc when the current device is ascii or latin1. There's a `neqn' 203script that just does `eqn -Tascii'. 204 205Grotty 206------ 207 208grotty uses whatever page length was specified using the `pl' request 209rather than using the paperlength command in the DESC file. The 210paperwidth command in the DESC file is also ignored. 211 212VERSION 1.06 213============ 214 215The programs in groff that have Unix counterparts can now be installed 216without a leading `g' prefix. See the `g' variable in the Makefile. 217 218The g?nroff script simulates the nroff command using groff. 219 220New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz, 221\(an. See groff_char(7). 222 223^L is now a legal input character. 224 225Groff 226----- 227 228The Xps pseudo-device has disappeared. Instead there is a new -X 229option that tells groff to use gxditview instead of the usual 230postprocessor. (So instead of -TXps, use -XTps or just -X if your 231default device is ps.) 232 233The postprocessor to be used for a particular device is now specified 234by a `postpro' command in the DESC file rather than being compiled 235into groff. Similarly the command to be used for printing (with the 236-l option) is now specified by a `print' command in the DESC file. 237 238The groff command no longer specifies eqnchar as an input file for 239eqn. Instead eqn automatically loads a file `eqnrc'. The groff 240command no longer passes the -D option to eqn. Instead eqnrc sets the 241draw_lines parameter. 242 243The groff command no longer tells troff to load a device-specific 244macro file. This is handled instead by the `troffrc' file, which is 245always loaded by troff. 246 247The shell script version of groff has been removed. 248 249Troff 250----- 251 252The `rchar' request removes a character definition established with `char'. 253 254Compatibility mode is disabled and the escape character is set to `\' 255while a character definition is being processed. 256 257The `\#' escape sequence is like `\"' except that the terminating 258newline is ignored. 259 260The `shc' request tells troff which character to insert (instead of 261the default \(hy) when a word is hyphenated at a line break. 262 263A font name of 0 (zero) in the DESC file will cause no font to be 264mounted on the corresponding font position. This is useful for 265arranging that special fonts are mounted on positions on which users 266are not likely explicitly to mount fonts. All groff devices now avoid 267initially mounting fonts on positions 5-9. 268 269The `do' request allows a single request or macro to be interpreted 270with compatibility mode disabled. 271 272troff automatically loads a file `troffrc' before any other input file. 273This can be prevented with the -R option. This file is responsible 274for loading the device-specific macros. 275 276Pic 277--- 278 279The -x option has been removed and a -n option has been added. By 280default, pic now assumes that the postprocessor supports groff 281extensions. The -n option tells pic to generate output that works 282with ditroff drivers. The -z option now applies only to TeX mode. 283 284The -p option has been removed. Instead if the -n option is not 285specified, pic generates output that uses \X'ps: ...' if the \n(0p 286register is non-zero and tmac.ps sets this register to 1. 287 288In places where you could 1st or 5th you can now say `i'th or `i+1'th 289(the quotes are required). 290 291Eqn 292--- 293 294Eqn now automatically reads a file `eqnrc' from the macro directory. 295This performs the same role that the eqnchar files used to. This can 296be prevented by the -R option. 297 298Setting the draw_lines parameter to a non-zero value causes lines to 299be drawn using \D rather than \l. The -D option is now obsolete. 300 301`uparrow', `downarrow' and `updownarrow' can be used with `left' and 302`right'. 303 304The amount of extra space added before and after lines containing 305equations can be controlled using the `body_height' and `body_depth' 306parameters. 307 308Grops 309----- 310 311Font description files have been regenerated from newer AFM files. 312You can get access to the additional characters present in the text 313fonts in newer PostScript printers by using -mpsnew. 314 315The default value of the -b option is specified by a `broken' command 316in the DESC file. 317 318With the -g option, grops will generate PostScript code that guesses 319the page height. This allows documents to be printed on both letter 320(8.5x11) and A4 paper without change. 321 322Grodvi 323------ 324 325ISO Latin-1 characters are available with -Tdvi. Format groff_char(7) 326with groff -Tdvi for more information. 327 328Grotty 329------ 330 331The -mtty-char macros contain additional character definitions for 332use with grotty. 333 334Macros 335------ 336 337In previous releases the groff -me macros treated the $r and $R number 338registers in a way that was incompatible with the BSD -me macros. The 339reason for this was that the approach used by the BSD -me macros does 340not work with low resolution devices such as -TX75 and -TX100. 341However, this caused problems with existing -me documents. In this 342release, the vertical spacing is controlled by the $v and $V registers 343which have the same meaning as $r and $R in earlier groff releases. 344In addition, if the $r or $R register is set to a value that would be 345correct for for the BSD -me macros and a low resolution device is not 346being used, then an appropriate value for the $v or $V register will 347be derived from the $r or $R register. 348 349The groff -me macros work with -C and (I think) with Unix troff. 350 351For backward compatibility with BSD -me, the \*{ and \*} strings are 352also available as \*[ and \*]. Of course, \*[ will only be usable 353with -C. 354 355The \*T string has been deleted. Use \*(Tm instead. 356 357Xditview 358-------- 359 360The `n', Space and Return keys are bound to the Next Page action. The 361`p', BackSpace and Delete keys are bound to the Previous Page action. 362The `q' key is bound to the Quit action. 363 364The `r' key is bound to a rerasterize action that reruns groff, and 365redisplays the current page. 366 367VERSION 1.05 368============ 369 370Pic 371--- 372 373There is a alternative assignment operator `:=' which interacts 374differently with blocks. 375 376There is a new command `command', which allows the values of variables 377to be passed through to troff or TeX. 378 379The `print' command now accepts multiple arguments. 380 381String comparison expressions (using `==' or `!=') are allowed in more 382contexts. 383 384Grotty 385------ 386 387Horizontal and vertical lines drawn with \D'l ...' will be rendered 388using -, | and + characters. This is intended to give reasonable 389results with boxed tables. It won't work well with pic. 390 391Macros 392------ 393 394The -mdoc macros have been upgraded to the version in the second 395Berkeley networking release. This version is not completely 396compatible with earlier versions; the old version is still available 397as -mdoc.old. The grog script has been enhanced so that it can 398usually determine whether a document requires the old or new versions. 399 400With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box 401around where the picture would appear with -Tps. 402 403VERSION 1.04 404============ 405 406An implementation of the -mm macros is included. 407 408The directory in which temporary files are created can be controlled 409by setting the GROFF_TMPDIR or TMPDIR environment variables. 410 411Pic 412--- 413 414Some MS-DOS support (see pic/make-dos-dist). 415 416Grops 417----- 418 419There are two new \X commands (\X'ps: invis' and \X'ps: endinvis') 420which make it possible to have substitute characters that are 421displayed when previewing with -TXps but ignored when printing with 422grops. 423 424Xditview 425-------- 426 427Support for scalable fonts. 428 429VERSION 1.03 430============ 431 432No changes other than bug fixes. 433 434VERSION 1.02 435============ 436 437There is an implementation of refer and associated programs. groff -R 438preprocesses with grefer; no mechanism is provided for passing 439arguments to grefer because most grefer options have equivalent 440commands which can be included in the file. grog also supports refer. 441 442There is an alternative perl implementation of the grog script. 443 444The code field in lines in the charset section of font description 445files is now allowed to contain an arbitrary integer (previously it 446was required to lie between 0 and 255). Currently grops and grodvi 447use only the low order 8 bits of the value. Grodvi will use the 448complete value; however, this is unlikely to be useful with 449traditional TeX tools (.tfm files only allow 8 bit character codes.) 450 451Left and right double quotes can be obtained with \(lq and \(rq 452respectively. 453 454There is a new program called pfbtops which translates PostScript 455fonts in pfb format to ASCII. 456 457A slightly modified version of the Berkeley tmac.doc is included. 458 459Troff 460----- 461 462In long escape names the closing ] is now required to be at the same 463input level as the opening [. 464 465The \A'S' escape sequence returns 1 or 0 according as S is or is not 466suitable for use as a name. 467 468\~ produces an unbreakable space that can be stretched when the line 469is adjusted. 470 471The `mso' request is like the `so' request except that it searches for 472the file in the same directories in which tmac.X is searched for when 473the -mX option is given. 474 475The escape sequence `\R' is similar to the `nr' request. 476 477Eqn 478--- 479 480A new `special' primitive allows you to add new types of unary 481constructs by writing a troff macro. 482 483Pic 484--- 485 486The implementation no longer uses gperf. 487 488Grops 489----- 490 491The compile-time -DBROKEN_SPOOLER option has been replaced by a 492BROKEN_SPOOLER_FLAGS option. This allows more precise control over 493how grops should workaround broken spoolers and previewers. There is 494a new -b option that can change this at run-time. 495 496Grops now generates PostScript that complies with version 3.0 of the 497Document Structuring Convention. 498 499The resource management component of grops (the part that deals with 500imported documents and downloadable fonts) has been rewritten and now 501supports version 3.0 of the Document Structuring Conventions. The 502%%DocumentFonts comment is no longer supported; you must use the 503%%Document{Needed,Supplied}{Fonts,Resources} comments instead 504(or as well.) 505 506tmac.psatk contains some macros that support the mechanism used by the 507Andrew Toolkit for including PostScript graphics in troff documents. 508 509Xditview 510-------- 511 512Parts of xditview have been rewritten so that it can be used with the 513output of gtroff -Tps. groff -TXps will run gtroff -Tps with 514gxditview. 515 516There is a new menu entry `Print' which brings up a dialog box for 517specifying a command with which the file being previewed should be 518printed. 519 520Xditview now uses imake. 521 522VERSION 1.01 523============ 524 525The groff command now understands the gtroff `-a' and `-i' options. 526 527With the `m' and `n' scale indicators, the scale factor is rounded 528horizontally before being applied. This makes (almost) no difference 529for devices with `hor' equal to 1, but it makes groff with -Tascii or 530-Tlatin1 behave more like nroff in its treatment of these scale 531indicators. Accordingly tmac.tty now calls the `nroff' request so 532that the `n' condition will be true. 533 534The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X) 535have been made to work at least somewhat with -C. In particular the 536special characters defined by these macros now work with -C. 537 538groff -Tdvi -p will now pass pic the -x flag; this will enable filling 539of arrowheads and boxes, provided that your dvi driver supports the 540latest version of the tpic specials. 541 542Eqn 543--- 544 545There is a new `-N' option that tells eqn not to allow newlines in 546delimiters. This allows eqn to recover better from missing closing 547delimiters. The groff command will pass on a `-N' option to eqn. 548 549Grops 550----- 551 552You can now use psfig with grops. See the file ps/psfig.diff. I do 553not recommend using psfig for new documents. 554 555The command \X'ps: file F' is similar to \X'ps: exec ...' except that 556the PostScript code is read from the file F instead of being contained 557within the \X command. This was added to support psfig. 558 559Grodvi 560------ 561 562There are font files HB and HI corresponding to cmsssbx10 and cmssi10. 563 564Macros 565------ 566 567The groff -me macros now work with the -C option. As a result, they 568may also work with Unix nroff/troff. 569 570In -me, the $r and $R number registers now contain the line spacing as 571a percentage of the pointsize expressed in units (normally about 120). 572The previous definition was useless with low resolution devices such 573as X75 and X100. 574 575VERSION 1.00 576============ 577 578A -ms-like macro-package is now included. 579 580The name for the Icelandic lowercase eth character has been changed 581from \(-d to \(Sd. 582 583Troff 584----- 585 586There is a new request `nroff', which makes the `n' built-in condition 587true and the `t' built-in condition false; also a new request `troff' 588which undoes the effect of the `nroff' request. This is intended only 589for backward compatibility: it is usually better to test \n(.H or 590\n(.V or to use the `c' built-in condition. 591 592The \R escape sequence has been deleted. Use \E instead. 593 594There are `break' and `continue' requests for use with the `while' 595request. 596 597There is a request `hym' that can ensure that when the current 598adjustment mode is not `b' a line will not be hyphenated if it is no 599more than a given amount short, and a request `hys' that can ensure 600that when the current adjustment mode is `b' a line will not be 601hyphenated if it can be justified by adding no more than a given 602amount of extra space to each word space. 603 604There is a request `rj' similar to `ce' that right justifies lines. 605 606A warning of type `space' will be given when a call is made to an 607undefined request or macro with a name longer than two characters, and 608the first two characters of the name make a name that is defined. 609This is intended to find places where a space has been omitted been a 610request or macro and its argument. This type of warning is enabled by 611default. 612 613Pic 614--- 615 616A comma is permitted between the arguments to the `reset' command. 617 618For use with TeX, there is a new `-c' option that makes gpic treat 619lines beginning with `.' in a way that is more compatible with tpic 620(but ugly). 621 622Eqn 623--- 624 625It is no longer necessary to add `space 0' at the beginning of 626complicated equations inside pictures. 627 628`prime' is now treated as an ordinary character, as in Unix eqn. The 629previous behaviour of `prime' as an operator can now be obtained using 630`opprime'. 631 632Xditview 633-------- 634 635There are two new devices X75-12 and X100-12 which are the same as X75 636and X100 except that they are optimized for documents that use mostly 63712 point text. 638 639VERSION 0.6 640=========== 641 642The installation process has been refined to make it easy for you to 643share groff with someone who has the same type of machine as you but 644does not have a C++ compiler. See the end of the INSTALL file for 645details. 646 647There is a man page for the tfmtodit program which explains how to use 648your own fonts with groff -Tdvi. 649 650There is a man page for afmtodit which explains how to use your own 651PostScript fonts with groff -Tps. 652 653The \N escape sequence is now fully supported. It can now be used to 654access any character in a font by its output code, even if it doesn't 655have a groff name. This is made possible by a convention in the font 656files that a character name of `---' refers to an unnamed character. 657The drivers now all support the `N' command required for this. The font 658description files have been updated to include unnamed characters. 659 660The `x' command in font description files has been removed: instead 661any unknown commands are automatically made available to the drivers. 662If you constructed your own font files with an earlier version of 663tfmtodit or afmtodit, you must construct them again using the current 664version. 665 666Characters between 0200 and 0237 octal are no longer legal input 667characters. Note that these are not used in ISO 8859. 668 669A command called `grog' has been added, similar to the `doctype' 670command described in Kernighan and Pike. 671 672Groff 673----- 674 675The groff command has some new options: -V prints the pipeline 676instead of executing it; -P passes an argument to the postprocessor, 677-L passes an argument to the spooler. 678 679There is a C++ implementation of the groff command. This handles some 680things slightly better than the shell script. In particular, it can 681correctly handle arguments containing characters that have a special 682meaning to the shell; it can give an error message when child 683processes other than the last in the pipeline terminate abnormally; 684its exit status can take account of the exit statuses of all its child 685processes; it is a little more efficient; when geqn is used, it 686searches for the eqnchar file in the same way that font metric files 687are searched for, rather than expecting to find it in one particular 688directory. 689 690Gtroff 691------ 692 693There is font translation feature: For example, you can tell gtroff to 694use font `HR' whenever font `H' is requested with the line 695 .ftr H HR 696This would be useful for a document that uses `H' to refer to 697Helvetica. 698 699There are some new number registers: `.kern' contains the current kern 700mode, `.lg' the current ligature mode, `.x' the major version number, 701`.y' the minor version number, `.ce' the number of lines to be 702centered in the current environment, `.trunc' the amount of vertical 703space truncated by the most recently sprung vertical position trap, 704`.ne' the amount of vertical space needed in the last `ne' request 705that caused a vertical position trap to be sprung. 706 707The `cf' request now behaves sensibly in a diversion. If used in a 708diversion, it will now arrange for the file to be copied to the output 709when the diversion is reread. 710 711There is a new request `trf' (transparent file) similar to `cf', but 712more like `\!'. 713 714There is a new escape sequence `\Y[xxx]', roughly equivalent to 715`\X'\*[xxx]'', except that the contents of string or macro xxx are not 716interpreted, and xxx may contain newlines. This requires an output 717format extension; the drivers have been modified to understand this. 718Grops has also been modified to cope with newlines in the arguments to 719\X commands; grops has a new \X command mdef, which is like def except 720that it has a first argument giving the number of definitions. 721 722There is a new warning category `escape' which warns about unknown 723escape sequences. 724 725The `fp' request now takes an optional third argument giving the external 726name of the font. 727 728The `\_' character is now automatically translated to `\(ul' as in troff. 729 730The environment variable `GROFF_HYPHEN' gives the name of the file 731containing the hyphenation patterns. 732 733There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'. 734 735Characters ", ', ), ], *, \(dg are now initially transparent for the purposes 736of end of sentence recognition. 737 738There is an anti-recursion feature in the `char' request, so you can 739say `.char \(bu \s+2\(bu\s-2'. 740 741The limit on the number of font positions has been removed. 742Accordingly `\n[.fp]' never returns 0. 743 744The restriction on the number of numbered environments has been removed. 745 746There is a new escape sequence `\E' that makes it possible to 747guarantee that an escape sequence won't get interpreted in copy-mode. 748The `\R' escape sequence is accordingly now deprecated. 749 750Gpic 751---- 752 753Arguments of the form `X anything X' (in the `copy thru', `sh', `for', 754`if' and `define' constructs) can now be of the form `{ anything }'. 755 756If the `linethick' variable is negative (as it now is initially), 757lines will be drawn with a thickness proportional to the current point 758size. 759 760The `rand' function now takes no arguments and returns a number between 7610 and 1. The old syntax is still supported. 762 763`^' can be used in expressions to indicate exponentiation. 764 765In the `for' construct the argument to the by clause can be prefixed 766by `*' to indicate that the increment is multiplicative. 767 768A bare expression may be used as an attribute. If the current 769direction is `dir', then an attribute `expr' is equivalent to 770`dir expr' 771 772There is a `sprintf' construct that allows numbers to be formatted and used 773wherever a quoted string can be used. 774 775The height of a text object without an explicit height attribute is 776the number of text strings associated with the object times the value 777of the `textht' variable. 778 779The maximum height and width of a picture is controlled by the 780`maxpswid' and `maxpsht' variables. 781 782Gtbl 783---- 784 785Gtbl can now handle gracefully the situation where the `ce' request 786has been applied to a table. 787 788Geqn 789---- 790 791The `ifdef' primitive has been generalized. 792 793A tilde accent can be put underneath a box using `utilde'. This 794defined using a general `uaccent' primitive. 795 796Grops 797----- 798 799There is a new PostScript font downloading scheme which handles font 800downloading for imported illustrations. Previously, the name of the 801file containing the font was given in the `x download' line in the 802groff font metric file. Now, there is a `download' file which says 803for each PostScript font name which file contains that font. Grops 804can also now handle inter-font dependencies, where one downloadable 805font depends on some other (possibly downloadable) font. 806 807The `T' font has been removed. The characters it used to provide are 808now provided by `char' definitions in tmac.ps. TSymbol.ps has also 809been removed, and the tweaks it provided are now provided by `char' 810definitions. 811