BSD 4_3_Net_2 development
[unix-history] / usr / src / usr.bin / groff / CHANGES
CommitLineData
7a3c88b2
C
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.01
5============
6
7The groff command now understands the gtroff `-a' and `-i' options.
8
9With the `m' and `n' scale indicators, the scale factor is rounded
10horizontally before being applied. This makes (almost) no difference
11for devices with `hor' equal to 1, but it makes groff with -Tascii or
12-Tlatin1 behave more like nroff in its treatment of these scale
13indicators. Accordingly tmac.tty now calls the `nroff' request so
14that the `n' condition will be true.
15
16The device-specific macros (tmac.ps, tmac.dvi, tmac.tty and tmac.X)
17have been made to work at least somewhat with -C. In particular the
18special characters defined by these macros now work with -C.
19
20groff -Tdvi -p will now pass pic the -x flag; this will enable filling
21of arrowheads and boxes, provided that your dvi driver supports the
22latest version of the tpic specials.
23
24Eqn
25---
26
27There is a new `-N' option that tells eqn not to allow newlines in
28delimiters. This allows eqn to recover better from missing closing
29delimiters. The groff command will pass on a `-N' option to eqn.
30
31Grops
32-----
33
34You can now use psfig with grops. See the file ps/psfig.diff. I do
35not recommend using psfig for new documents.
36
37The command \X'ps: file F' is similar to \X'ps: exec ...' except that
38the PostScript code is read from the file F instead of being contained
39within the \X command. This was added to support psfig.
40
41Grodvi
42------
43
44There are font files HB and HI corresponding to cmsssbx10 and cmssi10.
45
46Macros
47------
48
49The groff -me macros now work with the -C option. As a result, they
50may also work with Unix nroff/troff.
51
52In -me, the $r and $R number registers now contain the line spacing as
53a percentage of the pointsize expressed in units (normally about 120).
54The previous definition was useless with low resolution devices such
55as X75 and X100.
56
57VERSION 1.00
58============
59
60A -ms-like macro-package is now included.
61
62The name for the Icelandic lowercase eth character has been changed
63from \(-d to \(Sd.
64
65Troff
66-----
67
68There is a new request `nroff', which makes the `n' built-in condition
69true and the `t' built-in condition false; also a new request `troff'
70which undoes the effect of the `nroff' request. This is intended only
71for backward compatibility: it is usually better to test \n(.H or
72\n(.V or to use the `c' built-in condition.
73
74The \R escape sequence has been deleted. Use \E instead.
75
76There are `break' and `continue' requests for use with the `while'
77request.
78
79There is a request `hym' that can ensure that when the current
80adjustment mode is not `b' a line will not be hyphenated if it is no
81more than a given amount short, and a request `hys' that can ensure
82that when the current adjustment mode is `b' a line will not be
83hyphenated if it can be justified by adding no more than a given
84amount of extra space to each word space.
85
86There is a request `rj' similar to `ce' that right justifies lines.
87
88A warning of type `space' will be given when a call is made to an
89undefined request or macro with a name longer than two characters, and
90the first two characters of the name make a name that is defined.
91This is intended to find places where a space has been omitted been a
92request or macro and its argument. This type of warning is enabled by
93default.
94
95Pic
96---
97
98A comma is permitted between the arguments to the `reset' command.
99
100For use with TeX, there is a new `-c' option that makes gpic treat
101lines beginning with `.' in a way that is more compatible with tpic
102(but ugly).
103
104Eqn
105---
106
107It is no longer necessary to add `space 0' at the beginning of
108complicated equations inside pictures.
109
110`prime' is now treated as an ordinary character, as in Unix eqn. The
111previous behaviour of `prime' as an operator can now be obtained using
112`opprime'.
113
114Xditview
115--------
116
117There are two new devices X75-12 and X100-12 which are the same as X75
118and X100 except that they are optimized for documents that use mostly
11912 point text.
120
121VERSION 0.6
122===========
123
124The installation process has been refined to make it easy for you to
125share groff with someone who has the same type of machine as you but
126does not have a C++ compiler. See the end of the INSTALL file for
127details.
128
129There is a man page for the tfmtodit program which explains how to use
130your own fonts with groff -Tdvi.
131
132There is a man page for afmtodit which explains how to use your own
133PostScript fonts with groff -Tps.
134
135The \N escape sequence is now fully supported. It can now be used to
136access any character in a font by its output code, even if it doesn't
137have a groff name. This is made possible by a convention in the font
138files that a character name of `---' refers to an unnamed character.
139The drivers now all support the `N' command required for this. The font
140description files have been updated to include unnamed characters.
141
142The `x' command in font description files has been removed: instead
143any unknown commands are automatically made available to the drivers.
144If you constructed your own font files with an earlier version of
145tfmtodit or afmtodit, you must construct them again using the current
146version.
147
148Characters between 0200 and 0237 octal are no longer legal input
149characters. Note that these are not used in ISO 8859.
150
151A command called `grog' has been added, similar to the `doctype'
152command described in Kernighan and Pike.
153
154Groff
155-----
156
157The groff command has some new options: -V prints the pipeline
158instead of executing it; -P passes an argument to the postprocessor,
159-L passes an argument to the spooler.
160
161There is a C++ implementation of the groff command. This handles some
162things slightly better than the shell script. In particular, it can
163correctly handle arguments containing characters that have a special
164meaning to the shell; it can give an error message when child
165processes other than the last in the pipeline terminate abnormally;
166its exit status can take account of the exit statuses of all its child
167processes; it is a little more efficient; when geqn is used, it
168searches for the eqnchar file in the same way that font metric files
169are searched for, rather than expecting to find it in one particular
170directory.
171
172Gtroff
173------
174
175There is font translation feature: For example, you can tell gtroff to
176use font `HR' whenever font `H' is requested with the line
177 .ftr H HR
178This would be useful for a document that uses `H' to refer to
179Helvetica.
180
181There are some new number registers: `.kern' contains the current kern
182mode, `.lg' the current ligature mode, `.x' the major version number,
183`.y' the minor version number, `.ce' the number of lines to be
184centered in the current environment, `.trunc' the amount of vertical
185space truncated by the most recently sprung vertical position trap,
186`.ne' the amount of vertical space needed in the last `ne' request
187that caused a vertical position trap to be sprung.
188
189The `cf' request now behaves sensibly in a diversion. If used in a
190diversion, it will now arrange for the file to be copied to the output
191when the diversion is reread.
192
193There is a new request `trf' (transparent file) similar to `cf', but
194more like `\!'.
195
196There is a new escape sequence `\Y[xxx]', roughly equivalent to
197`\X'\*[xxx]'', except that the contents of string or macro xxx are not
198interpreted, and xxx may contain newlines. This requires an output
199format extension; the drivers have been modified to understand this.
200Grops has also been modified to cope with newlines in the arguments to
201\X commands; grops has a new \X command mdef, which is like def except
202that it has a first argument giving the number of definitions.
203
204There is a new warning category `escape' which warns about unknown
205escape sequences.
206
207The `fp' request now takes an optional third argument giving the external
208name of the font.
209
210The `\_' character is now automatically translated to `\(ul' as in troff.
211
212The environment variable `GROFF_HYPHEN' gives the name of the file
213containing the hyphenation patterns.
214
215There is a `\C'xxx'' escape sequence equivalent to `\[xxx]'.
216
217Characters ", ', ), ], *, \(dg are now initially transparent for the purposes
218of end of sentence recognition.
219
220There is an anti-recusion feature in the `char' request, so you can
221say `.char \(bu \s+2\(bu\s-2'.
222
223The limit on the number of font positions has been removed.
224Accordingly `\n[.fp]' never returns 0.
225
226The restriction on the number of numbered environments has been removed.
227
228There is a new escape sequence `\E' that makes it possible to
229guarantee that an escape sequence won't get interpreted in copy-mode.
230The `\R' escape sequence is accordingly now deprecated.
231
232Gpic
233----
234
235Arguments of the form `X anything X' (in the `copy thru', `sh', `for',
236`if' and `define' constructs) can now be of the form `{ anything }'.
237
238If the `linethick' variable is negative (as it now is initially),
239lines will be drawn with a thickness proportional to the current point
240size.
241
242The `rand' function now takes no arguments and returns a number between
2430 and 1. The old syntax is still supported.
244
245`^' can be used in expressions to indicate exponentiation.
246
247In the `for' construct the argument to the by clause can be prefixed
248by `*' to indicate that the increment is multiplicative.
249
250A bare expression may be used as an attribute. If the current
251direction is `dir', then an attribute `expr' is equivalent to
252`dir expr'
253
254There is a `sprintf' construct that allows numbers to be formatted and used
255wherever a quoted string can be used.
256
257The height of a text object without an explicit height attribute is
258the number of text strings associated with the object times the value
259of the `textht' variable.
260
261The maximum height and width of a picture is controlled by the
262`maxpswid' and `maxpsht' variables.
263
264Gtbl
265----
266
267Gtbl can now handle gracefully the situation where the `ce' request
268has been applied to a table.
269
270Geqn
271----
272
273The `ifdef' primitive has been generalized.
274
275A tilde accent can be put underneath a box using `utilde'. This
276defined using a general `uaccent' primitive.
277
278Grops
279-----
280
281There is a new PostScript font downloading scheme which handles font
282downloading for imported illustrations. Previously, the name of the
283file containing the font was given in the `x download' line in the
284groff font metric file. Now, there is a `download' file which says
285for each PostScript font name which file contains that font. Grops
286can also now handle inter-font dependencies, where one downloadable
287font depends on some other (possibly downloadable) font.
288
289The `T' font has been removed. The characters it used to provide are
290now provided by `char' definitions in tmac.ps. TSymbol.ps has also
291been removed, and the tweaks it provided are now provided by `char'
292definitions.