mirror of
https://https.git.savannah.gnu.org/git/groff.git
synced 2026-01-29 02:44:18 +00:00
* m4/groff.m4 (GROFF_URW_FONTS_SUPPORT): New Autoconf macro creates a "with" configuration option, permitting the host environment to easily switch off the search for URW fonts and defeat all of the consequent features without the "configure" script issuing a lengthy warning about failure to find the aforementioned fonts. New shell variable `urwfontsupport` indicates the configuration's desired status (which still defaults on). (GROFF_URW_FONTS_CHECK): Add dependency on the foregoing macro. Initialize `urwfontsdir` shell variable to empty unconditionally, permitting it to be updated later if the URW font feature isn't disabled. Nest most of the work of this macro inside a conditional on `urwfontsupprt`. Continue to unconditionally populate and `AC_SUBST`-itute `groff_have_urw_fonts` and `urwfontsdir`, because "configure.ac", "test-mom.sh.in", "mom.am", "font/devpdf/Foundry.in", "devpdf.am", and "check-urw-foundry.sh.in" variously rely on them to behave appropriately for the configuration. NEWS: Add item. This commit omits an indentation update to clarify the change in flow of control.
4623 lines
173 KiB
Plaintext
4623 lines
173 KiB
Plaintext
Copyright 1992-2023 Free Software Foundation, Inc.
|
||
2018-2026 G. Branden Robinson
|
||
2022 Ingo Schwarze
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|
||
|
||
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.24.0 release candidate
|
||
================================
|
||
|
||
Noteworthy incompatible changes
|
||
-------------------------------
|
||
|
||
* If your roff(7) documents follow any of the requests `cf`, `hpf`,
|
||
`hpfa`, `mso`, `msoquiet`, `nx`, `open`, `opena`, `so`, `soquiet`, or
|
||
`trf` with a comment after their file name argument, and did not
|
||
place that comment immediately after the file name, you are likely to
|
||
get a diagnostic message resembling the following.
|
||
|
||
warning: cannot open macro file 'e.tmac ': No such file or directory
|
||
|
||
Or, less likely, the formatter will open the wrong file, one with
|
||
spaces at the end of its name. That is because these requests are
|
||
now able to process file names containing space characters. (This
|
||
change also makes the request syntax consistent with that of `ds`,
|
||
`as`, and others.) A quick fix is to place the comment escape
|
||
sequence as early as possible. For example, we would change:
|
||
|
||
.mso e.tmac \" Load Eric Allman's package.
|
||
|
||
to:
|
||
|
||
.mso e.tmac\" Load Eric Allman's package.
|
||
|
||
to tell the formatter to load the "e.tmac" file rather than
|
||
"e.tmac ". See the items below for further details.
|
||
|
||
* If your roff(7) documents specify a file name that starts with a
|
||
neutral double quote (") to any of the requests `cf`, `hpf`,
|
||
`hpfa`, `mso`, `msoquiet`, `nx`, `open`, `opena`, `so`, `soquiet`, or
|
||
`trf`, you are likely to get a diagnostic message, or the formatter
|
||
will open a file of the same name except for the leading neutral
|
||
double quote. That is because these requests are now able to process
|
||
file names containing leading space characters. (This change also
|
||
makes the request syntax consistent with that of `ds`, `as`, and
|
||
others.) The solution is to add an additional neutral double quote
|
||
to the start of the file name argument. For example, we would
|
||
change:
|
||
|
||
.so "5150".lrc
|
||
|
||
to:
|
||
|
||
.so ""5150".lrc
|
||
|
||
to tell the formatter to read a file named '"5150".lrc', where the
|
||
neutral single quotes bracket the file name.
|
||
|
||
* groff mdoc(7)'s font customization feature, undocumented but
|
||
analogous to that of 4.4BSD mdoc, now expects the strings that
|
||
designate font names to be precisely that: font _names_ (or abstract
|
||
styles, or mounting positions), rather than arbitrary *roff syntax.
|
||
(String interpolations remain acceptable, as long as what they
|
||
interpolate is a valid argument to the `ft` request or `\f[xxx]`
|
||
escape sequence.)
|
||
|
||
* Support for terminal devices using the CCSID 1047 (EBCDIC) encoding
|
||
has been withdrawn. See below for motivation and a workaround.
|
||
|
||
troff
|
||
-----
|
||
|
||
* troff now recognizes an -S option, which "locks" safer mode,
|
||
rejecting any subsequent specification of -U on the command line with
|
||
an error diagnostic.
|
||
|
||
* The `cf` request is now disabled in safer mode; as with `pi` and
|
||
`sy`, you must specify troff's "unsafe mode" option `-U` to use it.
|
||
Alternatively, use the `trf` request, available since groff 0.6
|
||
(circa 1990), to embed a file in GNU troff's output while discarding
|
||
characters (most C0 and C1 controls) that are invalid as GNU troff
|
||
input--and incidentally also undefined in GNU troff output.
|
||
|
||
* The `hpfcode` request now emits an error when used, advising of its
|
||
planned withdrawal, but then proceeds with normal behavior. The
|
||
documented replacement mechanism, the `hcode` request, has existed
|
||
since groff 1.02 (June 1991) at the latest.
|
||
|
||
* The `mso` request no longer attempts to open a macro file named, say,
|
||
"tmac.s" if "s.tmac" was specified as the argument and not found, nor
|
||
vice versa. This feature was a convenience for some old AT&T troff
|
||
installations, but few of those remain in the field, and of those
|
||
that we know to survive, few use a macro file naming convention for
|
||
which this feature is any help. (DWB 3.3 and Solaris do not, and we
|
||
think other System V troffs don't, either. Only Plan 9 troff does.)
|
||
`mso` now simply processes the macro search path for a file name
|
||
matching the request argument, and succeeds or fails depending on an
|
||
exact match.
|
||
|
||
If you desire this functionality for portability (keeping in mind
|
||
that `mso` is itself a groff extension), consider the following.
|
||
|
||
.\" Load the ms package, whatever it might be named.
|
||
.\" troffs without groff extensions must know its full path.
|
||
.if !\n(.g .so /path/to/tmac.s
|
||
.\" The following requests do nothing on non-GNU troffs.
|
||
.do msoquiet s.tmac\" If file present, defines `LP` macro.
|
||
.do if !d LP .msoquiet tmac.s
|
||
|
||
* GNU troff no longer accepts nonpositive page lengths. Attempting to
|
||
set one with the `pl` request clamps the page length to the vertical
|
||
motion quantum as `ll` does with the horizontal motion quantum in
|
||
AT&T and GNU troffs.
|
||
|
||
* GNU troff no longer accepts a newline as a delimiter for the
|
||
parameterized escape sequences `\A`, `\b`, `\o`, `\w`, `\X`, and
|
||
`\Z`.
|
||
|
||
* GNU troff no longer accepts C0 controls or Latin-1 Supplement
|
||
characters in identifiers. We prohibit C0 controls to make the
|
||
language less tolerant of unreadable input, and Latin-1 Supplement
|
||
code points to enable us to pivot to reading UTF-8-encoded input in a
|
||
future release. (Thus, we plan for Latin-1 Supplement characters to
|
||
again be accepted in identifiers, but only as components of multibyte
|
||
UTF-8 sequences.)
|
||
|
||
* The `color`, `cp`, `kern`, `linetabs`, and `vpt` requests now
|
||
interpret arguments with negative values as instructions to disable
|
||
the corresponding feature, using the *roff integer-to-Boolean
|
||
conversion idiom instead of the C/C++ one. Thus, if you invoke these
|
||
requests with a register interpolation as an argument, the outcome
|
||
agrees with an `if` test of the register's value.
|
||
|
||
* GNU troff now implements saturating rather than wrapping integer
|
||
arithmetic. Where before overflow would cause an error diagnostic
|
||
and abort evaluation of the expression, the formatter now emits a
|
||
warning diagnostic in the "range" category and continues evaluation.
|
||
|
||
* GNU troff now strips a leading neutral double quote from the argument
|
||
to the `cf`, `hpf`, `hpfa`, `lf`, `mso`, `msoquiet`, `nx`, `pi`,
|
||
`pso`, `so`, `soquiet`, `sy`, and `trf` requests, and the second
|
||
argument to the `open` and `opena` requests, allowing it to contain
|
||
embedded leading spaces.
|
||
|
||
* GNU troff now accepts space characters in the argument to the `cf`,
|
||
`hpf`, `hpfa`, `lf`, `mso`, `msoquiet`, `nx`, `so`, `soquiet`, and
|
||
`trf` requests, and the second argument to the `open` and `opena`
|
||
requests. See "soelim" below.
|
||
|
||
* The "number" warning category has been withdrawn. The diagnostic
|
||
that formerly used it has been promoted to an error.
|
||
|
||
* The "el" warning category has been withdrawn. If enabled (which it
|
||
was not by default), the formatter would emit a diagnostic if it
|
||
inferred an imbalance between `ie` and `el` requests. Unfortunately
|
||
its technique wasn't reliable and sometimes spuriously issued these
|
||
warnings, and making it perfectly reliable did not look tractable.
|
||
We recommend using brace escape sequences `\{` and `\}` to ensure
|
||
that your control flow structures remain maintainable.
|
||
|
||
* The "right-brace" warning category has been withdrawn. If enabled
|
||
(which it was not by default), the formatter would emit a diagnostic
|
||
in exactly one circumstance: when a numeric expression was expected
|
||
(as, for instance, the second argument to an `nr` request) but a
|
||
right brace escape sequence `\}` was encountered instead. This
|
||
diagnostic still issues, but it is now an error.
|
||
|
||
* GNU troff now performs some limited processing/transformation of the
|
||
argument to the `\X` escape sequence and its counterpart `device`
|
||
request, to address the requirement that some documents have to pass
|
||
metadata that must encode non-ASCII characters in device extension
|
||
commands. (For example, a document author may desire a document's
|
||
section headings containing non-ASCII code points to appear correctly
|
||
in PDF bookmarks. Further, GNU troff encodes its output page
|
||
description language only in ASCII.) This change is expected to be
|
||
of significance mainly to developers of output drivers for groff;
|
||
groff_diff(7) describes the transformations. If you have been using
|
||
`\X` or `.device` to pass ASCII data to the output driver as a device
|
||
extension command and require that it remain precisely as-is, use the
|
||
`\!` escape sequence or `output` request, and prefix your data with
|
||
"x X ", the device-independent troff means of expressing a device
|
||
extension command (see groff_out(5)).
|
||
|
||
* In nroff mode (in other words, when producing output for devices that
|
||
claim to be terminals), the formatter now reports warning diagnostics
|
||
regarding certain output problems using units of lines (vertically)
|
||
and character cells [ens] (horizontally) instead of inches (or the
|
||
unit configured with the `warnscale` request) to describe the drawing
|
||
position where the problem occurred.
|
||
|
||
* The device-independent page description language produced by GNU
|
||
troff now reports unbreakable spaces (those produced with the `\~`
|
||
escape sequence) as word boundaries with the documentary 'w' command,
|
||
just as it does for regular breakable spaces.
|
||
|
||
* A new request, `hydefault`, and read-only register, `.hydefault`,
|
||
manage the default automatic hyphenation mode of an environment.
|
||
This resolves a long-standing problem of *roff formatting.
|
||
|
||
When processing input like this,
|
||
.nh
|
||
and we temporarily shut off automatic hyphenation,
|
||
.hy
|
||
the foregoing request would not do exactly what we expect.
|
||
|
||
AT&T and other troffs apply a hyphenation mode of 1 to the final
|
||
input line (and subsequent ones), rather than restoring the mode in
|
||
use before the `nh` request. Apart from overturning user
|
||
expectations, for GNU troff "1" is not an appropriate mode for its
|
||
English hyphenation patterns. (For example, "alibi" would break as
|
||
"ali-bi" instead of "al-ibi" after this argumentless `hy`
|
||
invocation.) With updates to groff's localization files accompanying
|
||
this release, the foregoing input now works as desired.
|
||
|
||
* A new read-only, string-valued register, `.trap`, interpolates the
|
||
name of the next page location trap after the drawing position.
|
||
|
||
* New registers `.it`, `.itc`, and `.itm` are available. These
|
||
read-only (and, in the case of `.itm`, string-valued) registers
|
||
report the number of lines remaining in a pending input trap, a
|
||
Boolean indication of whether that pending input trap honors output
|
||
line continuation (cf. the `it` and `itc` requests), and the name of
|
||
the macro associated with the pending input trap, respectively.
|
||
|
||
* A new request, `pchar`, reports to the standard error stream details
|
||
of any class or ordinary, special, or indexed character arguments.
|
||
|
||
* A new request, `pcolor`, reports to the standard error stream details
|
||
of each color name specified as an argument, including its color
|
||
space identifier and channel value assignments. Without arguments,
|
||
all defined colors are listed. (A device's default stroke and/or
|
||
fill colors, "default", are not listed since they are immutable and
|
||
their details unknown to the formatter.)
|
||
|
||
* A new request, `pcomposite`, reports to the standard error stream the
|
||
list of configured composite character mappings.
|
||
|
||
* A new request, `pfp`, reports to the standard error stream the
|
||
list of occupied font mounting positions and the corresponding
|
||
abstract style name or font information.
|
||
|
||
* A new request, `pftr`, reports to the standard error stream the
|
||
list of configured font translations.
|
||
|
||
* A new request, `phw`, reports to the standard error stream the
|
||
list of hyphenation exceptions associated with the current
|
||
hyphenation language.
|
||
|
||
* A new request, `pline`, reports to the standard error stream the list
|
||
of output nodes (an internal data structure) corresponding to the
|
||
pending output line. The list is empty if no such nodes exist.
|
||
|
||
* The `pm` request now interprets any arguments as a sequence of macro,
|
||
string, or diversion names, and reports their contents.
|
||
|
||
* The `pnr` request now additionally reports the autoincrementation
|
||
amount and interpolation format of each register (if it is not
|
||
string-valued).
|
||
|
||
* The `pnr` request now accepts arguments. It treats each as
|
||
identifying a register and reports its properties to the standard
|
||
error stream.
|
||
|
||
* A new request, `pstream`, reports to the standard error stream the
|
||
name of each stream opened with the `open` or `opena` requests, the
|
||
name of the file backing it, and its mode (writing or appending).
|
||
|
||
* The `ptr` request has been renamed to `pwh` (mnemonic: "Print WHen
|
||
traps will spring"). As a rule, debugging requests starting with `p`
|
||
correspond to a request name that manipulates the objects reported on
|
||
when the `p` is removed. However, `ptr` had nothing to do with the
|
||
`tr` request. The only exceptions to the stated rule of `p`-removal
|
||
are now `line`, `m`, and `stream`, none of which are request names.
|
||
|
||
* The `hla` request, when invoked with no arguments, now clears the
|
||
hyphenation language, disabling automatic hyphenation.
|
||
|
||
* The read-only registers `.m` and `.M` now interpolate "default" when
|
||
the default color is selected as the stroke or fill color,
|
||
respectively, rather than interpolating nothing.
|
||
|
||
* Numeric expression contexts that accept the `z` and `u` scaling
|
||
units, such as the `ps` request and `\s` escape sequence, now also
|
||
accept `p` and `s`.
|
||
|
||
* troff's `-c` command-line option now also removes the `color`
|
||
request's ability to enable multi-color output.
|
||
|
||
eqn
|
||
---
|
||
|
||
* The "gifont" primitive replaces "gfont" as the means of configuring
|
||
the global italic face in preprocessed equations. "gfont" remains
|
||
recognized as a synonym for backward compatibility. The new name is
|
||
intended to ease acquisition of the eqn language in light of GNU
|
||
eqn's thirty-year-old extensions "gbfont" and "grfont".
|
||
|
||
* New parameters tunable with the GNU eqn "set" primitive, "half_space"
|
||
and "full_space", enable a document to configure the space widths
|
||
produced by the eqn tokens '^' and '~', respectively. Previously,
|
||
their widths were determined by the "thin_space" and "thick_space"
|
||
parameters used to tune GNU eqn's automatic spacing computations.
|
||
|
||
* The new "reset" primitive restores a named parameter to its default.
|
||
|
||
groff
|
||
-----
|
||
|
||
* The groff command now encodes the fate of failing processes in the
|
||
pipeline it constructs and runs so that this information cannot be
|
||
confused with groff's own error conditions (such as a usage error,
|
||
which now produces an exit status of 2). See the section "Exit
|
||
status" of groff(1) for details.
|
||
|
||
* groff now passes the -S option to pic and troff if it is specified.
|
||
|
||
nroff
|
||
-----
|
||
|
||
* nroff now recognizes the -a, -D, -I, and -Z options and passes them
|
||
to groff.
|
||
|
||
* nroff now supports clustered options ("-tzms", for example) as groff,
|
||
troff, and other GNU getopt-using programs do.
|
||
|
||
pic
|
||
---
|
||
|
||
* A new command, `polygon`, supports drawing polygons using arbitrary
|
||
vertices. The command furthermore accepts the `fill[ed]` modifier.
|
||
You can address a polygon's vertices and the midpoints of its edges
|
||
with the new `.v[er[tex]]` and `.mid[point]` syntax suffixed to an
|
||
object identifier, analogously to the existing compass point and
|
||
`.c[enter]` feature. Thanks to Duncan Losin.
|
||
|
||
* pic's -S option now "locks" safer mode, rejecting any subsequent
|
||
specification of -U on the command line with an error diagnostic.
|
||
|
||
soelim
|
||
------
|
||
|
||
* soelim no longer requires embedded space characters in `so` arguments
|
||
to be backslash-escaped. (It continues to support that syntax, even
|
||
though neither the AT&T nor GNU troff formatters ever have.) You can
|
||
now embed a sequence of leading spaces in the argument by prefixing
|
||
it with a with a neutral double quote character ("), which the
|
||
program discards. These changes are to better align this program's
|
||
parsing rules with the language of the formatter; consider the `ds`
|
||
and `as` requests.
|
||
|
||
Macro packages
|
||
--------------
|
||
|
||
* Keith Marshall's pdfmark package is no longer distributed with groff,
|
||
but is now separately maintained. Please visit
|
||
<https://savannah.nongnu.org/projects/groff-pdfmark> for the latest
|
||
version.
|
||
|
||
* mom version 2.6 is distributed with this release. It supports
|
||
multi-line headings. Thanks to Peter Schaffter.
|
||
|
||
* The device-specific macro files loaded by "troffrc" automatically on
|
||
startup, such as "html.tmac", no longer perform font translations for
|
||
some font names used by varieties of AT&T troff ('C', 'Hb', 'HX', and
|
||
several others).
|
||
|
||
These names are not portable: in AT&T troff, the font repertoire,
|
||
like the special character repertoire, was device-dependent. Since
|
||
groff 1.23.0, GNU troff diagnoses attempts to use nonexistent font
|
||
names. We recommend addressing such portability issues wherever
|
||
suits you: (1) in a document, perhaps by using `ie` and `el` requests
|
||
and the `.g` register to test whether the formatter claims support
|
||
for groff extensions, then `ie` and `el` again with the `F` groff
|
||
conditional expression operator to check for font availability, and
|
||
to perform font remappings with the groff `ftr` request as desired;
|
||
(2) doing so in your "troffrc" file; or (3) by modifying these macro
|
||
files similarly. Users of the "dvi" and "lbp" output devices should
|
||
be aware that these devices don't supply full families of monospaced
|
||
fonts (and never have). See grodvi(1) and grolbp(1) for lists of
|
||
font names supported by each device.
|
||
|
||
The legacy names are retained for the "pdf" and "ps" devices for this
|
||
release; however, use of them prompts one warning in the "font"
|
||
category from the formatter per deprecated name. We expect to
|
||
withdraw support for the names completely in a future groff release.
|
||
See gropdf(1) and grops(1) for lists of font names supported by each
|
||
device.
|
||
|
||
* Hyperlink support is now enabled by default on PDF and terminal
|
||
devices for an (man) and doc (mdoc) documents. Instructions and
|
||
commented code for disabling it are in the "man.local" and
|
||
"mdoc.local" files.
|
||
|
||
* The `PDFPIC` macro implemented in the "pdfpic.tmac" macro file now
|
||
uses identify(1) (from ImageMagick/GraphicsMagick) and file(1), if
|
||
available, to attempt to determine the dimensions of an image to be
|
||
embedded in a PDF document. See also the item regarding gropdf(1)
|
||
below. Thanks to Deri James.
|
||
|
||
* The an (man) package now supports use of its hyperlink macros (`UR`,
|
||
`UE`, `MT`, and `ME`) in paragraph tags (that is, on the next line
|
||
after a `TP` macro call). Use of the `MR` man page cross reference
|
||
macro in a tag was already supported in groff 1.23.0.
|
||
|
||
* The behavior of the an (man) package's `SY` and `YS` macros has been
|
||
expanded to enable greater user control over vertical spacing and to
|
||
make them convenient for synopsizing C language functions, not just
|
||
commands. `SY` no longer puts vertical space on the output, and
|
||
initially breaks the output line _only_ if it is encountered
|
||
repeatedly without a preceding `YS` call. The computed indentation
|
||
of synopsis lines after the first now also includes the width of
|
||
anything already on the output line, so that you can precede the `SY`
|
||
call with, for instance, the C language data type used for the return
|
||
value in a function prototype. The `SY` macro now accepts an
|
||
optional second argument. This second argument is typeset in bold,
|
||
replaces the fixed-width space that is appended to the synopsis
|
||
keyword in `SY`'s single-argument form, and is used in computation of
|
||
the indentation of non-initial synopsis lines. However, this
|
||
computed indentation can now also be overridden with that of the
|
||
previous synopsis item. To do this, give any argument to the `YS`
|
||
macro call "closing" the synopsis whose indentation you want to
|
||
reuse. When you're done with such a grouped synopsis, leave the
|
||
argument off the final `YS` call.
|
||
|
||
In a "Synopsis" section of a man page, existing synopses consisting
|
||
of a single item require no migration. This is the most common case.
|
||
|
||
For others, where before you would write...
|
||
|
||
.SY mv
|
||
.I source
|
||
.I destination
|
||
.YS
|
||
.
|
||
.SY mv
|
||
.I source
|
||
\&.\|.\|.\&
|
||
.I destination-directory
|
||
.YS
|
||
|
||
...you would now write the following.
|
||
|
||
.SY mv
|
||
.I source
|
||
.I destination
|
||
.YS
|
||
.
|
||
.P
|
||
.SY mv
|
||
.I source
|
||
\&.\|.\|.\&
|
||
.I destination-directory
|
||
.YS
|
||
|
||
(That is, simply add a paragraphing macro.)
|
||
|
||
And where before you would write...
|
||
|
||
.SY mv
|
||
.B \-h
|
||
.
|
||
.SY mv
|
||
.B \-\-help
|
||
.YS
|
||
|
||
...you would now write the following.
|
||
|
||
.SY mv
|
||
.B \-h
|
||
.YS
|
||
.
|
||
.SY mv
|
||
.B \-\-help
|
||
.YS
|
||
|
||
(That is, simply add `YS` after the first synopsis item.)
|
||
|
||
Likely the biggest benefit of these changes is that it is now much
|
||
easier to format C function prototypes with these macros. Here's how
|
||
we would synopsize a somewhat complex standard C library function.
|
||
|
||
.B "#include <stdio.h>"
|
||
.P
|
||
.B void *\c
|
||
.SY bsearch (
|
||
.BI const\~void\~*\~ key ,
|
||
.BI const\~void\~*\~ base ,
|
||
.BI size_t\~ nmemb ,
|
||
.BI int\~(* compar )\c
|
||
.B (const\~void\~*, const\~void\~*));
|
||
.YS
|
||
|
||
* The an (man), doc (mdoc), and doc-old (mdoc-old) macro packages have
|
||
changed the default line length when formatting on terminals from 78n
|
||
to 80n. The latter is a vastly more common device configuration, but
|
||
that line length had been avoided since the groff 1.18 release in
|
||
July 2002 (prior to that, the line length was 65n, as in AT&T nroff),
|
||
for an undocumented reason. That reason appears to have been the
|
||
interaction of bugs in GNU tbl(1) with an aspect of grotty(1)'s
|
||
design. Those bugs have been resolved. A man(1) program can still
|
||
instruct groff to format for any desired line length by setting the
|
||
`LL` register on {g,n,t}roff's command line.
|
||
|
||
* The an (man) and doc (mdoc) macro packages use slightly different
|
||
vertical margins than previously, to align more closely with the
|
||
traditional implementations of these packages. Per man(7) in the
|
||
AT&T Unix System III manual (June 1980), the text area was 6.5 by 10
|
||
inches (on typesetters). When formatting for terminals with
|
||
continuous rendering disabled (by default, it is enabled), the page
|
||
footer now sets one line higher than before.
|
||
|
||
* The an (man) and doc (mdoc) macro packages have added additional
|
||
registers `BP`, `PO`, and `TS` for user configuration of man page
|
||
rendering at formatting time. As noted in groff_man(7) and
|
||
groff_mdoc(7), documents should never manipulate these.
|
||
|
||
* The an (man) and doc (mdoc) macro packages now support a `BP`
|
||
register to configure the ("base") paragraph inset amount; that is
|
||
the amount used by man(7) for paragraphs not within an `RS`/`RE`
|
||
relative inset, and in mdoc(7) for all paragraphs. Formerly, the
|
||
`IN` register configured this amount with other indentation and inset
|
||
amount parameters used by man(7). (In mdoc(7), it had no other
|
||
purpose.) The base paragraph indentation default is now 5n,
|
||
corresponding to that used by historical man(7) and mdoc(7)
|
||
implementations going back to Unix Version 7 (1979) and 4.3BSD-Reno
|
||
(1990), respectively.
|
||
|
||
* The an (man) and doc (mdoc) macro packages now support a `PO`
|
||
register to configure the page offset used by the formatter.
|
||
|
||
* The an (man) macro package now supports a `TS` register to configure
|
||
the minimum space required between the tag of a `TP` paragraph and
|
||
its body. (If the width of the tag's formatted text plus this space
|
||
exceeds the paragraph indentation, the line is broken after the tag.)
|
||
This parameter, formerly hard-coded as `1n`, now defaults to `2n`.
|
||
|
||
* The an (man) macro package's `IP` macro no longer honors the formerly
|
||
hard-coded 1n tag separation noted in the previous item. This means
|
||
that the first argument to the `IP` macro can abut the text of the
|
||
paragraph with no intervening space. If you use a word instead of
|
||
punctuation or a list enumerator for `IP`'s first argument, consider
|
||
migrating to `TP`.
|
||
|
||
* The "an-ext.tmac" macro file, loaded automatically by the an (man)
|
||
macro package, no longer defines `DS` and `DE` macros. It had
|
||
defined them as empty (undocumentedly) since groff 1.20 (2009).
|
||
|
||
* The doc (mdoc) macro package's `Mt` macro now sets its argument in
|
||
roman, not italics (or whatever the string `doc-Pa-font` was
|
||
configured to use). A new string, `doc-Mt-font`, for use in
|
||
"mdoc.local" files and similar, supports configuration of this face.
|
||
|
||
* The doc (mdoc) macro package now performs font family switches
|
||
inline (that is, on the same output line) to Courier much less
|
||
frequently when formatting for typesetters, affecting the `Ar`, `Cm`,
|
||
`Er`, `Fa`, `Fd`, `Fl`, `Fn`, `Ft`, `Ic`, `Li`, and `Nm` macros.
|
||
This change was made to reduce the ambiguity of space widths when
|
||
typesetting the monospaced Courier and proportional Times fonts
|
||
adjacently. Bear in mind that you can use the "mdoc.local" file to
|
||
customize the font used to render nearly any mdoc(7) macro's
|
||
arguments; this mechanism has been in place since 1992.
|
||
|
||
* The doc (mdoc) macro package's `Ql` macro now operates more simply;
|
||
it no longer (ever) quotes its arguments when formatting for
|
||
typesetters. In practice, it does not seem difficult to distinguish
|
||
even single characters in Courier from those in Times. (If it is, an
|
||
_explicit_ quoting macro like `Sq` or `Dq` should be used.)
|
||
|
||
* The doc (mdoc) macro package's `Lk`, `Mt`, and `Xr` macros now
|
||
produce hyperlinks on HTML, PDF, and terminal devices. See above
|
||
regarding hyperlink support being enabled by default.
|
||
|
||
* The doc (mdoc) macro package now honors the `U` register and `MF`
|
||
string as the an (man) package does.
|
||
|
||
* The new macro file "koi8-r.tmac" supports the KOI8-R character
|
||
encoding, which supports the new Russian locale for groff.
|
||
|
||
* The m (mm) macro package now uses a 3v bottom margin rather than 2v.
|
||
(Using the default type size and vertical spacing, the result is a
|
||
half-inch margin, just like the existing top margin.) When
|
||
formatting for terminals, content aligned to the bottom of the page
|
||
(footers, footnotes, `BS`/`BE` bottom blocks, and similar) now sets
|
||
one line higher than before. Further, the margin between the body
|
||
text and any page footers is now 2v, like that between the body text
|
||
and page headers, not 1v.
|
||
|
||
* The m (mm) macro package's `Limsp` register (a GNU extension) has
|
||
been removed; see the item regarding the `LI` macro below.
|
||
|
||
* The m (mm) macro package's `Le` register now defaults to `1`,
|
||
consistently with the `Lf`, `Lt`, and `Lx` registers of similar
|
||
purpose, but inconsistently with DWB 3.3 mm. Explicitly assigning
|
||
the `Le` register in a document's preamble works as it always has.
|
||
|
||
* The m (mm) macro package's `AST` macro (a GNU extension) is
|
||
deprecated, warns upon usage, and is slated for withdrawal in a
|
||
future release. Assign to the new string `Abstract` instead.
|
||
|
||
* The m (mm) macro package's `ISODATE` macro (a GNU extension) is
|
||
deprecated, warns upon usage, and is slated for withdrawal in a
|
||
future release. Assign to the new register `Isodate` instead.
|
||
|
||
* The m (mm) macro package's `EPIC` macro (a GNU extension) now
|
||
interprets its "width" argument in ens by default, and its "height"
|
||
argument in vees, instead of basic units, for consistency with the
|
||
rest of the package.
|
||
|
||
* Similarly, the m (mm) macro package's `PIC` macro (a GNU extension)
|
||
now interprets an argument to its `-I` option in ens instead of ems
|
||
by default.
|
||
|
||
* The m (mm) macro package no longer superscripts _and_ brackets a
|
||
reference mark (the `Rf` string). Instead, the new `Rfstyle`
|
||
register controls its formatting. The default, 0, selects bracketing
|
||
in nroff mode and superscripting in troff mode. Set `Rfstyle` to 3
|
||
in a document to obtain groff mm's previous mark formatting behavior.
|
||
|
||
* The m (mm) macro package's `Li` register now defaults to 5 ens (not
|
||
6) to align with the `Pi` register default.
|
||
|
||
* The m (mm) macro package's `Li` register now configures the text
|
||
indentation of items in `RL` lists (as it long has for `AL` lists)
|
||
instead of hard-coding a value of 6 ens as DWB 3.3 mm does.
|
||
|
||
* The m (mm) macro package's `BVL` (a GNU extension) and `VL` macros'
|
||
first arguments are now optional. If omitted, the paragraph
|
||
indentation amount (register `Pi`) is used for list items' text
|
||
indentations.
|
||
|
||
* The m (mm) macro package's `DL` macro now uses the `EM` string as the
|
||
mark instead of an em dash special character literal. (The latter
|
||
remains the default definition of the `EM` string.)
|
||
|
||
* The m (mm) macro package's `DS` macro now interprets its third
|
||
argument (a right-hand indentation) in ens by default, for
|
||
consistency with the rest of the package. This is a difference from
|
||
DWB mm (which passed the value unprocessed to the `ll` request, which
|
||
itself uses ems), and groff mm's own historical behavior, which used
|
||
basic units.
|
||
|
||
* The m (mm) macro package's `HU` macro now supports an optional second
|
||
argument as a GNU extension. It corresponds to the optional third
|
||
argument of the `H` macro.
|
||
|
||
* The m (mm) macro package's `IND` macro (a GNU extension), now calls
|
||
`SK` only if no `TXIND` macro is defined, instead of performing this
|
||
action as part of the fallback when no `TYIND` macro is defined.
|
||
|
||
* The m (mm) macro package now supports a user-definable hook macro
|
||
`AFX`, which if defined is called by `AF` in lieu of the latter's
|
||
normal operation. Applications include customization of letterhead.
|
||
|
||
* The m (mm) macro package now supports a user-definable hook macro
|
||
`RPX`, which if defined is called by `RP` in lieu of the latter's
|
||
normal operation (breaking the page [potentially], and formatting the
|
||
reference list caption string `Rp`).
|
||
|
||
* The m (mm) macro package's `LI` macro now interprets its second
|
||
argument as a Boolean value indicating whether a space should
|
||
separate the list item mark from its prefix (the first argument).
|
||
Thus, where you formerly specified "2" to indicate no such
|
||
separation, you would now use "0", matching the semantics of the
|
||
former `Limsp` register. "2" continues to be recognized and handled
|
||
as before, but prompts a warning; migrate your documents.
|
||
|
||
* The m (mm) macro package now supports an `Aumt` string to suppress
|
||
the appearance of positional arguments to the `AU` macro in the
|
||
document heading used by memorandum types 0-3 and 6. By default, all
|
||
such arguments appear, except the second (author initials). For
|
||
example, a value of "3 4" more accurately reproduces London &
|
||
Reiser's 1978 paper describing the porting of Unix to the VAX-11/780.
|
||
|
||
* The m (mm) macro package now supports an `Rpfmt` string specifying
|
||
the `LB` macro arguments that the package uses to format the items in
|
||
an `RP` reference list.
|
||
|
||
* The m (mm) macro package now supports the `E` register as DWB mm did.
|
||
|
||
* The m (mm) macro package now supports DWB mm's `Rg` string.
|
||
|
||
* The m (mm) macro package's `nP` macro now behaves more like DWB mm's.
|
||
It applies a temporary indentation to the second output line of a
|
||
paragraph to align it with the start of the paragraph text (not the
|
||
tag/label) in the first, and resets the paragraph counter when the
|
||
first- or second-level section heading number increments.
|
||
|
||
* The m (mm) macro package's `Iso` register is now named `Isodate` to
|
||
make its meaning less ambiguous. The old name remains as an alias.
|
||
|
||
* The m (mm) macro package's `Rpe` register is now named `Rpej` for
|
||
better symmetry with `Ej`. The old name remains as an alias.
|
||
|
||
* The m (mm) macro package has renamed several strings to make their
|
||
purposes less obscure; they determine the content of captions, not
|
||
list items.
|
||
`Licon` -> `Captc`
|
||
`Liec` -> `Capec`
|
||
`Liex` -> `Capex`
|
||
`Lifg` -> `Capfg`
|
||
`Litb` -> `Captb`
|
||
The old names remain as aliases.
|
||
|
||
* The m (mm) macro package has renamed the `Tcst` string to `Tcstatus`
|
||
to make its purpose less obscure. The old name remains as an alias.
|
||
|
||
* The m (mm) macro package recognizes new register names `Ftnum` and
|
||
`Rfnum` for the automatically incrementing footnote and reference
|
||
counters. The old, DWB-compatible but cryptic, names `:p` and `:R`
|
||
remain supported.
|
||
|
||
* The s (ms) macro package now sets the vertical spacing register
|
||
defaults for normal (`VS`) and footnote (`FVS`) text to 120% of the
|
||
type size configured in the `PS` and `FPS` registers, respectively,
|
||
rather than 2 points larger, to comport with generally accepted
|
||
typesetting principles. Thus, when formatting a document with a type
|
||
size of 20 points, the vertical spacing now defaults to 24 points
|
||
rather than 22.
|
||
|
||
* The s (ms) macro package now subtracts one vee from the footer trap
|
||
location computed using the `FM` register. When using the default
|
||
`FM` value of `1i`, this makes the size of the margin from the footer
|
||
baseline to the bottom of the page 3 vees or one half-inch,
|
||
consistently with that between the header baseline and the page top.
|
||
While a bug fix, and consistent with DWB 3.3 ms, this computation is
|
||
inconsistent with Seventh Edition Unix ms and Heirloom Doctools ms.
|
||
When formatting for terminals, footers now set one line higher than
|
||
before. The size of the footnote area is not affected; instead there
|
||
is a 1v smaller margin between its bottom and the footer baseline.
|
||
|
||
Output drivers
|
||
--------------
|
||
|
||
* grohtml(1), the (X)HTML output driver, supports a new `-k` command-
|
||
line option that takes a mandatory argument, either "ascii" or
|
||
"utf-8", which it recognizes case-insensitively. This feature
|
||
configures representation of character entities in the output. Based
|
||
on work by TANAKA Takuji.
|
||
|
||
* gropdf(1), the PDF output driver, now allows embedding of JFIF/JPEG
|
||
and JPEG 2000 image file formats. If PerlMagick is installed, many
|
||
more image file formats, including PNG, PAM, and GIF, can be
|
||
embedded. See also the item regarding `PDFPIC` above. Thanks to
|
||
Deri James.
|
||
|
||
* gropdf now supplies its own "SS" (slanted symbol) font to improve
|
||
rendering of documents requiring slanted lowercase Greek letters,
|
||
such as those employing the eqn(1) preprocessor. groff supplies the
|
||
font in PFB format, and gropdf automatically embeds it, as it is not
|
||
a standard PDF font. Formerly, groff's "pdf.tmac" file defined
|
||
fallback characters for lowercase Greek letters, applying a slant of
|
||
16 degrees to the upright glyphs available in the standard symbol
|
||
font "S". That technique produced glyphs slightly larger than those
|
||
in grops's "SS" font. Thanks to Deri James.
|
||
|
||
* gropdf now subsets embedded fonts by default, meaning that it stores
|
||
only the glyphs a document actually uses. Font subsetting usually
|
||
reduces the size of the PDF gropdf creates. Thanks to Deri James.
|
||
|
||
* gropdf supports a new `--opt` command-line option, permitting a few
|
||
features, including font subsetting, to be selectively enabled.
|
||
Thanks to Deri James.
|
||
|
||
* gropdf now emits PDFs that conform to the PDF 1.7 standard (also
|
||
known as ISO 32000). Its new `--pdfver` command-line option permits
|
||
production of PDF 1.4-conformant output instead. Thanks to Deri
|
||
James.
|
||
|
||
* gropdf supports a new `pdf: pagenumbering` device extension command
|
||
and `pdfpagenumbering` convenience macro, allowing control of the
|
||
page numbers in a PDF reader's overview panel. It is common for a
|
||
document to number early pages with Roman numerals and then restart
|
||
page enumeration at decimal 1 for its main matter. Thanks to Deri
|
||
James.
|
||
|
||
* gropdf now offers its own implementations of the "pdfmark" macro
|
||
package's "pdfhref" and other macros, supporting internal (bookmarks,
|
||
named destinations) and external (URL) hyperlinks, and the
|
||
specification of hotspots for link text. For example, when bundling
|
||
multiple man pages into a collection, as the supplied
|
||
groff-man-pages.pdf document and the Linux man-pages project do,
|
||
references to man pages within the collection are supported with
|
||
internal hyperlinks, and those outside with external ones. Thanks to
|
||
Deri James.
|
||
|
||
* gropdf now supports characters outside the Unicode Basic Latin subset
|
||
in bookmarks, named destinations, and external hyperlinks. (They
|
||
must be encoded using groff's Unicode special character escape
|
||
sequences; the preconv preprocessor is helpful to simply this
|
||
requirement.) Thanks to Deri James.
|
||
|
||
* gropdf now recognizes a `GROPDF_OPTIONS` environment variable,
|
||
interpreting it as a space-separated list of command-line options.
|
||
Explicit command-line options override any settings from this
|
||
environment variable. You can use this variable to obviate passing
|
||
options to gropdf via groff's `-P` option. Thanks to Deri James.
|
||
|
||
* grops(1), the PostScript output driver, now supports fonts encoded
|
||
using UTF-16. Indicate the encoding by including the string
|
||
"-UTF16-" within the font's name as specified by the "internalname"
|
||
directive in its font description file. Thanks to TANAKA Takuji.
|
||
|
||
* The PostScript output driver grops(1) no longer accepts spaces as
|
||
field separators in its "download" file; this is so that spaces can
|
||
appear in font file names, and to better align the syntax of this
|
||
file with that used by gropdf(1). The download file for grops
|
||
shipped by groff has long used tabs rather than spaces for field
|
||
separation.
|
||
|
||
* The PostScript output driver grops(1)'s macro file "ps.tmac" no
|
||
longer defines fallback special characters `\[S ,]` and `\[S ,]` to
|
||
simulate support for what Unicode calls LATIN {CAPITAL,SMALL} LETTER
|
||
S WITH COMMA BELOW. The file's definition constructed these glyphs
|
||
by overstriking the Basic Latin "S" (or "s") with a cedilla accent,
|
||
which is regarded as less orthographically acceptable than in the
|
||
past. A user's document or macro file can still do exactly what
|
||
"ps.tmac" used to.
|
||
|
||
.fchar \[S ,] \o'S\[ac]'
|
||
.hcode \[S ,]s
|
||
.fchar \[s ,] \o's\[ac]'
|
||
.hcode \[s ,]s
|
||
|
||
* The PostScript output driver grops(1) once again accepts a file name
|
||
containing slashes as a document prolog or resource (such as a font
|
||
to be downloaded into the document). This is a restoration of groff
|
||
1.22.4 and earlier behavior; groff's 1.23.0 change of not accepting a
|
||
file name containing slashes as an encoding or font description
|
||
remains in place. (We impose this restriction because the output
|
||
driver interprets the contents of these files; it does not interpret
|
||
the PostScript prolog or resource files.)
|
||
|
||
* grotty(1) now supports devices recognizing ECMA-48/ISO 6429 SGR 38
|
||
and 48 escape sequences that select RGB colors using 8 bits per color
|
||
channel. A new command-line option, `-t`, configures emission of
|
||
these escape sequences instead of the SGR 30-37 and 40-47 sequences
|
||
supporting 3- or 4-bit color. Thanks to Deri James.
|
||
|
||
Example:
|
||
|
||
$ groff -T utf8 -P -t <<EOF
|
||
.defcolor pink rgb #ffc0cb
|
||
.defcolor springgreen rgb #00ff7f
|
||
Hello, \f[B]\m[pink]colorful \m[springgreen]world\m[default]\f[]!
|
||
.pl \n[nl]u
|
||
EOF
|
||
|
||
* gxditview(1), the X11 output driver and document previewer, now
|
||
accepts the option `-v` as a synonym of `--version` (and `-version`).
|
||
This change aligns it with other groff output drivers, and makes it
|
||
work correctly with "groff -vX".
|
||
|
||
Utilities
|
||
---------
|
||
|
||
* afmtodit now recognizes a '-q' option to suppress diagnostics
|
||
reporting duplicate mappings in favor of a count thereof, and the
|
||
"BuildFoundries" script uses it. Recent versions of the URW fonts
|
||
have tons of duplicate mappings (for groff's purposes) and to our
|
||
knowledge these are all harmless.
|
||
|
||
* grog no longer supports the `--ligatures` and `--run` options.
|
||
Simulate the former (which was specific to the "pdf" output device)
|
||
with the option sequence "-P -U -P y", and the latter by using the
|
||
command substitution feature of your shell; see section "Examples" of
|
||
groff(1).
|
||
|
||
* groff now offers install-font.bash, a shell script that interactively
|
||
assists the configuration of fonts for use with the GNU troff
|
||
formatter and the gropdf and grops output drivers. For now, it is
|
||
provided as an example, as it lacks a man page. You can change to
|
||
its directory and run "bash install-font.bash -H" for a man page-like
|
||
description of its features and operation.
|
||
|
||
Miscellaneous
|
||
-------------
|
||
|
||
* The contributed programs gperl and gpinyin no longer accept
|
||
abbreviated forms of the long options `--help` and `--version`. The
|
||
respective synonymous short options `-h` and `-v` remain.
|
||
|
||
* Font description files now support a variant of the "charset"
|
||
directive: "charset-range" works like the existing "charset"
|
||
directive except that the glyph descriptions use a `name` of the form
|
||
"uEEEE..uFFFF" (where "EEEE" and "FFFF" are hexadecimal digit
|
||
sequences), and apply the metrics identically to all glyphs in the
|
||
designated range. Thanks to TANAKA Takuji.
|
||
|
||
* groff now ships font description files usable with the "ps", "html",
|
||
"xhtml", and "utf8" output devices to support East Asian fonts.
|
||
(Caveat: with few exceptions, groff does not ship font files
|
||
themselves.) These are intended as abstractions of faces to permit
|
||
consistent naming while allowing custom font selections, just as with
|
||
the 12 text typefaces supported across output devices for Latin
|
||
scripts in groff (three families of four styles each). These CJK
|
||
font descriptions are not organized into groff font families, but are
|
||
similarly arranged.
|
||
|
||
CSH: Simplified Chinese, Hei style
|
||
CSS: Simplified Chinese, Song style
|
||
CTH: Traditional Chinese, Hei style
|
||
CTS: Traditional Chinese, Song style
|
||
JPG: Japanese, Gothic style
|
||
JPM: Japanese, Mincho style
|
||
KOG: Korean, Gothic style
|
||
KOM: Korean, Mincho style
|
||
|
||
Thanks to TANAKA Takuji.
|
||
|
||
* The commands addftinfo, grodvi, post-grohtml, grolbp, grolj4, grops,
|
||
grotty, eqn, pre-grohtml, gxditview, pic, preconv, refer, soelim,
|
||
tbl, groff, troff, hpftodit, indxbib, lkbib, lookbib, tfmtodit, and
|
||
xtotroff now exit with status 2 instead of 1 on usage errors. grn
|
||
now exits with status 2 on a usage error instead of a successful
|
||
status (0).
|
||
|
||
* Support for terminal devices using the CCSID 1047 (EBCDIC) encoding
|
||
has been withdrawn. This change partially clears the way for GNU
|
||
troff to interpret UTF-8 input directly (without preconv(1)
|
||
preprocessor usage) in the future. Use iconv(1) to covert a code
|
||
page 1047 document to US-ASCII or ISO Latin-1 prior to its input to
|
||
GNU troff. preconv(1), and therefore groff(1)'s `-k` and `-K`
|
||
options, can do this as well if preconv is built with iconv support.
|
||
Use `preconv -v` to determine this fact.
|
||
|
||
* groff's "configure" script now tries harder to determine an
|
||
appropriate paper format for the system; its output reports how it
|
||
made its determination. Any existing "/etc/papersize" file is one of
|
||
the resources it consults.
|
||
|
||
* groff's "configure" script now supports a "--without-urw-fonts"
|
||
option, for use on systems where the URW replacement fonts for
|
||
PostScript and PDF standard fonts are unavailable or not desired. It
|
||
also silences the lengthy warning the script issues when these fonts
|
||
and their metric files are not found. Configuring without URW font
|
||
support reduces the gropdf(1) output driver's functionality; see
|
||
subsection "URW font support" of that man page for details.
|
||
|
||
* You can now specify any paper format you like--including the file
|
||
specification "/etc/papersize" for systems using "libpaper"--as the
|
||
default that the groff build writes to generated device description
|
||
files ("DESC") for the "dvi", "lbp", "lj4", "pdf", and "ps" output
|
||
drivers. (The paper format must still be valid; see groff_font(5).)
|
||
|
||
Example: ./configure PAGE=/etc/papersize --prefix=/opt/gnu
|
||
|
||
* Building groff no longer requires the PSUtils package.
|
||
|
||
* Building groff no longer requires the makeinfo command. Since groff
|
||
1.23.0, we ship groff's Texinfo manual in several formats as part of
|
||
groff's distribution archive. We ask that distributors provide their
|
||
users with all formats appropriate to the platform (GNU Info, HTML,
|
||
plain text, TeX DVI, and PDF). Thanks to onf.
|
||
|
||
* Russian language input documents using the KOI8-R encoding are now
|
||
supported, including hyphenation patterns from the ruhyphen project
|
||
and localized strings for the man, ms, me, mm, and mom packages.
|
||
Thanks to Nikita Ivanov.
|
||
|
||
* Spanish language input documents are now supported, including
|
||
hyphenation patterns from the hyph-utf8 project and localized strings
|
||
for the man, ms, me, mm, and mom packages. Thanks to Eloi Monta<74><61>s.
|
||
|
||
* The localization macro files now set up an appropriate hyphenation
|
||
mode default. For Chinese and Japanese, this is zero.
|
||
|
||
* If groff programs have their current time overridden by the
|
||
SOURCE_DATE_EPOCH environment variable, then that time is always
|
||
displayed in UTC. That environment variable is normally only set
|
||
when specifically requesting build systems to produce reproducible
|
||
output, and it is useful for reproducibility test harnesses to vary
|
||
the TZ environment variable and ensure that it does not affect the
|
||
output of the build; those harnesses have no way to set TZ=UTC only
|
||
for groff programs. People setting SOURCE_DATE_EPOCH are likely to
|
||
be more in the "system programmer" camp as described in the release
|
||
notes for 1.23.0, so it is easier to defend time-zone-invariant
|
||
output to them. In all other cases, the current time remains
|
||
displayed in local time. Thanks to Colin Watson.
|
||
|
||
* The minimum version of Perl required to build groff is now 5.8 (18
|
||
July 2002), incremented from 5.6.1.
|
||
|
||
* groff now looks for the Netpbm program pamcut(1) rather than
|
||
pnmcut(1). Per its developers, the former was introduced in 2001
|
||
ago and the latter withdrawn in 2009.
|
||
|
||
* The Makefile macro `DEVICE` has been renamed to `DEFAULT_DEVICE`; be
|
||
aware if your builds don't use "ps" as the default output device.
|
||
|
||
* The groff_diff(7) man page no longer contains examples. They remain
|
||
in groff's Texinfo manual.
|
||
|
||
|
||
VERSION 1.23.0
|
||
==============
|
||
|
||
troff
|
||
-----
|
||
|
||
* The `troffrc` file now loads an English localization file instead of
|
||
directly housing configuration parameters appropriate to the English
|
||
language. See "Macro Packages" below.
|
||
|
||
* A new read-only register `.cp` is implemented. Within a `do`
|
||
request, "\n[.cp]" holds the saved value of compatibility mode. See
|
||
groff_diff(7) or the groff Texinfo manual for rationale and example.
|
||
|
||
* New read-only registers `.nm` and `.nn` are implemented. `.nm` is of
|
||
Boolean sense, reporting the enablement status of output line
|
||
numbering (caused by the `nm` request) irrespective of the temporary
|
||
suspension of numbering with the `nn` request. `.nn` holds the count
|
||
of numbered output lines still to have that numbering suppressed.
|
||
These registers were introduced because there was no way for the
|
||
formatter (and thus a document) to introspect their state, tbl(1)
|
||
needs to be able to do so, and the writable line number register `ln`
|
||
is not a reliable proxy for this information.
|
||
|
||
* Type size escape sequences of the form "\sNN", where NN is in the
|
||
range 10-39, are now recognized only in compatibility mode ("groff
|
||
-C"); when encountered, an error diagnostic is emitted. Otherwise,
|
||
"\sN" is interpreted as setting the type size to the single-digit
|
||
value N (in scaled points), which ends the escape sequence. This
|
||
change eliminates a quirk in the language grammar that dates back to
|
||
the mid-1970s (AT&T troff by Ossanna) but was not documented in the
|
||
Troff User's Manual until 1992 when Kernighan updated CSTR #54 for
|
||
device-independent AT&T troff.
|
||
|
||
The form "\s(NN" is accepted for two-digit sizes in all known troffs.
|
||
The form "\s[NNN]" accepts a numeric expression of variable length;
|
||
it has been supported by groff since version 1.01 (March 1991) or
|
||
earlier, by Heirloom Doctools troff since its 2005-08-16 release, and
|
||
by neatroff, but not by Plan 9 troff. The form "\s'NNN'" is also
|
||
widely supported.
|
||
|
||
Summary: in your documents, rewrite escape sequences beginning with
|
||
"\s1", "\s2", or "\s3" in an unambiguous and portable form. For
|
||
instance, "\s36" can become any of:
|
||
\s(36
|
||
\s[36]
|
||
\s'36'
|
||
You can use
|
||
grep '\\s[123]'
|
||
to find instances in your documents.
|
||
|
||
Those who have changed the escape character with the `ec` request
|
||
(an advanced usage) are expected to be able to cope; ask the
|
||
development team for support if you need it.
|
||
|
||
* New requests `soquiet` and `msoquiet` are available. They operate as
|
||
`so` and `mso`, respectively, except that they do not emit a warning
|
||
diagnostic if the file named in their argument does not exist.
|
||
|
||
* New requests `stringdown` and `stringup` are available. These change
|
||
the string named in their argument by replacing each of its bytes
|
||
with its lowercase or uppercase version (if any), respectively.
|
||
groff special characters (see the groff_char(7) man page) in the
|
||
string will often transform in the expected way due to the regular
|
||
naming convention for accented letters. When they do not, use
|
||
substrings and/or catenation.
|
||
|
||
* The `ab` request no longer writes "User Abort." to the standard error
|
||
stream if given no arguments.
|
||
|
||
* The `fp` request no longer accepts file or font names with slashes in
|
||
them as arguments. All font description files are expected to be
|
||
accessible within the directory of the output device for which they
|
||
were prepared.
|
||
|
||
nroff
|
||
-----
|
||
|
||
* The new option -P takes an argument to pass to the output driver
|
||
(always grotty(1)). "-P-i" directs the terminal device to display
|
||
real italic (oblique) characters instead of underlining: it is up to
|
||
your terminal (emulator) to support italics (xterm does since patch
|
||
#314 [2014-12-28]). "-P-h" can now be used instead of -h; the latter
|
||
may eventually be deprecated and repurposed.
|
||
|
||
* The new option -V emits the constructed groff command that nroff
|
||
would run to standard output instead of executing it. Arguments to
|
||
nroff that contain shell metacharacters may not be sufficiently
|
||
escaped for the output of nroff -V to be copied and pasted to the
|
||
shell prompt; this is a historical deficiency of the Bourne shell
|
||
family not yet corrected by the POSIX standard.
|
||
|
||
* nroff now recognizes the -b, -E, -k, -K, -R, and -z options and
|
||
passes them to groff.
|
||
|
||
* nroff now supports spaces and tabs between option flag letters and
|
||
arguments to options, like groff and troff themselves.
|
||
|
||
groff
|
||
-----
|
||
|
||
* The -I option now implies -g (run the grn(1) preprocessor), and
|
||
supplies grn an -M option with the argument to -I.
|
||
|
||
eqn
|
||
---
|
||
|
||
* The GNU extension
|
||
|
||
delim on
|
||
|
||
is now recognized even in AT&T compatibility mode (the -C option) in
|
||
order to reliably integrate with tbl. Few eqn documents are expected
|
||
to use 'o' and 'n' as left and right delimiters, respectively. If
|
||
yours does, consider swapping them, or select others.
|
||
|
||
* The command-line option -D is no longer supported. It has been
|
||
undocumented, and issued a warning of its obsolescence upon use, for
|
||
30 years, since groff 1.06 (September 1992).
|
||
|
||
pic
|
||
---
|
||
|
||
* The token `.PY` is now recognized as a synonym of `.PF` to work
|
||
around a name space collision with the m (mm) macro package, which
|
||
defines `PF` as a page footer management macro. (This problem dates
|
||
back at least to Unix System V Release 2, 1983.) You should continue
|
||
to use `.PF` to end pictures with flyback unless a similar problem
|
||
faces your document.
|
||
|
||
tbl
|
||
---
|
||
|
||
* GNU tbl now suspends output line numbering while formatting tables,
|
||
saving and restoring its status before and after each table region,
|
||
including the count of lines for which numbering is suppressed.
|
||
Historical tbl implementations did not, with bizarre consequences
|
||
when text blocks were used in tables.
|
||
|
||
Macro packages
|
||
--------------
|
||
|
||
* mom version 2.5 is distributed with this release. New features
|
||
include shaded backgrounds, frames, and colored pages. Thanks to
|
||
Peter Schaffter.
|
||
|
||
* English localization has been split into a dedicated macro file,
|
||
`en.tmac`, for better parallelism with other localization files and
|
||
to improve support for multilingual documents. Those who want a
|
||
different default input language should edit the troffrc file to
|
||
source the desired groff locale macro file (`cs.tmac`, `de.tmac`,
|
||
`den.tmac`, `fr.tmac`, `it.tmac`, `ja.tmac`, `sv.tmac`, or `zh.tmac`)
|
||
instead of `en.tmac`.
|
||
|
||
The default hyphenation mode (as given to the `hy` request) for users
|
||
of English has changed from "1", which was inappropriate for the
|
||
TeX-based hyphenation patterns groff has used since at least 1991, to
|
||
"4". However, invoking ".hy" without an argument remains synonymous
|
||
with ".hy 1".
|
||
|
||
* The hyphenation patterns for English have been updated using the
|
||
`hyph-en-us.tex` patterns file from the TeX hyph-utf8 project. The
|
||
new patterns likely _will_ change the automatic hyphenation break
|
||
points of your English documents.
|
||
|
||
* The `PDFPIC` macro (provided by the `pdfpic` package) no longer
|
||
aborts upon encountering trouble. Instead, it reports an error and
|
||
abandons processing of its argument(s). It is also more sensitive to
|
||
other kinds of problems and handles them the same way, by issuing a
|
||
diagnostic and returning. If you wish `PDFPIC` to abort document
|
||
processing immediately upon error, you can append an `ab` request to
|
||
the package's error-handling macro.
|
||
|
||
.am pdfpic@error
|
||
. ab
|
||
..
|
||
|
||
* The pspic package now also has an error hook macro, which you can use
|
||
to make failed image loads fatal (or attempt fallback or recovery).
|
||
|
||
.am pspic@error-hook
|
||
. ab
|
||
..
|
||
|
||
* The new rfc1345 macro package, contributed by Dorai Sitaram, defines
|
||
special character identifiers implementing RFC 1345 mnemonics (plus
|
||
some additions from Vim, which itself uses RFC 1345 for its
|
||
digraphs). It is documented in the groff_rfc1345(7) man page.
|
||
|
||
* The new sboxes macro package, contributed by Deri James, offers a
|
||
simple interface to the new gropdf(1) "background" feature. Using
|
||
it, ms documents can draw colored rectangles beneath any groff
|
||
output. See "Using PDF boxes with groff and the ms macros",
|
||
installed as `msboxes.ms` and `msboxes.pdf` for instructions and a
|
||
demonstration.
|
||
|
||
* The an (man) and doc (mdoc) macro packages no longer remap the -, ',
|
||
and ` input characters to Basic Latin code points on UTF-8 devices,
|
||
but treat them as groff normally does (and AT&T troff before it did)
|
||
for typesetting devices, where they become the hyphen, apostrophe or
|
||
right single quotation mark, and left single quotation mark,
|
||
respectively. This change is expected to expose glyph usage errors
|
||
in man pages. See the "PROBLEMS" file for a recipe that will conceal
|
||
these errors. A better long-term approach is for man pages to adopt
|
||
correct input practices; the man pages groff_man_style(7),
|
||
groff_char(7), and man-pages(7) (subsection "Generating optimal
|
||
glyphs"; from the Linux man-pages project) contain such instructions.
|
||
Doing so also improves man page typography when formatting for PDF.
|
||
|
||
If you maintain a generator of man(7) or mdoc(7) documents (such as a
|
||
tool that converts other formats to them), and need assistance,
|
||
please contact the groff@gnu.org mailing list and describe your
|
||
situation.
|
||
|
||
* The an (man) macro package can now produce clickable hyperlinks
|
||
within terminal emulators, using the OSC 8 support added to grotty(1)
|
||
(see below). The groff man(7) extension macros `UR` and `MT`,
|
||
present since 2007, expose this feature. At present the feature is
|
||
disabled by default in `man.local` pending more widespread
|
||
recognition of OSC 8 sequences in pager programs. The package now
|
||
recognizes a `U` register to enable hyperlinks in any output driver
|
||
supporting them.
|
||
|
||
Use a command like
|
||
printf '\033]8;;man:grotty(1)\033\\grotty(1)\033]8;;\033\\\n'|more
|
||
to check your terminal and pager for OSC 8 support. If you see
|
||
"grotty(1)" and no additional garbage characters, then you may wish
|
||
to edit "man.local" to remove the lines that disable this feature.
|
||
|
||
* The an (man) macro package supports a new macro, `MR`, intended for
|
||
use by man page cross references in preference to the font style
|
||
alternation macros historically used. Where before you would write
|
||
.BR ls (1).
|
||
or
|
||
.IR ls (1).
|
||
you should now write
|
||
.MR ls 1 .
|
||
(the third argument, typically used for trailing punctuation, is
|
||
optional). Because the macro semantically identifies a man page, it
|
||
can create a clickable hyperlink ("man:ls(1)" for the above example)
|
||
on supporting devices. Furthermore, a new string, `MF`, defines the
|
||
font to be used for setting the man page identifier (the first
|
||
argument to the `MR` and `TH` macros), permitting configuration by
|
||
distributions, sites, and users.
|
||
|
||
Inclusion of the `MR` macro was prompted by its introduction to
|
||
Plan 9 from User Space's troff in August 2020. Its purpose is to
|
||
ameliorate several long-standing problems with man page cross
|
||
references: (1) the package's lack of inherent hyperlink support for
|
||
them; (2) false-positive identification of strings resembling man
|
||
page cross references (as can happen with "exit(1)", "while(1)",
|
||
"sleep(5)", "time(0)" and others) by terminal emulators and other
|
||
programs; (3) the unwanted intrusion of hyphens into man page topics,
|
||
which frustrates copy-and-paste operations (this problem has always
|
||
been avoidable through use of the \% escape sequence, but cross
|
||
references are frequent in man pages and some page authors are
|
||
inexpert *roff users); and (4) deep divisions in man page maintenance
|
||
communities over which typeface should be used to set the man page
|
||
topic (italics, roman, or bold).
|
||
|
||
* Part of the an (man) macro package has been renamed from
|
||
"an-old.tmac" to "an.tmac", replacing a file that sourced the
|
||
"andoc.tmac" wrapper. This means that the "-man" argument to groff
|
||
(or nroff, or troff) will no longer load the andoc wrapper, and not
|
||
successfully format mdoc(7) man pages. If you are not sure which
|
||
macro package a given man page uses, or you wish to batch-process a
|
||
series of man pages written variously in the man and mdoc formats, be
|
||
sure to call the formatter with the "-mandoc" option explicitly, as
|
||
"-man" will no longer do this. The man-db man(1) implementation has,
|
||
since 2001, used "-mandoc" preferentially if available when man-db is
|
||
configured.
|
||
|
||
* The an (man) and doc (mdoc) macro packages support a new `AD` string
|
||
to put the default adjustment mode under user control at rendering
|
||
time. The default is "b" (adjust lines to both margins) as has been
|
||
the Unix man(7) default for typesetters since 1979.
|
||
|
||
* The an (man) and doc (mdoc) macro packages support new `CS` and `CT`
|
||
registers to control rendering of man page section headings and
|
||
topics (seen in the page header), respectively, in full capitals.
|
||
These default off (with no visible effect on pages that already fully
|
||
capitalize such text in man page sources). The rationale is to
|
||
encourage man page authors to preserve case distinction information
|
||
in (or restore it to) their topics and section headings, while giving
|
||
users (including system administrators, distributors, integrators,
|
||
and maintainers of man(1) implementations) a way to view the rendered
|
||
page elements in full capitals if desired.
|
||
|
||
* The an (man) macro package no longer honors an `ll` request to set
|
||
the line length on nroff devices prior to processing a man page.
|
||
This was deprecated in groff 1.18 (July 2002), and all known man
|
||
program and macro package implementations either have set an LL
|
||
register since 2002 (man-db man) or 2005 (Brouwer/Lucifredi man);
|
||
don't let the user vary the line length freely (DWB troff, Solaris
|
||
troff, Plan 9 troff); or don't permit its configuration via the `ll`
|
||
request (mandoc) or at all (Heirloom Doctools troff).
|
||
|
||
* The an (man) macro package now interprets the value of the `HY`
|
||
register as a Boolean; using it to set a specific hyphenation mode is
|
||
no longer supported. The groff command-line option `-rHY=0`
|
||
continues to disable automatic hyphenation of man page text as
|
||
before.
|
||
|
||
* The an (man) macro package's `TS` macro no longer inserts vertical
|
||
space. It was not documented to do so, but had since groff 1.18
|
||
(July 2002). Man page authors may freely use paragraphing macros
|
||
around tables if vertical space is desired.
|
||
|
||
* The an (man) macro package no longer attempts to detect misuse of the
|
||
`R` string as a macro. The `R` string itself is a legacy feature,
|
||
not required in modern man pages; see groff_man_style(7).
|
||
|
||
* The groff_man(7) man page documenting the groff implementation of the
|
||
an (man) macro package has been split into two pages. The original
|
||
page remains as a terser reference for experienced users. A new
|
||
page, groff_man_style(7), is a tutorial and style guide containing
|
||
the same material supplemented with explanations, examples, and
|
||
advice for the reader who is not an expert in *roff systems or in
|
||
writing man pages.
|
||
|
||
* The doc (mdoc) macro package now honors the `C`, `FT`, `HY`, `IN`,
|
||
`P`, `SN`, and `X` registers and `HF` string as the an (man) package
|
||
does.
|
||
|
||
* The doc (mdoc) macro package now renders man page (sub)section cross
|
||
references cited with the `Sx` macro by quoting them instead of
|
||
setting them in italics.
|
||
|
||
* The e (me) macro package has changed its default line length on
|
||
typesetting devices from 6i to the output device's default (for
|
||
example, 6.5i on the 'ps' and 'pdf' devices). You can use
|
||
"papersize.tmac" to override this length, as in "groff -d paper=a4l"
|
||
to select A4 paper in landscape orientation, without needing to alter
|
||
the document.
|
||
|
||
* The e (me) macro package has changed its support for output line
|
||
numbering with the `n1` and `n2` macros to resolve several bugs in
|
||
the previous implementation. The `n1` macro now accepts an optional
|
||
`C` argument to set the line number at the existing page offset
|
||
instead of reducing the page offset to make the line number appear in
|
||
the left margin. A second argument to the `n2` macro is no longer
|
||
supported. A new register `no` makes configurable the amount of
|
||
horizontal space to be used for the line number (the default is
|
||
unchanged).
|
||
|
||
* The e (me) macro package now uses strings `wa` and `wc` to store the
|
||
terms the package produces in chapter headings created by the `$c`
|
||
macro. The strings, which default to "Appendix" and "Chapter",
|
||
respectively, ease localization of the package and replacement of the
|
||
terms used without requiring the `$c` macro to be redefined.
|
||
|
||
* The e (me) macro package has a new macro, `ld`, which "re-localizes
|
||
the date"; if you modify troff registers `dw`, `mo`, and `yr` (to
|
||
record a document's date of revision, for instance), call `ld`
|
||
afterward to update the package's `y2` and `y4` registers and the
|
||
localized strings `dw` and `mo` for the names of the weekday and
|
||
month. `ld` is also used internally to simplify the use of the
|
||
package with languages other than English; it thus updates the `wa`
|
||
and `wc` strings as well. If you want to customize these strings, do
|
||
so after any `ld` call you make.
|
||
|
||
* The e (me) macro package now has a register `sx` that eases the
|
||
configuration of space added to the line height above/below when
|
||
super/subscripting is used. It defaults to 0.2m, the value used
|
||
literally in past definitions of the super/subscripting strings.
|
||
groff's own 'me' documents redefine it to zero.
|
||
|
||
* The e (me) macro package's `$v` and `$V` registers have been renamed
|
||
to `tv` and `dv`--they control the vertical spacing used for text and
|
||
displays/annotations, respectively. The old names are still
|
||
supported as aliases. The new names reflect the fact that users are
|
||
expected to set them if desired, unlike other registers and strings
|
||
beginning with "$".
|
||
|
||
* The e (me) and s (ms) macro packages now offer a `PF` macro,
|
||
supporting the pic(1) preprocessor's "flyback" feature. Thanks to
|
||
Dave Kemper.
|
||
|
||
* The m (mm) and s (ms) macro packages no longer implement the `IX`
|
||
macro. This undocumented 4.2BSD ms extension was similarly
|
||
undocumented by groff mm and ms. No documents applying it are
|
||
attested. groff mm documents its own indexing feature, `INITI`. We
|
||
otherwise suggest makeindex(1), which supports troff and is available
|
||
with most TeX distributions, for your mm/ms document indexing needs.
|
||
|
||
A document can define its own `IX` macro to suit the requirements of
|
||
the indexing tool. groff mm and ms formerly used the following.
|
||
|
||
.de IX
|
||
.tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n[%]
|
||
..
|
||
|
||
* The m (mm) macro package now adapts to the paper format selected when
|
||
the macro file "papersize.tmac" is used (by specifying the groff "-d
|
||
paper" command-line option). A consequence is that "groff -mm" and
|
||
"groff -d paper=letter -mm" are _not_ synonymous (when groff is
|
||
configured to use U.S. letter as the default paper format), because
|
||
groff mm(7) uses a page offset of 0.963 inches on typesetting devices
|
||
for compatibility with DWB mm. If the `W` or `O` registers are also
|
||
set on the command line, the line length and page offset,
|
||
respectively, are not overridden by "papersize.tmac".
|
||
|
||
* The m (mm) macro package now recognizes a `V` register to set the
|
||
vertical spacing for the document. Like the existing `S`, it must be
|
||
set from the command line. Further, both registers are interpreted
|
||
correctly if suffixed with a scaling unit, instead of requiring an
|
||
unscaled value assumed to be points.
|
||
|
||
* The m (mm) macro package now supports DWB mm's `Sm` string.
|
||
|
||
* The m (mm) macro package now requires a title to be declared when
|
||
memorandum type 5 is used (".MT 5"), just as type 4 has since groff
|
||
1.10 (November 1995).
|
||
|
||
* The m (mm) and s (ms) macro packages no longer manipulate the set of
|
||
enabled warning categories. If you want all warnings on, use the
|
||
`warn` request with no arguments in your document or pass "-w w" to
|
||
groff (see troff(1) or the groff Texinfo manual for more on
|
||
warnings).
|
||
|
||
* The m (mm) and s (ms) macro packages' `R` macros now work analogously
|
||
to their `B` and `I` macros instead of ignoring their arguments.
|
||
|
||
* The m (mm) package now offers a `PY` macro, which serves the function
|
||
of `PF` (end pic(1) picture with flyback) from other macro packages.
|
||
|
||
* The "ptx.tmac" macro file, a counterpart to the GNU coreutils ptx(1)
|
||
command for generating permuted indexes, is now installed. It has
|
||
long been part of the source distribution.
|
||
|
||
* The s (ms) macro package now enables the formatter's "no-space mode"
|
||
after ending displays (`DE`), equations (`EN`), tables (`TE`), and
|
||
pictures without flyback (`PE`). This means that display distance
|
||
spacing (the `DD` register) overrides the spacing that may follow in
|
||
a subsequent paragraph, section heading, or display instead of
|
||
accumulating with that distance. This change is to make the behavior
|
||
of the package more predictable; you can fine-tune such spacing by
|
||
setting the `DD` register in desired places. It has also helped us
|
||
to improve groff ms's rendering of historical ms(7) documents such as
|
||
Kernighan & Cherry's "Typesetting Mathematics". This change also
|
||
suppresses the `bp` page break request; you may wish to define a
|
||
macro (the name `BP` is not in use by the package) to restore spacing
|
||
with the `rs` request and break the page with `bp`.
|
||
|
||
* The s (ms) macro package supports a new string, `FR`, which defines
|
||
the ratio of the footnote line length to the current line length.
|
||
The default expression is "11/12", eleven twelfths of the normal line
|
||
length, adopted for better compatibility with ms documents prepared
|
||
with AT&T ms or its descendant implementations in Heirloom Doctools
|
||
and neatroff. This is a change from previous groff releases, which
|
||
used a ratio of five sixths.
|
||
|
||
You may wish to set the `FR` string to "1" to align with contemporary
|
||
typesetting practices. In Unix Version 7 ms, its descendants, and
|
||
groff prior to this release, an `FL` register was used for the line
|
||
length in footnotes; however, setting this register at document
|
||
initialization time had no effect on the footnote line length in
|
||
multi-column arrangements.
|
||
|
||
`FR` should be used in preference to the old `FL` register in
|
||
contemporary documents; see the groff Texinfo manual or the "Using
|
||
groff with the ms macros" document, also part of this release.
|
||
Thanks to T. Kurt Bond.
|
||
|
||
* The s (ms) macro package has added strings, `<` and `>`, to perform
|
||
subscripting. They work analogously to the `{` and `}`
|
||
superscripting strings that have been present in groff ms since 1991
|
||
or earlier.
|
||
|
||
* The s (ms) macro package has added a hook macro, `FS-MARK`, which is
|
||
called automatically by the `FS` macro (with the same arguments given
|
||
to `FS`) before any other footnote processing. It is empty by
|
||
default but can be defined by the user to, for example, place a
|
||
hyperlink anchor so that a link within a footnote can return to its
|
||
referential context. "Portable Document Format Publishing with GNU
|
||
Troff", distributed with groff as `pdfmark.ms`, uses this technique.
|
||
Thanks to Keith Marshall.
|
||
|
||
* The s (ms) macro package's `RP` macro recognizes a new optional
|
||
argument, `no-renumber`, which suppresses the renumbering of the page
|
||
after the cover page as page 1. It furthermore recognizes the
|
||
optional argument `no-repeat-info`, which has the same effect as
|
||
`no`; the latter will continue to be supported for backward
|
||
compatibility. Optional arguments to `RP` can be given in any order.
|
||
|
||
* The s (ms) macro package supports new macros `XN` and `XH` to ease
|
||
the input of numbered and unnumbered section headings, respectively.
|
||
They internally call the `XS` and `XE` macros to produce table of
|
||
contents entries, and lay a foundation for inclusion of PDF
|
||
bookmarks, all without requiring retyping of the heading text as the
|
||
package previously encouraged. Thanks to Keith Marshall.
|
||
|
||
* The s (ms) macro package now uses a default line length of 6.5 inches
|
||
by default, resulting in 1-inch left and right margins. When the
|
||
"papersize.tmac" package is used by employing the "-d paper" groff(1)
|
||
option on typesetting devices, the default page offset and line
|
||
length are adjusted to maintain these margins.
|
||
|
||
* The "a4.tmac" file has been dropped from the distribution. Its
|
||
successor, "papersize.tmac", has been present and documented for
|
||
nearly 20 years. See subsection "Paper format" of groff(1).
|
||
|
||
* The "safer.tmac" file has been dropped from the distribution. It was
|
||
present only to support man(1) programs that unconditionally passed
|
||
the formatter the "-msafer" option, and had contained only comments
|
||
for over 20 years. If your man(1) program has this requirement, you
|
||
can create an empty file of this name in groff's macro file search
|
||
path (see troff(1)) or consider migrating to man-db man(1).
|
||
|
||
Output drivers
|
||
--------------
|
||
|
||
* On output devices using the Latin-1 character encoding ("groff -T
|
||
latin1" and the X11 devices) the special character escape sequence
|
||
\[oq] (opening quote) is now rendered as code point 0x27 (apostrophe)
|
||
instead of 0x60 (grave accent). The ISO 8859/ECMA-94 Latin character
|
||
sets do not define any glyphs for directional ("typographer's")
|
||
quotation marks, but the apostrophe is depicted in the defining
|
||
standard as a neutral (vertical) glyph, whereas the grave accent 0x60
|
||
and acute accent 0xB4 are mirror-symmetric diacritical marks.
|
||
|
||
This change has no effect on _input_ conventions for roff source
|
||
documents. You can still get directional single quotes on UTF-8,
|
||
PostScript, PDF, and other output devices supporting them by typing
|
||
sequences like `this' in the input (character remapping with 'char'
|
||
requests and similar notwithstanding).
|
||
|
||
* The grops driver (which produces PostScript), like the `fp` request
|
||
in the troff formatter (see above), no longer no longer accepts file
|
||
names with slashes in them as a document prologue, encoding file, or
|
||
resource (such as a font to be downloaded). All such files must be
|
||
accessible within the directory of the output device for which they
|
||
were prepared. Use the GROFF_FONT_PATH environment variable or
|
||
groff's "-F" command-line option to specify additional directories in
|
||
which such files should be sought.
|
||
|
||
gropdf
|
||
------
|
||
|
||
* A new device control command, "background", enables boxes to be drawn
|
||
underneath other page content. The boxes can be shaded with colors,
|
||
drawn with a colored border of configurable thickness, and
|
||
interrupted by page breaks with special support for breaking before
|
||
footnotes and similar material. For convenience, "pdf.tmac" exposes
|
||
a new macro, `pdfbackground`. Thanks to Deri James.
|
||
|
||
grotty
|
||
------
|
||
|
||
* The "utf8" output device now maps the input characters '^' (caret,
|
||
circumflex accent, or "hat") and '~' (tilde) to U+02C6 (modifier
|
||
letter circumflex accent) and U+02DC (small tilde), respectively, for
|
||
consistency with groff's other output devices. This change is
|
||
expected to expose glyph usage errors in man pages. See the
|
||
"PROBLEMS" file for a recipe that will conceal these errors. A
|
||
better long-term approach is for man pages to adopt correct input
|
||
practices; the man pages groff_man_style(7), groff_char(7), and
|
||
man-pages(7) (subsection "Generating optimal glyphs"; from the Linux
|
||
man-pages project) contain such instructions. Doing so also improves
|
||
man page typography when formatting for PDF.
|
||
|
||
If you maintain a generator of man(7) or mdoc(7) documents (such as a
|
||
tool that converts other formats to them), and need assistance,
|
||
please contact the groff@gnu.org mailing list and describe your
|
||
situation.
|
||
|
||
* A new device control command, "link", generates OSC 8 hyperlinks.
|
||
This means that groff documents can produce clickable links in the
|
||
terminal window for emulators that support such escape sequences.
|
||
|
||
* The "sgr" device control command, which dynamically configured
|
||
support for ISO 6429/ECMA-48 SGR escape sequences (and restored
|
||
traditional overstriking behavior if disabled), has been removed. It
|
||
took effect only at page boundaries. grotty's "-c" command-line
|
||
option and the GROFF_NO_SGR environment variable remain supported.
|
||
|
||
Documentation
|
||
-------------
|
||
|
||
* groff's Texinfo manual is included in the distribution archive in
|
||
several formats, including GNU Info, HTML, TeX DVI, PDF, and plain
|
||
text. Many sections have been extensively revised and corrected, and
|
||
much material added to help the learner acquire the groff formatting
|
||
language (see, for instance, the section/node "Text").
|
||
|
||
* A compilation of all of groff's man pages in PDF and UTF-8-encoded
|
||
text (with SGR escape sequences) is produced by the build. Many of
|
||
the documents in this 380+-page collection have been heavily revised
|
||
or rewritten, including tbl(1), groff(1), groff_diff(7),
|
||
groff_font(5), groff(7), groff_char(7), and roff(7). The PDF version
|
||
uses pdfmark extensions to produce an internal bookmark for every man
|
||
page document, section heading, and subsection heading.
|
||
|
||
* Larry Kollar's "Using groff with the ms Macro Package" has been
|
||
resurrected after 20+ years, revised, and updated.
|
||
|
||
* Eric Allman's "me Reference Manual" has been revised in detail.
|
||
|
||
Miscellaneous
|
||
-------------
|
||
|
||
* Because all generated forms of groff's Texinfo manual are now
|
||
included in the distribution archive, building from that archive no
|
||
longer depends on GNU Texinfo or a TeX installation (the latter was
|
||
required only for the "doc" target, which had to be explicitly
|
||
named).
|
||
|
||
* Building groff from its distribution archive no longer requires byacc
|
||
(or GNU Bison) to be installed.
|
||
|
||
* m4 is now required to build. Any m4 that implements the features
|
||
documented in the Seventh Edition Unix m4(1) man page, and the `-D`
|
||
option, should suffice.
|
||
|
||
* New 'configure' options '--{en,dis}able-groff-allocator' control
|
||
whether groff uses its own malloc/free-wrapping allocator to
|
||
implement all C++ new/delete operations. groff has used this
|
||
allocator for over 30 years; C++ implementations are more mature now.
|
||
The default is now to rely on C++ language runtime support for
|
||
new/delete. When building groff, use
|
||
configure --enable-groff-allocator
|
||
to re-enable groff's traditional allocator.
|
||
|
||
* The 'configure' option '--with-appresdir' has been renamed to
|
||
'--with-appdefdir'.
|
||
|
||
* Italian language input documents are now supported, including
|
||
hyphenation patterns from the hyph-utf8 project and localized strings
|
||
for the ms, me, mm, and mom packages. Thanks to Edmond Orignac.
|
||
|
||
* Manual section titles for man pages (those that appear by default in
|
||
the page header, like "General Commands Manual") are now localized
|
||
for Czech, German, French, Italian, and Swedish.
|
||
|
||
* The semantics of the environment variable SOURCE_DATE_EPOCH to groff,
|
||
support for which was added in 1.22.4, were not established at that
|
||
time with respect to time zone selection, prompting divergent
|
||
interpretations; Debian and distributions derived from it have for
|
||
several years patched groff to implicitly use UTC as the time zone
|
||
when interpreting the current time (or SOURCE_DATE_EPOCH) as a local
|
||
time. While a convenient and defensible choice for reproducible
|
||
build efforts, it runs against the grain of user expectations.
|
||
Systems programmers like time zone-invariant, monotonically
|
||
increasing clocks; the broader user base usually prefers a clock that
|
||
follows an applicable civil calendar. groff programs now reckon
|
||
SOURCE_DATE_EPOCH with respect to the local time zone. Users of
|
||
SOURCE_DATE_EPOCH may wish to also set the TZ environment variable.
|
||
|
||
* xtotroff now supports a "-d" option to specify the directory in which
|
||
to generate font description files.
|
||
|
||
* The 'configure' option '--with-doc' that was introduced in version
|
||
1.22.3 has been deleted again. Its basic idea was misguided because
|
||
each of the documents is only available in a subset of the output
|
||
formats, so in contrast to the documentation, the option not only
|
||
affected which output formats were generated, but also restricted the
|
||
documentation content the user would get in erratic and surprising
|
||
ways. The option was also ill-designed insofar as the "examples"
|
||
keyword did not represent an output format. Some example files were
|
||
controlled by the "examples" keyword alone, some by the respective
|
||
format keywords alone, and some by a combination of both. The
|
||
implementation of the option was full of bugs, but few, if any, of
|
||
these bugs were ever reported by users, giving the impression that
|
||
few, if any, users ever attempted to use the option, and those who
|
||
did likely remained unaware that doing so deprived them of parts of
|
||
the content of the documentation. Experience has demonstrated that
|
||
properly maintaining and testing the option exceeds the amount of
|
||
effort the GNU troff team is able to invest. Finally, GNU standards
|
||
contain no recommendation to support this option, and indeed, few, if
|
||
any, GNU packages apart from groff support it.
|
||
|
||
* The 'doc' Make target has been eliminated. 'all' (the default Make
|
||
target) assumes responsibility for generating the groff Texinfo
|
||
manual in all formats supported by the build host. This change is
|
||
only significant when building from a Git checkout or if our Texinfo
|
||
manual's sources are modified; the distribution archive now provides
|
||
copies of the manual in Info, plain text, HTML, DVI, and PDF.
|
||
|
||
* afmtodit no longer writes file names with directory information in
|
||
them to the "name" directives of the font descriptions it generates.
|
||
(The `fp` request no longer accepts such names; see "troff" above.)
|
||
|
||
* afmtodit now exits with status 2 (not 1) upon usage errors.
|
||
|
||
* afmtodit now recognizes a '-w' option to specify the generated font
|
||
description's "spacewidth" parameter (see groff_font(5)). The
|
||
internal library "libgroff" now emits a diagnostic if a font
|
||
description file is missing such a directive. Adding this option
|
||
enables a well-formed font description to be produced by the tool
|
||
(without requiring editing by hand).
|
||
|
||
* pfbtops now exits with status 2 upon usage errors and the standard C
|
||
library's `EXIT_FAILURE` status (usually 1) on operational failures
|
||
instead of vice versa.
|
||
|
||
* groffer has been deleted from the distribution.
|
||
|
||
* grog no longer supports the "--warnings" option; the one diagnostic
|
||
message that it enabled has been removed.
|
||
|
||
* The ditroff(7) man page has been deleted. The "History" section of
|
||
roff(7) covers the same subject in greater depth.
|
||
|
||
* The groff_filenames(5) man page has been deleted. It had
|
||
inaccuracies and spurious content. The "File name conventions"
|
||
section of roff(7) covers the same subject.
|
||
|
||
* The lj4_font(5) man page has been deleted. Its content has moved
|
||
into the "Fonts" subsection of grolj4(1).
|
||
|
||
|
||
VERSION 1.22.4
|
||
==============
|
||
|
||
Troff
|
||
-----
|
||
|
||
* The `hy' request has been extended. Value 16 enables hyphenation
|
||
before the last character, and value 32 enables hyphenation after the
|
||
first character.
|
||
|
||
PDFPIC
|
||
------
|
||
|
||
* PDFPIC has been corrected so the behaviour is the same whether you
|
||
use the PostScript or PDF drivers. However, this means that any
|
||
documents which were written using the old behaviour will not be
|
||
rendered correctly if using the PDF driver with the new version.
|
||
|
||
The change would mean that documents which relied on the previous
|
||
behaviour are likely to have a gap underneath the image which was not
|
||
there before. If you see this effect there are three ways you can
|
||
restore the previous behaviour:
|
||
|
||
Add the line ".nr PDFPIC_NOSPACE 1" to the document before the first
|
||
call to .PDFPIC.
|
||
|
||
If it is just a single document which exhibits this behaviour you can
|
||
run groff adding "-rPDFPIC_NOSPACE=1" to the command line.
|
||
|
||
If you have many documents which rely on the previous behaviour you
|
||
can set an environment variable "export GROFF_PDFPIC_NOSPACE=1" which
|
||
will restore the previous behaviour for all runs.
|
||
|
||
This change has no effect if you were using .PDFPIC with the
|
||
PostScript driver--only if you used it with the PDF driver.
|
||
|
||
Gropdf
|
||
------
|
||
|
||
* Type 1 font loading is fixed to handle newer Ghostscript versions.
|
||
|
||
* Handling of glyphs above position 255 is improved to allow many more
|
||
glyphs to be used.
|
||
|
||
* New macros .pdftransition and .pdfpause are introduced to allow
|
||
creation of presentation slides. Partially backward-compatible with
|
||
present.tmac, specifically the PAUSE, BLOCKS and BLOCKE commands.
|
||
Supports all the transition types introduced in PDF v1.5 (see the
|
||
gropdf man page).
|
||
|
||
Miscellaneous
|
||
-------------
|
||
|
||
* A new 'configure' option --with-compatibility-wrappers controls how
|
||
groff compatibility wrappers for vendor-provided non-GNU macro sets
|
||
are installed (see ./configure --help).
|
||
|
||
* eqn2graph, grap2graph, and pic2graph now attempt to adapt to very old
|
||
installed versions of the ImageMagick and GraphicsMagick programs
|
||
"convert". They search the output of convert's "-help" option, and
|
||
use "-trim" if that string is found; otherwise, the old "-crop 0x0"
|
||
method (which produces incompatible results on versions that _do_
|
||
support "-trim") is used. The programs emit a warning to standard
|
||
error if the search fails and the old method is used.
|
||
|
||
* eqn2graph no longer supports the "-unsafe" option. It did nothing.
|
||
|
||
* groffer now supports the output of XHTML. Use the "--xhtml" or
|
||
"--mode=xhtml" command-line options to generate it.
|
||
|
||
* Much work has been done, and is ongoing, to make groff's man pages
|
||
better examples for man page writers to follow. groff_man(7) itself
|
||
has been expanded and largely rewritten to more precisely document
|
||
the macro package's behavior and to be more helpful and accessible to
|
||
man page writers who may never read any other groff documentation.
|
||
|
||
|
||
VERSION 1.22.3
|
||
==============
|
||
|
||
Gxditview
|
||
---------
|
||
|
||
* X11 resources for `gxditview', which were previously installed in
|
||
/usr/X11/lib/X11/app-defaults no matter which `prefix' was set, are
|
||
now installed in appresdir=$prefix/lib/X11/app-defaults. If
|
||
`appresdir' is not a standard X11 resource directory, the environment
|
||
variable XFILESEARCHPATH should be set to this path. The standard
|
||
default directories depends on the system `libXt'. Common
|
||
directories include:
|
||
|
||
/usr/lib/X11/app-defaults
|
||
/usr/share/X11/app-defaults
|
||
/etc/X11/app-defaults
|
||
|
||
Note that if the option `--with-appresdir' is passed to `configure',
|
||
the `prefix' will not be added to `appresdir'.
|
||
|
||
Glilypond
|
||
---------
|
||
|
||
* This new preprocessor (contributed by Bernd Warken) allows embedding
|
||
of code for GNU LilyPond (http://www.lilypond.org), a music
|
||
typesetter. The data gets automatically processed and embedded as
|
||
EPS images.
|
||
|
||
Gperl
|
||
-----
|
||
|
||
* Bernd Warken contributed a new preprocessor to handle Perl code that
|
||
can be evaluated and then processed by groff.
|
||
|
||
Gpinyin
|
||
-------
|
||
|
||
* Another preprocessor from Bernd Warken to pretty-print Pinyin
|
||
syllables like `guo2wang2' as `gu<67>w<EFBFBD>ng'.
|
||
|
||
Pdfroff
|
||
-------
|
||
|
||
* The pdfroff utility script now activates its `--no-toc-relocation'
|
||
option by default, unless a request similar to:
|
||
|
||
.if !\n[PHASE] .tm pdfroff-option:set toc_relocation=enabled
|
||
|
||
is invoked during input file processing; (`.if !\n[PHASE] ...'
|
||
ensures that the effect of the `.tm' request is restricted to the
|
||
document setup phase of processing, as pdfroff sets it to 1 or 2 in
|
||
the output phase, but leaves it unset in the setup phase).
|
||
|
||
The bundled `spdf.tmac' macro package, which implicitly activates
|
||
`-mpdfmark' for `ms' macro users, ensures that TOC relocation is
|
||
appropriately enabled, when the `.TC' macro is invoked.
|
||
|
||
Macro Packages
|
||
--------------
|
||
|
||
* New default values for hyphenation. The previous values were too
|
||
strict, suppressing some hyphenation points unnecessarily.
|
||
|
||
* The -mom macro package now has full support for eqn, pic, and tbl, as
|
||
well as captioning and labelling of PDF images and preprocessor
|
||
output. Lists of Figures, Equations, and Tables can now be
|
||
autogenerated. PDF_IMAGE has a new FRAME option.
|
||
|
||
* A French introduction to the -me macro package has been added (file
|
||
`meintro_fr.me').
|
||
|
||
* In -mdoc, command %C is now available, providing a city or place
|
||
reference.
|
||
|
||
|
||
VERSION 1.22.2
|
||
==============
|
||
|
||
Tbl
|
||
---
|
||
|
||
* The character `#' can now be used as an eqn delimiter within tables.
|
||
|
||
Eqn
|
||
---
|
||
|
||
* A GNU extension
|
||
|
||
delim on
|
||
|
||
has been added to reactivate delimiters which have been disabled with
|
||
`delim off'.
|
||
|
||
|
||
VERSION 1.22.1
|
||
==============
|
||
|
||
(There was no release 1.22.)
|
||
|
||
Groff
|
||
-----
|
||
|
||
* A new option `-j' has been added to call the `chem' preprocessor.
|
||
|
||
Tbl
|
||
---
|
||
|
||
* Improved line numbering support.
|
||
|
||
Macro Packages
|
||
--------------
|
||
|
||
* Support for the `refer' preprocessor has been added to the -mm macro
|
||
package.
|
||
|
||
* In -me, the `TH' macro was changed for compatibility with line number
|
||
support in tables.
|
||
|
||
`bl' now works inside of blocks.
|
||
|
||
The behaviour of centered blocks has been improved.
|
||
|
||
Line numbering support has been improved.
|
||
|
||
* The -mom macro package has reached version 2.0, focusing on PDF
|
||
output with gropdf (using the new `pdfmom' wrapper script). See the
|
||
file `version-2.html' of the -mom documentation for a list of the
|
||
many changes.
|
||
|
||
* Some generic Unicode fallback characters (mainly Roman numerals) have
|
||
been added.
|
||
|
||
Gropdf
|
||
------
|
||
|
||
* A new driver for generating PDF output directly, contributed by Deri
|
||
James <deri@chuzzlewit.myzen.co.uk>. Note that this driver is
|
||
written in Perl, thus you need a working Perl installation to run
|
||
this output device.
|
||
|
||
Pdfmom
|
||
------
|
||
|
||
* A new wrapper around groff that facilitates the production of PDF
|
||
documents from files formatted with the -mom macros.
|
||
|
||
|
||
VERSION 1.21
|
||
============
|
||
|
||
Troff
|
||
-----
|
||
|
||
* The new `lsm' request specifies a macro to be invoked when leading
|
||
spaces in an input line are encountered (which are removed then).
|
||
Number registers `lsn' and `lss' hold the number of removed leading
|
||
spaces and the corresponding horizontal space, respectively.
|
||
|
||
* There is a new warning category `file', enabled by default. The
|
||
`mso' request emits warnings in this category when the requested
|
||
macro file does not exist.
|
||
|
||
* The new `class' request assigns a short name to a set of characters
|
||
which can be referred to in the `cflags' request. This is especially
|
||
useful to control line-breaking and hyphenation rules in CJK
|
||
languages.
|
||
|
||
* Three new values for the `cflags' request have been added, which are
|
||
needed for proper CJK support.
|
||
|
||
128 prohibit before but allow break after character
|
||
256 prohibit after but allow break before character
|
||
512 allow break before and after character
|
||
|
||
Tbl
|
||
---
|
||
|
||
* A new global option `nowarn' suppresses warnings if tables are longer
|
||
than the current line width.
|
||
|
||
Afmtodit
|
||
--------
|
||
|
||
* New option `-o' to specify the name of the output file.
|
||
|
||
Macro Packages
|
||
--------------
|
||
|
||
* A new macro `%U' has been added to the mdoc package to indicate a URL
|
||
reference within an .Rs/.Re environment.
|
||
|
||
* Rudimentary support for the Japanese script has been added, most
|
||
suitable for man page handling as output by grotty. The file
|
||
`ja.tmac' contains the necessary setup to allow line breaks before
|
||
and after CJK characters (with proper exceptions). Note, however,
|
||
that no inter-character spacing is implemented yet -- this usually
|
||
causes many warnings about bad line breaks.
|
||
|
||
|
||
VERSION 1.20.1
|
||
==============
|
||
|
||
A packaging error made it necessary to publish this release. No
|
||
user-visible changes.
|
||
|
||
|
||
VERSION 1.20
|
||
============
|
||
|
||
Groff
|
||
-----
|
||
|
||
* XHTML support has been added to grohtml and can be specified by
|
||
-Txhtml. This option also utilizes the MathML capability of eqn and
|
||
combines the outputs of both in the final XHTML file. Users can also
|
||
specify the `-P-V' option together with `-Txhtml' in groff. This has
|
||
the effect of creating an XHTML validator button at the bottom of
|
||
each page.
|
||
|
||
* Some options have been added to control a new preprocessor, `preconv'
|
||
(see below): `-k' activates it, `-K' sets the input encoding, and
|
||
`-D' sets the default encoding.
|
||
|
||
* A new environment variable `GROFF_ENCODING' sets the encoding of
|
||
input files; it implies command option `-k'.
|
||
|
||
Troff
|
||
-----
|
||
|
||
* Two new requests `device' and `devicem' have been added which are
|
||
equivalents to the \X and \Y escapes, respectively.
|
||
|
||
* A new read-only number register `.br' is available which is set to 1
|
||
if a macro is called as .foo and to 0 if called as 'foo. This allows
|
||
to reliably modify requests.
|
||
|
||
.als bp@orig bp
|
||
.de bp
|
||
. tm before bp
|
||
. ie \\n[.br] .bp@orig
|
||
. el 'bp@orig
|
||
. tm after bp
|
||
..
|
||
|
||
* A new request `fzoom' has been added to adjust the optical size of a
|
||
font in relation to the others. The zoom factor is given in integer
|
||
multiples of 1/1000th. In the following example, the CR font is
|
||
magnified by 10% (the zoom factor is 1.1).
|
||
|
||
.fam P
|
||
.fzoom CR 1100
|
||
.ps 12
|
||
Palatino and \f[CR]Courier\f[]
|
||
|
||
The new number register `.zoom' holds the zoom value of the current
|
||
font, in multiples of 1/1000th.
|
||
|
||
* The `cflags' request has been extended with a new flag value 64, to
|
||
be used in combination with values 2 (break before character) and 4
|
||
(break after character). If set, the hyphenation codes of the
|
||
surrounding characters are ignored.
|
||
|
||
* A new debugging request, `pev', has been added to print all of the
|
||
current known environments to stderr. It first prints the state of
|
||
the current environment, then iterates through all of the known
|
||
environments, printing each except the one that is current.
|
||
|
||
* A new escape `\$^' has been added. It represents the parameters of a
|
||
macro as if they were an argument to the `ds' request. This is used
|
||
by `trace.tmac'.
|
||
|
||
* A new read-only number register `.O' is available which returns the
|
||
current suppression level as set by the `\O' escape.
|
||
|
||
* The space width emitted by the `\|' and `\^' escape sequences can be
|
||
controlled on a per-font basis. If there is a glyph named `\|' or
|
||
`\^', respectively (note the leading backslash), defined in the
|
||
current font file, use this glyph's width instead of the default
|
||
value.
|
||
|
||
This behaviour is not new, but hasn't been documented before.
|
||
|
||
Nroff
|
||
-----
|
||
|
||
* Two new command line options `-w' and `-W' are accepted and passed to
|
||
groff to enable and disable warning messages, respectively.
|
||
|
||
Preconv
|
||
-------
|
||
|
||
* This is a new preprocessor to convert various input encodings to
|
||
something groff understands (this is, ASCII and \[uXXXX] entities,
|
||
with `XXXX' a hexadecimal number with 4 to 6 digits, representing a
|
||
Unicode input code). Normally, preconv should be invoked with
|
||
options `-k' and `-K' of groff. See the preconv man page for
|
||
details.
|
||
|
||
Pic
|
||
---
|
||
|
||
* int(x) now really behaves as documented: It truncates the non-integer
|
||
part of x, this is, it rounds toward zero and not toward the next
|
||
integer less than or equal to x.
|
||
|
||
* Pic now supports up to 32 macro arguments (and up to 16 on EBCDIC
|
||
platforms).
|
||
|
||
* Heinz-J<>rgen <20>rtel contributed code for two new keywords, `xslanted'
|
||
and `yslanted', which can change the shape of boxes into arbitrary
|
||
parallelograms.
|
||
|
||
Tbl
|
||
---
|
||
|
||
* Latest versions of DWB tbl introduced an `x' column specifier for a
|
||
single column expanded to the line width. GNU tbl has now been
|
||
extended to support even multiple `x' specifiers within a table.
|
||
|
||
* To avoid collision with the new `x' specifier, a block formatting
|
||
macro must now be selected with specifier letter `m'.
|
||
|
||
Eqn
|
||
---
|
||
|
||
* Eric S. Raymond has added a new device type to eqn, MathML. When
|
||
-TMathML is enabled, eqn now emits MathML formula markup rather than
|
||
groff commands. The new groff -Txhtml device uses this.
|
||
|
||
Chem
|
||
----
|
||
|
||
* The preprocessor `chem' was added. `chem' is a roff language to
|
||
generate chemical structure diagrams. It generates `pic' output.
|
||
|
||
Grops
|
||
-----
|
||
|
||
* The PS font definition files have been regenerated with newer AFM
|
||
versions from Adobe's 35 core fonts as present in most Level 2 PS
|
||
printers. The changes are minor (most notably, the addition of the
|
||
`Euro' glyph and an extended set of kerning values).
|
||
|
||
For backward compatibility, the old set of font definition files is
|
||
still available; for details please read the man page of grops.
|
||
|
||
Grotty
|
||
------
|
||
|
||
* \D'p...' is now supported if the polygon consists entirely of
|
||
horizontal and vertical lines.
|
||
|
||
Grohtml
|
||
-------
|
||
|
||
* XHTML support has been added.
|
||
|
||
* New command line option `-V' (to be used in XHTML mode) to produce an
|
||
XHTML validator button.
|
||
|
||
* New command line option `-y' to produce a right-justified groff
|
||
signature at the end of the document (in combination with option
|
||
`-V').
|
||
|
||
Gxditview
|
||
---------
|
||
|
||
* Support for keyboard navigation has been improved.
|
||
|
||
* Similar to other X11 applications, there are now two resource files,
|
||
`GXditview' and `GXditview-color'.
|
||
|
||
Groffer
|
||
-------
|
||
|
||
* `groffer' version 1.* exists now in a shell and a Perl version.
|
||
|
||
Afmtodit
|
||
--------
|
||
|
||
* New option `-c' to output more font information as comments.
|
||
|
||
* New option `-k' to suppress output of kerning data.
|
||
|
||
* New option `-f NAME' to set the internal name of the groff font.
|
||
|
||
Macro Packages
|
||
--------------
|
||
|
||
* Joachim Walsdorff contributed the `hdtbl' package for the generation
|
||
of tables, using a syntax very similar to the HTML table model. For
|
||
example, a table with two cells and two rows looks like this:
|
||
|
||
.TBL cols=2
|
||
. TR .TD 1*1 .TD 1*2
|
||
. TR .TD 2*1 .TD 2*2
|
||
.ETB
|
||
|
||
Here the same table using a more expanded syntax:
|
||
|
||
.TBL cols=2
|
||
. TR
|
||
. TD 1*1
|
||
. TD 1*2
|
||
. TR
|
||
. TD 2*1
|
||
. TD 2*2
|
||
.ETB
|
||
|
||
Tables can be nested; `hdtbl' works without a preprocessor so that
|
||
the full capability of groff's macro engine is available.
|
||
|
||
This package currently works with `-Tps' only.
|
||
|
||
* -mandoc now supports multiple man pages (in either man or mdoc
|
||
format).
|
||
|
||
* Fabrice M<>nard contributed locales support. In particular, it is now
|
||
possible to get French localization of the main macro packages (-ms,
|
||
-mm, -me, and -mom, but not -man and -mdoc which are localized
|
||
differently) by appending `-mfr' to the list of macro packages.
|
||
Example:
|
||
|
||
groff -ms -mfr foo > foo.ps
|
||
|
||
Note that latin-9 input encoding is used for French (to support the
|
||
`oe' ligature).
|
||
|
||
* Swedish macro localization (with `-msv') has been added.
|
||
|
||
* German macro localization (with `-mde' and `-mden' for traditional
|
||
and new orthography, respectively) has been added.
|
||
|
||
* Czech macro localization (with `-mcs') has been added.
|
||
|
||
Note that latin-2 input encoding is used for Czech.
|
||
|
||
* A new macro `Dx' has been added to the mdoc package which identifies
|
||
the DragonFly OS.
|
||
|
||
* If mdoc is used to print multiple man pages (together with the -rcR=0
|
||
command line option), each man page now starts a new page.
|
||
|
||
* -mtrace has been considerably improved, now showing number and string
|
||
register assignments, among other things. See the groff_trace man
|
||
page for details.
|
||
|
||
* The PSPIC macro now works with all devices (producing a hollow
|
||
rectangle on devices which don't support inclusion of PS images) and
|
||
is loaded in troffrc at start-up.
|
||
|
||
* A new auxiliary macro package `62bit' has been added which provides
|
||
some macros for adding, multiplying, and dividing signed 62bit
|
||
integers (mainly to handle normal groff number operations without
|
||
risking overflow errors).
|
||
|
||
* For -ms, Eric S. Raymond contributed support for ancient Bell Labs
|
||
localisms `.SC', `.UC', `.P1', and `.P2'. The latter three are
|
||
enabled only after .SC is called.
|
||
|
||
* A new string, `SN-STYLE', has been added to the ms macros,
|
||
controlling the formatting of section numbers in headings defined by
|
||
`.NH'.
|
||
|
||
* The new macro package `ptx' provides a template definition for the
|
||
`.xx' macro as needed by GNU ptx (for creating permuted indices).
|
||
|
||
|
||
VERSION 1.19.2
|
||
==============
|
||
|
||
Troff
|
||
-----
|
||
|
||
* 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.
|
||
|
||
* A new read-only, string-valued register `.sty' returns the name of
|
||
the current style.
|
||
|
||
* 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.
|
||
|
||
* Cyrillic characters have been added to the `utf8' and `html' output
|
||
devices.
|
||
|
||
Pic
|
||
---
|
||
|
||
* 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
|
||
---
|
||
|
||
* 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)
|
||
|
||
* The following macros aren't new but haven't been documented
|
||
previously:
|
||
|
||
Alpha, ..., Omega (the same as `ALPHA', ..., `OMEGA')
|
||
ldots (three dots on the baseline)
|
||
dollar (a dollar glyph)
|
||
|
||
* 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
|
||
-------
|
||
|
||
* This device driver has been raised to beta stage; its set of tags
|
||
should be stable now.
|
||
|
||
* New command line option `-s' to set the base point size.
|
||
|
||
* New command line option `-S' to set the split level while generating
|
||
multiple files.
|
||
|
||
Grotty
|
||
------
|
||
|
||
* Experimental support for zero-width and double-width characters.
|
||
|
||
Gxditview
|
||
---------
|
||
|
||
* On platforms which have the X Window System this program is now built
|
||
and installed automatically.
|
||
|
||
Xtotroff
|
||
--------
|
||
|
||
* This program to create font definition files for xditview isn't new
|
||
but hasn't been installed previously.
|
||
|
||
Groffer
|
||
-------
|
||
|
||
* A security problem (reported as CAN-2004-0969) has been fixed.
|
||
|
||
Gdiffmk
|
||
-------
|
||
|
||
* 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
|
||
-------
|
||
|
||
* A new wrapper script contributed by Keith Marshall to easily create
|
||
PDF documents with groff.
|
||
|
||
Macro packages
|
||
--------------
|
||
|
||
* 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 keeps 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'
|
||
produces 14pt headings, `.NH 2' produces 12pt, and all other
|
||
levels 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.
|
||
|
||
* 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.
|
||
|
||
* 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
|
||
-------
|
||
|
||
* A new macro package contributed by Keith Marshall which implements
|
||
PDF marks. This is in alpha stage currently.
|
||
|
||
Miscellaneous
|
||
-------------
|
||
|
||
* 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
|
||
-----
|
||
|
||
* 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.
|
||
|
||
* If option `-V' is used more than once, the commands are both printed
|
||
on standard error and run.
|
||
|
||
Troff
|
||
-----
|
||
|
||
* Two new read-only, string-valued registers `.m' and `.M' return the
|
||
name of the current drawing and background color, respectively.
|
||
|
||
* New read-only register `.U' which is set to 1 if in unsafe mode, and
|
||
0 otherwise.
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* 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').
|
||
|
||
* 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.
|
||
|
||
* 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
|
||
---
|
||
|
||
* Dashed and dotted ellipses have been implemented.
|
||
|
||
Tbl
|
||
---
|
||
|
||
* New specifier `x' to make tbl call a user-defined macro on a table
|
||
cell. Patch by Heinz-J<>rgen Oertel <hj.oertel@surfeu.de>.
|
||
|
||
Grap2graph
|
||
----------
|
||
|
||
* 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
|
||
-------
|
||
|
||
* New option `-j' to emit output split into multiple files.
|
||
|
||
Grops
|
||
-----
|
||
|
||
* 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.
|
||
|
||
* The default value for the `broken' keyword in the DESC file is now 0.
|
||
|
||
Grolj4
|
||
------
|
||
|
||
* A new man page `lj4_font(5)' documents how fonts are accessed with
|
||
grolj4.
|
||
|
||
* 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
|
||
--------
|
||
|
||
* New option `-x' to prevent use of built-in Adobe Glyph List.
|
||
|
||
Hpftodit
|
||
--------
|
||
|
||
* Completely revised to handle HP TrueType metric files also. See the
|
||
hpftodit manual page for more details.
|
||
|
||
Groffer
|
||
-------
|
||
|
||
* 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
|
||
--------------
|
||
|
||
* www.tmac: New macro `JOBNAME' to split output into multiple files.
|
||
|
||
* In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY
|
||
section.
|
||
|
||
|
||
VERSION 1.19
|
||
============
|
||
|
||
Troff
|
||
-----
|
||
|
||
* 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.
|
||
|
||
* Composite glyphs are now supported. To do this, a subset of the
|
||
Adobe Glyph List (AGL) Algorithm as described in
|
||
|
||
http://partners.adobe.com/public/developer/opentype/index_glyph.html
|
||
|
||
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
|
||
|
||
changes 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.
|
||
|
||
* 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'.
|
||
|
||
* Fallback characters defined with `fschar' can be removed with the
|
||
new `rfschar' request.
|
||
|
||
* 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.
|
||
|
||
* 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 backward compatibility. Consequently, the intermediate
|
||
output command `Df' also moves the position horizontally again.
|
||
|
||
\D'f ...' is deprecated since it depends on the horizontal motion
|
||
quantum of the output device (given with the `hor' parameter in the
|
||
DESC file). Use the new \D'Fg ...' escape instead.
|
||
|
||
* 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.
|
||
|
||
* The values set with \H and \S are now available in number registers
|
||
\n[.height] and \n[.slant], respectively.
|
||
|
||
* 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.
|
||
|
||
* The new glyph symbol `tno' is a textual variant of `no'.
|
||
|
||
* 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
|
||
-----
|
||
|
||
* The font `freeeuro.pfa' has been added to provide various default
|
||
glyph shapes for `eu' and `Eu'.
|
||
|
||
* 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.
|
||
|
||
* 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>.
|
||
|
||
* Non-slanted PostScript metrics have been changed again; they no
|
||
longer contain negative left italic correction values. This assures
|
||
correct spacing with eqn.
|
||
|
||
Grodvi
|
||
------
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* The glyph shapes for \[*f] and \[*e] have been exchanged with \[+f]
|
||
and \[+e], respectively, to be in sync with all other devices.
|
||
|
||
* 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
|
||
------
|
||
|
||
* The glyphs \[*e] and \[+e] have been exchanged to be in sync with all
|
||
other devices.
|
||
|
||
* The glyph \[~=] is now called \[|=]. Similar to other devices, \[~=]
|
||
is now another name for glyph \[~~].
|
||
|
||
Grotty
|
||
------
|
||
|
||
* 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
|
||
---
|
||
|
||
* New command `figname' to set the name of a picture's output box in
|
||
TeX mode.
|
||
|
||
Refer
|
||
-----
|
||
|
||
* The environment variable `REFER' to override the name of the default
|
||
database isn't new but hasn't been documented before.
|
||
|
||
Soelim
|
||
------
|
||
|
||
* New option `-r' to avoid emission of `.lf' lines.
|
||
|
||
* New option `-t' to emit TeX comment lines (giving current file and
|
||
the line number) instead of `.lf' lines.
|
||
|
||
Afmtodit
|
||
--------
|
||
|
||
* Unencoded glyphs in an AFM file are output also (since grops can now
|
||
emit multiple encoding vectors for a single font).
|
||
|
||
* New option `-m' to prevent negative left italic correction values.
|
||
|
||
* 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
|
||
--------------
|
||
|
||
* 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.
|
||
|
||
* 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
|
||
-----
|
||
|
||
* 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
|
||
---
|
||
|
||
* Added global option `nospaces' to ignore leading and trailing spaces
|
||
in data items.
|
||
|
||
Grolbp
|
||
------
|
||
|
||
* The option -w (--linewidth) has been added (similar to other device
|
||
drivers) to set the default line width.
|
||
|
||
Grn
|
||
---
|
||
|
||
* Support for b-spline and Bezier curves has been added.
|
||
|
||
Groffer
|
||
-------
|
||
|
||
* New option `--shell' to select the shell under which groffer shall
|
||
run.
|
||
|
||
Macro Packages
|
||
--------------
|
||
|
||
* The string `Am' (producing an ampersand) has been added to mdoc for
|
||
compatibility with NetBSD.
|
||
|
||
* `.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit)
|
||
instead.
|
||
|
||
* In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with
|
||
horizontal and vertical movements; please refer to contrib/mom/NEWS
|
||
for more details.
|
||
|
||
* New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers.
|
||
|
||
Miscellaneous
|
||
-------------
|
||
|
||
* 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
|
||
|
||
* 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
|
||
-----
|
||
|
||
* 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.
|
||
|
||
* Similar to \m and \M, \f[] switches back to the previous font. \fP
|
||
(and \f[P]) is still valid for backward compatibility.
|
||
|
||
* The new escape \F is the same as `.fam'; \F[] switches back to
|
||
previous family -- \F[P] selects family `P'.
|
||
|
||
* Two new glyph symbols are available: `eu' is the official Euro
|
||
symbol; `Eu' is a font-specific glyph variant.
|
||
|
||
* The new glyph symbols `t+-', `tdi', and `tmu' are textual variants of
|
||
`+-', `di', and `mu', respectively.
|
||
|
||
* Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN)
|
||
has got the troff glyph name `mc'.
|
||
|
||
* -Tutf8 is now available on EBCDIC hosts.
|
||
|
||
* Strings can take arguments, using this syntax: \*[foo arg1 arg2 ...].
|
||
Example:
|
||
|
||
.ds xxx This is a \\$1 test.
|
||
\*[xxx nice]
|
||
|
||
* 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'.
|
||
. !
|
||
..
|
||
|
||
* `.fn' is a new string-valued register that returns the resolved font
|
||
font name; a font family and abstract style are catenated.
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* In analogy to the `tmc' request, `.writec' is the same as `.write'
|
||
but doesn't emit a final newline.
|
||
|
||
* The new request `itc' is a variant of `.it' for which a line
|
||
interrupted with \c counts as one input line.
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* To emit strings directly to the intermediate output, a new `output'
|
||
request has been added; it is similar to `\!' used at the top level.
|
||
|
||
* `.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.
|
||
|
||
* `hpfcode' is a new request to provide an input encoding mapping for
|
||
the `hpf' request.
|
||
|
||
* The new request `hpfa' appends hyphenation patterns (`hpf' replaces
|
||
already existing patterns).
|
||
|
||
* 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).
|
||
|
||
* 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.
|
||
|
||
* `trin' (translate input) is a new request which is similar to `tr'
|
||
with the exception that the `asciify' request uses 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'.
|
||
|
||
* 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.
|
||
|
||
* For compatibility with plan 9's troff, multiple `pi' requests are
|
||
supported:
|
||
|
||
.pi foo
|
||
.pi bar
|
||
|
||
is now equivalent to
|
||
|
||
.pi foo | bar
|
||
|
||
* A new escape sequence `\O' is available to disable and enable glyph
|
||
output. Please see groff_diff.7 and groff.texinfo for more details.
|
||
|
||
* The escapes `\%', `\&', `\)', and `\:' no longer cause an error in
|
||
\X; they are ignored now. Additionally `\ ' and `\~' are converted
|
||
to single space characters.
|
||
|
||
* The default tab distance in nroff mode is now 0.8i to be compatible
|
||
with Unix troff.
|
||
|
||
* 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
|
||
--------------
|
||
|
||
* 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.
|
||
|
||
* Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added
|
||
to the man macros for compatibility with older BSD releases.
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* A new macro `Ex' has been added to the mdoc macro package to document
|
||
an exit status.
|
||
|
||
* 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.
|
||
|
||
* The trace.tmac package now traces calls to `am' also. Additionally,
|
||
it works in compatibility mode.
|
||
|
||
* `troff.1' has been split. Differences to Unix troff are now
|
||
documented in the new man page `groff_diff.7'.
|
||
|
||
* `groff_mwww.7' has been renamed to `groff_www.7'. The file mwww.tmac
|
||
has been removed.
|
||
|
||
* `groff_ms.7' has been completely rewritten. It now contains a
|
||
complete reference to the ms macros.
|
||
|
||
* `groff_trace.7' documents the trace macro package.
|
||
|
||
* 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 automatically
|
||
converts 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 automatically converts 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
|
||
-----
|
||
|
||
* The new command line option `-c' disables color output (which is
|
||
always disabled in compatibility mode).
|
||
|
||
Nroff
|
||
-----
|
||
|
||
* 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
|
||
---
|
||
|
||
* 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
|
||
---------
|
||
|
||
* 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
|
||
---------
|
||
|
||
* 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
|
||
-------
|
||
|
||
* 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
|
||
----
|
||
|
||
* Documents using the mom macro package are recognized.
|
||
|
||
Grops
|
||
-----
|
||
|
||
* Color support has been added.
|
||
|
||
* 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
|
||
------
|
||
|
||
* 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
|
||
|
||
* A new font file HBI (using cmssbxo10; this is slanted sans serif bold
|
||
extended) has been added.
|
||
|
||
* Two font families are now available: `T' and `H'.
|
||
|
||
* 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.
|
||
|
||
* Color support has been added. For drawing commands, colors are
|
||
translated to gray values currently.
|
||
|
||
Grotty
|
||
------
|
||
|
||
* Color support has been added, using the SGR (ISO 6429, sometimes
|
||
called ANSI color) escape sequences.
|
||
|
||
* 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 (or $MANPAGER, depending on
|
||
the used `man' program); alternatively, you can use `man's `-P'
|
||
option (or adapt its configuration file accordingly). See man(1) for
|
||
more details.
|
||
|
||
* If the environment variable GROFF_NO_SGR is set, SGR output is
|
||
disabled, reverting to the old behaviour.
|
||
|
||
* A new special \X'tty: sgr n' has been added; if n is non-zero or
|
||
missing, enable SGR output (the default).
|
||
|
||
* 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
|
||
-------
|
||
|
||
* Color support for glyphs has been added.
|
||
|
||
* New option `-h' to select the style of headings in HTML output.
|
||
|
||
* New option `-b' to set the background colour to white.
|
||
|
||
* 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.
|
||
|
||
* groff character/glyph entities now map onto HTML 4 character
|
||
entities.
|
||
|
||
Grolbp
|
||
------
|
||
|
||
* 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
|
||
-------------
|
||
|
||
* A new manual page `ditroff.7' is available.
|
||
|
||
* The groff texinfo manual is installed now, together with a bunch of
|
||
examples.
|
||
|
||
* 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
|
||
-----
|
||
|
||
* 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
|
||
-----
|
||
|
||
* 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.
|
||
|
||
* Added request `brp'. This is the same as `\p'.
|
||
|
||
* Similar to other versions of troff, the `ns' request now works in all
|
||
diversions, not only in the top-level one.
|
||
|
||
* New read-only number register `.ns'. Returns 1 if in no-space mode,
|
||
0 otherwise.
|
||
|
||
Nroff
|
||
-----
|
||
|
||
* Options -p (pic) and -t (tbl) added.
|
||
|
||
* The environment variable GROFF_BIN_PATH is now checked before PATH
|
||
for finding groff.
|
||
|
||
Grohtml
|
||
-------
|
||
|
||
* New option `-D dir' to specify a directory in which all images are
|
||
placed.
|
||
|
||
* 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
|
||
-----
|
||
|
||
* `-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.
|
||
|
||
* 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
|
||
-----
|
||
|
||
* 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 backward compatibility. If you
|
||
encounter any abnormal results, please report them to
|
||
bug-groff@gnu.org. [2018 UPDATE: This address no longer accepts bug
|
||
reports; please use the GNU Savannah bug tracker at
|
||
http://savannah.gnu.org/bugs/?group=groff.]
|
||
|
||
* 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.
|
||
|
||
* The `return' request has been added to return immediately from a
|
||
macro.
|
||
|
||
* 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!
|
||
.\}
|
||
|
||
* `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).
|
||
|
||
* 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.
|
||
|
||
* The new `unformat' request is similar to `asciify' but only handles
|
||
space characters and tabs specially if the diversion is interpolated,
|
||
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.
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* The new `spreadwarn' request makes troff warn if spaces in an output
|
||
line are widened by a given limit or more.
|
||
|
||
* Use `warnscale' to change the scaling indicator troff uses for
|
||
warning messages.
|
||
|
||
* 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).
|
||
|
||
* It is now possible to save and restore the escape character with two
|
||
new requests `ecs' and `ecr'.
|
||
|
||
* 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.
|
||
|
||
* The new escape sequence `\:' inserts a zero-width break point. This
|
||
is similar to `\%' but without a soft hyphen character.
|
||
|
||
* The `tr' request can now map characters onto `\~'.
|
||
|
||
* Calling the `fam' request without an argument switches back to the
|
||
previous font family.
|
||
|
||
* 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').
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* `\X' and `\Y' are now transparent for end-of-sentence recognition.
|
||
|
||
* The `cu' request in nroff mode now works as documented (i.e., it
|
||
underlines spaces also).
|
||
|
||
Grog
|
||
----
|
||
|
||
* 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
|
||
-----
|
||
|
||
* A new option `-P' resp. a new environment variable `GROPS_PROLOGUE'
|
||
has been added to select a different prologue file.
|
||
|
||
* 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
|
||
-------------
|
||
|
||
* 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.
|
||
|
||
* 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.
|
||
|
||
* All programs now have option `-v' to show the version number; they
|
||
exit immediately afterward, 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). [2024 update: This support was withdrawn in
|
||
groff 1.24.]
|
||
|
||
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 name of the 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 is 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 is now 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
|
||
development 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 now uses 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 now produces a character that has the traditional metrics, and form
|
||
corners with \(ul and \(br. This means that it does 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] interpolates 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' (similarly 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 valid 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 causes 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 generates 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 the
|
||
BSD -me macros and a low resolution device is not being used, then an
|
||
appropriate value for the $v or $V register is 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, \*[ is only 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 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 ...' are 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 produces 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 uses 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
|
||
interpolation depth 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 runs 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' scaling 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 is 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 now passes pic the -x flag; this enables 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 passes 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 is not 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 is not 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' is 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 valid 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 now arranges for the file to be copied to the output when
|
||
the diversion is interpolated.
|
||
|
||
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
|
||
are 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.
|
||
|
||
|
||
##### Editor settings
|
||
Local Variables:
|
||
coding: latin-1
|
||
fill-column: 72
|
||
mode: text
|
||
version-control: never
|
||
End:
|
||
# vim: set autoindent expandtab textwidth=72:
|