/contrib/groff/NEWS
#! | 2307 lines | 1629 code | 678 blank | 0 comment | 0 complexity | 22697d0dbf26e3e83b3fe71382bf975a MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, LGPL-2.0, LGPL-2.1, BSD-2-Clause, 0BSD, JSON, AGPL-1.0, GPL-2.0
- This file describes recent user-visible changes in groff. Bug fixes are not
- described. There are more details in the man and info pages.
- VERSION 1.19.2
- ==============
- Troff
- -----
- o Analogously to the .ft and \f pair, two new requests `gcolor' and
- `fcolor' (which pair with \m and \M, respectively) have been added to
- set the glyph and background colours.
- o A new read-only, string-valued register `.sty' returns the name of the
- current style.
- o Two new conditional operators `F <name>' and `S <name>' have been added.
- `F' is true if a font <name> exists. `S' is true if a style <name> has
- been registered.
- o Cyrillic characters have been added to the `utf8' and `html' output
- devices.
- Pic
- ---
- o The `by' argument in a `for' loop can now be negative if it is additive.
- For the multiplicative case, it must be greater than zero.
- Eqn
- ---
- o The following keywords aren't new but haven't been documented previously:
- undef NAME (to undefine a macro)
- copy "FILE" (a synonym for `include')
- space n (to modify the vertical spacing before and after
- an equation)
- o The following macros aren't new but haven't been documented previously:
- Alpha, ..., Omega (the same as `ALPHA', ..., `OMEGA')
- ldots (three dots on the base line)
- dollar (a dollar glyph)
- o The following keywords have been extended. Again, this isn't new but
- hasn't been documented previously:
- col n { ... }
- lcol n { ... }
- rcol n { ... }
- ccol n { ... }
- pile n { ... }
- lpile n { ... }
- rpile n { ... }
- cpile n { ... } (set vertical spacing between rows to N)
- Grohtml
- -------
- o This device driver has been raised to beta stage; its set of tags should
- be stable now.
- o New command line option `-s' to set the base point size.
- o New command line option `-S' to set the split level while generating
- multiple files.
- Grotty
- ------
- o Experimental support for zero-width and double-width characters.
-
- Gxditview
- ---------
- o On platforms which have the X Window System this program is now built and
- installed automatically.
- Xtotroff
- --------
- o This program to create font definition files for xditview isn't new but
- hasn't been installed previously.
- Groffer
- -------
- o A security problem (reported as CAN-2004-0969) has been fixed.
- Gdiffmk
- -------
- o A new script contributed by Mike Bianchi. It compares two groff, nroff,
- or troff documents and creates an output with added margin characters
- (using `.mc') to indicate the differences.
- Pdfroff
- -------
- o A new wrapper script contributed by Keith Marshall to easily create PDF
- documents with groff.
- Macro packages
- --------------
- o ms.tmac
- . Support for fractional point sizes: A value for the `PS', `VS', `FPS',
- and `VPS' register larger than or equal to 1000 is always divided by
- 1000. For example, `.nr PS 10250' sets the document's font size to
- 10.25 points.
- . The `Ds' and `De' macros provided in ms since groff version 1.19 have
- been removed; the equivalent `DS' and `DE' macros should be used
- instead. X11 documents which actually use `Ds' and `De' always load a
- specific macro file from the X11 distribution (`macros.t') which
- provides proper definitions for the two macros.
- . The following registers have been added for improving layout control:
- PORPHANS
- Defines number of lines following `LP', `PP', `QP', `IP' or `XP' which
- must be kept together, before any automatic page break.
- HORPHANS
- Sets number of lines of following paragraph which must be kept with a
- heading, defined by `NH' or `SH', before any automatic page break.
- GROWPS
- Sets the first level of heading (set with `NH') which will keep the
- same point size as body text.
- PSINCR
- Sets the point size increment for each level of heading (set with
- `NH'), below the threshold level set by `GROWPS'; e.g., if
- \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p, then `.NH 1' will
- produce 14pt headings, `.NH 2' will produce 12pt, and all other levels
- will remain at 10pt (because \n[PS] = 10).
- . The `SH' macro now accepts a numeric argument, to make heading size
- match that of `NH' with same argument value when the `GROWPS'/`PSINCR'
- feature is enabled.
- Please refer to the documentation of the ms package for other, minor
- improvements.
- o me.tmac
- The section type set with the `++' request is available in the `_M'
- register. This isn't new but hasn't been documented before.
- o www.tmac
- The `HR' macro no longer causes an empty line for non-HTML devices.
- A new macro `HEAD' has been added to directly add data to the
- <head>...</head> block.
- New macros `OLS' and `OLE' to start and end an ordered list.
- New macros `DLS' and `DLE' to start and end a definition list.
- Pdfmark
- -------
- o A new macro package contributed by Keith Marshall which implements PDF
- marks. This is in alpha stage currently.
- Miscellaneous
- -------------
- o Two new keywords to the DESC file have been added which are needed for
- grohtml: `image_generator' and `unscaled_charwidths'. The former gives
- the name of the program which creates PNG images, and the latter makes
- troff always use unscaled character widths.
- VERSION 1.19.1
- ==============
- Groff
- -----
- o The argument of the command line option `-I' is now also passed to troff
- and grops, specifying a directory to search for files on the command line,
- files named in `so' and `psbb' requests, and files named in \X'ps: file'
- and \X'ps: import' escapes.
- o If option `-V' is used more than once, the commands will be both printed
- on standard error and run.
- Troff
- -----
- o Two new read-only, string-valued registers `.m' and `.M' return the
- name of the current drawing and background color, respectively.
- o New read-only register `.U' which is set to 1 if in safer mode and set
- to 0 if in unsafe mode.
- o An input encoding file for latin-5 (a.k.a. ISO 8859-9) has been added.
- Example use:
- groff -Tdvi -mlatin5 my_file > my_file.dvi
- Note that some output devices don't support all glyphs of this encoding.
- o If the `return' request is called with an argument, it exits twice,
- namely the current macro and the macro one level higher. This is
- used to define a wrapper macro for `return' in trace.tmac.
- o For completeness, two new requests have been added: `dei1' and `ami1'.
- They are equivalent to `dei' and `ami', respectively, but the macros
- are executed with compatibility mode off (similar to `de1' and `am1').
- o New command line option `-I' to specify a directory for files (both
- those on the command line and those named in `psbb' requests). This is
- also handled by the groff wrapper program.
- o Since version 1.19 you can say `.vs 0'. Older versions emit a warning
- and convert this to `.vs \n[.V]'.
- This hasn't been documented properly. Note that `.vs 0' isn't saved in a
- diversion since it doesn't result in vertical motion.
- Pic
- ___
- o Dashed and dotted ellipses have been implemented.
- Tbl
- ---
- o New key character `x' to make tbl call a user-defined macro on a table
- cell. Patch by Heinz-Jürgen Oertel <hj.oertel@surfeu.de>.
- Grap2graph
- ----------
- o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It
- converts a grap diagram into a cropped image. Since it uses gs and the
- PNM library, virtually all graphics formats are available for output.
- [Note that the grap program itself isn't part of the groff package;
- see the file MORE.STUFF how to obtain grap.]
- Grohtml
- -------
- o New option `-j' to emit output splitted into multiple files.
- Grops
- -----
- o New command line option `-I' to specify a directory to search for files
- on the command line and files named in \X'ps: import' and \X'ps: file'
- escapes. This is also handled by the groff wrapper program.
- o The default value for the `broken' keyword in the DESC file is now 0.
- Grolj4
- ------
- o A new man page `lj4_font(5)' documents how fonts are accessed with
- grolj4.
- o The built-in fonts for LJ4 and newer PCL 5 devices have been completely
- revised, mainly to access as much glyphs as possible. The provided
- metric files should be compatible with recent PCL 5 printers also.
- Additionally, font description files have been added for the Arial and
- Times New Roman family, the MS symbol, and Wingdings fonts.
- Afmtodit
- --------
- o New option `-x' to prevent use of built-in Adobe Glyph List.
- Hpftodit
- --------
- o Completely revised to handle HP TrueType metric files also. See the
- hpftodit manual page for more details.
- Groffer
- -------
- o This version is a rewrite of groffer in many parts, but it is kept in
- the old single script style.
- New options: --text, --mode text, --tty-viewer, --X, --mode X,
- --X-viewer, --html, --mode html, --html-view, --apropos-data,
- --apropos-devel, --apropos-progs.
- New documentation file: README_SH.
- Enhancement of the configuration files and the `apropos' handling.
- Macro Packages
- --------------
- o www.tmac: New macro `JOBNAME' to split output into multiple files.
- o In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
- section.
- VERSION 1.19
- ============
- Troff
- -----
- o Input encoding files for latin-9 (a.k.a. latin-0 and ISO 8859-15) and
- latin-2 (ISO 8859-2) have been added. Example use:
- groff -Tdvi -mlatin9 my_file > my_file.dvi
- You still need proper fonts with the necessary glyphs. Out of the box,
- the groff package supports latin-9 only for -Tps, -Tdvi, and -Tutf8,
- and latin-2 only for -Tdvi and -Tutf8.
- o Composite glyphs are now supported. To do this, a subset of the Adobe
- Glyph List (AGL) Algorithm as described in
- http://partners.adobe.com/asn/tech/type/unicodegn.jsp
- is used to construct glyph names based on Unicode character codes. The
- existing groff glyph names are frozen; no glyph names which can't be
- constructed algorithmically will be added in the future.
- The \[...] escape sequence has been extended to specify multiple glyph
- components. Example:
- \[A ho]
- this accesses a glyph with the name `u0041_0328'.
- Some groff glyphs which are useful as composites map to `wrong' Unicode
- code points. For example, `ho' maps to U+02DB which is a spacing
- ogonek, whereas a non-spacing ogonek U+0328 is needed for composite
- glyphs. The new request
- .composite from to
- will change the mapping while a composite glyph name is constructed.
- To make \[A ho] yield the expected result,
- .composite ho u0328
- is needed. [The new file `composite.tmac' loaded at start-up already
- contains proper calls to `.composite'.]
- Please refer to the info pages of groff and to the groff_char man page
- for more details.
- o A new request `fschar' has been added to define font-specific fallback
- characters. They are searched after the list of fonts declared with the
- `fspecial' request but before the list of fonts declared with `special'.
- o Fallback characters defined with `fschar' can be removed with the
- new `rfschar' request.
- o A new request `schar' has been added to define global fallback
- characters. They are searched after the list of fonts declared with the
- `special' request but before the already mounted special fonts.
- o In groff versions 1.18 and 1.18.1, \D'f ...' didn't move the current
- point horizontally. Despite of being silly, this change has been
- reverted for backwards compatibility. Consequently, the intermediate
- output command `Df' also moves the position horizontally again.
- \D'f ...' is deprecated since it depends on the horizontal resolution of
- the output device (given with the `hor' parameter in the DESC file).
- Use the new \D'Fg ...' escape instead.
- o For orthogonality, new \D subcommands to change the fill color are
- available:
- \D'Fr ...' (rgb)
- \D'Fc ...' (cmy)
- \D'Fg ...' (gray)
- \D'Fk ...' (cmyk)
- \D'Fd' (default color)
- The arguments are the same as with the `defcolor' request. The current
- position is *not* changed.
- o The values set with \H and \S are now available in number registers
- \n[.height] and \n[.slant], respectively.
- o The `.pe' number register isn't new but hasn't been documented before.
- It is set to 1 during a page ejection caused by the `bp' request.
- o The new glyph symbol `tno' is a textual variant of `no'.
- o The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL.
- (Well, it is not really new since it has been previously supported by
- grolj4.) The mapping for both the dvi and lj4 symbol font has been
- changed accordingly so that Greek small letter epsilon, `*e', has the
- same glyph shape as with other devices.
- Grops
- -----
- o The font `freeeuro.pfa' has been added to provide various default glyph
- shapes for `eu' and `Eu'.
- o It is now possible to access all glyphs in a Type 1 font, not only 256
- (provided the font file created by afmtodit has proper entries). grops
- constructs additional encoding vectors on the fly if necessary.
- o The paper size is now emitted via the %%DocumentMedia and PageSize
- mechanisms so that it is no longer required to tell `gv' or `ps2pdf'
- about the paper size. The `broken' flag value 16 omits this feature
- (the used PostScript command `setpagedevice' is a LanguageLevel 2
- extension) -- if you intend to further process grops output to get an
- encapsulated PS (EPS) file you must also use this option.
- Patch by Egil Kvaleberg <egil@kvaleberg.no>.
- o Non-slanted PostScript metrics have been changed again; they no longer
- contain negative left italic correction values. This assures correct
- spacing with eqn.
- Grodvi
- ------
- o The font cmtex10 has been added as the special font `SC' to the DVI fonts.
- It is used as a font-specific special font for CW and CWI.
- o New options -l and -p to set landscape orientation and the paper size.
- grodvi now emits a `papersize' special which is understood by DVI drivers
- like dvips.
- Consequently, the DESC file should contain a `papersize' keyword.
- o The glyph shapes for \[*f] and \[*e] have been exchanged with \[+f] and
- \[+e], respectively, to be in sync with all other devices.
- o Glyphs \[HE] and \[DI] have been replaced with \[u2662] and \[u2661],
- respectively, since the former two glyphs have a black (filled) shape
- which grodvi doesn't provide by default (it never has actually).
- Grolj4
- ------
- o The glyphs \[*e] and \[+e] have been exchanged to be in sync with
- all other devices.
- o The glyph \[~=] is now called \[|=]. Similar to other devices, \[~=]
- is now another name for glyph \[~~].
- Grotty
- ------
- o New option `-r'. It is similar to the -i option except it tells grotty to
- use the `reverse video' attribute to render italic fonts.
- Pic
- ---
- o New command `figname' to set the name of a picture's output box in TeX
- mode.
- Refer
- -----
- o The environment variable `REFER' to override the name of the default
- database isn't new but hasn't been documented before.
- Soelim
- ------
- o New option `-r' to avoid emission of `.lf' lines.
- o New option `-t' to emit TeX comment lines (giving current file and the
- line number) instead of `.lf' lines.
- Afmtodit
- --------
- o Unencoded glyphs in an AFM file are output also (since grops can now emit
- multiple encoding vectors for a single font).
- o New option `-m' to prevent negative left italic correction values.
- o The mapping and encoding file together with file `DESC' are now searched
- in the default font directory also. Please refer to the man page of
- afmtodit for more details.
- Macro Packages
- --------------
- o Larry Kollar <kollar@alltel.net> and others made the man macros more
- customizable.
- . New command line options -rFT, -rIN, and -rSN to set the vertical
- location of the footer line, the body text indentation, and the
- sub-subheading indentation.
- . New command line option -rHY (similar to the ms macros) to control
- hyphenation.
- . New macros `.PT' and `.BT' to print the header and footer strings.
- They can be replaced with a customized version in `man.local'.
- . The string `HF' now holds the typeface to print headings and
- subheadings.
- . Similar to the ms macros, the LT register now defaults to LL if not
- explicitly specified on the command line.
- o troff's start-up file `troffrc' now includes `papersize.tmac' to set
- the paper size with the command line option `-dpaper=<size>'.
- Possible values for `<size>' are the same as the predefined `papersize'
- values in the DESC file (only lowercase; see the groff_font man page)
- except a7-d7. An appended `l' (ell) character denotes landscape
- orientation. Examples: `a4', `c3l', `letterl'.
- Most output drivers need additional command line switches `-p' and
- `-l' to override the default paper length and orientation as set in
- the driver specific DESC file.
- For example, use the following for PS output on A4 paper in landscape
- orientation:
- groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps
- VERSION 1.18.1
- ==============
- Troff
- -----
- o The non-slanted PostScript font definition files have been regenerated to
- include left and right italic correction values. Applying those to a
- glyph (this is, prepending the glyph with `\,' and appending `\/' to the
- glyph) sets the glyph width to the real value given by the horizontal
- bounding box values. Without those escapes, the advance width for the
- particular glyph is used (which can differ considerably).
- Most users will neither need this feature nor notice a difference in
- existing documents (provided \, and \/ is used as advertised, namely for
- italic fonts only); its main goal is to improve image generation with
- grohtml.
- This is an experimental change, and feedback is welcome.
- Tbl
- ---
- o Added global option `nospaces' to ignore leading and trailing spaces in
- data items.
- Grolbp
- ------
- o The option -w (--linewidth) has been added (similar to other device
- drivers) to set the default line width.
- Grn
- ---
- o Support for b-spline and Bezier curves has been added.
- Groffer
- -------
- o New option `--shell' to select the shell under which groffer shall run.
- Macro Packages
- --------------
- o The string `Am' (producing an ampersand) has been added to mdoc for
- compatibility with NetBSD.
- o `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
- instead.
- o In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal
- and vertical movements; please refer to contrib/mom/NEWS for more
- details.
- o New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
- Miscellaneous
- -------------
- o The `papersize' keyword in the DESC file now accepts multiple arguments.
- It is scanned from left to the right, and the first valid argument is
- used. This makes it possible to provide a fallback paper size.
- Example:
- papersize /etc/papersize a4
- o A local font directory has been prepended to the default font path; it
- defaults to /usr/local/share/groff/site-font. Similar to the normal
- font searching process, files must be placed into a devXXX subdirectory,
- e.g.
- /usr/local/share/groff/site-font/devps/FOO
- for a PostScript font definition file FOO.
- VERSION 1.18
- ============
- ***************************************************************************
- * *
- * PLEASE READ THE CHANGES BELOW REGARDING GROTTY, GROFF'S TTY FRONTEND. *
- * *
- ***************************************************************************
- Troff
- -----
- o Color support has been added to troff and pic (and to the device drivers
- grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will
- follow). A new function `defcolor' defines colors; the escape sequence
- `\m' sets the drawing color, the escape sequence `\M' specifies the
- background color for closed objects created with \D'...' commands.
- `\m[]' and `\M[]' switch back to the previous color. `\m' and `\M'
- correspond to the new troff output command sets starting with `m' and
- `DF'. The device-specific default color is called `default' and can't be
- redefined.
- Use the `color' request to toggle the usage of colors (default is on); the
- read-only register `.color' is 0 if colors are not active, and non-zero
- otherwise.
- The old `Df' output command is mapped onto `DFg'; all color output
- commands don't change the current font position (consequently, `Df'
- doesn't either).
- Outputting color can be disabled in troff and groff with the option -c
- (it is always disabled in compatibility mode). See the section on grotty
- for the GROFF_NO_SGR environment variable also.
- For defining color components as fractions between 0 and 1, a new scaling
- indicator `f' has been introduced: 1f = 65536u. For testing whether a
- color is defined (with .if and .ie), a new conditional operator `m' is
- available.
- More details can be found in the groff_diff.7 manual page and in
- groff.texinfo.
- o Similar to \m and \M, \f[] switches back to the previous font. \fP
- (and \f[P]) is still valid for backwards compatibility.
- o The new escape \F is the same as `.fam'; \F[] switches back to previous
- family -- \F[P] selects family `P'.
- o Two new glyph symbols are available: `eu' is the official Euro symbol;
- `Eu' is a font-specific glyph variant.
- o The new glyph symbols `t+-', `tdi', and `tmu' are textual variants of
- `+-', `di', and `mu', respectively.
- o Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has
- got the troff glyph name `mc'.
- o -Tutf8 is now available on EBCDIC hosts.
- o Strings can take arguments, using this syntax: \*[foo arg1 arg2 ...].
- Example:
- .ds xxx This is a \\$1 test.
- \*[xxx nice]
- o It is now possible to have whitespace between the first and second dot (or
- the name of the ending macro) to end a macro definition. Example:
- .de !
- ..
- .
- .de foo
- . nop Hello, I'm `foo'.
- . nop I will now define `bar'.
- . de bar !
- . nop Hello, I'm `bar'.
- . !
- ..
- o `.fn' is a new string-valued register which returns the (internal) real
- font name; styles and families are properly concatenated.
- o Three new read/write registers `seconds', `minutes', and `hours' contain
- the current time, set at start-up of troff. Use the `af' request to
- control their output format.
- o The new request `fchar' can be used to provide fallback characters. It
- has the same syntax as the `char' request; the only difference is that a
- character defined with `.char' hides the glyph with the same name in the
- current font, whereas a character defined with `.fchar' is checked only if
- the particular glyph isn't found in the current font. This test happens
- before checking special fonts.
- o In analogy to the `tmc' request, `.writec' is the same as `.write' but
- doesn't emit a final newline.
- o The new request `itc' is a variant of `.it' for which a line interrupted
- with \c counts as one input line.
- o Two new requests `ds1' and `as1' which are similar to `ds' and `as' but
- with compatibility mode disabled during expansion of strings defined by
- them.
- o The syntax of the `substring' request has been changed: The first
- character in a string now has index 0, the last character has index -1.
- Note that this is an incompatible change.
- o To emit strings directly to the intermediate output, a new `output'
- request has been added; it is similar to `\!' used at the top level.
- o `.hpf' has been extended. It can now handle most TeX hyphenation
- pattern files without modification. To do that, the commands \patterns,
- \hyphenation, and \endinput are recognized. Please refer to groff_diff.7
- for more information.
- o `hpfcode' is a new request to provide an input encoding mapping for the
- `hpf' request.
- o The new request `hpfa' appends hyphenation patterns (`hpf' replaces
- already existing patterns).
- o A new request `ami' (append macro indirect) has been added. The first and
- second parameter of `ami' are taken from string registers rather than
- directly; this very special request is needed to make `trace.tmac'
- independent from the escape character (which might even be disabled).
- o The new request `sizes' is similar to the `sizes' command in DESC files.
- It expects the same syntax; the data must be on a single line, and the
- final `0' can be omitted.
- o `trin' (translate input) is a new request which is similar to `tr' with
- the exception that the `asciify' request will use the character code (if
- any) before the character translation. Example:
- .trin ax
- .di xxx
- a
- .br
- .di
- .xxx
- .trin aa
- .asciify xxx
- .xxx
- The result is `x a'. Using `tr', the result would be `x x'.
- o The request `pvs' isn't new, but hasn't been documented before. It
- adds vertical space after a line has been output. This makes it an
- alternative to the `ls' request to produce double-spaced documents.
- The read-only register `.pvs' holds the current amount of the
- post-vertical line space.
- o For compatibility with plan 9's troff, multiple `pi' requests are
- supported:
- .pi foo
- .pi bar
- is now equivalent to
- .pi foo | bar
- o A new escape sequence `\O' is available to disable and enable glyph
- output. Please see groff_diff.7 and groff.texinfo for more details.
- o The escapes `\%', `\&', `\)', and `\:' no longer cause an error in \X;
- they are ignored now. Additionally `\ ' and `\~' are converted to
- single space characters.
- o The default tab distance in nroff mode is now 0.8i to be compatible
- with UNIX troff.
- o Using the latin-1 input character 0xAD (soft hyphen) for the `shc'
- request was a bad idea. Instead, it is now translated to `\%', and
- the default hyphenation character is again \[hy]. Note that the glyph
- \[shc] is not useful for typographic purposes; it only exists to have
- glyph names for all latin-1 characters.
- Macro Packages
- --------------
- o Peter Schaffter <df191@ncf.ca> has contributed a new major macro package
- called `mom', mainly for non-scientific writers, which takes care of
- many typographic issues. It comes with a complete reference (in HTML
- format) and some examples. `mom' has been designed to format documents
- for PostScript output only.
- o Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to
- the man macros for compatibility with older BSD releases.
- o Both the man and mdoc macro packages now use the LL and LT registers for
- setting the line and title length, respectively (similar to those
- registers in the ms macro package). If not set on the command line or
- in a macro file loaded before the macro package itself, they default to
- 78n in nroff mode and 6.5i in troff mode.
- o The `-xwidth' specifier in the mdoc macro package has been removed. Its
- functionality is now integrated directly into `-width'. Similarly,
- `-column' has been extended to provide this functionality also.
- o A new macro `Ex' has been added to the mdoc macro package to document an
- exit status.
- o The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is
- now automatically loaded for -Tdvi), using a dvips special to load the EPS
- file.
- o The trace.tmac package now traces calls to `am' also. Additionally, it
- works in compatibility mode.
- o `troff.1' has been split. Differences to UNIX troff are now documented
- in the new man page `groff_diff.7'.
- o `groff_mwww.7' has been renamed to `groff_www.7'. The file mwww.tmac
- has been removed.
- o `groff_ms.7' has been completely rewritten. It now contains a complete
- reference to the ms macros.
- o `groff_trace.7' documents the trace macro package.
- o Changes in www.tmac:
- Note that HTML support is still in alpha change, so it is rather likely
- that both macro names and macro syntax will change. Some of the macros
- mentioned below aren't really new but haven't been documented properly
- before.
- The following macros have been renamed:
- MAILTO -> MTO
- IMAGE -> IMG
- LINE -> HR
- For consistency, the macros `URL', `FTL', and `MTO' now all have the
- address as the first parameter followed by the description.
- By default, grohtml generates links to all section headings at the top
- of the document. Use the new `LK' macro to specify a different place.
- For specifying the background color and a background image, use the
- new macros `BCL' and `BGIMG', respectively.
- The macro `NHR' has been added; it suppresses the generation of top and
- bottom rules which grohtml emits by default.
- The new macro `HX' determines the cut-off point for automatic link
- generation to headings.
- The image position parameter names in `IMG' have been changed to `-L',
- `-R', and `-C'.
- New macro `PIMG' for inclusion of a PNG image (it will automatically
- convert it into an EPS file if not -Thtml is used).
- New macro `MPIMG' for putting a PNG image into the left or right margin
- (it will automatically convert it into an EPS file if not
- -Thtml is used).
- New macros `HnS', `HnE' to start and end a header line block.
- New macro `DC' to produce dropcap characters.
- New macro `HTL' to generate an HTML title line only but no H1 heading.
- New macros `ULS' and `ULE' to start and end an unordered list. The new
- macro `LI' inserts a list item.
- Groff
- -----
- o The new command line option `-c' disables color output (which is always
- disabled in compatibility mode).
- Nroff
- -----
- o Two new command line options `-c' and `-C'; the former passes `-c' to
- grotty (switching to the old output scheme); the latter passes `-C' to
- groff (enabling compatibility mode).
- Pic
- ---
- o New keywords `color' (or `colour', `colored', `coloured'), `outline' (or
- `outlined'), and `shaded' are available. `outline' sets the color of the
- outline, `shaded' the fill color, and `color' sets both. Example:
- circle shaded "green" outline "black" ;
- Filled arrows always use the outline color for filling.
- Color support for TeX output is not implemented yet.
- Pic2graph
- ---------
- o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It
- converts a PIC diagram into a cropped image. Since it uses gs and the PNM
- library, virtually all graphics formats are available for output.
- Eqn2graph
- ---------
- o A new script contributed by Eric S. Raymond <esr@thyrsus.com>. It
- converts an EQN diagram into a cropped image. Since it uses gs and the PNM
- library, virtually all graphics formats are available for output.
- Groffer
- -------
- o A new script contributed by Bernd Warken <bwarken@mayn.de>. It displays
- groff files and man pages on X and tty, taking care of most parameters
- automatically.
- Grog
- ----
- o Documents using the mom macro package are recognized.
- Grops
- -----
- o Color support has been added.
- o A new option `-p' is available to select the output paper size. It has
- the same syntax as the new `papersize' keyword in the DESC file.
- Grodvi
- ------
- o By default, font sizes are now available in the range 5-10000pt, similar
- to PS fonts. If you want the old behaviour (i.e., font sizes at discrete
- values only), insert the following at the start of your document:
- .if '\*[.T]'dvi' \
- . sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \
- 1728 1800 2000 2074 2200 2400 2488 2800 3600
- o A new font file HBI (using cmssbxo10; this is slanted sans serif bold
- extended) has been added.
- o Two font families are now available: `T' and `H'.
- o EC and TC fonts have been integrated. Use `-mec' (calling the file
- ec.tmac) to switch to them. Those fonts give a much better coverage of
- the symbols defined by groff than the CM fonts.
- Note that ec.tmac must be called before any language-specific files; it
- doesn't take care of hcode values.
- o Color support has been added. For drawing commands, colors are translated
- to gray values currently.
- Grotty
- ------
- o Color support has been added, using the SGR (ISO 6429, sometimes called
- ANSI color) escape sequences.
- o SGR escape sequences are now used by default for underlining and bold
- printing also, no longer using the backspace character trick. To revert
- to the old behaviour, use the `-c' switch.
- Note that you have to use the `-R' option of `less' to make SGR escapes
- display correctly. On the other hand, terminal programs and consoles like
- `xterm' which support SGR sequences natively can directly display the
- output of grotty. Consequently, the options `-b', `-B', `-u', and `-U'
- work only in combination with `-c' and are ignored silently otherwise.
- For the `man' program, it may be necessary to add the `-R' option of
- `less' to the $PAGER environment variable; alternatively, you can use
- `man's `-P' option (or adapt its configuration file accordingly). See
- man(1) for more details.
- o If the environment variable GROFF_NO_SGR is set, SGR output is disabled,
- reverting to the old behaviour.
- o A new special \X'tty: sgr n' has been added; if n is non-zero or missing,
- enable SGR output (the default).
- o If the new option `-i' is used (only in SGR mode), grotty sends escape
- sequences to set the italic font attribute instead of the underline
- attribute for italic fonts. Note that many terminals don't have support
- for this (including xterm).
- Grohtml
- -------
- o Color support for glyphs has been added.
- o New option `-h' to select the style of headings in HTML output.
- o New option `-b' to set the background colour to white.
- o New options `-a' and `-g' to control the number of bits for anti-aliasing
- used for text and graphics, respectively. Default value is 4; 0 means
- no anti-aliasing.
- o groff character/glyph entities now map onto HTML 4 character entities.
- Grolbp
- ------
- o Valid paper sizes are now specified as with the new `papersize' keyword
- in the DESC file. Specifically, the old custom paper type format
- `custAAAxBBB' is no longer supported.
- Miscellaneous
- -------------
- o A new manual page `ditroff.7' is available.
- o The groff texinfo manual will now be installed, together with a bunch
- of examples.
- o A new keyword `papersize' has been added to the DESC file format. Its
- argument is either
- . a predefined paper format (e.g. `A4' or `letter')
- . a file name pointing to a file which must contain a paper size
- specification in its first line (e.g. `/etc/papersize')
- . a custom paper size definition like `35c,4i'
- See groff_font(5) for more details. This keyword only affects the
- physical dimensions of the output medium; grops, grolj4, and grolbp use it
- currently. troff completely ignores it.
- VERSION 1.17.2
- ==============
- This is major bug-fixing release which should replace 1.17.1.
- Troff
- -----
- o The `IMAGE' macro in www.tmac has changed: Now the optional 2nd parameter
- gives the horizontal image location (left, centered, or right), and the
- optional 3rd and 4th parameter the image dimensions.
- VERSION 1.17.1
- ==============
- This is mainly a bug-fixing release.
- Troff
- -----
- o Two new requests `de1' and `am1' which are similar to `de' and `am' but
- with compatibility mode disabled during expansion of macros defined by
- them.
- o Added request `brp'. This is the same as `\p'.
- o Similar to other versions of troff, the `ns' request now works in all
- diversions, not only in the top-level one.
- o New read-only number register `.ns'. Returns 1 if in no-space mode,
- 0 otherwise.
- Nroff
- -----
- o Options -p (pic) and -t (tbl) added.
- o The environment variable GROFF_BIN_PATH is now checked before PATH for
- finding groff.
- Grohtml
- -------
- o New option `-D dir' to specify a directory in which all images are placed.
- o New option `-I stem' to specify an image name stame. If not given,
- `grohtml-XXX' is used (`XXX' is the process ID).
- VERSION 1.17
- ============
- Groff
- -----
- o `-mFOO' now searches first for `FOO.tmac' and then for `tmac.FOO'. The
- old behaviour has been changed to overcome problems with platforms which
- have an 8+3 file name limit, and platforms which have other versions of
- troff installed also. Additionally, all macro files have been renamed
- using the latter scheme to avoid 8+3 name clashes.
- o The new environment variable GROFF_BIN_PATH is checked for programs groff
- is calling (preprocessors, troff, and output devices) before PATH. If not
- set, it defaults to the directory where the groff binary is located.
- Previously, it was PATH only. The nroff script only uses GROFF_BIN_PATH
- to find the groff binary but passes both the GROFF_BIN_PATH and PATH
- environment variables to groff.
- Troff
- -----
- o The mdoc package has been completely rewritten, using the full power of
- GNU troff to remove limitations of Unix troff (which is no longer
- supported). Most important changes are:
- . No argument limit
- . Almost all macros are parsed and callable (if it makes sense)
- . `.Lb': prints library names
- . `.Nm <punctuation>' now works as expected; `.Nm "" <punctuation>' has
- been withdrawn
- . Updated `.St' command
- . `.Fx': prints FreeBSD
- . `.Ox': prints OpenBSD
- . `.Bsx': prints BSD/OS
- . `.Brq', `.Bro', `.Brc': brace enclosure macros
- . `.Bd -centered': center lines
- . `.Bl -xwidth <string>': interpret <string> and use the resulting width
- . Support for double-sided printing (-rD1 command line switch)
- . Support for 11pt and 12pt document sizes (-rS11, -rS12 command line
- switches)
- `groff_mdoc.7' replaces `groff_mdoc.samples.7'; it now completely
- documents the mdoc package.
- Great care has been taken to assure backwards compatibility. If you
- encounter any abnormal results, please report them to bug-groff@gnu.org.
- o A new command line option for the `man' macros (similar to the `mdoc'
- package) has been implemented: `-rcR=1' (now the default in nroff mode)
- produces one single, very long page instead of multiple pages. `-rcR=0'
- deactivates it.
- o The `return' request has been added to return immediately from a macro.
- o A new request `nop' (no operation) has been added which is similar to
- `if 1'. For example,
- .if t \{\
- Hallo!
- .\}
- can now be written as
- .if t \{\
- . nop Hallo!
- .\}
- o `box' and `boxa' are two new requests which behave similarly to `di' and
- `da' but don't include a partially filled line (which is restored after
- ending the diversion).
- o The `asciify' request has been extended to `unformat' space characters
- and some other escape sequences also.
- `\ ' is no longer unformatted as a space but remains an unpaddable,
- unbreakable space character.
- o The new `unformat' request is similar to `asciify' but only handles space
- characters and tabs specially if the diversion is reread, retaining font
- information. This makes it possible to reformat diversions; for example
- the following
- .ll 3i
- .
- a01 a02 a03 a04 a05 a06 a07 a08 a09 a10.
- .
- .box box1
- .ev 1
- .nf
- \f[B]b01 b02 b03 b04 b05 b06 b07 b08 b09 b10.\f[P]
- .br
- .ev
- .box
- .
- c01 c02 c03 c04 c05 c06 c07 c08 c09 c10.
- .
- .unformat box1
- .box1
- gives
- a01 a02 a03 a04 a05 a06 a07
- a08 a09 a10. c01 c02 c03 c04
- c05 c06 c07 c08 c09 c10. b01
- b02 b03 b04 b05 b06 b07 b08
- b09 b10.
- Without the `unformat' request, space characters are converted to word
- space nodes which are no longer stretchable, and the result would be
- a01 a02 a03 a04 a05 a06 a07
- a08 a09 a10. c01 c02 c03 c04
- c05 c06 c07 c08 c09 c10. b01
- b02 b03 b04 b05 b06 b07 b08
- b09 b10.
- o The new request `linetabs' controls the `line-tabs' mode. In line-tabs
- mode, tab distances are computed relative to the (current) output line.
- Otherwise they are taken relative to the input line. For example, the
- following
- .ds x a\t\c
- .ds y b\t\c
- .ds z c
- .ta 1i 3i
- \*x
- \*y
- \*z
- yields
- a b c
- In line-tabs mode, the same code gives
- a b c
- The new read-only number register `.linetabs' returns 1 if in line-tabs
- mode, and 0 otherwise.
- o Two new requests `tm1' and `tmc' have been added to improve writing
- messages to the terminal. `tm1' is similar to `tm' but allows leading
- whitespace. `tmc' is similar to `tm1' but doesn't emit a final newline.
- o For compatibility with sqtroff, the request `output' has been added.
- The behaviour is similar to `\!' at the top-level, that is, it directly
- inserts its argument into the intermediate output format. The syntax
- is similar to .tm1, allowing leading whitespace.
- o The new `spreadwarn' request will make troff warn if spaces in an output
- line are widened by a given limit or more.
- o Use `warnscale' to change the scaling indicator troff will use for
- warning messages.
- o A new request `dei' (define indirect) has been added. The first and
- second parameter of `dei' are taken from string registers rather than
- directly; this very special request is needed to make `trace.tmac'
- independent from the escape character (which might even be disabled).
- o It is now possible to save and restore the escape character with two new
- requests `ecs' and `ecr'.
- o The new escape sequence \B'...' is an analogon to `\A': If the string
- within the delimiters is a valid numeric expression, return character `1',
- and `0' otherwise.
- o The new escape sequence `\:' inserts a zero-width break point. This is
- similar to `\%' but without a soft hyphen character.
- o The `tr' request can now map characters onto `\~'.
- o Calling the `fam' request without an argument switches back to the
- previous font family.
- o The new read-only register `.int' is set to a positive value if the last
- output line is interrupted (i.e., if the input line contains `\c').
- o The `writem' request is not new, but hasn't been documented before. This
- is similar to `write' but instead of a string the contents of a given
- macro or string is written to a stream.
- o The read/write number register `hp' to get/set the current horizontal
- position relative to the input line isn't new but hasn't been documented
- properly before.
- o `\X' and `\Y' are now transparent for end-of-sentence recognition.
- o The `cu' request in nroff mode now works as documented (i.e., it
- underlines spaces also).
- Grog
- ----
- o The grog script now works in non-compatibility mode also (which is the
- default). As usual, use the `-C' option to activate compatibility mode.
- Grops
- -----
- o A new option `-P' resp. a new environment variable `GROPS_PROLOGUE' has
- been added to select a different prologue file.
- o The effect of the former `-mpsnew' option to access more Type 1 characters
- is now the default and no longer available. To get the old behaviour
- (i.e., emulation of some glyphs by composition) use `-mpsold'.
- Miscellaneous
- -------------
- o For security reasons the following changes have been done:
- . The tmac.safer file has been replaced with a built-in solution; .open,
- .opena, .pso, .sy, and .pi are completely disabled in safer mode (which
- is the default); to enable these requests the `-U' command line flag
- must be used.
- . Files specified with the .mso request or given with the `-m' command
- line option, and hyphenation patterns loaded with `.hpf' are no longer
- searched in the current directory by default (besides the usual tmac
- path). Instead, the home directory is used. To add the current
- directory, either use the `-U' or `-M' command line option or set the
- GROFF_TMAC_PATH environment variable to an appropriate value.
- . troffrc, troffrc-end, and eqnrc are neither searched in the current nor
- in the home directory (even if -U is given). Use -M or GROFF_TMAC_PATH
- to change that.
- . Similarly, the current directory is no longer part of the font path.
- Use the `-F' command line option or the GROFF_FONT_PATH environment
- variable if you really need the current directory.
- o groff now installs its data files into /usr/local/share/groff/<version> by
- default, following the GNU standard. Additionally, a local tmac directory
- (by default /usr/local/share/groff/site-tmac) is scanned before the
- standard tmac directory. Wrapper files for system-specific macro packages
- (if necessary) are put into /usr/local/lib/groff/site-tmac; this directory
- is searched before the local tmac directory.
- o All programs now have option `-v' to show the version number; they exit
- immediately afterwards, following the GNU standards. Additionally,
- `--version' and `--help' have been added, doing the obvious actions.
- VERSION 1.16.1
- ==============
- Bug fixes only; no user-visible changes.
- VERSION 1.16
- ============
- Groff
- -----
- The anachronism of calling the man macro package with `-man' has been fixed;
- now you can say `-m man' also. The same is true for `ms', `me', `markup',
- `mandoc', and `mdoc'.
- A new switch `-g' for calling `grn' is available.
- A new switch `-G' for calling `grap' is available.
- EBCDIC support for tty devices has been added. On such hosts, IBM code page
- 1047 is available with -Tcp1047 instead of -Tascii and -Tlatin1 (and, for
- the moment, -Tutf8). Note that non-tty devices are not yet supported (but
- installed).
- Troff
- -----
- A new command line option to the `man' macros is available: `-rSxx' (with
- `xx' either 10, 11, or 12) to set the base document font size to `xx'
- points. Additionally, `.SH' now produces larger headings than `.SS'.
- To solve a problem with the .PSPIC macro which needs the `-U' switch of
- troff to access an external program (psbb), a new request .psbb is now
- available to get the bounding box of a PostScript image file. The values
- (in PostScript units) are returned in the new read-only number registers
- `llx', `lly', `urx', and `ury'. Consequently, .PSPIC has been adapted to
- use the new request, and the psbb program has been removed.
- A new predefined writable number register, `year', has been added. It
- contains the current year.
- A new read-only register, `.Y', has been added. It contains the revision
- number of the groff package.
- `\fP' now behaves as expected in situations like the following where the
- font `foo' is undefined:
- .B bold text
- normal text \f[foo]bar\fP normal text
- Previously, the text after \fP appeared as bold.
- The `substring' request is not new, but hasn't been documented before.
- The predefined `.T' string register (which holds the current output device)
- is not new, but hasn't been documented before.
- A new request `length' computes the length of a string and returns it in
- a number register.
- The macro files `tmac.a4' (for specifying A4 paper format) and `tmac.trace'
- (a debugging aid) are now installed also.
- A new resource file, `troffrc-end', is now available. It is invoked after
- all user-specified macros. Currently used by the html device to include
- tmac.html; thus no need for users to specify -mhtml anymore.
- The soft hyphen character now has a glyph name: `shc'.
- The latin-1 character 173 (PS name `periodcentered') has got the troff glyph
- name `pc' and is no longer intermixed with the symbol character `md' (PS
- name `mathdot').
- ASCII character 34 (PS name `quotedbl') has got the troff glyph name `dq'
- (which is an alias to character `"').
- ASCII character 39 (PS name `quoteright') has got the troff glyph name `cq'
- (which is an alias to character "'").
- Some additions to the font description files have been implemented for
- better support of HTML output:
- The new format of lines in the `charset' subsection of font description
- files is
- name metrics type code [entity_name] [-- comment]
- Currently, only the font description files in devhtml use the optional
- entity_name string to define glyph entities in HTML. Everything after the
- entity_name field is ignored; in case this field isn't used, two hyphen
- characters are now necessary to start a comment.
- Two new requests are available in DESC files (currently used only with
- grohtml):
- use_charnames_in_special
- This command indicates that troff should encode named characters
- inside special commands.
- pass_filenames
- requests that troff tells the driver the source file name being
- processed. This is achieved by another tcommand: `F filename'.
- Grotty
- ------
- Bruno Haible <haible@clisp.cons.org> contributed support for UTF8 output.
- Grohtml
- -------
- Added .LINE macro to tmac.arkup.
- The obsolete `.LINK' macro has been removed.
- .URL, .FTP, and .MAILTO macros now accept an optional third argument which
- will be immediately appended to the second argument (to be used with
- punctuation, for example).
- Grodvi
- ------
- The font size 11pt has been changed to 10.95pt (as used in LaTeX 2e).
- A new font file CWI (using cmitt10; this is typewriter italic) has been
- added.
- Grolbp
- ------
- A new driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser
- printers). This code has been contributed by Francisco Andres Verdu
- <pandres@dragonet.es>.
- Grn
- ---
- A new preprocessor to process gremlin pictures. It is based on the
- original Berkeley implementation of grn, written by David Slattengren
- and Barry Roitblat, and has been adapted to groff by Daniel Senderowicz
- <daniel@synchrods.com> and Werner Lemberg <wl@gnu.org>.
- Pic
- ---
- Added the `srand' command to set the seed for a new sequence of
- pseudo-random numbers to be returned by `rand'.
- Gxditview
- ---------
- Simplified installation: The Imakefile will now be configured (by groff's
- configure script).
- Documentation
- -------------
- Three new man pages are available: groff_tmac.5 (documenting how troff macros
- are accessed and where they are found), groff.7 (a short reference of the GNU
- roff language), and roff.7 (a general survey on GNU troff).
- Miscellaneous
- -------------
- A partial port to win32 (for use with Microsoft Visual C++ 6.0) is now part
- of the distribution. It has been contributed by Blake McBride
- <blake@florida-software.com>.
- More information about programs, macros, documentation, etc., which is
- related to groff has been collected in the file `MORE.STUFF'.
- VERSION 1.13, 1.14, 1.15
- ========================
- Bug fixes only; no user-visible changes.
- VERSION 1.12
- ============
- Finally, there are new maintainers for groff. Mailing lists and a CVS
- repository are available also. See the file README for details. Not all
- reported bugs could be fixed, so please send mails again if something is
- still not working.
- Most of the installation problems should have vanished now (most
- notably the $(tmac_wrap) bug).
- There is now a man page called groff_man.7 which documents the basics of the
- -man macros. It has been originally written by Susan G. Kleinmann
- <sgk@debian.org>.
- A (still incomplete) groff reference manual in texinfo format originally
- contributed by Trent A. Fisher <trent@gnurd.portland.or.us>.
- me.man and msafer.man have been renamed to groff_me.man
- resp. groff_msafer.man for consistency.
- Default strings for macros in doc-common resp. tmac.an no longer contain the
- word `UNIX'.
- groff should now be Y2k safe (fixes contributed by Paul Eggert
- <eggert@twinsun.com>).
- Following the GNU standards, groff will now use the prefix `/usr/local/' as
- the default instead of replacing an existent groff binary.
- groff, troff, nroff, and pic now support the -U flag to activate unsafe
- behaviour (without -msafer); the -S flag for using the -msafer macros is now
- the default.
- Grohtml
- -------
- This is a new output device for producing HTML output contributed by Gaius
- Mulley <gaius@glam.ac.uk>. It is still very alpha but has been included
- into the distribution so that a lot of people have a chance to test it. Bug
- reports are highly welcome.
- Grolj4
- ------
- Duplex printing support has been contributed by Jeffrey Copeland
- <jeff@opennt.com>.
- Soelim
- ------
- Added -I option for defining include paths (patch contributed by Peter
- Miller <peterm@jna.com.au>).
- Gxditview
- ---------
- Fallback resources added (patch contributed by Larry Jones
- <larry.jones@sdrc.com>).
- Will now support 8 gray levels.
- mm
- --
- New version 1.32 (contributed by Joergen Haegg <jh@axis.com>).
- VERSION 1.11
- ============
- Complete documentation for pic is now in the file doc/pic.ms. It was
- contributed by Eric S. Raymond, <esr@thyrsus.com>, who is emphatically
- *not* volunteering to take over groff as he is way overworked with
- half a dozen other projects.
- VERSION 1.10
- ============
- The directory where data files are installed has been changed from
- /usr/local/lib/groff to /usr/local/share/groff to comply with the
- latest GNU coding standards.
- By default groff programs with Unix equivalents are installed with a
- "g" prefix unless there is an existing (non-groff) troff installation.
- A new approach is used to make system macro packages available to
- groff. Instead of simply including /usr/lib/tmac in the list of
- directories searched by groff, the installation process creates for
- each system macro package a wrapper macro package in the groff macro
- directory that references the system macro package. The groff macro
- packages are now installed with a leading "g" prefix if there is a
- system version of the same macro package, and otherwise without the
- "g" prefix, with the exception that the groff version of -me which is
- always installed as -me.
- There is a new device, lj4, for the HP LaserJet 4 (and PCL5
- compatibles).
- Groff
- -----
- groff has a -S option that prevents the use of unsafe features in pic
- and troff. This uses a new -S option of pic and the -msafer macros
- for troff.
- Troff
- -----
- The `blm' request specifies a macro to be invoked when a blank line is
- encountered.
- Pic
- ---
- A -S (safer) option disables the sh command.
- Grops
- -----
- The -m option enables manual feed.
- VERSION 1.09
- ============
- \(rn will now produce a character that has the traditional metrics,
- and will form corners with \(ul and \(br. This means that it will not
- align properly with \(sr. Instead there's a new character
- \[radicalex] which aligns with \(sr; this is used by eqn for doing
- square roots.
- Troff
- -----
- The `pso' request allows you to read from the standard output of a
- command.
- Grops
- -----
- The PSPIC macro has options to allow the horizontal alignment of the
- graphic to be specified.
- VERSION 1.08
- ============
- Troff
- -----
- The escape sequence \V[xxx] will interpolate the value of the
- environment variable xxx.
- Tbl
- ---
- The decimalpoint option can be used to specify the character to be
- recognized as the decimal point character in place of the default
- period.
- VERSION 1.07
- ============
- Groff
- -----
- The environment variable GROFF_COMMAND_PREFIX can be used to control
- whether groff looks for `gtroff' or `troff' (similarily for the
- preprocessors.)
- Troff
- -----
- Multilingual hyphenation is supported by new `hpf' and `hla' requests,
- and by a `\n[.hla]' number register. The -H option has been removed.
- Files of hyphenation patterns can have comments.
- When a font cannot be found, troff gives a warning (of type `font',
- enabled by default) instead of an error.
- There's a new request `trnt' that's like `tr' except that it doesn't
- apply to text transparently throughput into a diversion with \!.
- Tbl
- ---
- There is a `nokeep' option which tells tbl not to use diversions to
- try to keep the table on one page.
- Eqn
- ---
- Setting the parameter `nroff' to a non-zero value causes `ndefine' to
- behave like `define' and `tdefine' to be ignored. This is done by
- eqnrc when the current device is ascii or latin1. There's a `neqn'
- script that just does `eqn -Tascii'.
- Grotty
- ------
- grotty uses whatever page length was specified using the `pl' request
- rather than using the paperlength command in the DESC file. The
- paperwidth command in the DESC file is also ignored.
- VERSION 1.06
- ============
- The programs in groff that have Unix counterparts can now be installed
- without a leading `g' prefix. See the `g' variable in the Makefile.
- The g?nroff script simulates the nroff command using groff.
- New special characters \(+h, \(+f, \(+p, \(Fn, \(Bq, \(bq, \(aq, \(lz,
- \(an. See groff_char(7).
- ^L is now a legal input character.
- Groff
- -----
- The Xps pseudo-device has disappeared. Instead there is a new -X
- option that tells groff to use gxditview instead of the usual
- postprocessor. (So instead of -TXps, use -XTps or just -X if your
- default device is ps.)
- The postprocessor to be used for a particular device is now specified
- by a `postpro' command in the DESC file rather than being compiled
- into groff. Similarly the command to be used for printing (with the
- -l option) is now specified by a `print' command in the DESC file.
- The groff command no longer specifies eqnchar as an input file for
- eqn. Instead eqn automatically loads a file `eqnrc'. The groff
- command no longer passes the -D option to eqn. Instead eqnrc sets the
- draw_lines parameter.
- The groff command no longer tells troff to load a device-specific
- macro file. This is handled instead by the `troffrc' file, which is
- always loaded by troff.
- The shell script version of groff has been removed.
- Troff
- -----
- The `rchar' request removes a character definition established with `char'.
- Compatibility mode is disabled and the escape character is set to `\'
- while a character definition is being processed.
- The `\#' escape sequence is like `\"' except that the terminating
- newline is ignored.
- The `shc' request tells troff which character to insert (instead of
- the default \(hy) when a word is hyphenated at a line break.
- A font name of 0 (zero) in the DESC file will cause no font to be
- mounted on the corresponding font position. This is useful for
- arranging that special fonts are mounted on positions on which users
- are not likely explicitly to mount fonts. All groff devices now avoid
- initially mounting fonts on positions 5-9.
- The `do' request allows a single request or macro to be interpreted
- with compatibility mode disabled.
- troff automatically loads a file `troffrc' before any other input file.
- This can be prevented with the -R option. This file is responsible
- for loading the device-specific macros.
- Pic
- ---
- The -x option has been removed and a -n option has been added. By
- default, pic now assumes that the postprocessor supports groff
- extensions. The -n option tells pic to generate output that works
- with ditroff drivers. The -z option now applies only to TeX mode.
- The -p option has been removed. Instead if the -n option is not
- specified, pic generates output that uses \X'ps: ...' if the \n(0p
- register is non-zero and tmac.ps sets this register to 1.
- In places where you could 1st or 5th you can now say `i'th or `i+1'th
- (the quotes are required).
- Eqn
- ---
- Eqn now automatically reads a file `eqnrc' from the macro directory.
- This performs the same role that the eqnchar files used to. This can
- be prevented by the -R option.
- Setting the draw_lines parameter to a non-zero value causes lines to
- be drawn using \D rather than \l. The -D option is now obsolete.
- `uparrow', `downarrow' and `updownarrow' can be used with `left' and
- `right'.
- The amount of extra space added before and after lines containing
- equations can be controlled using the `body_height' and `body_depth'
- parameters.
- Grops
- -----
- Font description files have been regenerated from newer AFM files.
- You can get access to the additional characters present in the text
- fonts in newer PostScript printers by using -mpsnew.
- The default value of the -b option is specified by a `broken' command
- in the DESC file.
- With the -g option, grops will generate PostScript code that guesses
- the page height. This allows documents to be printed on both letter
- (8.5x11) and A4 paper without change.
- Grodvi
- ------
- ISO Latin-1 characters are available with -Tdvi. Format groff_char(7)
- with groff -Tdvi for more information.
- Grotty
- ------
- The -mtty-char macros contain additional character definitions for
- use with grotty.
- Macros
- ------
- In previous releases the groff -me macros treated the $r and $R number
- registers in a way that was incompatible with the BSD -me macros. The
- reason for this was that the approach used by the BSD -me macros does
- not work with low resolution devices such as -TX75 and -TX100.
- However, this caused problems with existing -me documents. In this
- release, the vertical spacing is controlled by the $v and $V registers
- which have the same meaning as $r and $R in earlier groff releases.
- In addition, if the $r or $R register is set to a value that would be
- correct for for the BSD -me macros and a low resolution device is not
- being used, then an appropriate value for the $v or $V register will
- be derived from the $r or $R register.
- The groff -me macros work with -C and (I think) with Unix troff.
- For backward compatibility with BSD -me, the \*{ and \*} strings are
- also available as \*[ and \*]. Of course, \*[ will only be usable
- with -C.
- The \*T string has been deleted. Use \*(Tm instead.
- Xditview
- --------
- The `n', Space and Return keys are bound to the Next Page action. The
- `p', BackSpace and Delete keys are bound to the Previous Page action.
- The `q' key is bound to the Quit action.
- The `r' key is bound to a rerasterize action that reruns groff, and
- redisplays the current page.
- VERSION 1.05
- ============
- Pic
- ---
- There is a alternative assignment operator `:=' which interacts
- differently with blocks.
- There is a new command `command', which allows the values of variables
- to be passed through to troff or TeX.
- The `print' command now accepts multiple arguments.
- String comparison expressions (using `==' or `!=') are allowed in more
- contexts.
- Grotty
- ------
- Horizontal and vertical lines drawn with \D'l ...' will be rendered
- using -, | and + characters. This is intended to give reasonable
- results with boxed tables. It won't work well with pic.
- Macros
- ------
- The -mdoc macros have been upgraded to the version in the second
- Berkeley networking release. This version is not completely
- compatible with earlier versions; the old version is still available
- as -mdoc.old. The grog script has been enhanced so that it can
- usually determine whether a document requires the old or new versions.
- With -TX75, -TX100 and -TXps, the PSPIC macro will produce a box
- around where the picture would appear with -Tps.
- VERSION 1.04
- ============
- An implementation of the -mm macros is included.
- The directory in which temporary files are created can be controlled
- by setting the GROFF_TMPDIR or TMPDIR environment variables.
- Pic
- ---
- Some MS-DOS support (see pic/make-dos-dist).
- Grops
- -----
- There are two new \X commands (\X'ps: invis' and \X'ps: endinvis')
- which make it possible to have substitute characters that are
- displayed when previewing with -TXps but ignored when printing with
- grops.
- Xditview
- --------
- Support for scalable fonts.
- VERSION 1.03
- ============
- No changes other than bug fixes.
- VERSION 1.02
- ============
- There is an implementation of refer and associated programs. groff -R
- preprocesses with grefer; no mechanism is provided for passing
- arguments to grefer because most grefer options have equivalent
- commands which can be included in the file. grog also supports refer.
- There is an alternative perl implementation of the grog script.
- The code field in lines in the charset section of font description
- files is now allowed to contain an arbitrary integer (previously it
- was required to lie between 0 and 255). Currently grops and grodvi
- use only the low order 8 bits of the value. Grodvi will use the
- complete value; however, this is unlikely to be useful with
- traditional TeX tools (.tfm files only allow 8 bit character codes.)
- Left and right double quotes can be obtained with \(lq and \(rq
- respectively.
- There is a new program called pfbtops which translates PostScript
- fonts in pfb format to ASCII.
- A slightly modified version of the Berkeley tmac.doc is included.
- Troff
- -----
- In long escape names the closing ] is now required to be at the same
- input level as the opening [.
- The \A'S' escape sequence returns 1 or 0 according as S is or is not
- suitable for use as a name.
- \~ produces an unbreakable space that can be stretched when the line
- is adjusted.
- The `mso' request is like the `so' request except that it searches for
- the file in the same directories in which tmac.X is searched for when
- the -mX option is given.
- The escape sequence `\R' is similar to the `nr' request.
- Eqn
- ---
- A new `special' primitive allows you to add new types of unary
- constructs by writing a troff macro.
- Pic
- ---
- The implementation no longer uses gperf.
- Grops
- -----
- The compile-time -DBROKEN_SPOOLER option has been replaced by a
- BROKEN_SPOOLER_FLAGS option. This allows more precise control over
- how grops should workaround broken spoolers and previewers. There is
- a new -b option that can change this at run-time.
- Grops now generates PostScript that complies with version 3.0 of the
- Document Structuring Convention.
- The resource management component of grops (the part that deals with
- imported documents and downloadable fonts) has been rewritten and now
- supports version 3.0 of the Document Structuring Conventions. The
- %%DocumentFonts comment is no longer supported; you must use the
- %%Document{Needed,Supplied}{Fonts,Resources} comments instead
- (or as well.)
- tmac.psatk contains some macros that support the mechanism used by the
- Andrew Toolkit for including PostScript graphics in troff documents.
- Xditview
- --------
- Parts of xditview have been rewritten so that it can be used with the
- output of gtroff -Tps. groff -TXps will run gtroff -Tps with
- gxditview.
- There is a new menu entry `Print' which brings up a dialog box for
- specifying a command with which the file being previewed should be
- printed.
- Xditview now uses imake.
- VERSION 1.01
- ============
- The groff command now understands the gtroff `-a' and `-i' options.
- With the `m' and `n' scale indicators, the scale factor is rounded
- horizontally before being applied. This makes (almost) no difference
- for devices with `hor' equal to 1, but it makes groff with -Tascii or
- -Tlatin1 behave more like nroff in its treatment of these scale
- indicators. Accordingly tmac.tty now calls the `nroff' request so
- that the `n' condition will be true.
- The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
- have been made to work at least somewhat with -C. In particular the
- special characters defined by these macros now work with -C.
- groff -Tdvi -p will now pass pic the -x flag; this will enable filling
- of arrowheads and boxes, provided that your dvi driver supports the
- latest version of the tpic specials.
- Eqn
- ---
- There is a new `-N' option that tells eqn not to allow newlines in
- delimiters. This allows eqn to recover better from missing closing
- delimiters. The groff command will pass on a `-N' option to eqn.
- Grops
- -----
- You can now use psfig with grops. See the file ps/psfig.diff. I do
- not recommend using psfig for new documents.
- The command \X'ps: file F' is similar to \X'ps: exec ...' except that
- the PostScript code is read from the file F instead of being contained
- within the \X command. This was added to support psfig.
- Grodvi
- ------
- There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
- Macros
- ------
- The groff -me macros now work with the -C option. As a result, they
- may also work with Unix nroff/troff.
- In -me, the $r and $R number registers now contain the line spacing as
- a percentage of the pointsize expressed in units (normally about 120).
- The previous definition was useless with low resolution devices such
- as X75 and X100.
- VERSION 1.00
- ============
- A -ms-like macro-package is now included.
- The name for the Icelandic lowercase eth character has been changed
- from \(-d to \(Sd.
- Troff
- -----
- There is a new request `nroff', which makes the `n' built-in condition
- true and the `t' built-in condition false; also a new request `troff'
- which undoes the effect of the `nroff' request. This is intended only
- for backward compatibility: it is usually better to test \n(.H or
- \n(.V or to use the `c' built-in condition.
- The \R escape sequence has been deleted. Use \E instead.
- There are `break' and `continue' requests for use with the `while'
- request.
- There is a request `hym' that can ensure that when the current
- adjustment mode is not `b' a line will not be hyphenated if it is no
- more than a given amount short, and a request `hys' that can ensure
- that when the current adjustment mode is `b' a line will not be
- hyphenated if it can be justified by adding no more than a given
- amount of extra space to each word space.
- There is a request `rj' similar to `ce' that right justifies lines.
- A warning of type `space' will be given when a call is made to an
- undefined request or macro with a name longer than two characters, and
- the first two characters of the name make a name that is defined.
- This is intended to find places where a space has been omitted been a
- request or macro and its argument. This type of warning is enabled by
- default.
- Pic
- ---
- A comma is permitted between the arguments to the `reset' command.
- For use with TeX, there is a new `-c' option that makes gpic treat
- lines beginning with `.' in a way that is more compatible with tpic
- (but ugly).
- Eqn
- ---
- It is no longer necessary to add `space 0' at the beginning of
- complicated equations inside pictures.
- `prime' is now treated as an ordinary character, as in Unix eqn. The
- previous behaviour of `prime' as an operator can now be obtained using
- `opprime'.
- Xditview
- --------
- There are two new devices X75-12 and X100-12 which are the same as X75
- and X100 except that they are optimized for documents that use mostly
- 12 point text.
- VERSION 0.6
- ===========
- The installation process has been refined to make it easy for you to
- share groff with someone who has the same type of machine as you but
- does not have a C++ compiler. See the end of the INSTALL file for
- details.
- There is a man page for the tfmtodit program which explains how to use
- your own fonts with groff -Tdvi.
- There is a man page for afmtodit which explains how to use your own
- PostScript fonts with groff -Tps.
- The \N escape sequence is now fully supported. It can now be used to
- access any character in a font by its output code, even if it doesn't
- have a groff name. This is made possible by a convention in the font
- files that a character name of `---' refers to an unnamed character.
- The drivers now all support the `N' command required for this. The font
- description files have been updated to include unnamed characters.
- The `x' command in font description files has been removed: instead
- any unknown commands are automatically made available to the drivers.
- If you constructed your own font files with an earlier version of
- tfmtodit or afmtodit, you must construct them again using the current
- version.
- Characters between 0200 and 0237 octal are no longer legal input
- characters. Note that these are not used in ISO 8859.
- A command called `grog' has been added, similar to the `doctype'
- command described in Kernighan and Pike.
- Groff
- -----
- The groff command has some new options: -V prints the pipeline
- instead of executing it; -P passes an argument to the postprocessor,
- -L passes an argument to the spooler.
- There is a C++ implementation of the groff command. This handles some
- things slightly better than the shell script. In particular, it can
- correctly handle arguments containing characters that have a special
- meaning to the shell; it can give an error message when child
- processes other than the last in the pipeline terminate abnormally;
- its exit status can take account of the exit statuses of all its child
- processes; it is a little more efficient; when geqn is used, it
- searches for the eqnchar file in the same way that font metric files
- are searched for, rather than expecting to find it in one particular
- directory.
- Gtroff
- ------
- There is font translation feature: For example, you can tell gtroff to
- use font `HR' whenever font `H' is requested with the line
- .ftr H HR
- This would be useful for a document that uses `H' to refer to
- Helvetica.
- There are some new number registers: `.kern' contains the current kern
- mode, `.lg' the current ligature mode, `.x' the major version number,
- `.y' the minor version number, `.ce' the number of lines to be
- centered in the current environment, `.trunc' the amount of vertical
- space truncated by the most recently sprung vertical position trap,
- `.ne' the amount of vertical space needed in the last `ne' request
- that caused a vertical position trap to be sprung.
- The `cf' request now behaves sensibly in a diversion. If used in a
- diversion, it will now arrange for the file to be copied to the output
- when the diversion is reread.
- There is a new request `trf' (transparent file) similar to `cf', but
- more like `\!'.
- There is a new escape sequence `\Y[xxx]', roughly equivalent to
- `\X'\*[xxx]'', except that the contents of string or macro xxx are not
- interpreted, and xxx may contain newlines. This requires an output
- format extension; the drivers have been modified to understand this.
- Grops has also been modified to cope with newlines in the arguments to
- \X commands; grops has a new \X command mdef, which is like def except
- that it has a first argument giving the number of definitions.
- There is a new warning category `escape' which warns about unknown
- escape sequences.
- The `fp' request now takes an optional third argument giving the external
- name of the font.
- The `\_' character is now automatically translated to `\(ul' as in troff.
- The environment variable `GROFF_HYPHEN' gives the name of the file
- containing the hyphenation patterns.
- There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
- Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
- of end of sentence recognition.
- There is an anti-recursion feature in the `char' request, so you can
- say `.char \(bu \s+2\(bu\s-2'.
- The limit on the number of font positions has been removed.
- Accordingly `\n[.fp]' never returns 0.
- The restriction on the number of numbered environments has been removed.
- There is a new escape sequence `\E' that makes it possible to
- guarantee that an escape sequence won't get interpreted in copy-mode.
- The `\R' escape sequence is accordingly now deprecated.
- Gpic
- ----
- Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
- `if' and `define' constructs) can now be of the form `{ anything }'.
- If the `linethick' variable is negative (as it now is initially),
- lines will be drawn with a thickness proportional to the current point
- size.
- The `rand' function now takes no arguments and returns a number between
- 0 and 1. The old syntax is still supported.
- `^' can be used in expressions to indicate exponentiation.
- In the `for' construct the argument to the by clause can be prefixed
- by `*' to indicate that the increment is multiplicative.
- A bare expression may be used as an attribute. If the current
- direction is `dir', then an attribute `expr' is equivalent to
- `dir expr'
- There is a `sprintf' construct that allows numbers to be formatted and used
- wherever a quoted string can be used.
- The height of a text object without an explicit height attribute is
- the number of text strings associated with the object times the value
- of the `textht' variable.
- The maximum height and width of a picture is controlled by the
- `maxpswid' and `maxpsht' variables.
- Gtbl
- ----
- Gtbl can now handle gracefully the situation where the `ce' request
- has been applied to a table.
- Geqn
- ----
- The `ifdef' primitive has been generalized.
- A tilde accent can be put underneath a box using `utilde'. This
- defined using a general `uaccent' primitive.
- Grops
- -----
- There is a new PostScript font downloading scheme which handles font
- downloading for imported illustrations. Previously, the name of the
- file containing the font was given in the `x download' line in the
- groff font metric file. Now, there is a `download' file which says
- for each PostScript font name which file contains that font. Grops
- can also now handle inter-font dependencies, where one downloadable
- font depends on some other (possibly downloadable) font.
- The `T' font has been removed. The characters it used to provide are
- now provided by `char' definitions in tmac.ps. TSymbol.ps has also
- been removed, and the tweaks it provided are now provided by `char'
- definitions.