diff options
-rw-r--r-- | ChangeLog | 35 | ||||
-rw-r--r-- | MANIFEST | 19 | ||||
-rw-r--r-- | NEWS | 51 | ||||
-rw-r--r-- | doc/groff.texinfo | 50 | ||||
-rw-r--r-- | man/groff_tmac.man | 56 | ||||
-rw-r--r-- | src/devices/grodvi/dvi.cc | 1 | ||||
-rw-r--r-- | src/devices/grohtml/post-html.cc | 1 | ||||
-rw-r--r-- | src/devices/grolbp/lbp.cc | 1 | ||||
-rw-r--r-- | src/devices/grolj4/lj4.cc | 1 | ||||
-rw-r--r-- | src/devices/grops/ps.cc | 11 | ||||
-rw-r--r-- | src/devices/grotty/tty.cc | 1 | ||||
-rw-r--r-- | src/include/driver.h | 1 | ||||
-rw-r--r-- | src/libs/libdriver/input.cc | 6 | ||||
-rw-r--r-- | src/libs/libdriver/printer.cc | 2 | ||||
-rw-r--r-- | src/libs/libgroff/paper.cc | 8 | ||||
-rw-r--r-- | tmac/Makefile.sub | 2 | ||||
-rw-r--r-- | tmac/a4.tmac | 18 | ||||
-rw-r--r-- | tmac/an-old.tmac | 6 | ||||
-rw-r--r-- | tmac/composite.tmac | 40 | ||||
-rw-r--r-- | tmac/groff_man.man | 3 | ||||
-rw-r--r-- | tmac/troffrc | 3 |
21 files changed, 233 insertions, 83 deletions
@@ -1,3 +1,38 @@ +2003-03-11 Werner LEMBERG <wl@gnu.org> + + Make variable `pr' local to libdriver/input.cc. Based on a patch + by Bernd Warken <bwarken@mayn.de>. + + * src/include/driver.h (pr): Removed. + + * src/libs/libdriver/input.cc (pr): New global variable. + (do_file): Deallocate `pr'. + * src/libs/libdriver/printer.cc (pr): Removed. + + * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc + (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc + (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc + (main): Don't delete `pr'. + +2003-03-10 Werner LEMBERG <wl@gnu.org> + + * tmac/a4.tmac, tmac/composite.tmac: Use `.do'. + * tmac/papersize.tmac: New file. + * tmac/troffrc: Include `papersize.tmac'. + * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'. + * tmac/an-old.tmac: Set LT to LL by default. + + * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man, + doc/groff.texinfo: Updated. + + * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarassing + bug which caused all odd iso papers to have wrong dimensions. + + * src/devices/grops/ps.cc (user_paper_width): New global variable. + (main) <'p'>: Set `user_paper_width' also. + (ps_printer::media_width, ps_printer::media_height): Use values + given with option `-p'. + 2003-03-09 Werner LEMBERG <wl@gnu.org> * src/include/nonposix.h: Provide default for SET_BINARY. @@ -1,10 +1,10 @@ MANIFEST -Last update: 21 Dec 2001 +Last update: 11 Mar 2003 This file is part of groff, the GNU roff type-setting system. -Copyright (C) 2001 Free Software Foundation, Inc. +Copyright (C) 2001, 2003 Free Software Foundation, Inc. written by Bernd Warken <bwarken@mayn.de> maintained by Werner Lemberg <wl@gnu.org> @@ -50,6 +50,8 @@ the groff source distribution. djgpp Data special for the 32-bit DOS compiler djgpp. ./contrib Part of groff, but maintained by other people. + eqn2graph Convert equations created with EQN into different + graphical formats. groffer A wrapper to conveniently view roff files. mm The groff mm macro package. mom The groff mom macro package. @@ -107,8 +109,6 @@ the groff source distribution. nroff Emulate classical nroff text formatter. troff Main roff formatter program. -./src/xditview A groff (pre)viewer for the X Window System. - ./src/utils Utility programs around groff. addftinfo Add information to old troff font files for use with groff. afmtodit Create font description files for the PostScript device. @@ -116,9 +116,11 @@ the groff source distribution. indxbib Make inverted index for bibliographic databases. lkbib Search bibliographic databases. lookbib Interactively search bibliographic databases. - pfbtops Translate a PostScript font in .pfb format to ASCII. + pfbtops Translate a PostScript font in PFB format to PFA. tfmtodit Create font description files for TeX DVI device. +./src/xditview A groff (pre)viewer for the X Window System. + ./tmac Macro files. @@ -141,9 +143,10 @@ The groff documentation is scattered upon several places. 4) The roff parser -The parsing of the roff language is done by troff. The input is -transformed into "nodes" by `src/roff/troff/node.cc'. From these, the -intermediate output is generated. +The parsing of the roff language is done by troff. The input is converted +to tokens in `src/roff/troff/input.cc' and transformed into `nodes' by +`src/roff/troff/env.cc' and `src/roff/troff/node.cc'. From these, the +intermediate output is generated (also in `node.cc'). 5) Postprocessing @@ -16,10 +16,6 @@ o Input encoding files for latin-9 (a.k.a. latin-0 and ISO 8859-15) and the groff package supports latin-9 only for -Tps, -Tdvi, and -Tutf8, and latin-2 only for -Tdvi and -Tutf8. -o Non-slanted PostScript metrics have been changed again; they no longer - contain negative left italic correction values. This assures correct - spacing with eqn. - o Composite glyphs are now supported. To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in @@ -48,7 +44,8 @@ o Composite glyphs are now supported. To do this, a subset of the Adobe .composite ho u0328 - is needed. + 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. @@ -92,9 +89,9 @@ o The new glyph symbol `tno' is a textual variant of `no'. o The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL. (Well, it is not really new since it has been previously supported by - grolj4.) The mapping for the dvi symbol font has been changed accordingly - so that Greek small letter epsilon, `*e', has the same glyph shape as with - other devices. + 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 ----- @@ -106,14 +103,18 @@ o It is now possible to access all glyphs in a Type 1 font, not only 256 (provided the font file created by afmtodit has proper entries). grops constructs additional encoding vectors on the fly if necessary. -o Now emits paper size via %%DocumentMedia and PageSize mechanisms, so - that it is no longer required to tell `gv' or `ps2pdf' about the paper - size. The `broken' flag 16 omits this feature (the used PostScript - command `setpagedevice' is a LanguageLevel 2 extension). Patch by Egil - Kvaleberg <egil@kvaleberg.no>. +o The paper size is now emitted via the %%DocumentMedia and PageSize + mechanisms so that it is no longer required to tell `gv' or `ps2pdf' + about the paper size. The `broken' flag value 16 omits this feature + (the used PostScript command `setpagedevice' is a LanguageLevel 2 + extension). Patch by Egil Kvaleberg <egil@kvaleberg.no>. + +o Non-slanted PostScript metrics have been changed again; they no longer + contain negative left italic correction values. This assures correct + spacing with eqn. Grodvi ------ +------ o The font cmtex10 has been added as the special font `SC' to the DVI fonts. It is used as a font-specific special font for CW and CWI. @@ -133,7 +134,7 @@ o The environment variable `REFER' to override the name of the default Afmtodit -------- -o Unencoded glyphs in an AFM file are output also (since grops can emit +o Unencoded glyphs in an AFM file are output also (since grops can now emit multiple encoding vectors for a single font). o New option `-m' to prevent negative left italic correction values. @@ -161,6 +162,26 @@ o Larry Kollar <kollar@alltel.net> and others made the man macros more . The string `HF' now holds the typeface to print headings and subheadings. + . Similar to the ms macros, the LT register now defaults to LL if not + explicitly specified on the command line. + +o troff's start-up file `troffrc' now includes `papersize.tmac' to set + the paper size with the command line option `-dpaper=<size>'. + + Possible values for `<size>' are the same as the predefined `papersize' + values in the DESC file (only lowercase; see the groff_font man page) + except a7-d7. An appended `l' (ell) character denotes landscape + orientation. Examples: `a4', `c3l', `letterl'. + + Most output drivers need additional command line switches `-p' and + `-l' to override the default paper length and orientation as set in + the driver specific DESC file. + + For example, use the following for PS output on A4 paper in landscape + orientation: + + groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps + VERSION 1.18.1 ============== diff --git a/doc/groff.texinfo b/doc/groff.texinfo index 5595fa82..037646ec 100644 --- a/doc/groff.texinfo +++ b/doc/groff.texinfo @@ -805,6 +805,7 @@ Similarly, we say @samp{gpic}, @samp{geqn}, etc. * Environment:: * Macro Directories:: * Font Directories:: +* Paper Size:: * Invocation Examples:: @end menu @@ -1292,7 +1293,7 @@ directories during the installation process. @c ===================================================================== -@node Font Directories, Invocation Examples, Macro Directories, Invoking groff +@node Font Directories, Paper Size, Macro Directories, Invoking groff @section Font Directories @cindex font directories @cindex directories for fonts @@ -1350,7 +1351,49 @@ directories during the installation process. @c ===================================================================== -@node Invocation Examples, , Font Directories, Invoking groff +@node Paper Size, Invocation Examples, Font Directories, Invoking groff +@section Paper Size +@cindex paper size +@cindex size, paper +@cindex landscape page orientation +@cindex orientation, landscape +@cindex page orientation, landscape + +In groff, the page size for @code{gtroff} and for output devices are +handled separately. @xref{Page Layout}, for vertical manipulation of +the page size. @xref{Line Layout}, for horizontal changes. + +A default paper size can be set in the device's @file{DESC} file. Most +output devices also have a command line option @option{-p} to override +the default paper size and option @option{-l} to use landscape +orientation. @xref{DESC File Format}, for a description of the +@code{papersize} keyword which takes the same argument as @option{-p}. + +@pindex papersize.tmac +@pindex troffrc +A convenient shorthand to set a particular paper size for @code{gtroff} +is command line option @option{-dpaper=@var{size}}. This defines string +@code{paper} which is processed in file @file{papersize.tmac} (loaded in +the start-up file @file{troffrc} by default). Possible values for +@var{size} are the same as the predefined values for the +@code{papersize} keyword (but only in lowercase) except +@code{a7}-@code{d7}. An appended @samp{l} (ell) character denotes +landscape orientation. + +For example, use the following for PS output on A4 paper in landscape +orientation: + +@Example +groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps +@endExample + +Note that it is up to the particular macro package to respect default +page dimensions set in this way (most do). + + +@c ===================================================================== + +@node Invocation Examples, , Paper Size, Invoking groff @section Invocation Examples @cindex invocation examples @cindex examples of invocation @@ -2010,8 +2053,7 @@ line) and 6.5@tie{}inch otherwise. @item -rLT=@var{length} Set title length to @var{length}. If not specified, the title length -defaults to 78@tie{}en in nroff mode (this is 78@tie{}characters per -line) and 6.5@tie{}inch otherwise. +defaults to the line length. @item -rP@var{nnn} Page numbering starts with @var{nnn} rather than with@tie{}1. diff --git a/man/groff_tmac.man b/man/groff_tmac.man index f8b34523..d7748dc7 100644 --- a/man/groff_tmac.man +++ b/man/groff_tmac.man @@ -15,11 +15,11 @@ groff_tmac.5 File position: <groff-source>/man/groff_tmac.man -Last update: 20 Oct 2002 +Last update: 13 Mar 2003 This file is part of groff, the GNU roff type-setting system. -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. written by Bernd Warken <bwarken@mayn.de> and Werner Lemberg <wl@gnu.org> @@ -409,6 +409,48 @@ macro package or to plain groff. . . .TP +.B papersize +This macro file is already loaded at start-up by +.B @g@troff +so it isn't necessary to call it explicitly. +. +It provides an interface to set the paper size on the command line with +the option \f[B]\%\-dpaper=\f[]\f[I]size\f[]. +. +Possible values for +.I size +are the same as the predefined +.B papersize +values in the DESC file (only lowercase; see +.BR groff_font (@MAN5EXT@) +for more) except +.BR a7 - d7 . +. +An appended +.B l +(ell) character denotes landscape orientation. +. +Examples: +.BR a4 , +.BR c3l , +.BR letterl . +. +.IP +Most output drivers need additional command line switches +.B \-p +and +.B \-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: +. +.IP +.Shell_cmd "groff \-Tps \-dpaper=a4l \-P\-pa4 \-P\-l \-ms foo.ms > foo.ps" +. +. +.TP .B tty-char Overrides the definition of standard troff characters and some groff characters for tty devices. @@ -640,7 +682,7 @@ is used or .P In both cases, the formatter is called with .IP -.Shell_cmd "troff\~\-s\~" docu.roff +.Shell_cmd "groff\~\-s\~" docu.roff . . .P @@ -811,12 +853,16 @@ say. . .P When calling this macro by +. .P .Example . Text .print_args arg1 arg2 ./Example +. .P the following text is printed to the terminal: +. +.P .Example . Text \f[CI]print_args\f[] was called with the following 2 arguments: arg1 arg2 @@ -1012,7 +1058,7 @@ All macro names must be named to fully use the tmac mechanism. . .BI tmac. name -as with classical packages is possible as well, but deprecated. +as with classical packages is possible as well, but deprecated. . . .P @@ -1075,7 +1121,7 @@ See the previous section for a detailed description. .SH AUTHOR .\" -------------------------------------------------------------------- . -Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. . .P This document is distributed under the terms of the FDL (GNU Free diff --git a/src/devices/grodvi/dvi.cc b/src/devices/grodvi/dvi.cc index c25ebf84..de0d42be 100644 --- a/src/devices/grodvi/dvi.cc +++ b/src/devices/grodvi/dvi.cc @@ -934,7 +934,6 @@ int main(int argc, char **argv) for (int i = optind; i < argc; i++) do_file(argv[i]); } - delete pr; return 0; } diff --git a/src/devices/grohtml/post-html.cc b/src/devices/grohtml/post-html.cc index 2f5d757b..0af291eb 100644 --- a/src/devices/grohtml/post-html.cc +++ b/src/devices/grohtml/post-html.cc @@ -3759,7 +3759,6 @@ int main(int argc, char **argv) for (int i = optind; i < argc; i++) do_file(argv[i]); } - delete pr; return 0; } diff --git a/src/devices/grolbp/lbp.cc b/src/devices/grolbp/lbp.cc index 904fab3b..b34a1e08 100644 --- a/src/devices/grolbp/lbp.cc +++ b/src/devices/grolbp/lbp.cc @@ -735,6 +735,5 @@ int main(int argc, char **argv) while (optind < argc) do_file(argv[optind++]); lbpputs("\033c\033<"); - delete pr; return 0; } diff --git a/src/devices/grolj4/lj4.cc b/src/devices/grolj4/lj4.cc index 9e110c2e..3d36e227 100644 --- a/src/devices/grolj4/lj4.cc +++ b/src/devices/grolj4/lj4.cc @@ -693,7 +693,6 @@ int main(int argc, char **argv) for (int i = optind; i < argc; i++) do_file(argv[i]); } - delete pr; return 0; } diff --git a/src/devices/grops/ps.cc b/src/devices/grops/ps.cc index 4d52743f..4aaddbff 100644 --- a/src/devices/grops/ps.cc +++ b/src/devices/grops/ps.cc @@ -50,6 +50,7 @@ static int linewidth = -1; // length using the imageable area. static int guess_flag = 0; static double user_paper_length = 0; +static double user_paper_width = 0; // Non-zero if -b was specified on the command line. static int bflag = 0; @@ -1258,12 +1259,14 @@ int ps_printer::media_width() * Postscript definition specifies that media * matching should be done within a tolerance of 5 units. */ - return int(font::paperwidth*72.0/font::res + 0.5); + return int(user_paper_width ? user_paper_width*72.0 + 0.5 + : font::paperwidth*72.0/font::res + 0.5); } int ps_printer::media_height() { - return int(paper_length*72.0/font::res + 0.5); + return int(user_paper_length ? user_paper_length*72.0 + 0.5 + : paper_length*72.0/font::res + 0.5); } void ps_printer::media_set() @@ -1805,7 +1808,8 @@ int main(int argc, char **argv) manual_feed_flag = 1; break; case 'p': - if (!font::scan_papersize(optarg, 0, &user_paper_length, 0)) + if (!font::scan_papersize(optarg, 0, + &user_paper_length, &user_paper_width)) error("invalid custom paper size `%1' ignored", optarg); break; case 'P': @@ -1845,7 +1849,6 @@ int main(int argc, char **argv) for (int i = optind; i < argc; i++) do_file(argv[i]); } - delete pr; return 0; } diff --git a/src/devices/grotty/tty.cc b/src/devices/grotty/tty.cc index bfb8a207..b60f86a8 100644 --- a/src/devices/grotty/tty.cc +++ b/src/devices/grotty/tty.cc @@ -805,7 +805,6 @@ int main(int argc, char **argv) for (int i = optind; i < argc; i++) do_file(argv[i]); } - delete pr; return 0; } diff --git a/src/include/driver.h b/src/include/driver.h index d9579289..b15d6c99 100644 --- a/src/include/driver.h +++ b/src/include/driver.h @@ -34,4 +34,3 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "geometry.h" void do_file(const char *); -extern printer *pr; diff --git a/src/libs/libdriver/input.cc b/src/libs/libdriver/input.cc index b79b6d87..bc9b7f57 100644 --- a/src/libs/libdriver/input.cc +++ b/src/libs/libdriver/input.cc @@ -8,7 +8,7 @@ Written by James Clark (jjc@jclark.com) Major rewrite 2001 by Bernd Warken (bwarken@mayn.de) - Last update: 14 Feb 2003 + Last update: 11 Mar 2003 This file is part of groff, the GNU roff text processing system. @@ -354,8 +354,7 @@ int current_lineno = 0; // current line number of printout // exported as extern by device.h; const char *device = 0; // cancel former init with literal -// from driver.h; pr is kept between several runs of do_file() -// extern printer *pr; +printer *pr; // Note: // @@ -1831,6 +1830,7 @@ do_file(const char *filename) // end of file reached if (npages > 0) pr->end_page(current_env->vpos); + delete pr; fclose(current_file); // If `stopped' is not `true' here then there wasn't any `x stop'. if (!stopped) diff --git a/src/libs/libdriver/printer.cc b/src/libs/libdriver/printer.cc index c97e2ce6..289be901 100644 --- a/src/libs/libdriver/printer.cc +++ b/src/libs/libdriver/printer.cc @@ -28,8 +28,6 @@ #include "driver.h" -printer *pr = 0; - font_pointer_list::font_pointer_list(font *f, font_pointer_list *fp) : p(f), next(fp) { diff --git a/src/libs/libgroff/paper.cc b/src/libs/libgroff/paper.cc index d79733e0..db8f5bcf 100644 --- a/src/libs/libgroff/paper.cc +++ b/src/libs/libgroff/paper.cc @@ -1,5 +1,5 @@ // -*- C++ -*- -/* Copyright (C) 2002 +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. Written by Werner Lemberg (wl@gnu.org) @@ -42,9 +42,9 @@ static void add_iso_paper(char series, int offset, papersizes[offset + i].width = (double)width / 25.4; // after division by two, values must be rounded down to the next // integer (as specified by ISO) - int tmp = width; - width = length; - length = tmp / 2; + int tmp = length; + length = width; + width = tmp / 2; } } diff --git a/tmac/Makefile.sub b/tmac/Makefile.sub index 1e128001..a2f83821 100644 --- a/tmac/Makefile.sub +++ b/tmac/Makefile.sub @@ -11,7 +11,7 @@ NORMALFILES=\ me.tmac \ mdoc.tmac \ pic.tmac \ - a4.tmac \ + a4.tmac papersize.tmac \ ec.tmac \ safer.tmac \ trace.tmac \ diff --git a/tmac/a4.tmac b/tmac/a4.tmac index 5001939d..80c944d0 100644 --- a/tmac/a4.tmac +++ b/tmac/a4.tmac @@ -1,12 +1,20 @@ .\" a4.tmac .\" .\" Set up groff for A4 paper. Must be called before any other macro -.\" package. For correct PS output, you must also set the -.\" `paperlength' keyword in devps/DESC to 841890 in case groff hasn't -.\" guessed it correctly during configuration. +.\" package. +.\" +.\" Some output drivers need an additional command line switch `-p' to +.\" override the default paper length set in the driver specific DESC +.\" file. +.\" +.\" For example, use the following for PS output: +.\" +.\" groff -Tps -P-pa4 -ma4 -ms foo.ms > foo.ps . .pl 29.7c .ll 21c-2i . -.\" for ms -.if !rLL .nr LL \n[.l]u +.\" for ms, mdoc, man +.do if !r LL .nr LL \n[.l]u +. +.\" EOF diff --git a/tmac/an-old.tmac b/tmac/an-old.tmac index 9cbf6fc7..dc886157 100644 --- a/tmac/an-old.tmac +++ b/tmac/an-old.tmac @@ -62,10 +62,8 @@ . ie n .nr LL 78n . el .nr LL 6.5i .\} -.if !r LT \{\ -. ie n .nr LT 78n -. el .nr LT 6.5i -.\} +.if !r LT \ +. nr LT \n[LL] . .nr FT -.5i . diff --git a/tmac/composite.tmac b/tmac/composite.tmac index b6323a19..93269337 100644 --- a/tmac/composite.tmac +++ b/tmac/composite.tmac @@ -1,24 +1,24 @@ .\" composite.tmac . -.composite ga u0300 -.composite ` u0300 -.composite aa u0301 -.composite ' u0301 -.composite a^ u0302 -.composite ^ u0302 -.composite a~ u0303 -.composite ~ u0303 -.composite a- u0304 -.composite - u0304 -.composite ab u0306 -.composite a. u0307 -.composite . u0307 -.composite ad u0308 -.composite ao u030A -.composite a" u030B -.composite " u030B -.composite ah u030C -.composite ac u0327 -.composite ho u0328 +.do composite ga u0300 +.do composite ` u0300 +.do composite aa u0301 +.do composite ' u0301 +.do composite a^ u0302 +.do composite ^ u0302 +.do composite a~ u0303 +.do composite ~ u0303 +.do composite a- u0304 +.do composite - u0304 +.do composite ab u0306 +.do composite a. u0307 +.do composite . u0307 +.do composite ad u0308 +.do composite ao u030A +.do composite a" u030B +.do composite " u030B +.do composite ah u030C +.do composite ac u0327 +.do composite ho u0328 . .\" EOF diff --git a/tmac/groff_man.man b/tmac/groff_man.man index e8011985..5886e4f8 100644 --- a/tmac/groff_man.man +++ b/tmac/groff_man.man @@ -136,8 +136,7 @@ and 6.5i in troff mode. .TP .BI \-rLT= title-length Set title length. -If this option is not given, the title length defaults to 78n in nroff mode -and 6.5i in troff mode. +If this option is not given, the title length defaults to the line length. . .TP .BI \-rP nnn diff --git a/tmac/troffrc b/tmac/troffrc index e45be3d1..419a6716 100644 --- a/tmac/troffrc +++ b/tmac/troffrc @@ -40,4 +40,7 @@ troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html .\" Load composite mappings. .do mso composite.tmac . +.\" Handle paper formats +.do mso papersize.tmac +. .\" Don't let blank lines creep in here. |